<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Chris Read &#187; Solaris</title>
	<atom:link href="http://blog.chris-read.net/category/unix/solaris/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.chris-read.net</link>
	<description>He's just this guy, you know...</description>
	<lastBuildDate>Tue, 13 Sep 2011 11:41:41 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.chris-read.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Chris Read &#187; Solaris</title>
		<link>http://blog.chris-read.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.chris-read.net/osd.xml" title="Chris Read" />
	<atom:link rel='hub' href='http://blog.chris-read.net/?pushpress=hub'/>
		<item>
		<title>£106.50 per Terabyte Storage Server</title>
		<link>http://blog.chris-read.net/2011/06/02/106-50-per-terabyte-storage-server/</link>
		<comments>http://blog.chris-read.net/2011/06/02/106-50-per-terabyte-storage-server/#comments</comments>
		<pubDate>Thu, 02 Jun 2011 21:43:45 +0000</pubDate>
		<dc:creator>Chris Read</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Solaris]]></category>
		<category><![CDATA[Stuff]]></category>
		<category><![CDATA[Unix]]></category>

		<guid isPermaLink="false">http://blog.chris-read.net/?p=176</guid>
		<description><![CDATA[With the price of storage dropping all the time, there is a constant perception from people who don&#8217;t deal with it every day that &#8220;disk space is cheap&#8221;, especially when it comes to developers. The problem is that so called &#8220;Enterprise&#8221; storage costs are still astronomical compared to what people are used to paying for [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.chris-read.net&amp;blog=4083712&amp;post=176&amp;subd=chrisread&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h1><span class="Apple-style-span" style="font-size:13px;font-weight:normal;">With the price of storage dropping all the time, there is a constant perception from people who don&#8217;t deal with it every day that &#8220;disk space is cheap&#8221;, especially when it comes to developers. The problem is that so called &#8220;Enterprise&#8221; storage costs are still astronomical compared to what people are used to paying for home storage &#8211; even when using SATA disks.</span></h1>
<p>A lot of this extra cost comes from a perceived requirement for the highest available <strong>capacity</strong>, <strong>availability</strong> and <strong>performance</strong>. Achieving all three characteristics is expensive, but if you’re willing to sacrifice one of them then costs start to fall considerably. Lowering requirements on two of the three drops it even more.</p>
<p>One of the teams I work with has a requirement primarily on capacity. Performance and availability are nice, but capacity is the key. We generate gigabytes worth of log files every day, but didn&#8217;t have one place to store it all for easy analysis. Just before I joined the team they&#8217;d purchased the cheapest &#8220;Enterprise&#8221; storage system the IT team at the time would allow &#8211; it ended up costing in the region of £12k for 12TB of raw storage. That’s £1000 per TB!</p>
<p>In addition to the price, the other problems were accessibility and management of the data and managing growth. This inspired a hunt for something that would provide a cheaper and more flexible solution.</p>
<p>Our requirements were:</p>
<ul>
<li><strong>*nix based system. </strong>The current storage solution was based on Windows Storage Server, but all our systems and tools for this team are Linux based. Yes, Windows does technically provide things like an NFS server, but fighting with the file system permissions and overall performance are two things that impacted us.</li>
<li><strong>Cheap to expand.</strong> We need to have a clear path to grow the storage in the server easily by simply adding more disks.</li>
<li><strong>Large filesystems.</strong> There&#8217;s nothing more wasteful from a storage point of view than having lots of small filesystems. Besides the management overhead, there&#8217;s also many wasted blocks lying around un-used.</li>
<li><strong>Cheap to build</strong>. This inevitably means commodity hardware.</li>
<li><strong>Reasonable availability</strong>. We don&#8217;t need 99.999% uptime, but would be happy with somewhere in the region of 90%+</li>
<li><strong>Reasonable performance</strong>.<strong> </strong>Primary access to the data on this machine is via gigabit Ethernet. As long as it can keep up with the network card we’re happy…</li>
</ul>
<h2><span id="more-176"></span>Hardware Options</h2>
<p>The first thing we looked at was the <a href="http://blog.backblaze.com/2009/09/01/petabytes-on-a-budget-how-to-build-cheap-cloud-storage/">Backblaze</a> concept. Using a custom designed case (that&#8217;s actually quite easy to purchase) they manage to cram 45 SATA drives into a 4U chassis. That&#8217;s pretty impressive. Using cheap SATA hot swap port multiplier/backplanes and controllers allows for quite a low cost, but not without problems though. In the configuration they publish there are a number of problems:</p>
<ul>
<li>A mix of PCIe and PCI-X SATA controllers means that you need a LOT of slots on your motherboard. Boards with all those slots are not cheap.</li>
<li>Each of the 45 drives is presented to the operating system (Linux in this case, which is good). They then use software RAID for the volumes. Care needs to be taken when building a system like this though to ensure that you spread the drives for each array evenly across controllers so that a single controller or expander backplane failure does not take out an entire volume, which just adds to the management overhead.</li>
<li>The port multiplier chipset they use is only supported on Linux. This was a problem as we had initially planned to use OpenSolaris for this device as ZFS would make the storage management and expansion a no-brainer. The Oracle take over of Sun and their subsequent clamp down on OpenSolaris derailed this plan. I did do some performance testing with FreeBSD and their implementation of ZFS but the performance was terrible.</li>
<li>The cost is also not that cheap. Single orders of the custom case and power supply that go with it are actually pretty pricy.</li>
<li>Performance. I did a lot of testing, mostly with iozone. What I found though was that when running through the port multiplier, even when using NCQ, performance was pretty bad.</li>
</ul>
<p>The system I was using for my testing though had an onboard SAS controller and port expander. The SAS specification includes SATA support. Out of curiosity I decided to compare performance on that controller to what I got from the SATA chain. It was actually a lot better, which got me thinking about using SAS controllers with hardware RAID to simplify administration.</p>
<p>Initially I tried a pair of 8 port LSI controllers (<a href="http://www.lsi.com/storage_home/products_home/internal_raid/megaraid_sas/megaraid_sas_8208elp/">LSI 8208ELP</a>), but the cheaper end of the range have issues in their firmware and do not even boot with more than one controller present, so I replaced them with a single <a href="http://www.adaptec.com/en-us/products/controllers/hardware/sas/performance/sas-51245/">Adaptec 51245</a> controller. This made management and expansion a lot easier, as it has enough internal ports for the initial drives we planned on, and an external port that allows easy expansion.</p>
<h2>Current architecture</h2>
<p>The current system we have running in production is assembled from 100% off the shelf components. They are:</p>
<table width="408" border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="bottom" nowrap="nowrap" width="120">
<p align="center"><strong>Description</strong></p>
</td>
<td valign="bottom" nowrap="nowrap" width="129">
<p align="center"><strong>Part</strong></p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="center"><strong>Count</strong></p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="center"><strong>Each</strong></p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="center"><strong>Total</strong></p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="120">SAS Cables</td>
<td valign="bottom" nowrap="nowrap" width="129"></td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">4</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£9.40</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£37.60</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="120">Drive Cage</td>
<td valign="bottom" nowrap="nowrap" width="129">NetStor NS170S Black</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">2</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£90.10</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£180.20</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="120">RAID Controller</td>
<td valign="bottom" nowrap="nowrap" width="129">Adaptec 51245</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">1</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£512.89</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£512.89</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="120">Case &amp; 650W PSU</td>
<td valign="bottom" nowrap="nowrap" width="129">Antec 4U22EPS650</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">1</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£192.36</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£192.36</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="120">Motherboard</td>
<td valign="bottom" nowrap="nowrap" width="129">Intel DP55WG</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">1</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£96.84</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£96.84</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="120">CPU</td>
<td valign="bottom" nowrap="nowrap" width="129">Intel i7 860</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">1</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£178.71</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£178.71</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="120">RAM</td>
<td valign="bottom" nowrap="nowrap" width="129">Kingston 4G DDR3 1600</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">2</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£63.96</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£127.92</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="120">VGA</td>
<td valign="bottom" nowrap="nowrap" width="129">PNY 8400GS</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">1</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£37.85</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£37.85</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="120">Data Disks</td>
<td valign="bottom" nowrap="nowrap" width="129">WD20EARS</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">10</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£76.58</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£765.80</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="120">NIC</td>
<td valign="bottom" nowrap="nowrap" width="129">Intel PRO/1000</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">2</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£0.00</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£0.00</p>
</td>
</tr>
<tr>
<td valign="bottom" nowrap="nowrap" width="120">OS Disks</td>
<td valign="bottom" nowrap="nowrap" width="129">ST3160318AS</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">2</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£0.00</p>
</td>
<td valign="bottom" nowrap="nowrap" width="53">
<p align="right">£0.00</p>
</td>
</tr>
</tbody>
</table>
<p>Cost (September 2010): £2130.17 (Excl VAT)</p>
<p>Total Raw Space: 20TB</p>
<p>Unit Cost: £106.50 per TB</p>
<p>Power Draw: 0.8A with sustained disk access, 1.16A peak on boot up.</p>
<p>The operating system we’ve selected is Ubuntu 10.04 LTS. We run the smaller disks we had spare in RAID1 for the OS. The data drives are in RAID6 on the WD&#8217;s.</p>
<h2>Hardware Build</h2>
<p>Here are some photos we took as we built the system:</p>

<a href='http://blog.chris-read.net/2011/06/02/106-50-per-terabyte-storage-server/img_0041/' title='Boxed Internal Drive Cage'><img data-attachment-id='179' data-orig-size='4000,3000' data-liked='0'width="150" height="112" src="http://chrisread.files.wordpress.com/2011/06/img_0041.jpg?w=150&#038;h=112" class="attachment-thumbnail" alt="Boxed Internal Drive Cage" title="Boxed Internal Drive Cage" /></a>
<a href='http://blog.chris-read.net/2011/06/02/106-50-per-terabyte-storage-server/img_0043/' title='Rear of Drive Cage'><img data-attachment-id='180' data-orig-size='4000,3000' data-liked='0'width="150" height="112" src="http://chrisread.files.wordpress.com/2011/06/img_0043.jpg?w=150&#038;h=112" class="attachment-thumbnail" alt="Rear of Drive Cage" title="Rear of Drive Cage" /></a>
<a href='http://blog.chris-read.net/2011/06/02/106-50-per-terabyte-storage-server/img_0048/' title='Front View - Open'><img data-attachment-id='181' data-orig-size='4000,3000' data-liked='0'width="150" height="112" src="http://chrisread.files.wordpress.com/2011/06/img_0048.jpg?w=150&#038;h=112" class="attachment-thumbnail" alt="Front View - Open" title="Front View - Open" /></a>
<a href='http://blog.chris-read.net/2011/06/02/106-50-per-terabyte-storage-server/img_0062/' title='Motherboard'><img data-attachment-id='182' data-orig-size='4000,3000' data-liked='0'width="150" height="112" src="http://chrisread.files.wordpress.com/2011/06/img_0062.jpg?w=150&#038;h=112" class="attachment-thumbnail" alt="Motherboard" title="Motherboard" /></a>
<a href='http://blog.chris-read.net/2011/06/02/106-50-per-terabyte-storage-server/img_0060/' title='Data Drive'><img data-attachment-id='184' data-orig-size='4000,3000' data-liked='0'width="150" height="112" src="http://chrisread.files.wordpress.com/2011/06/img_0060.jpg?w=150&#038;h=112" class="attachment-thumbnail" alt="Data Drive" title="Data Drive" /></a>
<a href='http://blog.chris-read.net/2011/06/02/106-50-per-terabyte-storage-server/img_0071/' title='Ready to rack'><img data-attachment-id='185' data-orig-size='4000,3000' data-liked='0'width="150" height="112" src="http://chrisread.files.wordpress.com/2011/06/img_0071.jpg?w=150&#038;h=112" class="attachment-thumbnail" alt="Ready to rack" title="Ready to rack" /></a>

<p><span class="Apple-style-span" style="font-size:20px;font-weight:bold;">Operating System Configuration</span></p>
<p>Using the hardware RAID controller allows us to simplify the Operating System configuration. Instead of having a block device for each physical disk, the controller presents a single block device for each array.</p>
<p>The filesystem we&#8217;re using is EXT4, created with the following options:</p>
<pre>-m 1 -O dir_index,has_journal,extent,sparse_super</pre>
<p>To try and speed things up we also set the noatime flag when mounting the filesystem.</p>
<p>The Adaptec Storage Manager application is used to monitor the health of the disks and will email us in the case of a drive failure.</p>
<h2>Performance</h2>
<p>With the current configuration, the performance is in no way spectacular, but it’s more than good enough for our needs. Write speeds are quite slow peaking at around 90MB/s, reads are good peaking at around 750MB/s.</p>
<h2>Client Access and Usage</h2>
<p>We&#8217;re currently running a mixed workload on the system and so far have had no complaints or problems. Every night we rsync all of our log files from our production machines, which is currently about 300GB per day.</p>
<p>Some of the people who are interested in this data access it via HTTP. We run an Apache server on the box (with compression enabled of course) to allow people easy access to browse and download what they need. Developers also access the logs read-only via NFS, and have a directory mounted via NFS called &#8220;playpen&#8221; that they use as a scratch pad for any of their research that requires more disk space than the 300GB or so they have available in their development machines.</p>
<h2>Going Forward</h2>
<p>In the 6 months or so we’ve had the machine we’ve almost used all the disk space. On a clear disk you can seek forever. We’ve placed an order for 2 more disk trays (<a href="http://www.netstor.com.tw/_03/03_02.php?OTI=">NetStor NS330S-8026</a>). These trays have built in SAS port expanders and allow us to daisy chain up to 7 trays off our external port. We’ve also ordered different hard drives. Instead of using the green WD drives we’ve decided to go for a bit more speed and get 7200RPM Hitachi Ultrastar 7K3000 SATA drives. This does add a lot more to the cost, but the performance pay off is worth it for us for expected higher write speeds. Once they’re up and running I’ll publish some comparative benchmarks.</p>
<p>Costs for the upgrade (Feb 2011): £9699.00</p>
<p>Total Raw Space: 64TB</p>
<p>Unit Cost: £151.50 per TB</p>
<h2>Update (23 June 2011)</h2>
<p>Right now there is some kind of major compatibility problem between the Adaptec card and the NetStor JBOD. I&#8217;ve been wrestling for over a week now with vendor support and still not getting anywhere.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chrisread.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chrisread.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chrisread.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chrisread.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/chrisread.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/chrisread.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/chrisread.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/chrisread.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chrisread.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chrisread.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chrisread.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chrisread.wordpress.com/176/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chrisread.wordpress.com/176/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chrisread.wordpress.com/176/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.chris-read.net&amp;blog=4083712&amp;post=176&amp;subd=chrisread&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.chris-read.net/2011/06/02/106-50-per-terabyte-storage-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Chris Read</media:title>
		</media:content>

		<media:content url="http://chrisread.files.wordpress.com/2011/06/img_0041.jpg?w=150" medium="image">
			<media:title type="html">Boxed Internal Drive Cage</media:title>
		</media:content>

		<media:content url="http://chrisread.files.wordpress.com/2011/06/img_0043.jpg?w=150" medium="image">
			<media:title type="html">Rear of Drive Cage</media:title>
		</media:content>

		<media:content url="http://chrisread.files.wordpress.com/2011/06/img_0048.jpg?w=150" medium="image">
			<media:title type="html">Front View - Open</media:title>
		</media:content>

		<media:content url="http://chrisread.files.wordpress.com/2011/06/img_0062.jpg?w=150" medium="image">
			<media:title type="html">Motherboard</media:title>
		</media:content>

		<media:content url="http://chrisread.files.wordpress.com/2011/06/img_0060.jpg?w=150" medium="image">
			<media:title type="html">Data Drive</media:title>
		</media:content>

		<media:content url="http://chrisread.files.wordpress.com/2011/06/img_0071.jpg?w=150" medium="image">
			<media:title type="html">Ready to rack</media:title>
		</media:content>
	</item>
		<item>
		<title>Solaris Zones in the Real World</title>
		<link>http://blog.chris-read.net/2006/06/06/solaris-zones-in-the-real-world/</link>
		<comments>http://blog.chris-read.net/2006/06/06/solaris-zones-in-the-real-world/#comments</comments>
		<pubDate>Tue, 06 Jun 2006 20:05:29 +0000</pubDate>
		<dc:creator>Chris Read</dc:creator>
				<category><![CDATA[Solaris]]></category>
		<category><![CDATA[Unix]]></category>
		<category><![CDATA[Virtualization]]></category>

		<guid isPermaLink="false">http://www.chris-read.net/?p=6</guid>
		<description><![CDATA[At one of the clients I&#8217;m assigned to at the moment, we&#8217;re moving our development environment to Solaris 10 on Sun x4100 servers. We have two physical machines, one for our CruiseControl environments, and one for all our testing. To make good use of the resources we have (Dual Core CPU&#8217;s, lots of RAM) I&#8217;ve [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.chris-read.net&amp;blog=4083712&amp;post=8&amp;subd=chrisread&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>At one of the clients I&#8217;m assigned to at the moment, we&#8217;re moving our development environment to Solaris 10 on Sun x4100 servers. We have two physical machines, one for our <a title="CruiseControl" target="_blank" href="http://cruisecontrol.sourceforge.net">CruiseControl</a> environments, and one for all our testing. To make good use of the resources we have (Dual Core CPU&#8217;s, lots of RAM) I&#8217;ve been carving them into zones. I&#8217;ve tinkered with zones in Solaris 10 ever since the first beta build that featured them, but it was always for little things and never anything serious. Consequently I thought they were quick and painless. Note the use of the word &#8220;thought&#8221;. Don&#8217;t get me wrong, they are the (almost) perfect solution for what we need, it&#8217;s just that if you&#8217;re planning on doing anything serious with them, here&#8217;s a list of gotchas you need to take in to consideration.</p>
<p><span id="more-8"></span> The first problem I bumped into was stability. Once I had configured and booted the zones I wanted, I discovered that <em>ssh-keygen</em> would segfault and dump core when run from within a zone. Normal <em>ssh</em> and <em>scp</em> commands would also occasionally segfault as well. After some very light scratching around, I decided to patch the systems to see if that made the problem go away. It did not &#8211; so I replaced it with the <a target="_blank" title="Sun Freeware" href="http://www.sunfreeware.com">Sun Freeware</a> OpenSSH package. This is when I found the next problem &#8211; patching.</p>
<p>For understandable reasons, Sun have restricted access to patches for Solaris 10. The days of just pulling down the latest recommended patch cluster to sort out your machines have gone. Sun now recommend you use Update Manager, a Java GUI app that registers your machine with Sun, and lists what patches you can download. All sounds reasonable in theory, but the first few times I tried it, it kept on blowing out with a <em>com.sun.cns.authentication.CMDExecutionException.</em> Turns out it&#8217;s broken on machines with Zones, and you need to manually download and apply a patch to fix it. Another thing to remember when patching is to make sure that all zones you have configured have been properly initialized, and that you&#8217;ve been through the system identifications at first boot.</p>
<p>And then we have the niggles category. There is no lsof package for amd64 Solaris 10 yet, but you can script most of what you need using <em>pfiles</em> and <em>fuser</em>. DTrace only works in the global zone. While the global zone has all the rights it needs to trace what&#8217;s going on, if you&#8217;re running more than two or three zones trying to find the specific process you&#8217;re trying to debug can be a pain.</p>
<p>With all this pain, is it worth it for development and testing? Most definitely! Zones allow you to have all the production-like environments you need for testing, or even just for developers to spike ideas in. Clients are happy because they don&#8217;t need to buy so much hardware. Testers are happy because if they need a new environment they can have it in a matter of hours instead of days or weeks. Sys Admins are happy because they don&#8217;t have to keep finding rack space for more machines.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/chrisread.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/chrisread.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/chrisread.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/chrisread.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/chrisread.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/chrisread.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/chrisread.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/chrisread.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/chrisread.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/chrisread.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/chrisread.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/chrisread.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/chrisread.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/chrisread.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/chrisread.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/chrisread.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.chris-read.net&amp;blog=4083712&amp;post=8&amp;subd=chrisread&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://blog.chris-read.net/2006/06/06/solaris-zones-in-the-real-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="" medium="image">
			<media:title type="html">Chris Read</media:title>
		</media:content>
	</item>
	</channel>
</rss>
