<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>williamhathaway.com &#187; solaris</title>
	<atom:link href="http://www.williamhathaway.com/wordpress/category/solaris/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.williamhathaway.com/wordpress</link>
	<description></description>
	<lastBuildDate>Wed, 21 Jul 2010 03:10:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>ZFS presentation</title>
		<link>http://www.williamhathaway.com/wordpress/2010/01/14/zfs-presentation/</link>
		<comments>http://www.williamhathaway.com/wordpress/2010/01/14/zfs-presentation/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 14:40:22 +0000</pubDate>
		<dc:creator>William Hathaway</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[centralpa]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[presentations]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[zfs]]></category>

		<guid isPermaLink="false">http://www.williamhathaway.com/wordpress/?p=527</guid>
		<description><![CDATA[On Tuesday night I gave a presentation on ZFS to the Central PA Linux User Group. Since the audience was a Linux user group, I wasn&#8217;t expecting too many in the crowd to be familiar with ZFS, but I was pleasantly surprised that about 40% of the ~ 20 people in attendance had used ZFS [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption aligncenter" style="width: 410px"><img alt="" src="http://billhathaway.smugmug.com/photos/764957146_tdHkq-S.jpg" width="400" height="300" /><p class="wp-caption-text">Photo by John @ ThinkHole.com</p></div>
<p>On Tuesday night I gave a presentation on <a href="http://hub.opensolaris.org/bin/view/Community+Group+zfs/">ZFS</a> to the <a href="http://www.cplug.net/">Central PA Linux User Group</a>.  Since the audience was a Linux user group, I wasn&#8217;t expecting too many in the crowd to be familiar with ZFS, but I was pleasantly surprised that about 40% of the ~ 20 people in attendance had used ZFS in some capacity.   If you are already a seasoned ZFS user, I would highly recommend <a href="http://www.richardelling.com/">Richard Elling&#8217;s</a><a href="http://www.slideshare.net/relling/zfs-tutorial-usenix-june-2009"> ZFS presentation</a> which he uses in his day-long tutorials.</p>
<div style="width:477px;text-align:left" id="__ss_2911779"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/billhathaway/zfs-in-30-minutes" title="ZFS in 30 minutes">ZFS in 30 minutes</a><object style="margin:0px" width="477" height="510"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayerd.swf?doc=zfspresocplug-100114065414-phpapp01&#038;stripped_title=zfs-in-30-minutes" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayerd.swf?doc=zfspresocplug-100114065414-phpapp01&#038;stripped_title=zfs-in-30-minutes" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="477" height="510"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">documents</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/billhathaway">billhathaway</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.williamhathaway.com/wordpress/2010/01/14/zfs-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Puppet on OpenSolaris</title>
		<link>http://www.williamhathaway.com/wordpress/2009/12/26/installing-puppet-on-opensolaris/</link>
		<comments>http://www.williamhathaway.com/wordpress/2009/12/26/installing-puppet-on-opensolaris/#comments</comments>
		<pubDate>Sun, 27 Dec 2009 05:01:39 +0000</pubDate>
		<dc:creator>William Hathaway</dc:creator>
				<category><![CDATA[solaris]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.williamhathaway.com/wordpress/?p=493</guid>
		<description><![CDATA[While looking at the Reductive Labs&#8217;  Puppet on Solaris page I saw there was a repository which hosts Puppet in a pkg format.  This makes installing a Puppet server on OpenSolaris pretty easy. pkg set-publisher -O http://pkg.codenursery.com/ codenursery.com pkg install puppet groupadd puppet useradd -g puppet puppet mkdir /etc/puppet /var/puppet /usr/ruby/1.8/sbin/puppetd  --genconfig &#62; /etc/puppet/puppet.conf svcadm [...]]]></description>
			<content:encoded><![CDATA[<p>While looking at the Reductive Labs&#8217;  <a href="http://reductivelabs.com/trac/puppet/wiki/PuppetSolaris">Puppet on Solaris</a> page I saw there was a repository which hosts Puppet in a pkg format.  This makes installing a Puppet server on OpenSolaris pretty easy.</p>
<pre>pkg set-publisher -O http://pkg.codenursery.com/ codenursery.com
pkg install puppet

groupadd puppet
useradd -g puppet puppet</pre>
<pre>mkdir /etc/puppet /var/puppet

/usr/ruby/1.8/sbin/puppetd  --genconfig &gt; /etc/puppet/puppet.conf

svcadm enable puppet/master</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.williamhathaway.com/wordpress/2009/12/26/installing-puppet-on-opensolaris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>2009 LISA Conference</title>
		<link>http://www.williamhathaway.com/wordpress/2009/11/08/2009-lisa-conference/</link>
		<comments>http://www.williamhathaway.com/wordpress/2009/11/08/2009-lisa-conference/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 17:07:10 +0000</pubDate>
		<dc:creator>William Hathaway</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[education]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[storage]]></category>
		<category><![CDATA[technology]]></category>
		<category><![CDATA[zfs]]></category>

		<guid isPermaLink="false">http://www.williamhathaway.com/wordpress/?p=485</guid>
		<description><![CDATA[I spent last week at the LISA Conference in Baltimore MD.  if you aren&#8217;t familiar with LISA, it is a conference focused on system administration.  This is the 4th  LISA I&#8217;ve attended in the last 12 years. On Monday I attended a tutorial by Richard Elling on ZFS: A Filesystem for Modern Hardware. On Tuesday [...]]]></description>
			<content:encoded><![CDATA[<p>I spent last week at the LISA Conference in Baltimore MD.  if you aren&#8217;t familiar with LISA, it is a conference focused on system administration.  This is the 4th  LISA I&#8217;ve attended in the last 12 years.</p>
<p>On Monday I attended a tutorial by <a href="http://richardelling.com">Richard Elling</a> on ZFS: A Filesystem for Modern Hardware.</p>
<p>On Tuesday I attended two tutorials.  The first was<a href="http://www.cambridgecomputer.com/management.cfm"> Jacob Farmer&#8217;s</a> Disk-to-Disk Backup and Eliminating Backup System Bottlenecks.  The second was <a href="http://everythingsysadmin.com">Tom Limoncelli&#8217;s</a> Design Patterns for System Administrators.</p>
<p>Unfortunately on both Monday and Tuesday I had to spend a significant amount of time on conference calls helping to troubleshoot some work related issues, but the time I spent in all 3 sessions and viewing their materials was helpful.  I would definitely recommend attending tutorials by any of the 3 people above if they are teaching a topic of interest to you.</p>
<p>On Tuesday night I attended some (Open)Solaris birds-of-a-feather sessions.  There were a few times that people in the crowd were being belligerent towards a speaker (mostly complaining about the difficulty of finding information of various types), even though the speaker certainly had no sway over what the person in the crowd was upset about.  I don&#8217;t care how much money your company spends with a vendor, there is never a reason to be rude.   <a href="http://blogs.sun.com/dminer/">David Miner</a> gave a talk about whats coming in Solaris.next and <a href="http://cuddletech.com">Ben Rockwood</a> gave an entertaining and informative presentation on <a href="http://wikis.sun.com/download/attachments/63226450/ZFSintheTrenches.pdf">ZFS in the Trenches</a>.</p>
<p>I was lucky enough to get a chance to talk with David Miner over a quick lunch later in the week and talk about the new opportunities and challenges with the OpenSolaris installation technologies.</p>
<p>On Wednesday through Friday I attended a mix of presentations, met with a bunch of vendors, and also sat in some of the &#8216;Guru is in&#8217; sessions and talked with a number of conference attendees.  The highlights for me were:</p>
<ul>
<li>Werner Vogel (CTO of Amazon) gave a fascinating talk on the history of Amazon&#8217;s IT philosophy and infrastructure and how they evolved from a humble internal IT shop to adding a business which is the dominant  cloud computing provider.</li>
<li>Elizabeth Zwicky&#8217;s talk on <strong> &#8220;Searching for Truth, or at Least Data: How </strong><strong><strong>to Be an Empiricist Skeptic&#8221;</strong></strong></li>
<li><a href="http://blogs.sun.com/bmc/">Bryan Cantrill&#8217;s</a> talk on <strong><a href="http://blogs.sun.com/video/entry/visualizing_dtrace_sun_storage_7000">&#8220;Visualizing DTrace: Sun Storage 7000 Analytics&#8221;</a><br />
</strong></li>
<li>Talking with the folks from <a href="http://www,splunk.com">Splunk </a>(awesome log searching analysis tool)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.williamhathaway.com/wordpress/2009/11/08/2009-lisa-conference/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Effect of multi-byte locales on GNU grep speed in OpenSolaris</title>
		<link>http://www.williamhathaway.com/wordpress/2009/09/25/effect-of-multi-byte-locales-on-gnu-grep-speed/</link>
		<comments>http://www.williamhathaway.com/wordpress/2009/09/25/effect-of-multi-byte-locales-on-gnu-grep-speed/#comments</comments>
		<pubDate>Fri, 25 Sep 2009 13:02:18 +0000</pubDate>
		<dc:creator>William Hathaway</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[solaris]]></category>

		<guid isPermaLink="false">http://www.williamhathaway.com/wordpress/?p=469</guid>
		<description><![CDATA[I have a lab machine running OpenSolaris 2009.06 (updated to snv_117) and had created an LDIF file with about 100k small entries in it (file size was ~ 63 megs).  I wanted to get a count of the exact number of entries so I ran: grep -c ^dn: I expected it to take a second [...]]]></description>
			<content:encoded><![CDATA[<p><em> </em></p>
<p>I have a lab machine running OpenSolaris 2009.06 (updated to snv_117) and had created an LDIF file with about 100k small entries in it (file size was ~ 63 megs).  I wanted to get a count of the exact number of entries so I ran:</p>
<p><strong>grep -c ^dn:</strong></p>
<p>I expected it to take a second or two.  I was wrong.  It was painfully slow.</p>
<p>I used the <strong>time</strong> command to re-run the grep and saw it clocked in at just over a minute.</p>
<p>This was weird, so I though it was time to investigate further.  I used the<a href="http://opensolaris.org/os/community/dtrace/dtracetoolkit/"> DTrace Toolkit&#8217;s</a> hotuser command to see what the hot functions were:</p>
<pre><strong>pfexec /opt/DTT/hotuser -c "grep -c ^dn: /var/tmp/search.out"</strong>
Sampling... Hit Ctrl-C to end.

FUNCTION                                                     COUNT   PCNT
...&lt;snipped out smaller functions&gt;...
ggrep`check_multibyte_string                                    5480   8.9%
methods_unicode.so.3`__mbrtowc_dense_utf8                      12328  20.1%
libc.so.1`mbrlen                                               13566  22.1%
libc.so.1`memset                                               23014  37.5%</pre>
<p>Hmm, interesting to see the calls to mbrlen and methods_unicode among the hot functions.  Lets check my $LANG setting:</p>
<pre><strong>echo $LANG</strong></pre>
<pre>en_US.UTF-8</pre>
<p>Bingo!  Lets try it again with a non multi-byte LANG setting.</p>
<pre><strong>LANG=C</strong> <strong>time grep -c ^dn: /var/tmp/search.out
</strong></pre>
<pre>99987

real        0.1
user        0.0
sys         0.0</pre>
<p>That looks normal.  Now lets try one more time with a multi-byte LANG to be sure:</p>
<pre><strong>LANG=en_US.UTF-8 time grep -c ^dn: /var/tmp/search.out</strong>
99987

real     1:01.4
user     1:01.3
sys         0.0</pre>
<p>Yep, the problem is confirmed.</p>
<h2>Notes</h2>
<p>For those unfamiliar with OpenSolaris,  the default path has /usr/gnu/bin first.  The grep I was using was:</p>
<pre><strong>grep -V</strong>
grep (GNU grep) 2.5

Copyright 1988, 1992-1999, 2000, 2001 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</pre>
<p>If you use the non-GNU grep available at <strong>/usr/xpg4/bin/grep </strong>it doesn&#8217;t have the big slowdown regardless of the LANG.</p>
<p>I also tried the same test on the GNU <strong>wc</strong> command and saw about a 25x difference when using a multi-byte LANG.</p>
<p>For both grep and wc, I re-ran the tests multiple times to make sure that file system caching played no role in the results.</p>
<p>I think these performance differences are way higher than they should be, I&#8217;m going to dig further when I have a chance.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.williamhathaway.com/wordpress/2009/09/25/effect-of-multi-byte-locales-on-gnu-grep-speed/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Printing Java garbage collection time stamps</title>
		<link>http://www.williamhathaway.com/wordpress/2009/09/01/printing-java-garbage-collection-time-stamps/</link>
		<comments>http://www.williamhathaway.com/wordpress/2009/09/01/printing-java-garbage-collection-time-stamps/#comments</comments>
		<pubDate>Wed, 02 Sep 2009 03:42:40 +0000</pubDate>
		<dc:creator>William Hathaway</dc:creator>
				<category><![CDATA[java]]></category>
		<category><![CDATA[solaris]]></category>

		<guid isPermaLink="false">http://www.williamhathaway.com/wordpress/?p=455</guid>
		<description><![CDATA[I&#8217;ve been spending a bunch of time lately looking at Java garbage collection (GC) performance &#38; tuning.  One of the old standby options for GC logging is: -XX:+PrintGCTimeStamps this option tells the JVM to print a time stamp in the front of each GC line that is the number of seconds since the Java process [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been spending a bunch of time lately looking at Java garbage collection (GC) performance &amp; tuning.  One of the old standby options for GC logging is:</p>
<p><strong>-XX:+PrintGCTimeStamps</strong></p>
<p>this option tells the JVM to print a time stamp in the front of each GC line that is the number of seconds since the Java process started.  You end up with lines like:</p>
<p>1.449: [GC 76756K-&gt;5892K(504320K), 0.0226648 secs]<br />
1.472: [Full GC 5892K-&gt;5752K(504320K), 0.1099638 secs]<br />
4.276: [GC 137848K-&gt;14895K(504320K), 0.0333021 secs]<br />
5.653: [GC 146991K-&gt;63707K(504320K), 0.0858191 secs]<br />
38.536: [GC 195803K-&gt;77393K(636416K), 0.0683676 secs]<br />
144.875: [GC 341585K-&gt;97580K(637440K), 0.1131954 secs]</p>
<p>While these are better than nothing, it can be a PITA to translate these to something useful, like say wall clock time, such as when you want to correlate a GC time to an external alarm.</p>
<p>Starting in Sun&#8217;s JDK version 1.6u4, there is another option that can be enabled that actually prints both the wall clock time as well as the seconds since process start.  This is way more user-friendly.  I suspect there is a extremely minute performance penalty to add this extra info, but I&#8217;d be shocked if it is actually perceptable.  If anyone knows differently, please let me know.  This option is:</p>
<p><strong>-XX:+PrintGCDateStamps</strong></p>
<p>If you have it enabled, the output looks like:</p>
<p>2009-09-02T23:02:07.151-0400: 1.463: [GC 79398K-&gt;5887K(504320K), 0.0236701 secs]<br />
2009-09-02T23:02:07.175-0400: 1.486: [Full GC 5887K-&gt;5753K(504320K), 0.1095894 secs]<br />
2009-09-02T23:02:10.028-0400: 4.339: [GC 137849K-&gt;14987K(504320K), 0.0345331 secs]<br />
2009-09-02T23:04:31.707-0400: 146.018: [GC 147083K-&gt;23143K(504320K), 0.0455040 secs]<br />
2009-09-02T23:14:28.502-0400: 742.813: [GC 155239K-&gt;28406K(504320K), 0.0912850 secs]</p>
<p>As you can see, this is much more easily digestable to  humans.  Since you still have the &#8216;seconds since program start&#8217; info handy, you can continue to use scripts/programs to easily calculate the time deltas between GCs.</p>
<p>Some useful links I&#8217;ve found for Java tuning in general are:</p>
<ul>
<li>Resources from Matty&#8217;s presentation:</li>
</ul>
<p style="padding-left: 30px;"><a href="http://prefetch.net/blog/index.php/2008/02/05/java-performance-presentation/">http://prefetch.net/blog/index.php/2008/02/05/java-performance-presentation/</a></p>
<ul>
<li>Java performance forum:</li>
</ul>
<p style="padding-left: 30px;"><a href="http://forums.java.net/jive/forum.jspa?forumID=60">http://forums.java.net/jive/forum.jspa?forumID=60</a></p>
<ul>
<li>Jon Masamitsu&#8217;s blog: (the last post was over a year ago, starting to age, but some good material)</li>
</ul>
<p style="padding-left: 30px;"><a href="http://blogs.sun.com/jonthecollector/">http://blogs.sun.com/jonthecollector/</a></p>
<ul>
<li>Garbage Collection Tuning in the Java HotSpot Virtual Machine presentation at Java One 2009</li>
</ul>
<p style="padding-left: 30px;"><a href="http://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-4887&amp;yr=2009&amp;track=javase">http://developers.sun.com/learning/javaoneonline/sessions/2009/pdf/TS-4887.pdf</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.williamhathaway.com/wordpress/2009/09/01/printing-java-garbage-collection-time-stamps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenSolaris automated installs</title>
		<link>http://www.williamhathaway.com/wordpress/2009/06/21/opensolaris-automated-installs/</link>
		<comments>http://www.williamhathaway.com/wordpress/2009/06/21/opensolaris-automated-installs/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 02:30:36 +0000</pubDate>
		<dc:creator>William Hathaway</dc:creator>
				<category><![CDATA[solaris]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.williamhathaway.com/wordpress/?p=440</guid>
		<description><![CDATA[I took a test drive of the OpenSolaris automated installer (AI) utility today.  This is the replacement for the venerable Solaris jumpstart technology and is the only way to install OpenSolaris in a hands-off approach.  Based off my 2 hours of so of perusing the documentation and working with it, I think it is still [...]]]></description>
			<content:encoded><![CDATA[<p>I took a test drive of the OpenSolaris automated installer (AI) utility today.  This is the replacement for the venerable Solaris jumpstart technology and is the only way to install OpenSolaris in a hands-off approach.  Based off my 2 hours of so of perusing the documentation and working with it, I think it is still a work in progress (e.g. I didn&#8217;t see any way of having jumpstart-like custom finish scripts).</p>
<p>The first thing I did was read through the <a href="http://dlc.sun.com/osol/docs/content/dev/AIinstall/index.html">automated installer docs</a>.  There isn&#8217;t a lot there yet, so it is a quick read, but it will help you get the basics.  Another good place to look for information is the OpenSolaris <a href="http://www.opensolaris.org/jive/forum.jspa?forumID=185">forum for installer technology</a> (aka project Caiman).</p>
<p>There appear to be several components involved, at least for x86 based clients.  I haven&#8217;t yet tried SPARC so am not sure how it differs.</p>
<p>1) DHCP server &#8211; to hand out an address and the PXE boot parameters to a client</p>
<p>2) TFTP server &#8211; to serve the PXE boot image</p>
<p>3) Install server &#8211; an Apache instance that hands back the XML configuration files and the mini root.  In my case it was running on port 5555.</p>
<p>4) Package repository &#8211; for fetching the actual packages to install. By default it is pkg.opensolaris.org/release, but you could change it to a different repository (including a mirror hosted locally if you had one).</p>
<p>Note that there is no NFS service needed, this should make firewall admins very happy.</p>
<p><strong>The lab</strong></p>
<p>I built a lab environment consisting of two virtual machines inside VMWare on my desktop.</p>
<p>To keep things simple, the first VM was called &#8220;server&#8221;, and the second &#8220;client&#8221;.  The purpose of my lab environment was to configure the AI environment on the server machine and complete a hands-off install on the client machine.</p>
<p>The VMs were configured as follows:</p>
<p>Server</p>
<ul>
<li>RAM &#8211; 800M</li>
<li>Disk &#8211; 16GB</li>
<li>NIC1 (e1000g0) &#8211; bridged to public network</li>
<li>NIC2 (e1000g1) &#8211; host-internal network</li>
</ul>
<p>I also went into the VMWare networking tool and disabled VMWare&#8217;s built-in DHCP server on the host-internal network to ensure that my server would be handing out any DHCP responses.</p>
<p>Client</p>
<ul>
<li>RAM 800M</li>
<li>NIC1 (e1000g0) &#8211; host-internal network</li>
<li>Disk &#8211; 8GB   Note: when I first tried an 8 GB disk  AI complained that it couldn&#8217;t find any suitable disks because  it wanted at least a 12.5GB disk.  You can work around it by explicitly specifying which disk you want to install on, in which case the default minimum size limit won&#8217;t be  triggered.</li>
</ul>
<div class="wp-caption aligncenter" style="width: 438px"><img src="http://billhathaway.smugmug.com/photos/570315596_FPwV4-M.jpg" alt="" width="428" height="450" /><br />
<p class="wp-caption-text">OpenSolaris Auto Installer Lab</p></div>
<p><strong>Setting up the server</strong></p>
<p>1) Installed OpenSolaris 2009.06</p>
<p>2) Installed the automated install software</p>
<p>I saw from the docs that I needed the <strong>installadm </strong>utility, which wasn&#8217;t on my system.  I wasn&#8217;t sure which package this was from, so I ran:</p>
<p><strong>pkg  search installadm</strong></p>
<p>this told me I wanted the SUNWinstalladm-tools package.  I installed that using:</p>
<p><strong>pfexec pkg install SUNWinstalladm-tools</strong></p>
<p>3) Download the automated install ISO image</p>
<p>The installer needs an architecture (x86 or SPARC) specific ISO image for each type of client that will be supported.  Since I was going to install on x86, I downloaded the appropriate image from genunix: <a href="http://genunix.org/distributions/indiana/osol-0906-ai-x86.iso">http://genunix.org/distributions/indiana/osol-0906-ai-x86.iso</a></p>
<p>4) Create an install environment under /auto-install named ai-x64 on the 192.168.72.0 network starting at .10 and using 5 addresses</p>
<p><strong>pfexec installadm create-service -n ai-x64 -i 192.168.72.10 -c 5 -s /export/home/wdh/Downloads/osol-0906-ai-x86.iso /auto-install</strong></p>
<p>5) Configure dhcpd to run on the appropriate interface</p>
<p>The installadm command configured dhcpd, but it was running on the e1000g0 interface by default.  For my environment, I needed to switch that to e1000g1 so it would see the requests from the client VM.</p>
<p><strong>pfexec dhcpconfig -P INTERFACES=e1000g1<br />
svcadm disable dhcp-server<br />
svcadm enable dhcp-server</strong></p>
<p>6) Install squid</p>
<p>We will need squid (or some other proxy) since we aren&#8217;t running a local repository server and the client machine will need to be able to fetch packages from pkg.opensolaris.org.  We will tell the client machine to use the proxy on the server.</p>
<p><strong>pkg search squid</strong></p>
<p>figure out the package name I am looking for is SUNWsquid</p>
<p><strong>pfexec pkg install SUNWsquid</strong></p>
<p><strong>svcadm enable http:squid</strong></p>
<p>I was pleasantly surprised how easy that was.  If you are on a non-NATed network, you will likely need to edit the squid configuration file to allow access to your clients.</p>
<p>7) Customize the default AI manifest (I&#8217;ll call mine ai_proxy.xml)</p>
<p><strong>cd /auto-install/auto_install</strong></p>
<p>make a copy of the default manifest and name it something more specific</p>
<p><strong>pfexec cp default.xml ai_proxy.xml</strong></p>
<p>added  <strong>&lt;ai_target_device&gt;&lt;target_device_name&gt;c8t0d0&lt;/target_device_name&gt; &lt;/ai_target_device&gt;</strong></p>
<p>so I could use a disk that was smaller then the auto-installer default</p>
<p>added  <strong>&lt;ai_http_proxy url=&#8221;http://192.168.72.2:3128&#8243;/&gt;</strong> so it would use the proxy and be able to reach the internet</p>
<p>changed the <strong>ai_auto_reboot</strong> setting to <strong>true</strong>, and changed the default user and password from <strong>jack</strong> to my normal values.</p>
<p>ran installadm to let the AI service know it should use the custom version of the file</p>
<p><strong>pfexec /usr/sbin/installadm add -m ai_proxy.xml -n ai-x64</strong></p>
<p>8) Register the target system as a client</p>
<p>Started the client virtual machine and retrieved the MAC address (  <strong>00:0c:29:b6:43:bf</strong> )</p>
<p>On the server use installadm to register the client</p>
<p><strong> pfexec installadm create-client -e 00:0c:29:b6:43:bf -t /auto-install -n ai-x64</strong></p>
<p>9) Started the client system in network boot mode</p>
<p>The install succeeded, but it took about 1.5 hours.  I suspect if I had a local repository and was installing on a non-emulated hard disk it would have gone substantially faster.</p>
<p><strong>Overall thoughts</strong></p>
<p>I was happy that it was relatively straightforward to get working, but I think it will be a while before the system has as much flexibility for customizing installs as Jumpstart.  Based on all the traffic I see on the forum, it seems like the AI project has a lot of momentum behind it, so I am looking forward to giving another spin in a few months.  I&#8217;d also like to try this with a local mirror of the pkg repository and see how quick the installer will run.</p>
<p><strong>Update on June 24th</strong></p>
<p>I saw this morning that a functional spec for the AI client has been submitted and the project team is asking for comments.  Please read the <a href="http://www.opensolaris.org/jive/thread.jspa?threadID=106135&amp;tstart=0">thread/document</a> and give any feedback you might have.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.williamhathaway.com/wordpress/2009/06/21/opensolaris-automated-installs/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Troubleshooting Solaris package removal</title>
		<link>http://www.williamhathaway.com/wordpress/2009/06/17/troubleshooting-solaris-package-removal/</link>
		<comments>http://www.williamhathaway.com/wordpress/2009/06/17/troubleshooting-solaris-package-removal/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 11:18:22 +0000</pubDate>
		<dc:creator>William Hathaway</dc:creator>
				<category><![CDATA[solaris]]></category>

		<guid isPermaLink="false">http://www.williamhathaway.com/wordpress/?p=434</guid>
		<description><![CDATA[A co-worker was having trouble running # pkgrm SUNWfontconfig-root It was returning: ## Removing pathnames in class &#60;manifest&#62; svc:/application/font/fc-cache:default remains enabled; aborting pkgrm: ERROR: class action script did not complete successfully Removal of &#60;SUNWfontconfig-root&#62; failed. To troubleshoot it, we added the -v option to pkgrm so it would show the scripts it was running: # [...]]]></description>
			<content:encoded><![CDATA[<p>A co-worker was having trouble running</p>
<pre><strong># pkgrm SUNWfontconfig-root</strong></pre>
<p>It was returning:</p>
<pre>## Removing pathnames in class &lt;manifest&gt;
svc:/application/font/fc-cache:default remains enabled; aborting
pkgrm: ERROR: class action script did not complete successfully

Removal of &lt;SUNWfontconfig-root&gt; failed.</pre>
<p>To troubleshoot it, we added the -v option to pkgrm so it would show the scripts it was running:</p>
<pre><strong># pkgrm -v SUNWfontconfig-root</strong></pre>
<pre>+ [  !=  -a  != / ]
+ [ -r /etc/svc/volatile/repository_door ]
smf_alive=yes
SVCPROP=/usr/bin/svcprop
+ read mfst
+ [ yes = yes ]
+ /usr/sbin/svccfg inventory /var/svc/manifest/application/font/fc-cache.xml
ENTITIES=svc:/application/font/fc-cache:default
svc:/application/font/fc-cache
+ /usr/bin/svcprop -p general/enabled svc:/application/font/fc-cache:default
en_p=true
+ /usr/bin/svcprop -p general_ovr/enabled svc:/application/font/fc-cache:default
en_o=
+ [ true = true -o  = true ]
+ echo svc:/application/font/fc-cache:default remains enabled; aborting
svc:/application/font/fc-cache:default remains enabled; aborting
+ exit 1
pkgrm: ERROR: class action script did not complete successfully</pre>
<p>Ok, now we can see the problem.  We need to change the general/enabled property of the service to false and refresh the service.</p>
<pre><strong># svccfg -s   svc:/application/font/fc-cache:default setprop general/enabled = false</strong>

<strong># svcadm refresh font/fc-cache:default</strong></pre>
<p>Verify that it took:</p>
<pre><strong># /usr/bin/svcprop -p general/enabled svc:/application/font/fc-cache:default

</strong>false</pre>
<p>That looks good.  Now we can retry the package removal:</p>
<pre><strong># pkgrm SUNWfontconfig-root</strong></pre>
<p>and it worked!</p>
<pre></pre>
<pre></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.williamhathaway.com/wordpress/2009/06/17/troubleshooting-solaris-package-removal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Getting the memcached service to work in OpenSolaris 2009.06</title>
		<link>http://www.williamhathaway.com/wordpress/2009/06/01/getting-the-memcached-service-to-work-in-opensolaris-200906/</link>
		<comments>http://www.williamhathaway.com/wordpress/2009/06/01/getting-the-memcached-service-to-work-in-opensolaris-200906/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 20:37:42 +0000</pubDate>
		<dc:creator>William Hathaway</dc:creator>
				<category><![CDATA[solaris]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.williamhathaway.com/wordpress/?p=408</guid>
		<description><![CDATA[On my default OpenSolaris 2009.06 image I installed memcached with: pkg install SUNWmemcached and then tried to get it running with: svcadm enable memcached It kept on dieing and respawning and I saw the log file (/var/svc/log/application-database-memcached\:default.log) growing with lines like the following [ Jun  1 14:42:34 Enabled. ] [ Jun  1 14:42:34 Executing start [...]]]></description>
			<content:encoded><![CDATA[<p>On my default OpenSolaris 2009.06 image I installed memcached with:</p>
<p><strong>pkg install SUNWmemcached</strong></p>
<p>and then tried to get it running with:</p>
<p><strong>svcadm enable memcached</strong></p>
<p>It kept on dieing and respawning and I saw the log file (/var/svc/log/application-database-memcached\:default.log) growing with lines like the following</p>
<p>[ Jun  1 14:42:34 Enabled. ]<br />
[ Jun  1 14:42:34 Executing start method ("/lib/svc/method/memcached start"). ]<br />
can&#8217;t run as root without the -u switch<br />
[ Jun  1 14:42:35 Method "start" exited with status 0. ]</p>
<p>So basically memcached was complaining that it was starting as root and not being told to switch to another user.  To fix this I had to tell it to switch to the &#8216;nobody&#8217; user when starting.  Here are the steps I used:</p>
<p># tell memcached to run as the user &#8216;nobody&#8217; and set the max memory to 1024M, you need to at least have</p>
<p># -u nobody (or some other account that exists on the system)</p>
<p><strong>svccfg -s memcached setprop memcached/options= &#8216;(&#8220;-u&#8221; &#8220;nobody&#8221; &#8220;-m&#8221; &#8220;1024&#8243;)&#8217;<br />
</strong></p>
<p><strong>svcadm refresh memcached</strong></p>
<p><strong>svcadm disable memcached</strong></p>
<p><strong>svcadm enable memcached</strong></p>
<p>The memcached man page in OpenSolaris sort of mentions you need to do this towards the end, but I think it is poor form for the server to be unable to run by using the default SMF configuration.  I will try to get an RFE to at least have the &#8216;-u nobody&#8217; option set by default.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.williamhathaway.com/wordpress/2009/06/01/getting-the-memcached-service-to-work-in-opensolaris-200906/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OpenSolaris 2009.06 is out</title>
		<link>http://www.williamhathaway.com/wordpress/2009/06/01/opensolaris-200906-is-out/</link>
		<comments>http://www.williamhathaway.com/wordpress/2009/06/01/opensolaris-200906-is-out/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 19:25:55 +0000</pubDate>
		<dc:creator>William Hathaway</dc:creator>
				<category><![CDATA[dsee]]></category>
		<category><![CDATA[entertainment]]></category>
		<category><![CDATA[solaris]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.williamhathaway.com/wordpress/?p=403</guid>
		<description><![CDATA[I downloaded the OpenSolaris 2009.06 release and installed it on top of VirtualBox over lunch.   The previous release (2008.11) had a lot of good desktop support, this version has added a lot of enterprise-class features like automated installations, UltraSPARC support, multi-protocol SCSI target (COMSTAR), crazy-cool network virtualization (Crossbow) and much more.  You can check out [...]]]></description>
			<content:encoded><![CDATA[<p>I downloaded the <a href="http://opensolaris.org/os/downloads/">OpenSolaris 2009.06</a> release and installed it on top of <a href="http://virtualbox.org/">VirtualBox</a> over lunch.   The previous release (2008.11) had a lot of good desktop support, this version has added a lot of enterprise-class features like <a href="http://dlc.sun.com/osol/docs/content/dev/AIinstall/basic.html">automated installations</a>, UltraSPARC support, multi-protocol SCSI target (<a href="http://opensolaris.org/os/project/comstar/">COMSTAR</a>), crazy-cool network virtualization (<a href="http://opensolaris.org/os/project/crossbow/">Crossbow</a>) and much more.  You can check out the full set of new features at: <a href="http://www.opensolaris.com/learn/features/whats-new/200906/">http://www.opensolaris.com/learn/features/whats-new/200906/</a></p>
<p>While there is always room for improvement, I think given OpenSolaris&#8217; design, feature set,  and maturity it is now in a place where I&#8217;d consider it a viable option for production deployments on x64 systems.  I&#8217;d still hold off for a little while on SPARC since I think it may take a bit for all the auto-install and boot-related code to gain maturity there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.williamhathaway.com/wordpress/2009/06/01/opensolaris-200906-is-out/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solaris zone creation in less than 5 seconds with ZFS clones</title>
		<link>http://www.williamhathaway.com/wordpress/2009/05/01/solaris-zone-creation-in-less-than-5-seconds-with-zfs-clones/</link>
		<comments>http://www.williamhathaway.com/wordpress/2009/05/01/solaris-zone-creation-in-less-than-5-seconds-with-zfs-clones/#comments</comments>
		<pubDate>Fri, 01 May 2009 21:20:09 +0000</pubDate>
		<dc:creator>William Hathaway</dc:creator>
				<category><![CDATA[solaris]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.williamhathaway.com/wordpress/?p=359</guid>
		<description><![CDATA[Solaris 10 update 7 hit the download site earlier this week and I just gave zone cloning a spin.  Zone cloning has been out for quite a while, but the new twist is that you can finally use ZFS snapshots/clones as an underlying mechanism for zone creation.  With this feature you can make additional zones [...]]]></description>
			<content:encoded><![CDATA[<p>Solaris 10 update 7 hit the <a href="http://www.sun.com/software/solaris/get.jsp#download">download site</a> earlier this week and I just gave zone cloning a spin.  Zone cloning has been out for quite a while, but the new twist is that you can finally use ZFS snapshots/clones as an underlying mechanism for zone creation.  With this feature you can make additional zones really quickly and with very little overhead, even for full root zones.</p>
<p>Here is what I did:</p>
<p>create a ZFS file system mounted at /zones</p>
<p><strong># zfs create -o mountpoint=/zones -o compression=on -o atime=off data/zones</strong></p>
<p>create a zone &#8216;goldenzone&#8217; that I will use as a target for cloning.  If I wanted to add certain software or other setup (like security hardening) to all zones I would do that here.</p>
<p><strong># zonecfg -z goldenzone</strong></p>
<p>goldenzone: No such zone configured<br />
Use &#8216;create&#8217; to begin configuring a new zone.</p>
<p>zonecfg:goldenzone&gt; <strong>create -b</strong></p>
<p>zonecfg:goldenzone&gt; <strong>set zonepath=/zones/goldenzone</strong></p>
<p>zonecfg:goldenzone&gt;<strong> exit</strong></p>
<p><strong># zoneadm -z goldenzone install</strong></p>
<p>Creating list of files to copy from the global zone.</p>
<p>Copying &lt;130143&gt; files to the zone &#8230;</p>
<p><strong># zoneadm -z goldenzone boot</strong> (so we get the SMF importing out of the way)</p>
<p><strong># zlogin -C goldenzone</strong> (verify the SMF import finishes and answer sysid questions)</p>
<p>This is also a good time to do any customization steps that you would like done everywhere, such as disabling services, changing root&#8217;s shell to /bin/bash, using a custom apache configuration, etc.</p>
<p>#<strong> zoneadm -z goldenzone halt</strong></p>
<p>Now we will create a new full-root zone &#8216;zone1&#8242; that we will clone from goldenzone</p>
<p><strong># zonecfg -z zone1</strong></p>
<p>zonecfg:zone1&gt; <strong>create -b</strong></p>
<p>zonecfg:zone1&gt; <strong>set zonepath=/zones/zone1</strong></p>
<p>zonecfg:zone1&gt; <strong>add net</strong></p>
<p>zonecfg:zone1:net&gt; <strong>set physical=e1000g0</strong></p>
<p>zonecfg:zone1:net&gt; <strong>set address=zone1/24</strong></p>
<p>zonecfg:zone1:net&gt; <strong>end</strong></p>
<p>zonecfg:zone1:&gt; <strong>exit</strong></p>
<p>Now that we have finished the main configuration, lets see how long it takes to make the new zone:<strong><br />
</strong></p>
<p><strong>time zoneadm -z zone1 clone goldenzone</strong><br />
Cloning snapshot data/zones/goldenzone@SUNWzone1<br />
Instead of copying, a ZFS clone has been created for this zone.<br />
grep: can&#8217;t open /a/etc/dumpadm.conf</p>
<p>real    0m4.088s</p>
<p>user    0m0.439s</p>
<p>sys    0m0.187s</p>
<p>We will also take a look at the space used.  The goldenzone took 1.7GB (ZFS compression was on) and we can see that the snapshot &amp; clone used for zone1 took us less than a meg of extra space.  Sweet!</p>
<p><strong>NAME                              USED  AVAIL  REFER  MOUNTPOINT<br />
</strong>data/zones                             1.70G   263G  42.0K  /zones<br />
data/zones/goldenzone        1.70G   263G  1.70G  /zones/goldenzone<br />
data/zones/goldenzone@SUNWzone1   405K      -  1.70G  -<br />
data/zones/zone1                  285K   263G  1.70G  /zones/zone1</p>
]]></content:encoded>
			<wfw:commentRss>http://www.williamhathaway.com/wordpress/2009/05/01/solaris-zone-creation-in-less-than-5-seconds-with-zfs-clones/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
