<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0" xml:base="http://constantin.glez.de">
<channel>
 <title>Constant Thinking</title>
 <link>http://constantin.glez.de</link>
 <description />
 <language>en</language>
<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/ConstantThinking" /><feedburner:info uri="constantthinking" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>48.8</geo:lat><geo:long>11.35</geo:long><feedburner:emailServiceId>ConstantThinking</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><item>
 <title>I am a Mobile Sensor Network, Collecting Big Data</title>
 <link>http://feedproxy.google.com/~r/ConstantThinking/~3/e0ofAo3PfMs/i-am-mobile-sensor-network-collecting-big-data</link>
 <description>&lt;div class="all-attached-images"&gt;&lt;div class="image-attach-body image-attach-node-241" style="width: 320px;"&gt;&lt;a href="/image/running-stats-over-running-path"&gt;&lt;img src="http://constantin.glez.de/sites/constantin.glez.de/files/images/runningbigdata.blog.jpg" alt="Running stats over running path" title="Running stats over running path"  class="image image-blog " width="320" height="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Don’t worry, this is not a desperate attempt at SEO for my blog (although I do appreciate your likes, Tweets, RSS subscriptions and other ways you help me reach a wider audience), nor is this my entry into the latest contest of IT BS Bingo.&lt;/p&gt;
&lt;p&gt;It just occurred to me yesterday that Big Data is everywhere. Even during your weekend jogging run.&lt;/p&gt;
&lt;h2&gt;Collecting Fitness Data, Step by Step, Heartbeat by Heartbeat, on Your Phone&lt;/h2&gt;
&lt;p&gt;For Christmas, I bought myself a &lt;a href="http://www.amazon.com/gp/product/B0042WGO3Y/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=conchathebloo-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B0042WGO3Y"&gt;Wahoo Fitness Key&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=conchathebloo-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B0042WGO3Y" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;* and its matching &lt;a href="http://www.amazon.com/gp/product/B0042WO62U/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=conchathebloo-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B0042WO62U"&gt;ANT+ heart rate monitor (HRM)&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=conchathebloo-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B0042WO62U" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;*. The key plugs into your iPhone and provides connectivity to the &lt;a href="http://en.wikipedia.org/wiki/ANT%2B"&gt;ANT+ wireless sensor protocol&lt;/a&gt;. The HRM is another dongle that straps around your chest and electrically registers every heart beat, then transmits the data to the Wahoo key. If you have an iPhone 4S, you can do without the key and just buy a Bluetooth HRM like the &lt;a href="https://www.wahoofitness.com/Products/Wahoo-Fitness-Wahoo-Blue-HR-Heart-Rate-Strap-for-iPhone-4S.asp"&gt;Wahoo BlueHR&lt;/a&gt;, because iPhone 4 supports Bluetooth 4.0 which includes a &lt;a href="http://en.wikipedia.org/wiki/Bluetooth_low_energy"&gt;low power version of the protocol&lt;/a&gt; that supports sensor collection devices such as HRMs that run off of a coin cell.&lt;/p&gt;
&lt;p&gt;So iPhone + Wahoo + HRM = Wireless Sensor Network. And if your idea of a network involves more than two participants, Wahoo also sells an &lt;a href="http://www.amazon.com/gp/product/B0047841FG/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=conchathebloo-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B0047841FG"&gt;ANT+ pedometer&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=conchathebloo-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B0047841FG" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;* to measure your stepping frequency along with heart beat data as well.&lt;/p&gt;
&lt;p&gt;(Android users: I'm sure you'll find a similar solution for yourselves as well. I just happen to prefer &lt;a href="http://constantin.glez.de/blog/2010/06/war-between-quality-and-popularity"&gt;quality over popularity&lt;/a&gt;.)&lt;/p&gt;
&lt;h2&gt;Running 2.0&lt;/h2&gt;
&lt;p&gt;Thanks to modern gadgetry, apps like &lt;a href="http://www.ismoothrun.com/"&gt;iSmoothRun&lt;/a&gt; on my phone can now tell me how I'm doing while I’m running, including time, distance (thanks to GPS, which is another sensor), pace, cadence (using the phone’s accelerometer or a &lt;a href="http://www.amazon.com/gp/product/B0047841FG/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=conchathebloo-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B0047841FG"&gt;wireless pedometer&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=conchathebloo-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B0047841FG" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;*) and heart rate. I can also set up a target running profile (like “No more than 70% of max. heart rate so I can stay in the aerobic zone, please.”) and my phone will duck the music and tell me to slow down whenever I go beyond target heart rate.&lt;/p&gt;
&lt;p&gt;Pretty cool.&lt;/p&gt;
&lt;h2&gt;Social Network Running&lt;/h2&gt;
&lt;p&gt;But we live in the age of web 2.0 so there's obviously more to do if you want to maintain your running geek-cred: The iPhone also collects all data (position, heart-beats, and steps) over time and at the end of the run, it will not only present me with my running statistics, possibly spiced up with current weather data etc., it will also offer to upload the data to one of the emerging fitness social networks, such as &lt;a href="http://runkeeper.com/user/zalez/profile"&gt;RunKeeper.com&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Sites like Runkeeper take the data and create web maps with my running path, complete with nice graphs that I can dive into for analyzing my own running behavior including altitude, pace, heart rate, cadence etc. They also collect other data such as weight and body fat percentage (yes, using a &lt;a href="http://www.amazon.com/gp/product/B002JE2PSA/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=conchathebloo-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B002JE2PSA"&gt;Withings Scale&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=conchathebloo-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B002JE2PSA" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;*  for example, you can track weight/bodyfat data too, even data from a &lt;a href="http://www.amazon.com/gp/product/B005UJK39Y/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=conchathebloo-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B005UJK39Y"&gt;sleep tracking system&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=conchathebloo-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=B005UJK39Y" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;* can be collected!) and show you your running (or fat loss) progress over time.&lt;/p&gt;
&lt;p&gt;And thanks to social network goodness, you can run with friends over the network and compare statistics even if you’re not physically running at the same time. Or the same place.&lt;/p&gt;
&lt;p&gt;And this is where Big Data comes into play, but what is it and how does it work?&lt;/p&gt;
&lt;h2&gt;The Advent of Big Data&lt;/h2&gt;
&lt;p&gt;The first time I heard about big data was during an internal workshop about the Sun Cloud in 2009 (you know, the old Sun habit of being way before our time). While we contemplated the implications of cloud computing for enterprises, someone mentioned that this would be nothing compared to the implications of Big Data. Back then, Big Data was reserved to web giants like Google and Yahoo! and the occasional large research institute such as CERN.&lt;/p&gt;
&lt;p&gt;Big Data is the art of handling (surprise!) large amounts of data. “Large” can be anywhere starting at a dozen of Terabytes or a couple of Petabytes or any large number that no-one in their right mind would place into a single database on a single server.&lt;/p&gt;
&lt;p&gt;Big Data has been made popular by innovations from web companies like Google, Yahoo, Facebook or Twitter, who pioneered new ways of handling huge amounts of data.&lt;/p&gt;
&lt;p&gt;Today, Big Data is about to &lt;a href="http://www.amazon.com/gp/product/0060517123/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=conchathebloo-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0060517123"&gt;cross the chasm&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=conchathebloo-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0060517123" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt;* from the domain of a few innovators and early adopters to the early majority, as businesses start to realize its value.&lt;/p&gt;
&lt;h2&gt;The Four V’s of Big Data&lt;/h2&gt;
&lt;p&gt;Big Data is typically associated with four V’s:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Volume&lt;/strong&gt;, meaning lots and lots of data from sensors, devices, social networks, the web, retail offices, mobile fleets, etc.,&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Variety&lt;/strong&gt;, meaning there’s no predefined structure in the data that one can rely on: Unstructured data. This is the main differentiator against classic data ware-housing, which is strictly structured.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Value&lt;/strong&gt;, meaning that somewhere within that data, there is some valuable information to extract, though most of the pieces of data individually may seem valueless.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Velocity&lt;/strong&gt;, meaning quick turnaround cycles, quick, almost real-time processing and also short innovation cycles. Fail fast, fail often is the mantra, until you hit data gold.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;RunKeeper and Big Data&lt;/h2&gt;
&lt;p&gt;Let’s come back to our running example: RunKeeper is a Big Data company because it collects GPS, heart rate, cadence and other data from its millions of users. Assuming that only half of their 6 million users actually use the service for real, and that they run once a week and assuming a data size of 50 KByte per run (including GPS positions), we get 7.8 TByte of data per year. This is not a lot by Big Data standards, and it is quite structured, but when you combine this data with Tweets, Facebook status updates, other exercise data and nutrition/sleep data (RunKeeper does all of the above), then data volume easily increases to more than 10 TB per year, which is quite a lot to wade through.&lt;/p&gt;
&lt;p&gt;And if you start counting records, the complexity is overwhelming: Each GPS sample is about 100 Bytes, which means that RunKeeper’s 10TB per year translates into roughly 100 Billion records to correlate, analyze and create meaning from.&lt;/p&gt;
&lt;p&gt;What meaning?&lt;/p&gt;
&lt;h2&gt;The Meaning of Big Data&lt;/h2&gt;
&lt;p&gt;And that is the goal of Big Data: To create meaning out of billions of records that seem so innocent, if looked at individually. In the RunKeeper example, they create graphs of your running history and help you analyze and optimize your fitness either for free or as a paid, “pro” service. And thanks to their &lt;a href="http://developer.runkeeper.com/healthgraph"&gt;Health Graph API&lt;/a&gt;, an eco-system of other applications and companies emerges who slice and dice RunKeeper’s data in other creative ways, trying to create valuable (and monetizable) meaning out of it. Example: &lt;a href="http://world-rank.in/"&gt;World-Rank.in&lt;/a&gt; collects data from RunKeeper and Twitter, then ranks runners into its own top 30 lists.&lt;/p&gt;
&lt;p&gt;Other companies use Big Data to identify patterns in their customer’s behavior, find threats or opportunities to act upon, or simply &lt;a href="https://www.google.org/flutrends/"&gt;alert hospitals that a new flu epidemic is about to hit them&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;How Big Data Works&lt;/h2&gt;
&lt;p&gt;Most Big Data use cases work around the same pattern:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Aquire&lt;/strong&gt;: Data is collected. Speed and scalability is critical here, not necessarily high availability. It’s ok to be offline for a few minutes, even hours, or to lose the occasional data record, but it’s important to catch as much as possible. The &lt;a href="http://en.wikipedia.org/wiki/Hadoop"&gt;Hadoop&lt;/a&gt; framework and file system and/or &lt;a href="http://en.wikipedia.org/wiki/Nosql"&gt;NoSQL databases&lt;/a&gt; are key tools at this step.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Organize&lt;/strong&gt;: To make large amounts of data manageable, a divide and conquer approach is taken: Data is &lt;em&gt;mapped&lt;/em&gt; to some interesting nomenclature/metric/attribute (For example: is this a positive of a negative tweet? What company is this tweet about? Was that run a new record or a below-average result?), then the data is &lt;em&gt;reduced&lt;/em&gt; into a more condense form (“Number of negative tweets that mention our company”, “Fastest 10k runs per country”, etc.). These two steps are the key in the &lt;a href="http://en.wikipedia.org/wiki/Mapreduce"&gt;MapReduce&lt;/a&gt; framework and can be used repeatedly and creatively to compose a new, more valuable data source, like: “Top 10 keywords associated with negative feelings towards your company.”, or “Top runners per age category and country”, or “Best training improvement over the last year”, or even crazy stuff like “Fastest music to run with”.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Analyze&lt;/strong&gt;: With that kind of data and processing at your fingertips, new kinds of insight are possible that can be analyzed and acted upon. Which flights are delayed and carry unhappy social media celebrities so you better take good care of them? How about sponsoring your top runner in a certain category and create a celebrity out of her/him? Of course, valuable analysis can also be monetized. Perhaps some research institute or some sports company is interested in getting access to all that heart beat, speed and nutrition data (anonymized of course)?&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Oracle and Big Data&lt;/h2&gt;
&lt;p&gt;Don’t worry, this commercial break will be brief, but interesting:&lt;/p&gt;
&lt;p&gt;Oracle’s big strengths of course are in handling commercial data warehouses and analyzing business information data, as well as building &lt;a href="http://constantin.glez.de/blog/2011/12/rise-engineered-systems"&gt;Engineered Systems&lt;/a&gt; that remove the pain of setting up an IT shop while optimizing the usefulness you get from your systems.&lt;/p&gt;
&lt;p&gt;Big Data’s strength lies in its innovation to handle and organize unstructured, large data sets, through the Hadoop filesystem, the MapReduce framework, the &lt;a href="http://en.wikipedia.org/wiki/R_(programming_language)"&gt;R statistical language&lt;/a&gt; and other emerging technologies. But analyzing data after these steps is still in it infancy.&lt;/p&gt;
&lt;p&gt;By combining the worlds of Big Data, Data Warehousing and Business Intelligence, running on Engineered Systems, Oracle can offer unique value to businesses who want to leverage Big Data for their benefit, without going through the trial/error/research of running their own Big Data development operations.&lt;/p&gt;
&lt;p&gt;Learn more from &lt;a href="http://conv.me/oraclebigdatawp"&gt;Oracle’s Big Data White Paper&lt;/a&gt;, it’s really good, and check out &lt;a href="http://conv.me/oraclebigdata"&gt;Oracle's Big Data home page&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Building your own Sensor Driven Big Data Collection Network&lt;/h2&gt;
&lt;p&gt;As you can see, Big Data is fun and healthy. Here are some gadgets* to get your own Sensor Network based Big Data collection infrastructure set up that feeds into RunKeeper and other Big Data collecting social networks for your analytical pleasure:&lt;/p&gt;
&lt;p&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=FFFFFF&amp;amp;IS1=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=conchathebloo-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as4&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;ref=ss_til&amp;amp;asins=B0042WGO3Y" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=FFFFFF&amp;amp;IS1=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=conchathebloo-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as4&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;ref=ss_til&amp;amp;asins=B0042WO62U" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=FFFFFF&amp;amp;IS1=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=conchathebloo-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as4&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;ref=ss_til&amp;amp;asins=B00526NF7W" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=FFFFFF&amp;amp;IS1=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=conchathebloo-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as4&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;ref=ss_til&amp;amp;asins=B0047841FG" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=FFFFFF&amp;amp;IS1=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=conchathebloo-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as4&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;ref=ss_til&amp;amp;asins=B002JE2PSA" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=FFFFFF&amp;amp;IS1=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=conchathebloo-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as4&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;ref=ss_til&amp;amp;asins=B005PUONIK" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=FFFFFF&amp;amp;IS1=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=conchathebloo-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as4&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;ref=ss_til&amp;amp;asins=B005UJK39Y" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?lt1=_blank&amp;amp;bc1=FFFFFF&amp;amp;IS1=1&amp;amp;bg1=FFFFFF&amp;amp;fc1=000000&amp;amp;lc1=0000FF&amp;amp;t=conchathebloo-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as4&amp;amp;m=amazon&amp;amp;f=ifr&amp;amp;ref=ss_til&amp;amp;asins=B004K2KYM8" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;h2&gt;Big Data and You&lt;/h2&gt;
&lt;p&gt;What are your favorite Big Data examples? Do you see Big Data being used in your company? Have you played with collecting, organizing and analyzing Big Data yourself? Leave a comment and share!&lt;/p&gt;
&lt;p&gt;Finally, here's a video that shows the beauty of collecting, organizing, analyzing and visualizing of Big Data:&lt;/p&gt;
&lt;object width="526" height="374"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="bgColor" value="#ffffff"&gt;&lt;/param&gt;&lt;param name="flashvars" value="vu=http://video.ted.com/talk/stream/2010G/Blank/DavidMcCandless_2010G-320k.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/DavidMcCandless-2010G.embed_thumbnail.jpg&amp;vw=512&amp;vh=288&amp;ap=0&amp;ti=937&amp;lang=&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=david_mccandless_the_beauty_of_data_visualization;year=2010;theme=design_like_you_give_a_damn;theme=presentation_innovation;theme=the_creative_spark;event=TEDGlobal+2010;tag=Design;tag=complexity;tag=computers;tag=data;tag=visualizations;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;" /&gt;&lt;embed src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="transparent" bgColor="#ffffff" width="526" height="374" allowFullScreen="true" allowScriptAccess="always" flashvars="vu=http://video.ted.com/talk/stream/2010G/Blank/DavidMcCandless_2010G-320k.mp4&amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/DavidMcCandless-2010G.embed_thumbnail.jpg&amp;vw=512&amp;vh=288&amp;ap=0&amp;ti=937&amp;lang=&amp;introDuration=15330&amp;adDuration=4000&amp;postAdDuration=830&amp;adKeys=talk=david_mccandless_the_beauty_of_data_visualization;year=2010;theme=design_like_you_give_a_damn;theme=presentation_innovation;theme=the_creative_spark;event=TEDGlobal+2010;tag=Design;tag=complexity;tag=computers;tag=data;tag=visualizations;&amp;preAdTag=tconf.ted/embed;tile=1;sz=512x288;"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;p&gt;
And if you want to see my own small chunks of running data, feel free to &lt;a href="http://runkeeper.com/user/zalez/profile"&gt;join my Street Team on RunKeeper&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;: Neither me nor Oracle are affiliated with RunKeeper (Not that I know of). I just think it’s a cool service.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;*Disclosure&lt;/strong&gt;: Some product links in this article are affiliate links. If you buy through them, I’ll get a small kickback to help with hosting costs for this blog at no extra charge to you.&lt;/p&gt;
&lt;div class="flattr-box"&gt;&lt;script type="text/javascript"&gt;
  var flattr_uid = '26528';
  var flattr_tle = 'I am a Mobile Sensor Network, Collecting Big Data';
  var flattr_dsc = 'Don’t worry, this is not a desperate attempt at SEO for my blog (although I do appreciate your likes, Tweets, RSS subscriptions and other ways you help me reach a wider audience), nor is this my entry into the latest contest of IT BS Bingo.It just occurred to me yesterday that Big Data is everywhere. Even during your weekend jogging run.';
  var flattr_tag = 'big data,Data Warehousing,Fitness,General,Hadoop,MapReduce,Mobile,Oracle,Runkeeper,Sensor Networks,Social Networks';
  var flattr_cat = 'text';
  var flattr_url = 'http://constantin.glez.de/blog/2012/01/i-am-mobile-sensor-network-collecting-big-data';
  var flattr_lng = 'en_GB'&lt;/script&gt;
&lt;script src="http://api.flattr.com/button/load.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/div&gt;&lt;script src="http://feedproxy.google.com/~s/ConstantThinking/?i=http://constantin.glez.de/blog/2012/01/i-am-mobile-sensor-network-collecting-big-data" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;div class='sexybookmarks-default-3160'&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=e0ofAo3PfMs:VHgUbxXFpwY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=e0ofAo3PfMs:VHgUbxXFpwY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=e0ofAo3PfMs:VHgUbxXFpwY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=e0ofAo3PfMs:VHgUbxXFpwY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=e0ofAo3PfMs:VHgUbxXFpwY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=e0ofAo3PfMs:VHgUbxXFpwY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=e0ofAo3PfMs:VHgUbxXFpwY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=e0ofAo3PfMs:VHgUbxXFpwY:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=e0ofAo3PfMs:VHgUbxXFpwY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ConstantThinking/~4/e0ofAo3PfMs" height="1" width="1"/&gt;</description>
 <category domain="http://constantin.glez.de/tag/big-data">big data</category>
 <category domain="http://constantin.glez.de/tag/data-warehousing">Data Warehousing</category>
 <category domain="http://constantin.glez.de/tag/fitness">Fitness</category>
 <category domain="http://constantin.glez.de/category/general">General</category>
 <category domain="http://constantin.glez.de/tag/hadoop">Hadoop</category>
 <category domain="http://constantin.glez.de/tag/mapreduce">MapReduce</category>
 <category domain="http://constantin.glez.de/tag/mobile">Mobile</category>
 <category domain="http://constantin.glez.de/tag/oracle">Oracle</category>
 <category domain="http://constantin.glez.de/tag/runkeeper">Runkeeper</category>
 <category domain="http://constantin.glez.de/tag/sensor-networks">Sensor Networks</category>
 <category domain="http://constantin.glez.de/tag/social-networks">Social Networks</category>
 
 <pubDate>Mon, 23 Jan 2012 15:40:48 +0000</pubDate>
 <dc:creator>constant</dc:creator>
 <guid isPermaLink="false">240 at http://constantin.glez.de</guid>
<feedburner:origLink>http://constantin.glez.de/blog/2012/01/i-am-mobile-sensor-network-collecting-big-data</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/ConstantThinking/~5/dAqAXvbLW-Y/preview" length="49520" type="image/jpeg" /><feedburner:origEnclosureLink>http://constantin.glez.de/image/view/241/preview</feedburner:origEnclosureLink></item>
<item>
 <title>Engineered Systems and Enterprise Architecture (or: How to Sell Dog Food Online)</title>
 <link>http://feedproxy.google.com/~r/ConstantThinking/~3/Ve5c4jlyllc/engineered-systems-and-enterprise-architecture-or-how-sell-dog-food-online</link>
 <description>&lt;div class="all-attached-images"&gt;&lt;div class="image-attach-body image-attach-node-238" style="width: 320px;"&gt;&lt;a href="/image/dog-and-togaf-adm-cycle"&gt;&lt;img src="http://constantin.glez.de/sites/constantin.glez.de/files/images/dogandtogaf.blog.jpg" alt="A dog. And the TOGAF ADM cycle." title="A dog. And the TOGAF ADM cycle."  class="image image-blog " width="320" height="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;One of the first things that customers and sales teams realize when dealing with Engineered Systems is: They fundamentally change the IT architecture of a business.&lt;/p&gt;
&lt;p&gt;Change is good, it means progress. But change is sometimes seen as a bad thing: Change comes with fear.&lt;/p&gt;
&lt;p&gt;The truth is that Engineered Systems really empower IT architects to add value to their business, application and data architectures, without worrying about the technology architecture.&lt;/p&gt;
&lt;p&gt;To understand this, we need to dig a bit deeper into Enterprise Architecture, specifically the TOGAF flavor of it.&lt;/p&gt;
&lt;p&gt;One of my first tasks as a member of my new team was to get &lt;a href="http://en.wikipedia.org/wiki/TOGAF"&gt;TOGAF&lt;/a&gt; certified. TOGAF is “The Open Group Architecture Framework” which is a fancy name for a giant document full of definitions, models, and methods for creating IT architecture out of a given business capability need.&lt;/p&gt;
&lt;p&gt;Let’s look at a simple example: Suppose you’re the owner of a big dog food business empire. Your core competency is to know all about creating the best dog food, knowing your customer’s dog feeding preferences and habits, and having the best suppliers of dog food ingredients lined up from partners to help you excel at selling dog food.&lt;/p&gt;
&lt;p&gt;And now you want to take your business to the next level and start selling dog food online. Here’s the typical progression of steps, assuming your company has successfully introduced TOGAF as your method of doing Enterprise Architecture, according to the TOGAF &lt;a href="http://en.wikipedia.org/wiki/TOGAF#Architecture_Development_Method"&gt;Architecture Development Method (ADM)&lt;/a&gt;:&lt;/p&gt;
&lt;h2&gt;TOGAF ADM for Dummies&lt;/h2&gt;
&lt;ol&gt;
&lt;li type="A"&gt;&lt;strong&gt;Architecture Vision&lt;/strong&gt;: Your boss told you to come up with an architecture for adding an online shop to your dog food business. The first step then is to create an architecture vision: How does it look like to sell dog food online? Who are the stakeholders for such a capability and what are their concerns?&lt;/li&gt;
&lt;li type="A"&gt;&lt;strong&gt;Business Architecture&lt;/strong&gt;: Your enterprise architects sit down through numerous meetings with your business people, identifying a business architecture for selling dog food online. This is a bunch of diagrams, catalogs and matrices describing exactly how your online shop capability ties into the rest of your dog food business: What’s your online dog food business model? What are the use cases you want to support through your new capability? What existing processes does the new capability tie into? What new processes need to be defined to add the online shop capability?&lt;br /&gt;
The output of this stage uses business building blocks: Business processes and capabilities, modeled at a very high level, and technology-agnostic, specific to your enterprise.&lt;/li&gt;
&lt;li type="A"&gt;&lt;strong&gt;Information Systems Architecture&lt;/strong&gt;: Your enterprise architects translate the business architecture created in step 2 into an information system representation, which is composed of two architectures, a data architecture and an application architecture:&lt;br /&gt;
&lt;ol type="1"&gt;
&lt;li type="1"&gt;&lt;strong&gt;The Data Architecture&lt;/strong&gt; describes what kind of data you need to take care of for your online shop capability. Customer data, product data, payment data, shipping data, dog pictures, food pictures, dog food ingredient lists, all of it. It also describes where the data comes from, where it flows to, who needs what data when and so on. We see two types of data here: Structured data (what you'd place into a database) and unstructured data (i.e.: flat files).&lt;/li&gt;
&lt;li type="1"&gt;&lt;strong&gt;The Application Architecture&lt;/strong&gt; describes what applications you need to handle your data: Web portals, CRM applications, supply chain management applications, shipping and tracking applications, order management applications, payment processing applications, dog food personalization and mixing order processing applications etc.&lt;br /&gt;
More diagrams, more catalogs and more matrices are created to describe this stage of building your dog food online shopping empire. Notice that there are no particular technologies and no products considered at this stage either.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The building blocks at this stage: Applications, database schemas, flat file specs. All particular to your enterprise.&lt;/p&gt;&lt;/li&gt;
&lt;li type="A"&gt;&lt;strong&gt;Technology Architecture&lt;/strong&gt;: The next step is to translate the information systems architecture into a technology architecture. Now we’re getting somewhere: This is where our enterprise architecture heroes get to describe what systems are needed where, how to map applications and data to those systems, what networks to use, which servers are connected how at what locations, etc.&lt;br /&gt;
And here comes the cut: The building blocks are now generic! A database server is a database server, no matter what it stores, be it dog food recipes or car configurations. An app server is an app server, no matter what app runs on top of it, same goes for a file server, a firewall or a router. All components of Technology Architecture are generic, there's hardly anything specific about selling dog food online here.
&lt;/li&gt;&lt;li type="A"&gt;&lt;strong&gt;Opportunities and Solutions&lt;/strong&gt;: This is the earliest stage at which particular technologies (such as the Oracle database) come into play and where specific instances of a technology ("Our main CRM system running on Oracle on SPARC SuperCluster.") are mentioned.&lt;/li&gt;
&lt;li type="A"&gt;&lt;strong&gt;Migration Planning&lt;/strong&gt;: Here's where the hand-over from the enterprise architects to the project managers occurs: Implementation and migration plans are forged, projects are created and prioritized, resources are allocated, hands become dirty.&lt;/li&gt;
&lt;li type="A"&gt;&lt;strong&gt;Implementation Governance&lt;/strong&gt;: This stage ensures synchronization between Enterprise Architecture and its implementation, as carried out by you project managers, through running reviews and monitoring progress.&lt;/li&gt;
&lt;li type="A"&gt;&lt;strong&gt;Architecture Change Management&lt;/strong&gt;: Finally the project is done, the dog food online shop goes live and hopefully the first orders come in. Parties are thrown and people get drunk. The next day, lessons are learned and captured, and fed into the next ADM cycle, starting again with an architecture vision. Perhaps the beta users identified a few bugs or RFEs, or the product managers have new ideas for what else the online dog food store could sell, but that would require a new capability to be added to the architecture: The cycle starts again.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;The Limits of Creating Business Specific Value&lt;/h2&gt;
&lt;p&gt;What does this have to do with Oracle's Engineered Systems? The answer is that it's all about who creates unique value at what level of the architecture and who doesn't:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Steps A-C are highly specific to the enterprise: This is where enterprises truly innovate: The first online shop exclusively for dogs! Online dog food customization! Geo-aware local dog food sourcing! The value at these stages is unique to the particular enterprise, or at least the vertical business it operates in.&lt;/li&gt;
&lt;li&gt;But step D (Technology Architecture) is different: All building blocks here are generic, and there's hardly any value for a typical enterprise to create here that differentiates themselves from other enterprises. How is a database cluster developed for a dog food database different in design than a database cluster developed for a car configuration database? Or why would a file server for hosting dog pictures be significantly different from a file server for hosting book covers?&lt;/li&gt;
&lt;li&gt;All other steps starting from 4 follow the same pattern: Building blocks, best practices and implementation details are the same, there's nothing specific to the particular business that they support. They all need to be secure, performant, reliable and more or less highly available. All business use the same trucks to deliver their goods, only very specialized business may occasionally need a special truck, but they're quite a minority.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;And yet, businesses spend enormous amounts of resources for coming up with their own custom made database cluster design, their own custom made app server farm design, their own custom made file server infrastructure design, their own custom made web infrastructure design and so on.&lt;/p&gt;
&lt;p&gt;This is where &lt;a href="http://constantin.glez.de/blog/2011/12/rise-engineered-systems"&gt;the rise of Engineered Systems&lt;/a&gt; takes place.&lt;/p&gt;
&lt;h2&gt;The Engineered System: TOGAF Stage D in a Box&lt;/h2&gt;
&lt;p&gt;Oracle's Engineered Systems (you know, Exadata, Exalogic, SPARC SuperCluster, ZFS Storage Appliance and so on) are nothing more than the TOGAF stage D of the ADM in a few, easy to plan, buy, install, manage boxes, without the usual headaches that used to occur when planning Technology Architecture.&lt;/p&gt;
&lt;p&gt;Want a new database for your dog food recipes? Just ask the DBA to allocate one for you out of an Exadata. Want to host the entire chain of app servers and portal that forms the application layer of your dog food shopping empire? Push a button on your PaaS portal to instantiate a virtual assembly on one of your Exalogic boxes. Want something more powerful? Perhaps with more transactional crypto-oomph? Ask you friendly PaaS portal for a slice off of your shiny new SPARC SuperCluster. Wanna analyze heaps of personalized dog food recipes and correlate them with mailman assault reports, dog flu epidemic data and weather forecasts? That's what the big data appliance and Exalytics are for.&lt;/p&gt;
&lt;p&gt;The point here is: No business should spend time, money and resources for creating yet another personalized flavor of a RAC cluster, an app server tier or a web portal infrastructure. This is what IT companies like Oracle can do better than anyone else: Design Technology Architecture.&lt;/p&gt;
&lt;p&gt;Instead, use your energy and resources to create real business value. What's &lt;em&gt;your&lt;/em&gt; online dog food architecture?&lt;/p&gt;
&lt;p&gt;P.S.: Please forgive my dog food analogy. Here's the Guy who planted it into my mind:&lt;/p&gt;
&lt;p&gt;    &lt;object width="400" height="350"&gt;
    &lt;param name="movie" value="http://www.youtube.com/v/liQLdRk0Ziw"&gt;&lt;/param&gt;
    &lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;
    &lt;embed src="http://www.youtube.com/v/liQLdRk0Ziw" type="application/x-shockwave-flash" wmode="transparent" height="350" width="400"&gt;&lt;/embed&gt;
    &lt;/object&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/File:TOGAF_ADM.jpg"&gt;TOGAF ADM picture&lt;/a&gt; taken from Wikipedia, used under NASA public domain policy.&lt;br /&gt;
&lt;a href="http://www.flickr.com/photos/the_colmans/3289242438/"&gt;Dog picture&lt;/a&gt; by &lt;a href="http://www.flickr.com/photos/the_colmans/"&gt;digital_image_fan on Flickr&lt;/a&gt;, used under Creative Commons license.&lt;/p&gt;
&lt;div class="flattr-box"&gt;&lt;script type="text/javascript"&gt;
  var flattr_uid = '26528';
  var flattr_tle = 'Engineered Systems and Enterprise Architecture (or: How to Sell Dog Food Online)';
  var flattr_dsc = 'One of the first things that customers and sales teams realize when dealing with Engineered Systems is: They fundamentally change the IT architecture of a business.Change is good, it means progress. But change is sometimes seen as a bad thing: Change comes with fear.The truth is that Engineered Systems really empower IT architects to add value to their business, application and data architectures, without worrying about the technology architecture.To understand this, we need to dig a bit deeper into Enterprise Architecture, specifically the TOGAF flavor of it.';
  var flattr_tag = 'EA,Engineered Systems,Enterprise Architecture,exadata,exalogic,General,sparc,supercluster,Systems,TOGAF';
  var flattr_cat = 'text';
  var flattr_url = 'http://constantin.glez.de/blog/2012/01/engineered-systems-and-enterprise-architecture-or-how-sell-dog-food-online';
  var flattr_lng = 'en_GB'&lt;/script&gt;
&lt;script src="http://api.flattr.com/button/load.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/div&gt;&lt;script src="http://feedproxy.google.com/~s/ConstantThinking/?i=http://constantin.glez.de/blog/2012/01/engineered-systems-and-enterprise-architecture-or-how-sell-dog-food-online" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;div class='sexybookmarks-default-5125'&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=Ve5c4jlyllc:vP3yhUOIP9M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=Ve5c4jlyllc:vP3yhUOIP9M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=Ve5c4jlyllc:vP3yhUOIP9M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=Ve5c4jlyllc:vP3yhUOIP9M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=Ve5c4jlyllc:vP3yhUOIP9M:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=Ve5c4jlyllc:vP3yhUOIP9M:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=Ve5c4jlyllc:vP3yhUOIP9M:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=Ve5c4jlyllc:vP3yhUOIP9M:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=Ve5c4jlyllc:vP3yhUOIP9M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ConstantThinking/~4/Ve5c4jlyllc" height="1" width="1"/&gt;</description>
 <category domain="http://constantin.glez.de/tag/ea">EA</category>
 <category domain="http://constantin.glez.de/tag/engineered-systems">Engineered Systems</category>
 <category domain="http://constantin.glez.de/tag/enterprise-architecture">Enterprise Architecture</category>
 <category domain="http://constantin.glez.de/tag/exadata">exadata</category>
 <category domain="http://constantin.glez.de/tag/exalogic">exalogic</category>
 <category domain="http://constantin.glez.de/category/general">General</category>
 <category domain="http://constantin.glez.de/tag/sparc">sparc</category>
 <category domain="http://constantin.glez.de/tag/supercluster">supercluster</category>
 <category domain="http://constantin.glez.de/tag/systems">Systems</category>
 <category domain="http://constantin.glez.de/tag/togaf">TOGAF</category>
 
 <pubDate>Mon, 16 Jan 2012 16:21:45 +0000</pubDate>
 <dc:creator>constant</dc:creator>
 <guid isPermaLink="false">237 at http://constantin.glez.de</guid>
<feedburner:origLink>http://constantin.glez.de/blog/2012/01/engineered-systems-and-enterprise-architecture-or-how-sell-dog-food-online</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/ConstantThinking/~5/YZJ4ig8wG3s/preview" length="38347" type="image/jpeg" /><feedburner:origEnclosureLink>http://constantin.glez.de/image/view/238/preview</feedburner:origEnclosureLink></item>
<item>
 <title>Iron Sky Update: A Behind the Scenes Video Interview</title>
 <link>http://feedproxy.google.com/~r/ConstantThinking/~3/SQYsyYc1TMA/iron-sky-update-behind-scenes-video-interview</link>
 <description>&lt;div class="all-attached-images"&gt;&lt;div class="image-attach-body image-attach-node-236" style="width: 320px;"&gt;&lt;a href="/image/iron-sky-update"&gt;&lt;img src="http://constantin.glez.de/sites/constantin.glez.de/files/images/ironskyupdate.blog.jpg" alt="Iron Sky Update" title="Iron Sky Update"  class="image image-blog " width="320" height="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;If you've been following my blog or the &lt;a href="http://systemhelden.com/"&gt;Systemhelden.com&lt;/a&gt; podcast for some time, then you probably know that I'm a big fan of and small investor in the movie &lt;em&gt;Iron Sky&lt;/em&gt;, a crowd-funded science-fiction comedy about the Nazis who went to the dark side of the moon in 1945 and come back to conquer Earth in 2018.&lt;/p&gt;
&lt;p&gt;A few weeks ago, I had the privilege of attending a pre-screening of the movie's beta version in Helsinki, Finland. What can I say? It exceeded my high expectations!&lt;/p&gt;
&lt;p&gt;The script is ingeniously written, just the right mix of humor, action, character and political satire. All actors are brilliant: &lt;a href="http://www.imdb.com/name/nm0653248/"&gt;Götz Otto&lt;/a&gt;, &lt;a href="http://www.imdb.com/name/nm0456130/"&gt;Christopher Kirby&lt;/a&gt;, &lt;a href="http://www.imdb.com/name/nm0699596/"&gt;Tilo Prückner&lt;/a&gt; and &lt;a href="http://www.imdb.com/name/nm0001424/"&gt;Udo Kier&lt;/a&gt; gave the movie a unique blend of coolness, style, creepiness and comedy while &lt;a href="http://www.imdb.com/name/nm1087430/"&gt;Julia Dietze&lt;/a&gt; and &lt;a href="http://www.imdb.com/name/nm1560632/"&gt;Peta Sergeant&lt;/a&gt; stood out in excellently played character roles. Special kudos to &lt;a href="http://www.imdb.com/name/nm1094184/"&gt;Stephanie Paul&lt;/a&gt; for being the most hilarious US President in movie history!&lt;/p&gt;
&lt;p&gt;Director &lt;a href="http://www.imdb.com/name/nm1993322/"&gt;Timo Vuorensola&lt;/a&gt; found just the right balance between comedy, action and the occasional emotional moment. The whole production has a very high quality feeling, despite the limited (by hollywood standards) budget of about 7.5 Million Euros.&lt;/p&gt;
&lt;h2&gt;Video Interview&lt;/h2&gt;
&lt;p&gt;After the pre-screening, I had the opportunity to interview &lt;a href="http://www.imdb.com/name/nm0442381/"&gt;Tero Kaukomaa&lt;/a&gt;, producer of &lt;em&gt;Iron Sky&lt;/em&gt; and &lt;a href="http://www.imdb.de/name/nm3445618/"&gt;Pekka Ollula&lt;/a&gt;, Social Media Manager. We talked about the audience's first impressions, a day in the life of a movie producer, and some cool new side projects such as the &lt;a href="http://www.ironsky.net/site/iron-sky-comic-is-out-pay-what-you-like-or-read-it-for-free/"&gt;&lt;em&gt;Iron Sky&lt;/em&gt; Comic Book&lt;/a&gt; or the brand new &lt;a href="http://store.ironsky.net/product/22/pre-order-iron-sky-board-game"&gt;&lt;em&gt;Iron Sky&lt;/em&gt; board game&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here’s the full interview (sorry for the slightly shaky camera):&lt;/p&gt;
&lt;p&gt;    &lt;iframe src="http://player.vimeo.com/video/34135970?portrait=0" width="400" height="350" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Wanna see more videos? Check out an &lt;a href="http://constantin.glez.de/blog/2011/01/video-interview-fathers-iron-sky"&gt;interview with the fathers of &lt;em&gt;Iron Sky&lt;/em&gt;&lt;/a&gt; from last year. Or go &lt;a href="http://www.ironsky.net/site/#teaser"&gt;watch some cool &lt;em&gt;Iron Sky&lt;/em&gt; teasers&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Participate in &lt;em&gt;Iron Sky&lt;/em&gt;!&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Iron Sky&lt;/em&gt; is scheduled for world-wide release in April 4, 2012. If you want to participate, you still can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There’s some room for a few more fan investors: Check out the &lt;a href="http://www.ironsky.net/site/support/finance/"&gt;&lt;em&gt;Iron Sky&lt;/em&gt; Finance page&lt;/a&gt; for prerequisites to becoming an investor in &lt;em&gt;Iron Sky&lt;/em&gt; and become part of the biggest crowd-funding effort in movie history!&lt;/li&gt;
&lt;li&gt;For only EUR 1 (or more), you can take a &lt;a href="http://ironsky.net/"&gt;sneak peek&lt;/a&gt; at the full production process of the first 5 minutes of the movie, from script to storyboard to shooting to special FX and final result.&lt;/li&gt;
&lt;li&gt;If you want to see your company logo on Times Square within the movie, there may still be an &lt;a href="http://www.ironsky.net/timessquare"&gt;&lt;em&gt;Iron Sky&lt;/em&gt; Times Square sponsoring opportunity&lt;/a&gt; left!&lt;/li&gt;
&lt;li&gt;Every T-Shirt, board game or other fan item bought in the &lt;a href="http://store.ironsky.net/"&gt;&lt;em&gt;Iron Sky&lt;/em&gt; Store&lt;/a&gt; helps promote the movie while contributing to the production budget.&lt;/li&gt;
&lt;li&gt;Spread the word! Visit the “&lt;a href="http://www.ironsky.net/site/support/how-to-support/"&gt;Demand &lt;em&gt;Iron Sky&lt;/em&gt;&lt;/a&gt;” page and help sell the movie to distributors, like the &lt;a href="http://www.facebook.com/ironsky/"&gt;&lt;em&gt;Iron Sky&lt;/em&gt; page on Facebook&lt;/a&gt;, follow &lt;a href="http://twitter.com/energia"&gt;&lt;em&gt;Iron Sky&lt;/em&gt; on Twitter&lt;/a&gt; or just tell all your friends. With more than 80,000 fans on Facebook, the movie is already a social media phenomenon, let's reach 100k fans on Facebook by the time it reaches the theaters!&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Special Constant Thinking &lt;em&gt;Iron Sky&lt;/em&gt; T-Shirt Contest!&lt;/h2&gt;
&lt;p&gt;Win an official &lt;em&gt;Iron Sky&lt;/em&gt; T-Shirt by promoting this interview! Just tweet (or retweet) a link to this article along with the &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;#ironsky&lt;/code&gt;&lt;/span&gt; hashtag and enter a draw to win a t-shirt!&lt;/p&gt;
&lt;p&gt;On January 15th, I’ll randomly draw the lucky winner out of all participants and send her/him an official &lt;em&gt;Iron Sky&lt;/em&gt; t-shirt.&lt;/p&gt;
&lt;h2&gt;Disclaimers, Disclosures and Stuff&lt;/h2&gt;
&lt;p&gt;Standard disclaimers apply for the T-Shirt contest, this is no official promo, no legal hassles please, this is just for fun among friends.&lt;/p&gt;
&lt;p&gt;Disclosure: I'm a proud investor in &lt;em&gt;Iron Sky&lt;/em&gt; which means that I'm biased, have a commercial interest in this project and that I want you to see the movie and tell all your friends about it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; (2012-01-01): A stupid bug killed the intro part of the article, restored from a draft. Also corrected the praise for Julia and Peta since my poor English didn't do them enough justice before :).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt; (2012-01-06): Corrected the year to 2018. &lt;a href="http://en.wikipedia.org/wiki/Year_2038_problem"&gt;In 2038, earth will face a different problem&lt;/a&gt;. Thanks to  Max who pointed that out in the comments!&lt;/p&gt;
&lt;h2&gt;Update (2012-01-20): The results are in!&lt;/h2&gt;
&lt;p&gt;Today I determined the lucky winner of the Twitter #ironsky retweet contest. 15 different people retweeted this article before or on January 15th, here's the list:&lt;/p&gt;
&lt;p&gt;00 &lt;a href="http://twitter.com/TAKIM0T0"&gt;@TAKIM0T0&lt;/a&gt;&lt;br /&gt;
01 &lt;a href="http://twitter.com/sascha242"&gt;@sascha242&lt;/a&gt;&lt;br /&gt;
02 &lt;a href="http://twitter.com/MThorr"&gt;@MThorr&lt;/a&gt;&lt;br /&gt;
03 &lt;a href="http://twitter.com/zarkon"&gt;@zarkon&lt;/a&gt;&lt;br /&gt;
04 &lt;a href="http://twitter.com/Okona"&gt;@Okona&lt;/a&gt;&lt;br /&gt;
05 &lt;a href="http://twitter.com/bayoda"&gt;@bayoda&lt;/a&gt;&lt;br /&gt;
06 &lt;a href="http://twitter.com/sunian314"&gt;@sunian314&lt;/a&gt;&lt;br /&gt;
07 &lt;a href="http://twitter.com/ironskyfilm"&gt;@ironskyfilm&lt;/a&gt;&lt;br /&gt;
08 &lt;a href="http://twitter.com/optionstrict"&gt;@optionstrict&lt;/a&gt;&lt;br /&gt;
09 &lt;a href="http://twitter.com/BrodyK91"&gt;@BrodyK91&lt;/a&gt;&lt;br /&gt;
10 &lt;a href="http://twitter.com/shift_plusone"&gt;@shift_plusone&lt;/a&gt;&lt;br /&gt;
11 &lt;a href="http://twitter.com/jenksho"&gt;@jenksho&lt;/a&gt;&lt;br /&gt;
12 &lt;a href="http://twitter.com/digisubculture"&gt;@digisubculture&lt;/a&gt;&lt;br /&gt;
13 &lt;a href="http://twitter.com/apfelgriebs72"&gt;@apfelgriebs72&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Special mention to &lt;a href="http://twitter.com/deltabps"&gt;@deltabps&lt;/a&gt; who retweeted this article, but was a bit late. So 14 people altogether qualified for the t-shirt draw.&lt;/p&gt;
&lt;p&gt;Here's the first winner, determined by a roll of Unix dice:&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;constantins-macbook-pro(2):~ constantin$ expr `cat /dev/random | head -c 1 | od -t u1 | head -1 | cut -c 11-` % 14
4&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Congratulations &lt;a href="http://twitter.com/Okona"&gt;@Okona&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Now, I personally know Okona who is a regular guest at the &lt;a href="http://systemhelden.com/"&gt;HELDENfunk&lt;/a&gt; podcast, so I didn't feel good about keeping the t-shirt in the family so to speak, so I decided to give away a second t-shirt! Here's the second roll of dice:&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;constantins-macbook-pro(2):~ constantin$ expr `cat /dev/random | head -c 1 | od -t u1 | head -1 | cut -c 11-` % 14
12&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Congratulations &lt;a href="http://twitter.com/digisubculture"&gt;@digisubculture&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Damn, again someone I know personally from my university days in Clausthal :).&lt;/p&gt;
&lt;p&gt;Ok. I'm rolling again until I get someone I don't know. Here's lucky winner #3:&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;constantins-macbook-pro(2):~ constantin$ expr `cat /dev/random | head -c 1 | od -t u1 | head -1 | cut -c 11-` % 14
13&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Congratulations &lt;a href="http://twitter.com/apfelgriebs72"&gt;@apfelgriebs72&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;That's it, congratulations to you all! I'll send you some DMs now and ask for your shipping addresses so I can send you your T-Shirts.&lt;/p&gt;
&lt;p&gt;But wait! Since Twitter and I aren't infallible, there's a slight chance that someone who re(tweeted) a link to this article with the #ironsky hashtag before or on January 15th didn't come to my attention and so wasn't included in the above list by pure bad luck. If that is you, then send me a link to your Tweet using the contact form of this site to prove it and I'll send you another T-Shirt!&lt;/p&gt;
&lt;p&gt;(Just to avoid getting broke due to very unlikely events, this offer is only valid for the first three people to qualify for this, and only for the remainder of January 2012.)&lt;/p&gt;
&lt;div class="flattr-box"&gt;&lt;script type="text/javascript"&gt;
  var flattr_uid = '26528';
  var flattr_tle = 'Iron Sky Update: A Behind the Scenes Video Interview';
  var flattr_dsc = 'If you&amp;#039;ve been following my blog or the &amp;lt;a href=&amp;quot;http://systemhelden.com/&amp;quot;&amp;gt;Systemhelden.com&amp;lt;/a&amp;gt; podcast for some time, then you probably know that I&amp;#039;m a big fan of and small investor in the movie &amp;lt;em&amp;gt;Iron Sky&amp;lt;/em&amp;gt;, a crowd-funded science-fiction comedy about the Nazis who went to the dark side of the moon in 1945 and come back to conquer Earth in 2018.A few weeks ago, I had the privilege of attending a pre-screening of the movie&amp;#039;s beta version in Helsinki, Finland. What can I say? It exceeded my high expectations!';
  var flattr_tag = 'cinema,crowd-funding,General,investing,movies,video';
  var flattr_cat = 'text';
  var flattr_url = 'http://constantin.glez.de/blog/2011/12/iron-sky-update-behind-scenes-video-interview';
  var flattr_lng = 'en_GB'&lt;/script&gt;
&lt;script src="http://api.flattr.com/button/load.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/div&gt;&lt;script src="http://feedproxy.google.com/~s/ConstantThinking/?i=http://constantin.glez.de/blog/2011/12/iron-sky-update-behind-scenes-video-interview" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;div class='sexybookmarks-default-3173'&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=SQYsyYc1TMA:QAePflOxmqY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=SQYsyYc1TMA:QAePflOxmqY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=SQYsyYc1TMA:QAePflOxmqY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=SQYsyYc1TMA:QAePflOxmqY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=SQYsyYc1TMA:QAePflOxmqY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=SQYsyYc1TMA:QAePflOxmqY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=SQYsyYc1TMA:QAePflOxmqY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=SQYsyYc1TMA:QAePflOxmqY:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=SQYsyYc1TMA:QAePflOxmqY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ConstantThinking/~4/SQYsyYc1TMA" height="1" width="1"/&gt;</description>
 <category domain="http://constantin.glez.de/tag/cinema">cinema</category>
 <category domain="http://constantin.glez.de/tag/crowd-funding">crowd-funding</category>
 <category domain="http://constantin.glez.de/category/general">General</category>
 <category domain="http://constantin.glez.de/tag/investing">investing</category>
 <category domain="http://constantin.glez.de/tag/movies">movies</category>
 <category domain="http://constantin.glez.de/tag/video">video</category>
 
 <pubDate>Tue, 27 Dec 2011 19:58:13 +0000</pubDate>
 <dc:creator>constant</dc:creator>
 <guid isPermaLink="false">235 at http://constantin.glez.de</guid>
<feedburner:origLink>http://constantin.glez.de/blog/2011/12/iron-sky-update-behind-scenes-video-interview</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/ConstantThinking/~5/ufhy-0GNi2U/preview" length="29450" type="image/jpeg" /><feedburner:origEnclosureLink>http://constantin.glez.de/image/view/236/preview</feedburner:origEnclosureLink></item>
<item>
 <title>The Rise of Engineered Systems</title>
 <link>http://feedproxy.google.com/~r/ConstantThinking/~3/8RgBfpYjrvw/rise-engineered-systems</link>
 <description>&lt;div class="all-attached-images"&gt;&lt;div class="image-attach-body image-attach-node-234" style="width: 320px;"&gt;&lt;a href="/image/mercedes-car-broken-down-components"&gt;&lt;img src="http://constantin.glez.de/sites/constantin.glez.de/files/images/mercedescomponents.blog.jpg" alt="Mercedes car, broken down into components." title="Mercedes car, broken down into components."  class="image image-blog " width="320" height="214" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;I changed into a new role at Oracle: I now work for the EMEA Engineered Systems Architecture Team (ESAT). We support Oracle’s EMEA Engineered Systems business by engaging with customers, enabling our field organization with trainings and through evangelization.&lt;/p&gt;
&lt;p&gt;You can call me biased towards &lt;a href="http://www.oracle.com/us/products/engineered-systems/index.html"&gt;Engineered Systems&lt;/a&gt; now, but that would be like accusing a Mac fanboy of suffering from the &lt;a href="http://en.wikipedia.org/wiki/Stockholm_syndrome"&gt;Stockholm Syndrome&lt;/a&gt;, when it’s actually the other way round.&lt;/p&gt;
&lt;p&gt;The other side of the “biased” medal really is that I have a choice of where I want to work, and one of the reasons I changed from my cozy SPARC/Solaris Technology camp to the Engineered Systems crowd is: I believe the world of IT is changing.&lt;/p&gt;
&lt;p&gt;Let me explain.&lt;/p&gt;
&lt;h2&gt;Back to the Future&lt;/h2&gt;
&lt;p&gt;Once upon a time, when computers were new, they came as a whole: You bought yourself a “computer” and it came with everything you needed to get started: Hardware to compute with, storage to store data with and software to work with. Those times culminated in the rise of &lt;a href="http://en.wikipedia.org/wiki/Mainframe_computer"&gt;mainframes&lt;/a&gt; that offered everything a business wanted to do with computers as one whole, integrated, single package.&lt;/p&gt;
&lt;p&gt;Even through the 70s, when mainframes got replaced by &lt;a href="http://en.wikipedia.org/wiki/Minicomputer"&gt;minicomputers&lt;/a&gt;, they still came as an integrated whole: Storage, Computing hardware, OS and development tools with libraries, what we would today call “Middleware”. (For a fascinating travel in time back to the minicomputer era, read “&lt;a href="http://www.amazon.com/gp/product/0316491977/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=conchathebloo-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0316491977"&gt;The Soul of a New Machine&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=conchathebloo-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0316491977" width="1" height="1" border="0" alt="" /&gt;”*).&lt;/p&gt;
&lt;p&gt;But then the integrated approach was seen as too proprietary and too limiting, which gave rise to a new wave of systems in the 80s: &lt;a href="http://en.wikipedia.org/wiki/Open_system_(computing)"&gt;Open Systems&lt;/a&gt;. Now, vendors offered the pieces (You know: Storage, Servers, OS, Tools and Middleware, Applications, Networking and so on), while businesses (or system integrators, for a fee) put the pieces together into a customized whole.&lt;/p&gt;
&lt;p&gt;30 years later, we’re still living in the 80s, when it comes to running an IT project.&lt;/p&gt;
&lt;h2&gt;A Typical IT Project&lt;/h2&gt;
&lt;p&gt;So how &lt;em&gt;does&lt;/em&gt; a typical IT project work?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Someone has an idea for a new business capability.&lt;/strong&gt;&lt;br /&gt;
  “We need an app store for our iToaster company!”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bright people create an IT architecture to support that new capability.&lt;/strong&gt;&lt;br /&gt;
  “Here's our blueprint for a private cloud based, full-featured, interactive, augmented reality, HTLM5, AJAX iToaster App Store system, complete with CRM integration, web portal, BI engine and ToastHabits™ loyalty card integration!”&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;A round of RFPs goes out to procure the components for the new system&lt;/strong&gt;: Storage, Servers, Networking, Virtualization, OS, Database, Middleware and some Applications.&lt;br /&gt;
  Some of these are standardized, but we still end up with more than a handful of them, multiplied by our company’s list of n&amp;gt;1 favorite vendors to play against each other.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;RFP responses are evaluated.&lt;/strong&gt;&lt;br /&gt;
  Technologies are studied, claims verified, proof-of-concepts are run, pilots are conducted and so on. Lots of traveling, playing, arguing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Finally, the components of the IT system are decided on.&lt;/strong&gt;&lt;br /&gt;
  The result tends to look like a camel (which allegedly is an animal that was created by a committee): The number of vendors involved is only slightly smaller than the number of components across the storage-to-application stack, thanks to elaborate purchasing rules, standardized buying practices, old relationships or just habits of the people involved in the process.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Then the pieces come in and the IT department gets to play.&lt;/strong&gt;&lt;br /&gt;
  Storage is set up and plugged to servers through some network, servers are set up and provisioned with virtualization and operating systems, databases are set up and connected to middleware which is being rolled out to support the actual applications that matter and so on.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;In the process of putting the components together, problems emerge.&lt;/strong&gt;&lt;br /&gt;
  The storage doesn't like to play well with the server, which turns out to be a firmware issue after weeks of finger-pointing between vendors and countless hours on their hotlines. The OS needs a specific patch and some settings in &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;/etc/system&lt;/code&gt;&lt;/span&gt; to support the right version of the database so it can optimally talk to the middleware, but there’s still a network latency or routing issue which drags down performance because the NAS device tends to overload specific segments more than the middleware communication to the database so different networking paths need to be set up, and so on.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Finally, after months of delay the new IT system is running.&lt;/strong&gt;&lt;br /&gt;
  Kinda. A bright guy came up with a creative solution so the project doesn’t have to be delayed &lt;em&gt;again&lt;/em&gt;. The “solution” also compromises security a little bit, but that’s a small price to pay for cutting weeks or months off time-to-market and reach the huge potential of hundreds of thousands of new customers (and their credit cards) and turn them into revenue through the magic of the new system. And we’ll fix the security bugs later. When we have the time.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Only, it is not running very well, yet.&lt;/strong&gt;&lt;br /&gt;
  Performance problems arise, once more than 10,000 customers try to place orders at the same time, which happens on the very first day because the new service was announced with a huge marketing campaign. On the management floors, biological end products hit rotational dynamics which only worsens the problem because now even more people try to use the new system just to see what the problem is. The press isn’t helping either. The test department guy says they shouldn’t have brought the system online without running any further tests while the business people point at charts with "opportunity costs" due to the already mind-blowing project delays.&lt;/li&gt;
&lt;li&gt;I’ll spare you the details of the first successful hacking attempt.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;True, this is exaggerated for reasons of entertainment, but things like this happen all the time in current, “modern” IT shops. I've seen them all in two decades of working in IT and I’m sure you’ll recognize a few of them, too.&lt;/p&gt;
&lt;p&gt;The point is:&lt;br /&gt;
&lt;strong&gt;Building IT systems is complicated, time-consuming, error-prone, unpredictable, resource-intensive, expensive and risky.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Or, more shortly:&lt;br /&gt;
&lt;strong&gt;The way we build IT today is &lt;em&gt;broken&lt;/em&gt;.&lt;/strong&gt;&lt;/p&gt;
&lt;h2&gt;The Return of the Engineered System&lt;/h2&gt;
&lt;p&gt;Wouldn’t it be nice if you could just &lt;em&gt;buy&lt;/em&gt; a full system that comes with &lt;em&gt;everything you need&lt;/em&gt; to get started on your new business idea? A system where storage, networking, servers, virtualization, operating system, database and middleware, applications are engineered together, tested together, certified together, delivered together, managed and patched together?&lt;/p&gt;
&lt;p&gt;Unpack, set up and get started in &lt;em&gt;days&lt;/em&gt;, not months. Roll out your application &lt;em&gt;without the risk&lt;/em&gt; of it blowing up due to unforeseen incompatibilities. Profit from &lt;em&gt;better performance&lt;/em&gt; because all components are &lt;em&gt;pre-integrated&lt;/em&gt;, so they can use a &lt;em&gt;faster networking&lt;/em&gt; technology than the generic standard. &lt;em&gt;Less suffering from bugs&lt;/em&gt; because most of them have been &lt;em&gt;fixed already&lt;/em&gt; at the factory level rather than at the customer site. &lt;em&gt;Less support suffering&lt;/em&gt; because the guy at the other end of the phone has access to &lt;em&gt;exactly the same&lt;/em&gt; system and can therefore understand your issue much better. &lt;em&gt;Better security&lt;/em&gt; because everything has been &lt;em&gt;designed together&lt;/em&gt; with security in mind and in a pre-packaged way with controlled interfaces in and out of the system as a whole. &lt;em&gt;Shorter time-to-market&lt;/em&gt; because steps 3-10 of the above process are reduced into one step that only takes a few days: Unpack and configure your Engineered System.&lt;/p&gt;
&lt;p&gt;That's what &lt;a href="http://www.oracle.com/us/products/engineered-systems/index.html"&gt;Oracle’s Engineered Systems&lt;/a&gt; are about.&lt;/p&gt;
&lt;p&gt;It sounds similar to the early times of computing, where the 10-step process from above was just two:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Buy computer.&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Get to work.&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;And that’s the goal of Engineered Systems: Get rid of the maddening complexity of building IT systems and let the people sort it out that do this actually for a living, 100% of the time and with much better expertise.&lt;/p&gt;
&lt;p&gt;And the goal for you is to &lt;em&gt;get to work&lt;/em&gt; on what &lt;em&gt;you are best qualified for&lt;/em&gt;. Building App Stores. Selling stuff through e-commerce. Collecting big data and finding sense therein. Running social networks. Figuring out where the economy is going. Making sure that parcels go from A to B on time during the christmas season. And so on.&lt;/p&gt;
&lt;p&gt;But isn't this going back to monolithic, proprietary and closed systems?&lt;/p&gt;
&lt;p&gt;Of course it is not. The thing is that we're getting the best of both worlds:&lt;br /&gt;
Simple IT deployment, &lt;em&gt;and&lt;/em&gt; open standards with open interfaces across all components of the stack.&lt;/p&gt;
&lt;p&gt;There is no lock-in: All software that comes with Engineered Systems is identical to the software that you can buy independently as a component of your 10-step home-brew IT deployment process. If you don't like the Engineered System, just build your own IT and move your stuff onto it, while keeping the same OS, middleware or database software.&lt;/p&gt;
&lt;p&gt;Yes, there’s the occasional tool that is specific to the Engineered System it ships with, but these are extra components for convenience, like the customized dashboard on your Volkswagen that doesn't make sense if you duct-tape it onto your Toyota. Which brings us to:&lt;/p&gt;
&lt;h2&gt;Analogies Galore!&lt;/h2&gt;
&lt;p&gt;Engineered Systems are often compared to cars. And the analogy is striking: When was the last time you ran RFPs for tires, engines, transmission, seats, dashboards, chassis and bodywork?&lt;/p&gt;
&lt;p&gt;Indeed, when cars were invented, each car was individually built to the driver’s specs. Until Henry Ford came along, and the rest is history:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Any customer can have an Engineered System painted any color that he wants as long as it is gray.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A friend of mine came up with a much better analogy: Beer!&lt;br /&gt;
Ever tried brewing your own beer? Sure, a liter of home-brew is cheaper than a liter of your favorite beer brand, but good luck going through the elaborate process of setting up, cleaning, roasting, fermenting, brewing and bottling your own beer. One word: Hygiene.&lt;/p&gt;
&lt;p&gt;The result can taste great, but often enough, something (usually bacteria related) goes wrong and you end up with a beverage that tastes, well, home-brewn. And then you're sitting on 20 liters of something that your friends politely called “interesting” and that you’re too proud of to dump into the sewer for a few bottles of good, proper German beer.&lt;/p&gt;
&lt;p&gt;Which is not far from “interesting” IT solutions we see a lot, their creators being too proud to replace them with something that actually works.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Engineered Systems are the Bavarian beers of IT.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can find a great analogy much closer to traditional IT: Just walk into any coffee shop, better yet, visit any conference and look at the number of MacBooks vs. laptop PCs, iPhones, vs. Android phones, and of course iPads. Particularly their users and the amount of “work” vs. “fix” they do on their devices.&lt;/p&gt;
&lt;p&gt;The iPad is the ultimate consumer Engineered System: Hardware and software and applications merged into a single, optimized system that lets you “just work”.&lt;/p&gt;
&lt;h2&gt;Change is Coming&lt;/h2&gt;
&lt;p&gt;Expect professional IT to change the way the car industry changed, or the way Apple changed the consumer industry: Companies are starting to build IT out of large, pre-engineered building blocks, vs. re-inventing wheels at the component level.&lt;/p&gt;
&lt;p&gt;When was the last time you pondered whether to use Hitachi, Seagate or Conner drives for your storage project? Do you really care about the chip sitting inside your networking card or storage controller? Are you still busy testing, sourcing and integrating hardware and software components while your colleagues are treating the &lt;em&gt;system&lt;/em&gt; as a component?&lt;/p&gt;
&lt;p&gt;The focus of professional IT has now been elevated: From building systems out of components to building clouds out of pre-engineered systems. That’s where IT is going in 2012.&lt;/p&gt;
&lt;h2&gt;So What Do They Look Like?&lt;/h2&gt;
&lt;p&gt;Oh, I almost forgot. This is not a product pitch, so I’ll be brief:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.oracle.com/us/products/database/exadata-database-machine/overview/index.html"&gt;Exadata&lt;/a&gt; is the Engineered System for running Databases.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.oracle.com/us/products/middleware/exalogic/overview/index.html"&gt;Exalogic&lt;/a&gt; is the Engineered System for running Middleware and Applications, including SAP. (And one of my first duties as part of my group was to write a white paper about “&lt;a href="http://www.oracle.com/us/products/middleware/netweaver-on-exalogic-489027.pdf"&gt;Running SAP NetWeaver on the Oracle Exalogic Elastic Cloud&lt;/a&gt;”)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.oracle.com/us/products/database/database-appliance/index.html"&gt;The Oracle Database Appliance&lt;/a&gt; is the easiest to use, all-in-one database appliance for small and medium enterprises or individual departments.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.oracle.com/us/corporate/features/feature-obda-498724.html"&gt;The Big Data Appliance&lt;/a&gt; makes it easy to pre-process &lt;a href="http://en.wikipedia.org/wiki/Big_data"&gt;Big Data&lt;/a&gt; for your database, NoSQL included.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.oracle.com/us/solutions/ent-performance-bi/business-intelligence/exalytics-bi-machine/overview/index.html"&gt;Exalytics&lt;/a&gt; is the Business Intelligence System that leverages 1 TB of RAM to slice and dice huge amounts of data at lightning speed.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.oracle.com/us/products/servers-storage/servers/sparc-enterprise/supercluster/supercluster-t4-4/overview/index.html"&gt;SPARC SuperCluster&lt;/a&gt; is the most flexible Engineered System: It comes with both Exadata and Exalogic technologies to boost database and middleware performance within the same box, and it can run any other application, too. A full Enterprise IT stack in a single box. I can’t wait to see SAP certified on &lt;em&gt;this&lt;/em&gt; baby!&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.oracle.com/us/products/servers-storage/storage/nas/overview/index.html"&gt;The ZFS Storage Appliances&lt;/a&gt; are part of Oracle’s Engineered Systems, too. The one-stop shop for a wide range of storage requirements. It's also used within Exalogic and SPARC SuperCluster as a common repository for compute nodes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Your Take on Engineered Systems&lt;/h2&gt;
&lt;p&gt;What do you think? Do you see how Engineered Systems change IT? Or do you still see value in building stuff from scratch, over and over again?&lt;/p&gt;
&lt;p&gt;What are &lt;em&gt;your&lt;/em&gt; experiences with Engineered Systems? What aspects of Engineered Systems would you like to see covered in this blog?&lt;/p&gt;
&lt;p&gt;Drop me a few lines of comment below, or send me mail. Let’s discuss!&lt;/p&gt;
&lt;p&gt;*: Amazon affiliate link. Buy cool books at no extra charge, and I’ll get a small kickback. We both win!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.flickr.com/photos/flamesworddragon/5654591687/sizes/z/in/photostream/"&gt;Car picture&lt;/a&gt; by Flickr user &lt;a href="http://www.flickr.com/people/flamesworddragon/"&gt;flamesworddragon&lt;/a&gt;, used under Creative Commons License.&lt;/p&gt;
&lt;div class="flattr-box"&gt;&lt;script type="text/javascript"&gt;
  var flattr_uid = '26528';
  var flattr_tle = 'The Rise of Engineered Systems';
  var flattr_dsc = 'I changed into a new role at Oracle: I now work for the EMEA Engineered Systems Architecture Team (ESAT). We support Oracle’s EMEA Engineered Systems business by engaging with customers, enabling our field organization with trainings and through evangelization.You can call me biased towards &amp;lt;a href=&amp;quot;http://www.oracle.com/us/products/engineered-systems/index.html&amp;quot;&amp;gt;Engineered Systems&amp;lt;/a&amp;gt; now, but that would be like accusing a Mac fanboy of suffering from the &amp;lt;a href=&amp;quot;http://en.wikipedia.org/wiki/Stockholm_syndrome&amp;quot;&amp;gt;Stockholm Syndrome&amp;lt;/a&amp;gt;, when it’s actually the other way round.The other side of the “biased” medal really is that I have a choice of where I want to work, and one of the reasons I changed from my cozy SPARC/Solaris Technology camp to the Engineered Systems crowd is: I believe the world of IT is changing.Let me explain.';
  var flattr_tag = 'appliance,architecture,big data,engineered system,enterprise,exadata,exalogic,exalytics,General,it,sparc,supercluster';
  var flattr_cat = 'text';
  var flattr_url = 'http://constantin.glez.de/blog/2011/12/rise-engineered-systems';
  var flattr_lng = 'en_GB'&lt;/script&gt;
&lt;script src="http://api.flattr.com/button/load.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/div&gt;&lt;script src="http://feedproxy.google.com/~s/ConstantThinking/?i=http://constantin.glez.de/blog/2011/12/rise-engineered-systems" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;div class='sexybookmarks-default-3761'&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=8RgBfpYjrvw:ca9nzxC9Dtk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=8RgBfpYjrvw:ca9nzxC9Dtk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=8RgBfpYjrvw:ca9nzxC9Dtk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=8RgBfpYjrvw:ca9nzxC9Dtk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=8RgBfpYjrvw:ca9nzxC9Dtk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=8RgBfpYjrvw:ca9nzxC9Dtk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=8RgBfpYjrvw:ca9nzxC9Dtk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=8RgBfpYjrvw:ca9nzxC9Dtk:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=8RgBfpYjrvw:ca9nzxC9Dtk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ConstantThinking/~4/8RgBfpYjrvw" height="1" width="1"/&gt;</description>
 <category domain="http://constantin.glez.de/tag/appliance">appliance</category>
 <category domain="http://constantin.glez.de/tag/architecture">architecture</category>
 <category domain="http://constantin.glez.de/tag/big-data">big data</category>
 <category domain="http://constantin.glez.de/tag/engineered-system">engineered system</category>
 <category domain="http://constantin.glez.de/tag/enterprise">enterprise</category>
 <category domain="http://constantin.glez.de/tag/exadata">exadata</category>
 <category domain="http://constantin.glez.de/tag/exalogic">exalogic</category>
 <category domain="http://constantin.glez.de/tag/exalytics">exalytics</category>
 <category domain="http://constantin.glez.de/category/general">General</category>
 <category domain="http://constantin.glez.de/tag/it">it</category>
 <category domain="http://constantin.glez.de/tag/sparc">sparc</category>
 <category domain="http://constantin.glez.de/tag/supercluster">supercluster</category>
 
 <pubDate>Wed, 07 Dec 2011 14:11:38 +0000</pubDate>
 <dc:creator>constant</dc:creator>
 <guid isPermaLink="false">233 at http://constantin.glez.de</guid>
<feedburner:origLink>http://constantin.glez.de/blog/2011/12/rise-engineered-systems</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/ConstantThinking/~5/wDFvpOCBwRE/preview" length="156689" type="image/jpeg" /><feedburner:origEnclosureLink>http://constantin.glez.de/image/view/234/preview</feedburner:origEnclosureLink></item>
<item>
 <title>Solaris 11 Launch Blog Carnival Roundup</title>
 <link>http://feedproxy.google.com/~r/ConstantThinking/~3/LGalZ3mn79E/solaris-11-launch-blog-carnival-roundup</link>
 <description>&lt;div class="all-attached-images"&gt;&lt;div class="image-attach-body image-attach-node-232" style="width: 320px;"&gt;&lt;a href="/image/32-solaris-11-blog-posts"&gt;&lt;img src="http://constantin.glez.de/sites/constantin.glez.de/files/images/solaris11blogs.blog.jpg" alt="32 Solaris 11 Blog Posts" title="32 Solaris 11 Blog Posts"  class="image image-blog " width="320" height="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Solaris 11 is here!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;And together with the official launch activities, a lot of Oracle and non-Oracle bloggers contributed helpful and informative blog articles to help your datacenter &lt;a href="http://en.wikipedia.org/wiki/Up_to_eleven"&gt;go to eleven&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here are some notable blog postings, sorted by category for your Solaris 11 blog-reading pleasure:&lt;/p&gt;
&lt;h2&gt;Getting Started/Overview&lt;/h2&gt;
&lt;p&gt;A lot of people speculated that the official launch of Solaris 11 would be on 11/11 (whatever way you want to turn it), but it actually happened two days earlier. Larry Wake himself offers &lt;a href="http://blogs.oracle.com/solaris/entry/11_reasons_oracle_solaris_11"&gt;11 Reasons Why Oracle Solaris 11 11/11 Isn't Being Released on 11/11/11&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Then, Larry goes on with a summary: &lt;em&gt;&lt;a href="http://blogs.oracle.com/solaris/entry/oracle_solaris_11_the_first"&gt;Oracle Solaris 11: The First Cloud OS&lt;/a&gt;&lt;/em&gt; gives you a short and sweet rundown of what the major new features of Solaris 11 are.&lt;/p&gt;
&lt;p&gt;Jeff Victor has his own list of &lt;em&gt;&lt;a href="http://blogs.oracle.com/JeffV/entry/what_s_new_in_oracle"&gt;What's New in Oracle Solaris 11&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;A popular Solaris 11 meme is to write a blog post about 11 favourite features: &lt;a href="http://blogs.oracle.com/jimlaurent/entry/11_reason_to_use_solaris"&gt;Jim Laurent's &lt;em&gt;11 Reasons to Love Solaris 11&lt;/em&gt;&lt;/a&gt;, &lt;a href="http://blogs.oracle.com/darren/entry/my_11_favourite_solaris_11"&gt;Darren Moffat's &lt;em&gt;11 Favourite Solaris 11 Features&lt;/em&gt;&lt;/a&gt;, &lt;a href="http://blogs.oracle.com/zoneszone/entry/these_are_11_of_my"&gt;Mike Gerdt's &lt;em&gt;11 of My Favourite Things!&lt;/em&gt;&lt;/a&gt; are just three examples of "11 Favourite Things..." type blog posts, I'm sure many more will follow...&lt;/p&gt;
&lt;p&gt;More official overview content for Solaris 11 is available from the &lt;a href="http://www.oracle.com/technetwork/server-storage/solaris11/overview/index.html"&gt;Oracle Tech Network Solaris 11 Portal&lt;/a&gt;. Also, check out Rick Ramsey's blog post &lt;em&gt;&lt;a href="http://blogs.oracle.com/otn/entry/solaris_11_resources_for_system"&gt;Solaris 11 Resources for System Administrators&lt;/a&gt;&lt;/em&gt; on the OTN Blog and his secret &lt;em&gt;&lt;a href="http://blogs.oracle.com/OTNGarage/entry/5_commands_that_make_solaris"&gt;5 Commands That Make Solaris Administration Easier&lt;/a&gt;&lt;/em&gt; post from the OTN Garage.&lt;/p&gt;
&lt;h2&gt;(Automatic) Installation and the Image Packaging System (IPS)&lt;/h2&gt;
&lt;p&gt;The brand new Image Packaging System (IPS) and the Automatic Installer (IPS), together with numerous other install/packaging/boot/patching features are among the most significant improvements in Solaris 11.&lt;/p&gt;
&lt;p&gt;But before installing, you may wonder whether Solaris 11 will support your particular set of hardware devices. Again, the OTN Garage comes to the rescue with Rick Ramsey's post &lt;em&gt;&lt;a href="http://blogs.oracle.com/OTNGarage/entry/how_to_find_out_which"&gt;How to Find Out Which Devices Are Supported By Solaris 11&lt;/a&gt;&lt;/em&gt;. Included is a useful guide to all the first steps to get your Solaris 11 system up and running.&lt;/p&gt;
&lt;p&gt;Tim Foster had a whole handful of blog posts lined up for the launch, teaching you everything you need to know about IPS but didn't dare to ask: &lt;em&gt;&lt;a href="http://timsfoster.wordpress.com/2011/11/09/the-ips-system-repository/"&gt;The IPS System Repository&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="http://timsfoster.wordpress.com/2011/11/09/ips-self-assembly-part-1-overlays/"&gt;IPS Self-assembly  - Part 1: Overlays&lt;/a&gt;&lt;/em&gt; and &lt;em&gt;&lt;a href="http://timsfoster.wordpress.com/2011/11/09/self-assembly-part-2-multiple-packages-delivering-configuration/"&gt;Part 2: Multiple Packages Delivering Configuration&lt;/a&gt;&lt;/em&gt;. Watch out for more IPS posts from Tim!&lt;/p&gt;
&lt;p&gt;If installing packages or upgrading your system from the net makes you uneasy, then you're not alone: Jim Laurent will tech you how &lt;em&gt;&lt;a href="http://blogs.oracle.com/jimlaurent/entry/building_a_solaris_11_repository"&gt;Building a Solaris 11 Repository Without Network Connection&lt;/a&gt;&lt;/em&gt; will make your life easier.&lt;/p&gt;
&lt;p&gt;Many of you have already peeked into the future by installing Solaris 11 Express. If you're now wondering whether you can upgrade or whether a fresh install is necessary, then check out Alan Hargreaves's post &lt;em&gt;&lt;a href="http://blogs.oracle.com/tpenta/entry/upgrading_solaris_11_express_b151a"&gt;Upgrading Solaris 11 Express b151a with support to Solaris 11&lt;/a&gt;&lt;/em&gt;. The trick is in upgrading your &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;pkg(1M)&lt;/code&gt;&lt;/span&gt; first.&lt;/p&gt;
&lt;h2&gt;Networking&lt;/h2&gt;
&lt;p&gt;One of the first things to do after installing Solaris 11 (or any operating system for that matter), is to set it up for networking. Solaris 11 comes with the brand new "Network Auto-Magic" feature which can figure out everything by itself. For those cases where you want to exercise a little more control, Solaris 11 left a few people scratching their heads. Fortunately, Tschokko wrote up this cool blog post: &lt;em&gt;&lt;a href="http://blog.tschokko.de/archives/1007"&gt;Solaris 11 manual IPv4 &amp;amp; IPv6 configuration&lt;/a&gt;&lt;/em&gt; right after the launch ceremony. Thanks, Tschokko!&lt;/p&gt;
&lt;p&gt;And Milek points out a long awaited networking feature in Solaris 11 called &lt;em&gt;&lt;a href="http://milek.blogspot.com/2011/11/solaris-11-hostmodel.html"&gt;Solaris 11 - hostmodel&lt;/a&gt;&lt;/em&gt;, which I know for a fact that many customers have looked forward to: How to "bind" a Solaris 11 system to a specific gateway for specific IP address it is using.&lt;/p&gt;
&lt;p&gt;Steffen Weiberle teaches us how to tune the Solaris 11 networking stack the proper way: &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;ipadm(1M)&lt;/code&gt;&lt;/span&gt;. No more fiddling with &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;ndd(1M)&lt;/code&gt;&lt;/span&gt;! Check out his tutorial on &lt;em&gt;&lt;a href="http://blogs.oracle.com/stw/entry/solaris_11_express_network_tunables"&gt;Solaris 11 Network Tunables&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;And if you want to get even deeper into the networking stack, there's nothing better than DTrace. Alan Maguire teaches you in: &lt;em&gt;&lt;a href="http://blogs.oracle.com/amaguire/entry/dtracing_tcp_congestion_control"&gt;DTracing TCP Congestion Control&lt;/a&gt;&lt;/em&gt; how to probe deeply into the Solaris 11 TCP/IP stack, the TCP congestion control part in particular. Don't miss his other DTrace and TCP related blog posts!&lt;/p&gt;
&lt;h2&gt;DTrace&lt;/h2&gt;
&lt;p&gt;And there we are: DTrace, the king of all observability tools. Long time DTrace veteran and co-author of &lt;a href="http://www.amazon.com/gp/product/0132091518/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=conchathebloo-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399369&amp;amp;creativeASIN=0132091518"&gt;The DTrace book&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=conchathebloo-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0132091518&amp;amp;camp=217145&amp;amp;creative=399369" width="1" height="1" border="0" alt="" /&gt;*, Brendan Gregg blogged about &lt;em&gt;&lt;a href="http://dtrace.org/blogs/brendan/2011/11/09/solaris-11-dtrace-syscall-provider-changes/"&gt;Solaris 11 DTrace syscall provider changes&lt;/a&gt;&lt;/em&gt;. BTW, after you install Solaris 11, check out the DTrace toolkit which is installed by default in &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;/usr/dtrace/DTT&lt;/code&gt;&lt;/span&gt;. It is chock full of handy DTrace scripts, many of which contributed by Brendan himself!&lt;/p&gt;
&lt;h2&gt;Security&lt;/h2&gt;
&lt;p&gt;Another big theme in Solaris 11, and one that is crucial for the success of any operating system in the Cloud is Security. Here are some notable posts in this category:&lt;/p&gt;
&lt;p&gt;Darren Moffat starts by showing us how to completely get rid of root: &lt;em&gt;&lt;a href="http://blogs.oracle.com/darren/"&gt;Completely Disabling Root Logins on Solaris 11&lt;/a&gt;&lt;/em&gt;. With no root user, there's one major entry point less to worry about.&lt;/p&gt;
&lt;p&gt;But that's only the start. In &lt;em&gt;&lt;a href="http://blogs.oracle.com/darren/entry/immutable_zones_on_encrypted_zfs"&gt;Immutable Zones on Encrypted ZFS&lt;/a&gt;&lt;/em&gt;, Darren shows us how to double the security of your services: First by locking them into the new Immutable Zones feature, then by encrypting their data using the new ZFS encryption feature.&lt;/p&gt;
&lt;p&gt;And if you're still missing &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;sudo&lt;/code&gt;&lt;/span&gt; from your Linux days, Darren again has a solution: &lt;em&gt;&lt;a href="http://blogs.oracle.com/darren/entry/password_caching_for_solaris_su"&gt;Password (PAM) caching for Solaris su - "a la sudo"&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;If you're wondering how much compute power all this encryption will cost you, you're in luck: The &lt;em&gt;&lt;a href="http://blogs.oracle.com/DanX/entry/solaris_x86_aesni_openssl_engine"&gt;Solaris X86 AESNI OpenSSL Engine&lt;/a&gt;&lt;/em&gt; will make sure you'll use your Intel's embedded crypto support to its fullest. And if you own a brand new SPARC T4 machine you're even luckier: It comes with its own &lt;em&gt;&lt;a href="http://blogs.oracle.com/DanX/entry/sparc_t4_openssl_engine"&gt;SPARC T4 OpenSSL Engine&lt;/a&gt;&lt;/em&gt;. Dan Anderson's posts show how there really is now excuse not to encrypt any more...&lt;/p&gt;
&lt;h2&gt;Developers&lt;/h2&gt;
&lt;p&gt;Solaris 11 has a lot to offer to developers as well. Ali Bahrami has a series of blog posts that cover diverse developer topics: &lt;em&gt;&lt;a href="http://blogs.oracle.com/ali/entry/elffile_elf_specific_file_identification"&gt; elffile: ELF Specific File Identification Utility&lt;/a&gt;&lt;/em&gt;, &lt;em&gt;&lt;a href="http://blogs.oracle.com/ali/entry/using_stub_objects"&gt;Using Stub Objects&lt;/a&gt;&lt;/em&gt; and &lt;em&gt;&lt;a href="http://blogs.oracle.com/ali/entry/the_stub_proto_not_just"&gt;The Stub Proto: Not Just For Stub Objects Anymore&lt;/a&gt;&lt;/em&gt; to name a few.&lt;/p&gt;
&lt;p&gt;BTW, if you're a developer and want to shape the future of Solaris 11, then Vijay Tatkar has a hint for you:  &lt;em&gt;&lt;a href="http://blogs.oracle.com/tatkar/entry/sun_is_hiring"&gt;Oracle (Sun Systems Group) is hiring!&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Desktop and Graphics&lt;/h2&gt;
&lt;p&gt;Yes, Solaris 11 is a 100% server OS, but it can also offer a decent desktop environment, especially if you are a developer. Alan Coopersmith starts by discussing &lt;em&gt;&lt;a href="http://blogs.oracle.com/alanc/entry/s11_x11"&gt;S11 X11: ye olde window system in today's new operating system&lt;/a&gt;&lt;/em&gt;, then Calum Benson shows us around &lt;em&gt;&lt;a href="http://blogs.oracle.com/calum/entry/what_s_new_on_the"&gt;What's new on the Solaris 11 Desktop&lt;/a&gt;. Even accessibility is a first-class citizen in the Solaris 11 user interface. Peter Korn celebrates: &lt;em&gt;&lt;a href="http://blogs.oracle.com/korn/entry/accessible_solaris_11"&gt;Accessible Oracle Solaris 11 - released!&lt;/a&gt;&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;Performance&lt;/h2&gt;
&lt;p&gt;Gone are the days of "Slowaris", when Solaris was among the few OSes that "did the right thing" while others cut corners just to win benchmarks. Today, Solaris continues doing the right thing, and it delivers the right performance at the same time. Need proof? Check out Brian's BestPerf blog with continuous updates from the benchmarking lab, including &lt;em&gt;&lt;a href="http://blogs.oracle.com/BestPerf/entry/20111109_solaris_11_benchmark_list"&gt;Recent Benchmarks Using Oracle Solaris 11&lt;/a&gt;&lt;/em&gt;!&lt;/p&gt;
&lt;h2&gt;Send Me More Solaris 11 Launch Articles!&lt;/h2&gt;
&lt;p&gt;These are just a few of the more interesting blog articles that came out around the Solaris 11 launch, I'm sure there are many more!&lt;/p&gt;
&lt;p&gt;Feel free to post a comment below if you find a particularly interesting blog post that hasn't been listed so far and share your enthusiasm for Solaris 11!&lt;/p&gt;
&lt;p&gt;*Affiliate link: Buy cool stuff and support this blog at no extra cost. We both win!&lt;/p&gt;
&lt;div class="flattr-box"&gt;&lt;script type="text/javascript"&gt;
  var flattr_uid = '26528';
  var flattr_tle = 'Solaris 11 Launch Blog Carnival Roundup';
  var flattr_dsc = '&amp;lt;strong&amp;gt;Solaris 11 is here!&amp;lt;/strong&amp;gt;And together with the official launch activities, a lot of Oracle and non-Oracle bloggers contributed helpful and informative blog articles to help your datacenter &amp;lt;a href=&amp;quot;http://en.wikipedia.org/wiki/Up_to_eleven&amp;quot;&amp;gt;go to eleven&amp;lt;/a&amp;gt;.Here are some notable blog postings, sorted by category for your Solaris 11 blog-reading pleasure:';
  var flattr_tag = 'blogging,digest,Oracle,Solaris,solaris,solaris 11';
  var flattr_cat = 'text';
  var flattr_url = 'http://constantin.glez.de/blog/2011/11/solaris-11-launch-blog-carnival-roundup';
  var flattr_lng = 'en_GB'&lt;/script&gt;
&lt;script src="http://api.flattr.com/button/load.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/div&gt;&lt;script src="http://feedproxy.google.com/~s/ConstantThinking/?i=http://constantin.glez.de/blog/2011/11/solaris-11-launch-blog-carnival-roundup" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;div class='sexybookmarks-default-4343'&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=LGalZ3mn79E:noIf0grVV4Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=LGalZ3mn79E:noIf0grVV4Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=LGalZ3mn79E:noIf0grVV4Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=LGalZ3mn79E:noIf0grVV4Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=LGalZ3mn79E:noIf0grVV4Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=LGalZ3mn79E:noIf0grVV4Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=LGalZ3mn79E:noIf0grVV4Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=LGalZ3mn79E:noIf0grVV4Q:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=LGalZ3mn79E:noIf0grVV4Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ConstantThinking/~4/LGalZ3mn79E" height="1" width="1"/&gt;</description>
 <category domain="http://constantin.glez.de/tag/blogging">blogging</category>
 <category domain="http://constantin.glez.de/tag/digest">digest</category>
 <category domain="http://constantin.glez.de/tag/oracle">Oracle</category>
 <category domain="http://constantin.glez.de/category/solaris">Solaris</category>
 <category domain="http://constantin.glez.de/tag/solaris">solaris</category>
 <category domain="http://constantin.glez.de/tag/solaris-11">solaris 11</category>
 
 <pubDate>Sat, 12 Nov 2011 16:31:27 +0000</pubDate>
 <dc:creator>constant</dc:creator>
 <guid isPermaLink="false">231 at http://constantin.glez.de</guid>
<feedburner:origLink>http://constantin.glez.de/blog/2011/11/solaris-11-launch-blog-carnival-roundup</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/ConstantThinking/~5/a4Joc81KA4c/preview" length="51761" type="image/jpeg" /><feedburner:origEnclosureLink>http://constantin.glez.de/image/view/232/preview</feedburner:origEnclosureLink></item>
<item>
 <title>Join the Solaris 11 Launch Party! </title>
 <link>http://feedproxy.google.com/~r/ConstantThinking/~3/JxXYw0l2mF8/join-solaris-11-launch-party</link>
 <description>&lt;div class="all-attached-images"&gt;&lt;div class="image-attach-body image-attach-node-139" style="width: 320px;"&gt;&lt;a href="/image/solaris11roadjpg"&gt;&lt;img src="http://constantin.glez.de/sites/constantin.glez.de/files/images/Solaris_11_Road.blog.jpg" alt="Solaris_11_Road.jpg" title="Solaris_11_Road.jpg"  class="image image-blog " width="320" height="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;In about a week, on November 9th, 2011, the long-awaited final version of Solaris 11 will be launched. If you happen to be near New York that day (and assuming there'll be no &lt;a href="http://www.huffingtonpost.com/2011/10/29/noreaster-new-york-snow_n_1065608.html"&gt;power outages&lt;/a&gt;), you're invited to &lt;a href="http://blogs.oracle.com/solaris/entry/you_re_invited_november_9th"&gt;join the official Solaris 11 launch party&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Solaris 11 has been in the making since 2005, when Solaris 10 was launched. In fact, every major Solaris release is just a fork of the ongoing Solaris development train, so the very first uber-pre-release of Solaris 11 was actually generated only weeks after Solaris 10 hit the shelves.&lt;/p&gt;
&lt;p&gt;Since then, Solaris 11 (or: Project Nevada as it was called) has seen a lot of OS history: An open source adolescence called OpenSolaris, growing adoption and community work, a broad range of ground-braking new features, long overdue re-writes, brand new concepts, controversial discussions, a major acquisition, rules changed and rules kept, siblings and offsprings, lots of investments, entire companies built on top of its source code, generations of processors and hardware, lots of systems in production, the Cloud and what not.&lt;/p&gt;
&lt;p&gt;And all that before it was even born. Quite an achievment, eh?&lt;/p&gt;
&lt;p&gt;So when you finally hold that DVD in your hand... Nah, DVDs are last century. Let me try again.&lt;/p&gt;
&lt;p&gt;So when you finally finish that download, here are a few things about Solaris 11 to try out and dig into:&lt;/p&gt;
&lt;h2&gt;Brand New Package Management, a Brand New Root File System and a Brand New Installer&lt;/h2&gt;
&lt;p&gt;This is perhaps the biggest change from Solaris 10 to Solaris 11: The way Solaris is installed in the first place. Over time, the old System V package manager and patching system has become quite a burden, so it just had to be re-written:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A modern, network-based, finely-granular package manager called &lt;a href="http://hub.opensolaris.org/bin/view/Project+pkg/"&gt;IPS&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;No more patching, just updates of existing packages.&lt;/li&gt;
&lt;li&gt;No more entanglement between installation and configuration.&lt;/li&gt;
&lt;li&gt;A new, powerful concept for root file systems: &lt;a href="http://download.oracle.com/docs/cd/E19963-01/html/821-1462/beadm-1m.html"&gt;Boot environments&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Everything is neatly integrated with ZFS.&lt;/li&gt;
&lt;li&gt;A new, network-centric installation mechanism that works hand in hand with IPS and ZFS: &lt;a href="http://hub.opensolaris.org/bin/view/Project+caiman/auto_install"&gt;Automated Installer (AI)&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Backward-compatibility with existing System-V packages.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I know some people had their issues with the new ways things are handled with IPS, boot environments and AI, but I'm sure they'll eventually get over it: Every change is difficult at first, but when the power of the new concepts start shining through, we'll all be glad we did it. And over time, and with more experience from the installed base, I'm sure that the Solaris team will iron out any missing bits.&lt;/p&gt;
&lt;p&gt;Learn more about this by visiting the &lt;a href="http://hub.opensolaris.org/bin/view/Community+Group+install/"&gt;Installation and Packaging Community&lt;/a&gt; on OpenSolaris.org.&lt;/p&gt;
&lt;h2&gt;A Brand New Way to Support Existing Installations&lt;/h2&gt;
&lt;p&gt;Whenever a new release of Solaris came out in the past, it always took a long time until it would finally be adopted in production. The reason was simple: Migration. Granted, there's a 100% binary compatibility guarantee with Solaris that (technically, not legally) dates back to the ancient times of Solaris 2.6 and that only one competitor can remotely compare itself with (can you name it?), but still there was quite some work involved in moving a Solaris release to its successor, plus formal certification, of course.&lt;/p&gt;
&lt;p&gt;Now, with Solaris 11, we'll get Solaris 10 Containers: Automatically pack your existing Solaris 10 installation into a Solaris 10 Container, then import into Solaris 11 as a branded zone, done.  "Brand" new, indeed. Sorry for the pun.&lt;/p&gt;
&lt;p&gt;No need for re-scripting stuff. No need to re-certify. No need to re-install or re-configure. Take the existing stuff and run unchanged, with a new OS under the covers. Migration heaven.&lt;/p&gt;
&lt;p&gt;Yes, there may be the occasional detail to observe, but for the utter majority of existing installations, I expect the migration process to be smooth and slick: Containerfy, then import, done. A huge step in terms of ease-of-migration, and one that I expect will greatly help adoption of Solaris 11.&lt;/p&gt;
&lt;p&gt;More about &lt;a href="http://www.oracle.com/technetwork/server-storage/solaris11/technologies/virtualization-306056.html"&gt;Virtualization in Solaris 11 is available in this OTN feature&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Brand New Networking&lt;/h2&gt;
&lt;p&gt;Solaris 10 changed the way Applications and Services are run and introduced virtualization at just the right level and with no friction: Zones.&lt;/p&gt;
&lt;p&gt;Now, Solaris 11 will do the same to the network: Thanks to Project Crossbow, Solaris 11 users can enjoy limitless network virtualization including virtual NICs, virtual switches and routers, a built-in load-balancer and including full resource management.&lt;/p&gt;
&lt;p&gt;Check out this &lt;a href="https://sunaytripathi.wordpress.com/2010/03/25/crossbow-solaris-network-virtualization-resource-provisioning/"&gt;introductory article with examples by Sunay Tripathi to get a better feel about Crossbow&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;And if you're looking for 10x faster latency and 4x more bandwidth, then check out the new Infiniband stack that is included with Solaris 11. This will give your Exadata and Exalogic (and any other Infiniband based hardware) a nice, OS-level upgrade. Catch up with &lt;a href="http://blogs.oracle.com/RandomDude/"&gt;Ted Kim's Weblog&lt;/a&gt; if you want to learn more about InfiniBand in Solaris 11.&lt;/p&gt;
&lt;p&gt;A whole new way of looking at networks.&lt;/p&gt;
&lt;h2&gt;Brand new Storage&lt;/h2&gt;
&lt;p&gt;Solaris 11 comes with a brand new version of ZFS, including two new major, much anticipated features: &lt;a href="http://constantin.glez.de/blog/2010/03/opensolaris-zfs-deduplication-everything-you-need-know"&gt;De-Duplication&lt;/a&gt; and &lt;a href="http://blogs.oracle.com/darren/entry/introducing_zfs_crypto_in_oracle"&gt;Encryption&lt;/a&gt;, plus lots of new and improved stuff under the hood.&lt;/p&gt;
&lt;p&gt;But there's a lot more to discover: The new &lt;a href="http://hub.opensolaris.org/bin/view/Project+comstar/"&gt;COMSTAR framework&lt;/a&gt; will turn any Solaris 11 system into a first-class block-based storage engine citizen, be it on a SAN, an Infiniband or an Ethernet network: Create arbitrarily large volumes in seconds with ZVOLs, export them via FC, iSER or iSCSI, then enjoy the beauty of ZFS data integrity, snapshots, deduplication and storage replication with easy administration. Better than the big storage boys, but without the cost.&lt;/p&gt;
&lt;p&gt;If you happen to be at the &lt;a href="http://www.doag.org/events/konferenzen/doag-2011.html"&gt;DOAG 2011 Conference&lt;/a&gt; in Nürnberg, Nov. 15th-17th, feel free to show up at my &lt;a href="http://www.doag.org/konferenz/2011-konferenz-streamdetails.php"&gt;talk on "Neue ZFS-Funktionen in Solaris 11"&lt;/a&gt; on Tuesday, Nov. 15th, 15:00.&lt;/p&gt;
&lt;h2&gt;More DTrace&lt;/h2&gt;
&lt;p&gt;Solaris 10 brought us the ultimate X-Ray tool for the kernel and the rest of the OS: DTrace. more than 30,000 probes for your observation and analytical pleasure.&lt;/p&gt;
&lt;p&gt;With Solaris 11, DTrace extends to the whole stack: With a total of 77982 probes (at least on my plain vanilla system, give or take a few dozen), you'll be able to observe your application throughout the whole stack: From kernel to OS to the web server, middleware (including Java and PHP) up to the browser.&lt;/p&gt;
&lt;p&gt;Full stack observability, at run-time, in production, without any code change. What more can developers and administrators ask for?&lt;/p&gt;
&lt;p&gt;If you want to refresh your DTrace know-how in time before Solaris 11 comes out, check out &lt;a href="http://blogs.oracle.com/observatory/entry/making_yourself_indispensible_with_dtrace"&gt;this postfrom the Observatory&lt;/a&gt; with a real-life use-case of DTrace, including an example on how to analyze a web application with MySQL DTrace probes.&lt;/p&gt;
&lt;p&gt;Of course, the real authority in terms of DTrace literature is &lt;a href="http://dtrace.org/blogs/brendan/"&gt;Brendan Gregg&lt;/a&gt;'s and Jim Mauro's book &lt;em&gt;&lt;a href="http://www.amazon.com/gp/product/0132091518/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=conchathebloo-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399369&amp;amp;creativeASIN=0132091518"&gt;DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X and FreeBSD (Oracle Solaris Series)&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=conchathebloo-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0132091518&amp;amp;camp=217145&amp;amp;creative=399369" width="1" height="1" border="0" alt="" /&gt;&lt;/em&gt;* which is highly recommended. If you want to get a preview, here's a series of &lt;a href="http://dtrace.org/blogs/brendan/2011/10/02/dtrace-book-short-videos/"&gt;cool videos about the DTrace book and its content&lt;/a&gt;. Their favorite DTrace scripts are included in every Solaris 11 copy in the &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;/opt/DTT&lt;/code&gt;&lt;/span&gt; directory, and this is where you'll get much more!&lt;/p&gt;
&lt;h2&gt;More Security&lt;/h2&gt;
&lt;p&gt;Similarly to DTrace and ZFS, the new security concepts from Solaris 10 have been enhanced in Solaris 11. Most notably, root is no longer the all-powerful user (though you can still make it so if you want), but just a role. This introduces accountability to the way sysadmins handle root passwords: No more anonymity by "just becoming root for a while".&lt;/p&gt;
&lt;p&gt;We already saw encryption being part of the ZFS overhaul and in addition, Solaris 11 includes more and better implementations of common and new encryption algorithms, plus TPM support and of course support for hardware encryption in new processors, both from Intel and from Oracle.&lt;/p&gt;
&lt;p&gt;Finally, Security is now deeper ingrained in other sub-systems such as SMF, IPS, Kerberos, Networking and Trusted Extensions.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.oracle.com/technetwork/articles/servers-storage-admin/o11-072-sol11-sec-for-devel-494885.html"&gt;Here'a a short overview of some new security features in Solaris 11&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Tune In and Follow the Launch&lt;/h2&gt;
&lt;p&gt;I'm sure the Solaris people have a few more good news to share during the November 9 event, so make sure to tune in and &lt;a href="http://www.oracle.com/go/?&amp;amp;Src=7255745&amp;amp;Act=56&amp;amp;pcode=WWMK11010781MPP003"&gt;register for the event&lt;/a&gt;, be it in-person or through the live webcast.&lt;/p&gt;
&lt;h2&gt;Your Take on Solaris 11&lt;/h2&gt;
&lt;p&gt;What are your expectations about Solaris 11? Which new feature do you expect to deliver the biggest benefit to you and your organization? What are your plans for Solaris 11? Drop me a line in the comments and get yourself heard!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Added a reference to the DTrace book. How could I have forgotten? Sorry, was a late night post...&lt;/p&gt;
&lt;p&gt;* Affiliate link: Buy cool stuff here and I'll get a small kickback at no extra cost for you. We both win!&lt;/p&gt;
&lt;div class="flattr-box"&gt;&lt;script type="text/javascript"&gt;
  var flattr_uid = '26528';
  var flattr_tle = 'Join the Solaris 11 Launch Party! ';
  var flattr_dsc = 'In about a week, on November 9th, 2011, the long-awaited final version of Solaris 11 will be launched. If you happen to be near New York that day (and assuming there&amp;#039;ll be no &amp;lt;a href=&amp;quot;http://www.huffingtonpost.com/2011/10/29/noreaster-new-york-snow_n_1065608.html&amp;quot;&amp;gt;power outages&amp;lt;/a&amp;gt;), you&amp;#039;re invited to &amp;lt;a href=&amp;quot;http://blogs.oracle.com/solaris/entry/you_re_invited_november_9th&amp;quot;&amp;gt;join the official Solaris 11 launch party&amp;lt;/a&amp;gt;!Solaris 11 has been in the making since 2005, when Solaris 10 was launched. In fact, every major Solaris release is just a fork of the ongoing Solaris development train, so the very first uber-pre-release of Solaris 11 was actually generated only weeks after Solaris 10 hit the shelves.Since then, Solaris 11 (or: Project Nevada as it was called) has seen a lot of OS history: An open source adolescence called OpenSolaris, growing adoption and community work, a broad range of ground-braking new features, long overdue re-writes, brand new concepts, controversial discussions, a major acquisition, rules changed and rules kept, siblings and offsprings, lots of investments, entire companies built on top of its source code, generations of processors and hardware, lots of systems in production, the Cloud and what not.And all that before it was even born. Quite an achievment, eh?';
  var flattr_tag = 'COMSTAR,crossbow,dtrace,launch,Solaris,solaris,solaris 11,zfs';
  var flattr_cat = 'text';
  var flattr_url = 'http://constantin.glez.de/blog/2011/11/join-solaris-11-launch-party';
  var flattr_lng = 'en_GB'&lt;/script&gt;
&lt;script src="http://api.flattr.com/button/load.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/div&gt;&lt;script src="http://feedproxy.google.com/~s/ConstantThinking/?i=http://constantin.glez.de/blog/2011/11/join-solaris-11-launch-party" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;div class='sexybookmarks-default-9152'&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=JxXYw0l2mF8:nMsJ45ogGTM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=JxXYw0l2mF8:nMsJ45ogGTM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=JxXYw0l2mF8:nMsJ45ogGTM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=JxXYw0l2mF8:nMsJ45ogGTM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=JxXYw0l2mF8:nMsJ45ogGTM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=JxXYw0l2mF8:nMsJ45ogGTM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=JxXYw0l2mF8:nMsJ45ogGTM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=JxXYw0l2mF8:nMsJ45ogGTM:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=JxXYw0l2mF8:nMsJ45ogGTM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ConstantThinking/~4/JxXYw0l2mF8" height="1" width="1"/&gt;</description>
 <category domain="http://constantin.glez.de/tag/comstar">COMSTAR</category>
 <category domain="http://constantin.glez.de/tag/crossbow">crossbow</category>
 <category domain="http://constantin.glez.de/tag/dtrace">dtrace</category>
 <category domain="http://constantin.glez.de/tag/launch">launch</category>
 <category domain="http://constantin.glez.de/category/solaris">Solaris</category>
 <category domain="http://constantin.glez.de/tag/solaris">solaris</category>
 <category domain="http://constantin.glez.de/tag/solaris-11">solaris 11</category>
 <category domain="http://constantin.glez.de/tag/zfs">zfs</category>
 
 <pubDate>Wed, 02 Nov 2011 19:36:06 +0000</pubDate>
 <dc:creator>constant</dc:creator>
 <guid isPermaLink="false">230 at http://constantin.glez.de</guid>
<feedburner:origLink>http://constantin.glez.de/blog/2011/11/join-solaris-11-launch-party</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/ConstantThinking/~5/Z8KRmYq54B8/preview" length="28050" type="image/jpeg" /><feedburner:origEnclosureLink>http://constantin.glez.de/image/view/139/preview</feedburner:origEnclosureLink></item>
<item>
 <title>Solaris 11 Available for Early Adopters</title>
 <link>http://feedproxy.google.com/~r/ConstantThinking/~3/Uqq3hGFdEG8/solaris-11-available-early-adopters</link>
 <description>&lt;div class="all-attached-images"&gt;&lt;div class="image-attach-body image-attach-node-139" style="width: 320px;"&gt;&lt;a href="/image/solaris11roadjpg"&gt;&lt;img src="http://constantin.glez.de/sites/constantin.glez.de/files/images/Solaris_11_Road.blog.jpg" alt="Solaris_11_Road.jpg" title="Solaris_11_Road.jpg"  class="image image-blog " width="320" height="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Maybe I should write more frequently, though that would mean shorter, less elaborate articles. This is the first one of that kind. Let me know what you think!&lt;/p&gt;
&lt;p&gt;Recently, the &lt;a href="http://www.oracle.com/technetwork/server-storage/solaris11/downloads/index-454418.html"&gt;Oracle Solaris 11 Early Adopter Release&lt;/a&gt; became available on the &lt;a href="http://www.oracle.com/technetwork"&gt;Oracle Technology Network&lt;/a&gt; (BTW, can I have a date with that Java Developer, please?). Here's the gist:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Latest Update&lt;/strong&gt;: This is an update to the &lt;a href="http://constantin.glez.de/blog/2010/11/top-7-cool-things-about-new-oracle-solaris-11-express-release"&gt;Oracle Solaris 11 Express&lt;/a&gt; release from almost a year ago, and it's the first publicly available update (though you need to join the OTN program and accept the early adopter license).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fully functional&lt;/strong&gt;: This release is feature complete: All the features expected for Solaris 11 are available in this release. Now, Solaris 11 developers and users can start qualifying their software, hardware and environments against it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;New license&lt;/strong&gt;: This release is covered by a special &lt;a href="http://www.oracle.com/technetwork/licenses/solaris11-ea-lic-485758.html"&gt;OTN Early Adopter License&lt;/a&gt;. Read it before installing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Release Notes&lt;/strong&gt;: They cover known issues, numerous ways of installation, including Auto Installer and USB stick, and a list of obsolete packages and new packages since Solaris 11 Express 2010.11.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Go &lt;a href="http://www.oracle.com/technetwork/server-storage/solaris11/downloads/index-454418.html"&gt;download it now&lt;/a&gt;, try it out and let me know what you think!&lt;/p&gt;
&lt;p&gt;Hat tip to &lt;a href="http://www.scalingbits.com/solaris/11/earlyadopterdownload"&gt;Stefan&lt;/a&gt; for the nudging :).&lt;/p&gt;
&lt;div class="flattr-box"&gt;&lt;script type="text/javascript"&gt;
  var flattr_uid = '26528';
  var flattr_tle = 'Solaris 11 Available for Early Adopters';
  var flattr_dsc = 'Maybe I should write more frequently, though that would mean shorter, less elaborate articles. This is the first one of that kind. Let me know what you think!Recently, the &amp;lt;a href=&amp;quot;http://www.oracle.com/technetwork/server-storage/solaris11/downloads/index-454418.html&amp;quot;&amp;gt;Oracle Solaris 11 Early Adopter Release&amp;lt;/a&amp;gt; became available on the &amp;lt;a href=&amp;quot;http://www.oracle.com/technetwork&amp;quot;&amp;gt;Oracle Technology Network&amp;lt;/a&amp;gt; (BTW, can I have a date with that Java Developer, please?). Here&amp;#039;s the gist:';
  var flattr_tag = 'adoption,developers,Oracle,otn,Solaris,solaris,solaris 11';
  var flattr_cat = 'text';
  var flattr_url = 'http://constantin.glez.de/blog/2011/09/solaris-11-available-early-adopters';
  var flattr_lng = 'en_GB'&lt;/script&gt;
&lt;script src="http://api.flattr.com/button/load.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/div&gt;&lt;script src="http://feedproxy.google.com/~s/ConstantThinking/?i=http://constantin.glez.de/blog/2011/09/solaris-11-available-early-adopters" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;div class='sexybookmarks-default-7815'&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=Uqq3hGFdEG8:-3DjG5seY7Q:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=Uqq3hGFdEG8:-3DjG5seY7Q:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=Uqq3hGFdEG8:-3DjG5seY7Q:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=Uqq3hGFdEG8:-3DjG5seY7Q:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=Uqq3hGFdEG8:-3DjG5seY7Q:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=Uqq3hGFdEG8:-3DjG5seY7Q:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=Uqq3hGFdEG8:-3DjG5seY7Q:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=Uqq3hGFdEG8:-3DjG5seY7Q:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=Uqq3hGFdEG8:-3DjG5seY7Q:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ConstantThinking/~4/Uqq3hGFdEG8" height="1" width="1"/&gt;</description>
 <category domain="http://constantin.glez.de/tag/adoption">adoption</category>
 <category domain="http://constantin.glez.de/tag/developers">developers</category>
 <category domain="http://constantin.glez.de/tag/oracle">Oracle</category>
 <category domain="http://constantin.glez.de/tag/otn">otn</category>
 <category domain="http://constantin.glez.de/category/solaris">Solaris</category>
 <category domain="http://constantin.glez.de/tag/solaris">solaris</category>
 <category domain="http://constantin.glez.de/tag/solaris-11">solaris 11</category>
 
 <pubDate>Mon, 12 Sep 2011 07:42:00 +0000</pubDate>
 <dc:creator>constant</dc:creator>
 <guid isPermaLink="false">229 at http://constantin.glez.de</guid>
<feedburner:origLink>http://constantin.glez.de/blog/2011/09/solaris-11-available-early-adopters</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/ConstantThinking/~5/Z8KRmYq54B8/preview" length="28050" type="image/jpeg" /><feedburner:origEnclosureLink>http://constantin.glez.de/image/view/139/preview</feedburner:origEnclosureLink></item>
<item>
 <title>ZFS: To Dedupe or not to Dedupe...</title>
 <link>http://feedproxy.google.com/~r/ConstantThinking/~3/P36s-k5l5u0/zfs-dedupe-or-not-dedupe</link>
 <description>&lt;div class="all-attached-images"&gt;&lt;div class="image-attach-body image-attach-node-228" style="width: 320px;"&gt;&lt;a href="/image/dedupecostjpg"&gt;&lt;img src="http://constantin.glez.de/sites/constantin.glez.de/files/images/dedupecost.blog.jpg" alt="dedupecost.jpg" title="dedupecost.jpg"  class="image image-blog " width="320" height="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;...that is the question.&lt;/p&gt;
&lt;p&gt;Ever since the introduction of deduplication into ZFS, users have been divided into two camps: One side enthusiastically adopted deduplication as a way to save storage space, while the other remained skeptical, pointing out that dedupe has a cost, and that it may not be always the best option.&lt;/p&gt;
&lt;p&gt;Let's look a little deeper into the benefits of ZFS deduplication as well as the cost, because ultimately it boils down to running a cost/benefit analysis of ZFS deduplication. It's that simple.&lt;/p&gt;
&lt;h2&gt;ZFS Deduplication: What Value Do You Get?&lt;/h2&gt;
&lt;p&gt;ZFS dedupe will discard any data block that is identical to an already written block, while keeping a reference so that it can always reproduce the same block when read. You can &lt;a href="http://constantin.glez.de/blog/2010/03/opensolaris-zfs-deduplication-everything-you-need-know"&gt;read more about ZFS deduplication and how it works here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Before you decide to use deduplication, it's good to know what value you'll get out of it. Here are a few options to figure out how much space you'll save as a result of using ZFS deduplication:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Test it&lt;/strong&gt; with some real data. This is the most accurate and straightforward option: Set up a test pool, enable ZFS deduplication on it, then copy a representative amount of the data you are considering onto it. Then use &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;zpool list&lt;/code&gt;&lt;/span&gt; and look at the &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;DEDUP&lt;/code&gt;&lt;/span&gt; column for the deduplication ratio. The important thing here is to use a &lt;em&gt;representative&lt;/em&gt; amount of data, so you get an accurate estimate of how much savings to expect.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Simulate it&lt;/strong&gt; by applying the &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;zdb -S&lt;/code&gt;&lt;/span&gt; command to an existing pool with the data you want to deduplicate. This option is less accurate than using real data with a real deduped zpool, but it can provide you with a ballpark estimate based on your existing data.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Guess it&lt;/strong&gt;, based on the knowledge you have of your data. Not the best option, but sometimes, setting up a test pool is not feasible and simulating dedupe on existing data doesn't work because you simple don't have any data to analyze with. For example, if you plan to run a storage server for virtual machines: How many machines do you support? How often are they patched? How likely will people apply the same software/patches/data to your machines? How many GB of dedupe-able data is this likely to generate? Can you come up with a representative test case after all to make the guess less guessy?&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In any case, you'll end up having an expected deduplication ratio for the data: For every GB of data you actually store, how many GBs of retrievable data will you get? This number can have any value: Some people see a value of 1.00 (no duplicates whatsoever), others see some moderate savings like 1.5 (store 2 GB, get one free), and some very lucky people can see as much as 20x, for example a virtualization storage server with a very repetitive usage profile.&lt;/p&gt;
&lt;p&gt;Now take your total amount of storage and divide it by the dedup ratio, then subtract the result from your total amount of storage. That is your expected storage savings as a result of deduplication:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Total Storage - ( Total Storage / Expected Dedupe ratio ) = Expected Storage Savings&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;As a fictional example, let's assume that we're looking at a 10 TB storage pool to be used for storing virtual machine images in a virtual desktop scenario. In a quick test, we set up a 1 TB pool and copy some existing VM data to it, which yielded a dedup ratio of 2. This means that we only need about 5 TB of capacity to provide the 10 TB of data thanks to deduplication, hence we would save 5 TB of disk storage.&lt;/p&gt;
&lt;p&gt;Let's assume that the average cost of 1 TB of disk (including controller, enterprise class drives, etc.) is at $1000 for the sake of simplicity: Then dedup would save us $5000 in this particular example.&lt;/p&gt;
&lt;p&gt;So what do we need to &lt;em&gt;spend&lt;/em&gt; in order to realize these cost savings?&lt;/p&gt;
&lt;h2&gt;ZFS Dedupe: The Cost&lt;/h2&gt;
&lt;p&gt;Saving space through deduplication doesn't come for free. There is a cost. In the case of ZFS, it's memory: ZFS keeps a dedup table in which it stores all the checksums of all the blocks that were written after deduplication was enabled. When writing new blocks, it uses this table to determine whether a block has been written yet, or not.&lt;/p&gt;
&lt;p&gt;Over time, the table becomes larger and larger, and since every write operation has to use it, it should be kept in main memory to avoid unnecessary extra reads from disk. To be clear: ZFS can work perfectly well even if the table is not in memory. But the bigger the deduplication table grows, the slower write performance will become, as more and more writes trigger more and more extra reads for dedup table lookups.&lt;/p&gt;
&lt;p&gt;How much memory does one need to keep the ZFS dedup table in memory, and hence your system happy?&lt;/p&gt;
&lt;p&gt;According to the &lt;a href="http://hub.opensolaris.org/bin/view/Community+Group+zfs/dedup"&gt;ZFS dedup FAQ&lt;/a&gt;, each entry in the dedup table costs about 320 Bytes of memory per block. To estimate the size of the dedup table, we need to know &lt;em&gt;how many blocks&lt;/em&gt; ZFS will need to store our data. This question can be tricky: ZFS uses a variable block size between 512 bytes and 128K, depending on the size of the files it stores. So we can't really know in advance how many blocks ZFS will use for storing our data.&lt;/p&gt;
&lt;p&gt;If we mainly store &lt;em&gt;large&lt;/em&gt; files (think videos, photos, etc.), then the average block size will be closer to 128K, if we store &lt;em&gt;small&lt;/em&gt; files (source code, emails, other data), we'll probably be closer to a few K. Here are some ways to find out for sure:&lt;/p&gt;
&lt;h2&gt;Option 1: Count Your Blocks With ZDB&lt;/h2&gt;
&lt;p&gt;The most accurate way to determine the number of blocks is to use the &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;zdb -b &amp;amp;lt;poolname&amp;amp;gt;&lt;/code&gt;&lt;/span&gt; command, which will print out detailed block statistics. But beware: This command may take a long time to complete as it will scan all of the metadata blocks in your pool:&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;constant@walkuere:~$ zdb -b oracle                                              
&amp;nbsp;
Traversing all blocks to verify nothing leaked ...
&amp;nbsp;
	No leaks (block sum matches space maps exactly)
&amp;nbsp;
	bp count:          306575
	bp logical:    19590419968      avg:  63900
	bp physical:   17818332160      avg:  58120     compression:   1.10
	bp allocated:  17891765760      avg:  58360     compression:   1.09
	bp deduped:             0    ref&amp;gt;1:      0   deduplication:   1.00
	SPA allocated: 17891765760     used: 52.48%&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The number to look for here is &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;bp count&lt;/code&gt;&lt;/span&gt; which is the number of block pointers, hence the number of blocks in the pool.&lt;/p&gt;
&lt;p&gt;In this example, the dedup table would take up 306575 blocks * 320 bytes, which yields around 100 MB. This file system has a size of 32GB, so we can assume that the dedup table can only grow to about 200 MB, since it's about 50% full now.&lt;/p&gt;
&lt;h2&gt;Option 2: Estimate Your Average Block Size, Then Divide&lt;/h2&gt;
&lt;p&gt;If you don't have your data in a ZFS pool already, you'll have to guess what your average block size is, then divide your expected storage capacity by the average block size to arrive at an estimated number of ZFS blocks. For most cases of mixed data like user home directories, etc., we can assume an average block size of 64K, which is in the middle between the minimum of 512 bytes and 128K. This works reasonably well for my own example:&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;constant@walkuere:~$ zpool list oracle                                          
NAME     SIZE  ALLOC   FREE  CAP  DEDUP  HEALTH  ALTROOT
oracle  31.8G  16.7G  15.1G  52%  1.00x  ONLINE  -&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;we see that the average block size of my work pool is 16.7G divided by 306575 which yields about 54K. Your mileage will vary, especially if you use different kinds of data such as VM images, databases, pictures, etc.&lt;/p&gt;
&lt;p&gt;Example: If a zpool stores 5 TB of data at an average block size of 64K, then 5TB divided by 64K yields 78125000 blocks. Multiplied by 320 Bytes, we get a dedup table size of 25 GB!&lt;/p&gt;
&lt;h2&gt;The Total RAM Cost of Deduplication&lt;/h2&gt;
&lt;p&gt;But knowing the size of your deduplication table is not enough: ZFS needs to store more than just the dedup table in memory, such as other metadata and of course cached block data. There's a limit to how much of the ZFS ARC cache can be allocated for metadata (and the dedup table falls under this category), and it is capped at &lt;strong&gt;1/4 the size of the ARC&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;In other words: Whatever your estimated dedup table size is, you'll need at least four times that many in RAM, if you want to keep all of your dedup table in RAM. Plus any extra RAM you want to devote to other metadata, such as block pointers and other data structures so ZFS doesn't have to figure out the path through the on-pool data structure for every block it wants to access.&lt;/p&gt;
&lt;h2&gt;RAM Rules of Thumb&lt;/h2&gt;
&lt;p&gt;If this is all too complicated for you, then let's try to find a few rules of thumb:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For every TB of pool data, you should expect 5 GB of dedup table data, assuming an average block size of 64K.&lt;/li&gt;
&lt;li&gt;This means you should plan for at least 20GB of system RAM per TB of pool data, if you want to keep the dedup table in RAM, plus any extra memory for other metadata, plus an extra GB for the OS.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;The Alternative: L2ARC&lt;/h2&gt;
&lt;p&gt;So far, we have assumed that you want to keep &lt;em&gt;all&lt;/em&gt; of your dedup table in RAM at all times, for maximum ZFS performance. Given the potentially large amount of RAM that this can mean, it is worth exploring some alternatives.&lt;/p&gt;
&lt;p&gt;Fortunately, ZFS allows the use of SSDs as a second level cache for its RAM-based ARC cache. Such SSDs are then called "L2ARC". If the RAM capacity of the system is not big enough to hold all of the data that ZFS would like to keep cached (including metadata and hence the dedup table), then it will spill over some of this data to the L2ARC device. This is a good alternative: When writing new data, it's still much faster to consult the SSD based L2ARC for determining if a block is a duplicate, than having to go to slow, rotating disks.&lt;/p&gt;
&lt;p&gt;So, for deduplicated installations that are not performance-critical, using an SSD as an L2ARC instead of pumping up the RAM can be a good choice. And you can mix both approaches, too.&lt;/p&gt;
&lt;h2&gt;Adding up the Dedup Cost&lt;/h2&gt;
&lt;p&gt;Back to our example: Our 10 TB pool is expected to just utilize 5 TB which, at an average block size of 64K would need a dedup table that is approximately 25GB in size. Last time I checked, an enterprise-class SSD with 32GB was in the range of $400, while 25GB of Memory was in the range of $1000. So this is the range of what using deduplication will actually cost in terms of extra SSD and/or RAM needed.&lt;/p&gt;
&lt;h2&gt;Putting Together the Business Case&lt;/h2&gt;
&lt;p&gt;There you have it: For our fictitious example of a 10 TB storage pool for VDI with an expected dedup savings of 5 TB which translates into $5000 in disk space saved, we'd need to invest in $400 worth of SSD or better $4000 of RAM. That still leaves us with at least $1000 in net savings which means that in this case dedup is a (close) winner!&lt;/p&gt;
&lt;p&gt;But if we assume the same amount of raw data (10 TB) but only a dedup savings factor of 1.1, then our equation would be different: We'd still save close to 1 GB of disk storage (ca. $1000) but we'd need to build up a dedup table that can manage 9 TB of data, which would be in the range of 45GB. That means about $600 in SSD capacity for storing the dedup table. For RAM, we'd need 4 times that amount (180GB), since only 1/4 of ZFS ARC RAM is available for metadata. That doesn't look very attractive to me.&lt;/p&gt;
&lt;p&gt;So it really boils down to what you get (= amount of space saved) and what you need to spend in order to get that (= extra SSD and/or RAM for the DDT), depending on whether you want to sacrifice some performance (by going SSD only) or not (by adding enough RAM).&lt;/p&gt;
&lt;p&gt;Now, you can do your own calculations on a case by case basis.&lt;/p&gt;
&lt;h2&gt;Finding the Break-Even Point&lt;/h2&gt;
&lt;p&gt;Given some standard cost for disk space, SSDs and RAM, you can calculate a break even point. That way, you can just ask: What's the expected dedup savings factor? Then you can instantly decide whether it's worth deduplicating or not.&lt;/p&gt;
&lt;p&gt;At our fictitious values of $1000 per TB of disk space, $400 for a 32 GB SSD and $1000 for 24GB of memory, and assuming an average block size of 64K, we can derive two break-even dedup ratios depending on the performance requirements:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; For applications where performance isn't critical, you can get away with no extra RAM for the DDT, but with some extra space for storing the DDT at least on an SSD in L2ARC. Each TB of pool capacity will cost 5GB of dedup table, no matter how much dedup will save. 5GB of dedup table will cost $62.5 when stored in a standard SSD ($400 for 32GB). Hence, for each TB of pool capacity, at least 62.5 GB need to be saved through dedup for the SSD to pay for itself (1000 GB cost $1000, 62.5 GB saved will save 62.5$, the price of having that dedup table stored in SSD). That translates into a minimum dedup factor of 1.0625 to warrant the extra SSD capacity needed.&lt;/li&gt;
&lt;li&gt; For applications that are more performance-sensitive, you'll need the same amount of memory for the DDT per TB (5GB), but this time you want to store it fully in RAM. ZFS limits metadata use in RAM to 1/4 of total ARC size, so we need to make sure our system has at least 20GB of extra RAM per TB of stored data. That means each TB of deduped pool data will cost us approx. $834 in x86 memory for storing its dedup table, so the minimum dedup savings factor needs to be 1.834 here.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;Rules of Thumb&lt;/h2&gt;
&lt;p&gt;These are all fictitious numbers, YMMV, but I think some good rules of thumb are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; If performance isn't critical, and if you expect to save more than 20% of storage capacity through deduplication, then go for it but add at least 5GB of L2ARC SSD capacity per TB of pool data to store the dedup table in.&lt;/li&gt;
&lt;li&gt; If performance is important, wait until you expect at least a 2:1 reduction in storage space through deduplication, and add 30GB of RAM to your system for every TB of disk capacity to make sure that the dedup table is always in memory so optimal write performance is ensured..&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Why the extra 10GB of RAM in the latter rule of thumb? You don't want to fill up ZFS' metadata RAM cache entirely with the dedup table. The other metadata you want to have quick access to are ZFS' pointer data strcutures so it knows where each data block is stored on disk etc. That can be estimated at 1% of total pool capacity which is 10GB per TB of pool data.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;The decision to use ZFS deduplication or not is almost always a simple cost/benefit analysis. When using deduplication, one needs to plan for at least some extra L2ARC SSD requirements, or better some extra RAM for storing the dedup table in a manner that doesn't negatively impact write performance.&lt;/p&gt;
&lt;p&gt;Especially RAM can become a decisive factor in deciding for or against deduplication, so usually a dedup savings factor of 2 is a necessary threshold for deduplication to become a real cost saver.&lt;/p&gt;
&lt;h2&gt;Your Take&lt;/h2&gt;
&lt;p&gt;So here are some fictitious numbers. Did you do your own dedup analysis? What were your results? What do you base your decision to use deduplication on? Place a comment below and share your own dedup cost/benefit analysis cases.&lt;/p&gt;
&lt;div class="flattr-box"&gt;&lt;script type="text/javascript"&gt;
  var flattr_uid = '26528';
  var flattr_tle = 'ZFS: To Dedupe or not to Dedupe...';
  var flattr_dsc = '...that is the question.Ever since the introduction of deduplication into ZFS, users have been divided into two camps: One side enthusiastically adopted deduplication as a way to save storage space, while the other remained skeptical, pointing out that dedupe has a cost, and that it may not be always the best option.Let&amp;#039;s look a little deeper into the benefits of ZFS deduplication as well as the cost, because ultimately it boils down to running a cost/benefit analysis of ZFS deduplication. It&amp;#039;s that simple.';
  var flattr_tag = 'deduplication,Solaris,solaris,zfs';
  var flattr_cat = 'text';
  var flattr_url = 'http://constantin.glez.de/blog/2011/07/zfs-dedupe-or-not-dedupe';
  var flattr_lng = 'en_GB'&lt;/script&gt;
&lt;script src="http://api.flattr.com/button/load.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/div&gt;&lt;script src="http://feedproxy.google.com/~s/ConstantThinking/?i=http://constantin.glez.de/blog/2011/07/zfs-dedupe-or-not-dedupe" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;div class='sexybookmarks-default-2076'&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=P36s-k5l5u0:8IkKyxU0SUo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=P36s-k5l5u0:8IkKyxU0SUo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=P36s-k5l5u0:8IkKyxU0SUo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=P36s-k5l5u0:8IkKyxU0SUo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=P36s-k5l5u0:8IkKyxU0SUo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=P36s-k5l5u0:8IkKyxU0SUo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=P36s-k5l5u0:8IkKyxU0SUo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=P36s-k5l5u0:8IkKyxU0SUo:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=P36s-k5l5u0:8IkKyxU0SUo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ConstantThinking/~4/P36s-k5l5u0" height="1" width="1"/&gt;</description>
 <category domain="http://constantin.glez.de/tag/deduplication">deduplication</category>
 <category domain="http://constantin.glez.de/category/solaris">Solaris</category>
 <category domain="http://constantin.glez.de/tag/solaris">solaris</category>
 <category domain="http://constantin.glez.de/tag/zfs">zfs</category>
 
 <pubDate>Wed, 27 Jul 2011 14:26:11 +0000</pubDate>
 <dc:creator>constant</dc:creator>
 <guid isPermaLink="false">227 at http://constantin.glez.de</guid>
<feedburner:origLink>http://constantin.glez.de/blog/2011/07/zfs-dedupe-or-not-dedupe</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/ConstantThinking/~5/kJ9i6tpZOUo/preview" length="30082" type="image/jpeg" /><feedburner:origEnclosureLink>http://constantin.glez.de/image/view/228/preview</feedburner:origEnclosureLink></item>
<item>
 <title>The Solaris Eco-System is Expanding</title>
 <link>http://feedproxy.google.com/~r/ConstantThinking/~3/nDbqMVwujzc/solaris-eco-system-expanding</link>
 <description>&lt;div class="all-attached-images"&gt;&lt;div class="image-attach-body image-attach-node-225" style="width: 320px;"&gt;&lt;a href="/image/illumosopenindianajpg"&gt;&lt;img src="http://constantin.glez.de/sites/constantin.glez.de/files/images/illumosopenindiana.blog.jpg" alt="illumosopenindiana.jpg" title="illumosopenindiana.jpg"  class="image image-blog " width="320" height="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;More than a while ago, I wrote about the &lt;a href="http://constantin.glez.de/blog/2010/08/what-communities-should-do-and-what-they-shouldnt"&gt;birth of Illumos&lt;/a&gt;, a project that aims at substituting the last non-open-source bits from the OpenSolaris kernel with replacements, in order to create a 100% open source Solaris kernel.&lt;/p&gt;
&lt;p&gt;On May 20th, I had the opportunity to attend the &lt;a href="http://nexenta.com/corp/european-user-conference-2011"&gt;Nexenta European User Conference 2011&lt;/a&gt; in Amsterdam, where Solaris and storage enthusiasts from all over the world met to discuss their favorite technology: ZFS. Of course there was also a lot of talk about Illumos and related projects.&lt;/p&gt;
&lt;p&gt;Now I've given a lot of Solaris presentations to customers, always highlighting the big, growing and powerful community behind the Solaris OS. But this conference added a new dimension to the Solaris Eco-System for me!&lt;/p&gt;
&lt;p&gt;Prior to the conference, I had a peek at the Nexenta Partner Training, and I was quite impressed to see about 80 people listening to the gory details of ZFS technology, taught by Craig Morgan (&lt;a href="https://twitter.com/#!/craigmorgan"&gt;@craigmorgan&lt;/a&gt;) and his colleagues, effectively becoming a new army of ZFS supporters.&lt;/p&gt;
&lt;h3&gt;Nexenta European User Conference&lt;/h3&gt;
&lt;p&gt;The conference itself was quite interesting (see the &lt;a href="http://nexenta.com/corp/component/content/article/926"&gt;agenda&lt;/a&gt;). It started with a "Storage is growing like crazy" keynote by &lt;a href="http://nexenta.com"&gt;Nexenta&lt;/a&gt;'s &lt;a href="http://nexenta.com/corp/blog"&gt;Evan Powell&lt;/a&gt;, complimented by &lt;a href="http://thestoragearchitect.com/"&gt;Chris Evans&lt;/a&gt;' irresistible review of 55 years of storage evolution, ending in the firm belief that the future of storage is open, while asking for better storage virtualization (wasn't NFS invented to virtualize storage in the first place?).&lt;/p&gt;
&lt;p&gt;The rest of the conference was a good mix of user experiences, cloud and virtualization discussions. Notable highlight: &lt;a href="http://harmanholistix.com/"&gt;Phil Harman&lt;/a&gt; (&lt;a href="https://twitter.com/#!/pgdh"&gt;@pgdh&lt;/a&gt;) and his hilarious "High Availability matters" talk (see &lt;a href="http://www.youtube.com/watch?v=BHz5y3RO7XY"&gt;a version from OpenStorageSummit here on YouTube&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;As with many conferences, the stuff that is between the sessions is often the most interesting. And this meeting was no exception. While talking to attendees, it became clear to me that the Solaris eco-system has become a vibrant, self-sustaining and rapidly growing movement, beyond what had started as "OpenSolaris".&lt;/p&gt;
&lt;h3&gt;The ZFS Working Group&lt;/h3&gt;
&lt;p&gt;A lot of discussions revolved around the "ZFS Working Group", a group of developers from all ZFS variants that aim at defining and coordinating common interfaces and standards for the various development efforts around ZFS. Read &lt;a href="http://opensolaris.org/jive/thread.jspa?threadID=139427"&gt;the silent announcement here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;One of the first projects that the ZFS Working Group is working on is to define a more granular approach to zpool and zfs on-disk formats that aims at facilitating interoperability between different versions of ZFS, even if they come from different vendors.&lt;/p&gt;
&lt;h3&gt;Illumos&lt;/h3&gt;
&lt;p&gt;Another emerging player in the Solaris eco-system is the &lt;a href="http://illumos.org/"&gt;Illumos Project&lt;/a&gt;, a project that aims at creating a Solaris kernel and basic operating system core that is 100% open source. "Wasn't OpenSolaris open source already?" you ask. Yes, mostly. There were still a few parts that nobody got around to port/review/get clearance for, like Internationalization, some drivers or the NFS locking daemon. Illumos is about replacing these last bits with 100% open source equivalents in order to complete the OpenSolaris promise.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://gdamore.blogspot.com/"&gt;Garrett D'Amore&lt;/a&gt; (&lt;a href="http://twitter.com/gedamore"&gt;@gedamore&lt;/a&gt;), founder of Illumos was so kind to give me an interview about the history of and his plans for Illumos. It's published in the &lt;a href="http://systemhelden.com/heldenfunk/2011/06/hf059-illumos-openindiana-niche11"&gt;latest episode of the HELDENfunk podcast&lt;/a&gt; from &lt;a href="http://systemhelden.com/"&gt;SYSTEMHELDEN.com&lt;/a&gt;. The podcast is in German, but the interview is in English, just skip to 03:29 if you don't understand German.&lt;/p&gt;
&lt;h3&gt;OpenIndiana&lt;/h3&gt;
&lt;p&gt;Illumos is just a kernel and the associated utilities, not a full operating system or distribution. Other players like &lt;a href="http://nexenta.com"&gt;Nexenta&lt;/a&gt;, &lt;a href="http://joyent.com/"&gt;Joyent&lt;/a&gt; and &lt;a href="http://delphix.com/"&gt;Delphix&lt;/a&gt; pick up Illumos and incorporate it into their own products and distributions.&lt;/p&gt;
&lt;p&gt;But &lt;a href="http://openindiana.org"&gt;OpenIndiana&lt;/a&gt; is different: It is a complete, generic, fully open source Solaris distribution that picks up where OpenSolaris has left, providing users with a complete OS for servers and desktops.&lt;/p&gt;
&lt;p&gt;In a second interview, &lt;a href="http://blogs.everycity.co.uk/alasdair/"&gt;Alasdair Lumsden&lt;/a&gt; (&lt;a href="https://twitter.com/#!/alasdairific"&gt;@alasdairific&lt;/a&gt;), founder of OpenIndiana and UK hosting company &lt;a href="http://everycity.co.uk/"&gt;Everycity&lt;/a&gt;, and &lt;a href="http://aszeszo.blogspot.com/"&gt;Andrzej Szeszo&lt;/a&gt; (&lt;a href="https://twitter.com/#!/aszeszo"&gt;@aszeszo&lt;/a&gt;) talk about OpenIndiana, how it started and their current plans and challenges for the future. Again, it's part of the &lt;a href="http://systemhelden.com/heldenfunk/2011/06/hf059-illumos-openindiana-niche11"&gt;current German HELDENfunk episode&lt;/a&gt; but you can skip right to 17:16 and listen to the interview part which is in English.&lt;/p&gt;
&lt;h3&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;Solaris is growing. Whether it's driven by Oracle's Solaris 11 or the extended Solaris community, there's no question that the Solaris eco-system continues to evolve, innovate and deliver cool stuff on a regular basis and for a wide range of companies, users and developers.&lt;/p&gt;
&lt;p&gt;What's your opinion on the Solaris eco-system? Have you checked out Solaris 11, Illumos and OpenIndiana lately? Share your experience in the comments!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disclosure and Disclaimer&lt;/strong&gt; Many thanks go to Nexenta for inviting me to visit the Nexenta European User Conference and paying for my travel costs. The views expressed on this blog are my own and do not necessarily reflect the views of Oracle, my employer.&lt;/p&gt;
&lt;div class="flattr-box"&gt;&lt;script type="text/javascript"&gt;
  var flattr_uid = '26528';
  var flattr_tle = 'The Solaris Eco-System is Expanding';
  var flattr_dsc = 'More than a while ago, I wrote about the &amp;lt;a href=&amp;quot;http://constantin.glez.de/blog/2010/08/what-communities-should-do-and-what-they-shouldnt&amp;quot;&amp;gt;birth of Illumos&amp;lt;/a&amp;gt;, a project that aims at substituting the last non-open-source bits from the OpenSolaris kernel with replacements, in order to create a 100% open source Solaris kernel.On May 20th, I had the opportunity to attend the &amp;lt;a href=&amp;quot;http://nexenta.com/corp/european-user-conference-2011&amp;quot;&amp;gt;Nexenta European User Conference 2011&amp;lt;/a&amp;gt; in Amsterdam, where Solaris and storage enthusiasts from all over the world met to discuss their favorite technology: ZFS. Of course there was also a lot of talk about Illumos and related projects.Now I&amp;#039;ve given a lot of Solaris presentations to customers, always highlighting the big, growing and powerful community behind the Solaris OS. But this conference added a new dimension to the Solaris Eco-System for me!';
  var flattr_tag = 'illumos,interview,joyent,nexenta,openindiana,opensolaris,podcast,Solaris,solaris,zfs';
  var flattr_cat = 'text';
  var flattr_url = 'http://constantin.glez.de/blog/2011/06/solaris-eco-system-expanding';
  var flattr_lng = 'en_GB'&lt;/script&gt;
&lt;script src="http://api.flattr.com/button/load.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/div&gt;&lt;script src="http://feedproxy.google.com/~s/ConstantThinking/?i=http://constantin.glez.de/blog/2011/06/solaris-eco-system-expanding" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;div class='sexybookmarks-default-1715'&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=nDbqMVwujzc:vo96HzXE-ZI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=nDbqMVwujzc:vo96HzXE-ZI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=nDbqMVwujzc:vo96HzXE-ZI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=nDbqMVwujzc:vo96HzXE-ZI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=nDbqMVwujzc:vo96HzXE-ZI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=nDbqMVwujzc:vo96HzXE-ZI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=nDbqMVwujzc:vo96HzXE-ZI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=nDbqMVwujzc:vo96HzXE-ZI:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=nDbqMVwujzc:vo96HzXE-ZI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ConstantThinking/~4/nDbqMVwujzc" height="1" width="1"/&gt;</description>
 <category domain="http://constantin.glez.de/tag/illumos">illumos</category>
 <category domain="http://constantin.glez.de/tag/interview">interview</category>
 <category domain="http://constantin.glez.de/tag/joyent">joyent</category>
 <category domain="http://constantin.glez.de/tag/nexenta">nexenta</category>
 <category domain="http://constantin.glez.de/tag/openindiana">openindiana</category>
 <category domain="http://constantin.glez.de/tag/opensolaris">opensolaris</category>
 <category domain="http://constantin.glez.de/tag/podcast">podcast</category>
 <category domain="http://constantin.glez.de/category/solaris">Solaris</category>
 <category domain="http://constantin.glez.de/tag/solaris">solaris</category>
 <category domain="http://constantin.glez.de/tag/zfs">zfs</category>
 
 <pubDate>Mon, 13 Jun 2011 19:58:21 +0000</pubDate>
 <dc:creator>constant</dc:creator>
 <guid isPermaLink="false">224 at http://constantin.glez.de</guid>
<feedburner:origLink>http://constantin.glez.de/blog/2011/06/solaris-eco-system-expanding</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/ConstantThinking/~5/9-hltfFbJhY/preview" length="23988" type="image/jpeg" /><feedburner:origEnclosureLink>http://constantin.glez.de/image/view/225/preview</feedburner:origEnclosureLink></item>
<item>
 <title>How to Render the Mandelbrot Set in the Joyent Cloud with Node.js</title>
 <link>http://feedproxy.google.com/~r/ConstantThinking/~3/1gfDn0qRngE/how-render-mandelbrot-set-joyent-cloud-nodejs</link>
 <description>&lt;div class="all-attached-images"&gt;&lt;div class="image-attach-body image-attach-node-219" style="width: 240px;"&gt;&lt;a href="/image/mandelbrotjpg"&gt;&lt;img src="http://constantin.glez.de/sites/constantin.glez.de/files/images/mandelbrot.blog.jpg" alt="mandelbrot.jpg" title="mandelbrot.jpg"  class="image image-blog " width="240" height="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;First of all: Apologies for not posting for a long time. The reason? I was having too much fun with node.js and the Joyent Cloud :).&lt;/p&gt;
&lt;p&gt;What started as a small experimental hack turned quickly into an exciting new pet project involving the good old Mandelbrot Set, as a web service, running in the Joyent cloud, programmed in node.js.&lt;/p&gt;
&lt;p&gt;But first things first: Let's take a look at node.js as a language and programming model, at the Joyent Cloud and how it relates to Solaris and finally some details on how the picture you see was rendered inside the Joyent Cloud, including an interactive Mandelbrot Set explorer you can play with now, written as a web app.&lt;/p&gt;
&lt;p&gt;I think the first time I heard about node.js was from Bryan Cantrill in &lt;a href="http://dtrace.org/blogs/bmc/2010/08/30/dtrace-node-js-and-the-robinson-projection/"&gt;this post&lt;/a&gt; where he explained the story about Joyent and a node.js programming contest and how they added DTrace probes to Node to enable some analytics for their contestants' machines.&lt;/p&gt;
&lt;h3&gt;What Is Node.js?&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://nodejs.org"&gt;node.js&lt;/a&gt; (or short: Node) is both a programming language and a runtime system. The programming language is V8 JavaScript with a few extensions, the more important part is the runtime system and the programming &lt;em&gt;model&lt;/em&gt;: Node is server-side, event-driven and non-blocking. Which makes it ideal for writing highly concurrent, scalable web applications, without caring about processes, locks, threads, etc.&lt;/p&gt;
&lt;p&gt;Check out the &lt;a href="http://nodejs.org/"&gt;nodejs.org homepage&lt;/a&gt; for details and please do spend an entertaining hour watching &lt;a href="http://www.youtube.com/watch?v=jo_B4LTHi3I"&gt;Ryan's introduction to node.js&lt;/a&gt;. Don't worry, I'll wait.&lt;/p&gt;
&lt;p&gt;Node is lower level than most web application frameworks: HTTP and sockets are first-class citizens in Node, and "Hello world" in Node is actually a web server. Other frameworks like Java, PHP etc. typically sit on top of an existing web server (though it is possible, but not common, to implement web servers in these languages as well). Node's intimacy with networking protocols make it interesting from a minimalistic point of view: Develop the web server with the web app in sync, and only implement the pieces that are really necessary, leaving out the rest.&lt;/p&gt;
&lt;p&gt;You can also implement pure socket based protocols with node.js, which makes Node interesting to game developers, for chat servers, messaging in general, etc.&lt;/p&gt;
&lt;p&gt;There's a rapidly growing library of Node extensions called &lt;em&gt;&lt;a href="https://github.com/joyent/node/wiki/modules"&gt;Modules&lt;/a&gt;&lt;/em&gt;, including a package manager called &lt;a href="http://npmjs.org/"&gt;npm&lt;/a&gt; that makes installation of modules very easy. Most low level web server programming needs can be addressed easily with the &lt;a href="https://github.com/senchalabs/Connect"&gt;connect&lt;/a&gt; framework, higher level web apps will enjoy working with the &lt;a href="https://github.com/visionmedia/express/tree/master"&gt;Express&lt;/a&gt; framework. &lt;/p&gt;
&lt;p&gt;Getting started with node.js is easy: &lt;a href="http://nodejs.org/#download"&gt;Download the software&lt;/a&gt;, build it using the &lt;a href="https://github.com/joyent/node/wiki/Installation"&gt;easy to follow instructions&lt;/a&gt; and start playing with it. The &lt;a href="https://github.com/joyent/node/wiki"&gt;node.js wiki&lt;/a&gt; is a great resource to start digging in, and &lt;a href="https://developer.mozilla.org/en/JavaScript/Reference"&gt;Mozilla.org's JavaScript Reference&lt;/a&gt; will help you polish up your JavaScript skills in a breeze.&lt;/p&gt;
&lt;h3&gt;Why Node is Cool&lt;/h3&gt;
&lt;p&gt;Here's why I think node.js is so interesting:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;It's event driven.&lt;/strong&gt; This means that a node.js program is not just a sequence of stuff to do. It gives you the ability to attach pieces of code to events: Someone connects to your server? Fire up this code. A task has finished? Go run this other code. Got a new packet coming in? Go do these three things with it. Timer's up? Here's what to do. And so on. Just like JavaScript in a browser is based on &lt;em&gt;browser&lt;/em&gt; events (you know: &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;onload&lt;/code&gt;&lt;/span&gt;, &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;onclick&lt;/code&gt;&lt;/span&gt; etc.), node.js is based on &lt;em&gt;server&lt;/em&gt; events.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;This allows for &lt;em&gt;symmetric&lt;/em&gt; web app development:&lt;/strong&gt; If you have some JavaScript skills that you developed by writing AJAX apps on the client, you'll be familiar with node.js on the server very easily. If you want to develop a new web app, you can now do both the server and the browser sides at once, with the same set of skills, libraries, models, etc. Millions of JavaScript hackers are becoming server side hackers overnight, thanks to Node.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;node.js removes the complexity of dealing with concurrency, locking etc.&lt;/strong&gt; by ignoring these concepts: If everything is driven by little pieces of code that run independently, triggered by events, there's a complete disconnect between them. This is a good thing: No need to watch out for the other guys, no need to do any locking or other complicated stuff. Just write small pieces of code that do their job little by little and let the database, the OS or the node.js runtime deal with the messy concurrency stuff. Eventually, there will be a way to fire off parallel threads, but it will be batch-oriented and message based, through the &lt;a href="http://www.whatwg.org/specs/web-workers/current-work/"&gt;web workers API&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It's easy.&lt;/strong&gt; I managed to put together a Mandelbrot Set rendering web service in about an hour. From scratch. And I'm not a real programmer.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It's new.&lt;/strong&gt; There's a &lt;em&gt;lot&lt;/em&gt; of innovation around Node. It's a completely new world, which makes it fun and exciting, too.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Joyent and node.js&lt;/h3&gt;
&lt;p&gt;As you may know, &lt;a href="http://joyent.com/"&gt;Joyent&lt;/a&gt; is a startup company that delivers cloud software and cloud hosting services. Joyent is probably the most innovative company in terms of cloud computing right now, and they're big supporters of Solaris. In fact, their own "SmartOS" operating system for the cloud is based on OpenSolaris. Cool people including sysadmin god &lt;a href="http://cuddletech.com/blog/"&gt;Ben Rockwood&lt;/a&gt;, DTrace gods &lt;a href="http://dtrace.org/blogs/bmc/"&gt;Bryan Cantrill&lt;/a&gt; and &lt;a href="http://dtrace.org/blogs/brendan/"&gt;Brendan Gregg&lt;/a&gt; (&lt;a href="http://www.amazon.com/gp/product/0132091518/ref=as_li_ss_tl?ie=UTF8&amp;amp;tag=conchathebloo-20&amp;amp;linkCode=as2&amp;amp;camp=217145&amp;amp;creative=399349&amp;amp;creativeASIN=0132091518"&gt;Buy his DTrace book now&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0132091518&amp;amp;camp=217145&amp;amp;creative=399349" width="1" height="1" border="0" alt="" /&gt;*, it's really good!), and of course node.js inventor &lt;a href="http://tinyclouds.org/"&gt;Ryan Dahl&lt;/a&gt; work there.&lt;/p&gt;
&lt;p&gt;IMHO, Joyent is where the future of Clouds is made.&lt;/p&gt;
&lt;p&gt;Anyway, the &lt;a href="http://www.joyent.com/software/"&gt;Joyent Software Stack&lt;/a&gt; uses node.js at the top to deliver a powerful, asynchronous, open source PaaS platform.&lt;/p&gt;
&lt;h3&gt;Getting Started with Your Own Joyent SmartMachine for Node.js for Free&lt;/h3&gt;
&lt;p&gt;Of course, you can play with node.js on your laptop, but it's more fun when you use it inside a real cloud.&lt;br /&gt;
Thankfully, this is really easy (and free) with Joyent's SmartMachine for node.js service:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Go to &lt;a href="http://no.de/"&gt;http://no.de/&lt;/a&gt; (yay, a German domain!) and sign up for a Joyent account there.&lt;/li&gt;
&lt;li&gt;Read the &lt;a href="http://wiki.joyent.com/display/node/Getting+Started+with+a+Node.js+SmartMachine"&gt;Getting Started With a Node SmartMachine&lt;/a&gt; guide, including how to apply for a provisioning code so you can provision your first Joyent SmartMachine.&lt;/li&gt;
&lt;li&gt;Upload your SSH key, set up your Git repository and off you go!&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The beauty of a Joyent SmartMachine is that it's actually a Solaris Container: You get all the flexibility and power of being king on a Solaris system, with all of the security, reliability and efficiency of a Solaris system, but without the hassle or without annoying your other buddies running on the same physical machine.&lt;/p&gt;
&lt;p&gt;The node.js service running inside a SmartMachine is nicely integrated with Solaris: It's configured as an SMF service and the pre-supplied commands &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;node-service-start&lt;/code&gt;&lt;/span&gt;, &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;node-service-stop&lt;/code&gt;&lt;/span&gt;, &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;node-service-log&lt;/code&gt;&lt;/span&gt; etc. make great use of it. Even better: As soon as you push your Git repository into your Joyent SmartMachine, the node.js service is automatically restarted through SMF to immediately update your service. And if anything fails, it will automatically revert back to the previous version. How cool is that?&lt;/p&gt;
&lt;p&gt;But the real killer here is the integration of node.js, DTrace and the &lt;a href="http://wiki.joyent.com/display/node/Using+Cloud+Analytics"&gt;Joyent Cloud Analytics&lt;/a&gt; feature. As your node.js app gathers more and more users, you can use Cloud Analytics to diagnose, monitor and better understand the dynamics of your service. &lt;a href="http://joyeur.com/2011/01/24/executive-speaker-series-bryan-cantrill-and-brendan-gregg-on-cloud-analytics/"&gt;Watch the video with Bryan Cantrill and Brendan Gregg on Cloud Analytics&lt;/a&gt; to get an overview of how it works.&lt;/p&gt;
&lt;p&gt;Joyent gives you a simple package manager with a large amount of pre-configured packages called &lt;a href="http://wiki.joyent.com/display/node/Node+SmartMachine+FAQ#NodeSmartMachineFAQ-AddingPackages"&gt;pkgin&lt;/a&gt;. npm, the Node Package Manager is pre-installed, but &lt;a href="https://github.com/LearnBoost/node-canvas/issues/82"&gt;some extra packages are recommended&lt;/a&gt; for a smoother install of some npm modules.&lt;/p&gt;
&lt;h3&gt;Introducing the Constant Thinking Mandelbrot Rendering Web Service&lt;/h3&gt;
&lt;p&gt;So I started playing with Node in a Joyent SmartMachine. And it was fun! After a few weeks of trying stuff out, optimizing and tinkering I can now present you with my first real web app, the &lt;a href="http://constantin.glez.de/mandelbrot/"&gt;Constant Thinking Mandelbrot Set Web Service&lt;/a&gt;!&lt;/p&gt;
&lt;p&gt;Most of you already know that the &lt;a href="http://en.wikipedia.org/wiki/Mandelbrot_set"&gt;Mandelbrot set&lt;/a&gt; is a beautiful mathematical object that can be generated using a simple formula over and over again over the coordinates of a complex number plane. I think I wrote my first Mandelbrot set program at the age of 12 or so, when these things became fashionable in the home computer crowd.&lt;/p&gt;
&lt;p&gt;Now here's how Mandelbrot 2.0 works:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;On &lt;a href="http://constantin.glez.de/mandelbrot/"&gt;this page&lt;/a&gt;, click anywhere within the image to set a new center for the image computation.&lt;/li&gt;
&lt;li&gt;Click on "Zoom" to zoom into the set, and on "Zoom out" to back out. The math says there's infinite detail hidden in the set. The limits of floating-point calculations will put an end to this but as soon as I start seeing precision errors, I'll work on a more precise implementation.&lt;/li&gt;
&lt;li&gt;The amount of detail is limited by the maximum number of iterations. If after a few rounds of zooming into the image the black areas start to look boring, hit the "more details" button and you should see more cool stuff. This simply doubles the maximum number of iterations for the computation.&lt;/li&gt;
&lt;li&gt;There's some anti-aliasing, too: If you select one of the anti-aliasing options, the image will be generated at a larger resolution (3x3 or 5x5), then shrinked into the target resolution using one of two filtering methods (simple Gaussian or the more sophisticated Mitchell-Netravali filter). In theory, this should make the image smoother. In practice, the infinite detail of the set counters that a bit. Still worth a try.&lt;/li&gt;
&lt;li&gt;Finally, there's some timing displayed and you have a choice of different optimization algorithms. The fastest algorithm is chosen by default, but if stuff looks funky, send me the parameters that were displayed and how you got there, and go with one of the lower optimization levels to get a decent picture.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Feel free to &lt;a href="http://constantin.glez.de/mandelbrot/"&gt;play with the Mandelbrot service&lt;/a&gt; and place a comment below. Or &lt;a href="http://constantin.glez.de/contact"&gt;send me a message&lt;/a&gt; if you find a bug or have any other suggestions.&lt;/p&gt;
&lt;h3&gt;Experiences, Gotchas and Further Plans&lt;/h3&gt;
&lt;p&gt;My first impression of node.js: Boy is this fast! Rendering a 512x512 pixel Mandelbrot set picture takes less than a second, including color mapping and generating the PNG image from the raw pixel data, even without any optimization. This is possible because under the covers, node.js uses &lt;a href="http://code.google.com/p/v8/"&gt;Google's V8 JavaScript engine&lt;/a&gt; which has some pretty advanced optimization techniques.&lt;/p&gt;
&lt;p&gt;Like any new platform, it takes some tinkering until you figure out things and find your ways around it, but thanks to the &lt;a href="https://github.com/joyent/node/wiki"&gt;Node Wiki&lt;/a&gt;, the &lt;a href="https://developer.mozilla.org/en/JavaScript/Reference"&gt;Mozilla JavaScript Reference&lt;/a&gt; and the &lt;a href="http://wiki.joyent.com/display/node/Node+Home"&gt;Joyent Node Wiki&lt;/a&gt;, most answers are just a few clicks away.&lt;/p&gt;
&lt;p&gt;Since Node is so new, there are a couple of minor annoyances: There's no easy way to do parallelism (it's not encouraged yet, until the web workers API is built in), the amount of available modules is rapidly changing or incomplete, and sometimes the best documentation is to read some example source code. All of these are just symptoms of a good thing: A new, innovative and rapidly evolving world.&lt;/p&gt;
&lt;h3&gt;Bonus: Source Code and Some Mandelbrot Set Geekiness&lt;/h3&gt;
&lt;p&gt;Most of the time I spent writing this web service was actually spent on optimizing the algorithm for computing the Mandelbrot set. For the standard image you see in the beginning of the Mandelbrot web service page, the speedup is more than 2x, so it was worth the effort. Here's a crash course in Mandelbrot set optimization:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;The two main big bulbs&lt;/strong&gt; that the Mandelbrot set is made of are actually well understood (see the &lt;a href="http://en.wikipedia.org/wiki/Mandelbrot_set"&gt;Wikipedia article on the Mandelbrot set&lt;/a&gt;). This means one can use a simple formula to detemine whether a point is inside one of the two bulbs, then decide whether to skip or continue the standard, lengthy iteration formula.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Exploiting connectedness&lt;/strong&gt;: The Mandelbrot set is connected. This means that there are no "islands". This also means that if all points of the circumference of any area are inside the set (= black), the whole area is. To exploit this, an algorithm can subdivide the set into rectangular blocks, walk the blocks' edges and try to find blocks with circumferences inside the set through binary (or any other convenient) subdivision. For such blocks, further iterations can be skipped and the whole block can be marked as inside the set.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Major areas of the Mandelbrot set are well-known&lt;/strong&gt;: This means that we don't need to test for bulbs if we're rendering the piece that's above them, so we can skip the check. We can also skip the check for bulb 1 if we're left or right of it, etc. This optimization therefore computes the intersection of different areas with predefined optimization settings and the areas that are actually to be rendered, then uses the right optimizations for the right pieces of the image.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Exploiting symmetry&lt;/strong&gt;: The Mandelbrot set is symmetrical along the real axis. So if the area to be rendered crosses that axis, up to half of the image can be recycled through mirroring.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The highest optimization setting (which is also the default) makes use of all of the above and should be pretty good for most cases. If you have any more cool and easy to implement optimization ideas, let me know!&lt;/p&gt;
&lt;p&gt;That said, the only thing left for me to do in this article is to give you the source :). Like any good Node citizen, I've set up an account on Github and uploaded the current version of the source:&lt;/p&gt;
&lt;p&gt;  &lt;a href="https://github.com/zalez/Mandelbrot-Set-generator-in-node.js"&gt;Check out the Mandelbrot set generator in node.js source here.&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Of course the usual disclaimers apply: Use at your own risk, don't sue me, forgive any code uglinesses, let me know if you find bugs, send me your suggestions and generally have fun with it.&lt;/p&gt;
&lt;h3&gt;Conclusion and Further Plans&lt;/h3&gt;
&lt;p&gt;Many thanks to the fine people at Joyent for bringing node.js to the world and giving it such a cool place to live! Thanks to their great support people who helped me find the magic incantation for getting a provisioning code. I'm looking forward to seeing Node grow and continue playing with it :).&lt;/p&gt;
&lt;p&gt;Actually, the fun has just started: Right now, the Mandelbrot set rendering web service ist pretty basic, and it doesn't use many of the cool Node features. Over time, I'd like to add some more:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Caching should be easy to do in Node, and I already have an idea on how to exploit it.&lt;/li&gt;
&lt;li&gt;Parallelism is the next big thing: Put together a stack of batch jobs that make up the total rendering process, then fire them at some worker nodes, then collect the pieces together. Should be fun to implement while learning something new.&lt;/li&gt;
&lt;li&gt;Integration with C: While Node is pretty fast already, it would be fun to implement the basic number-crunching in C so I can learn how the integration of C works with Node.&lt;/li&gt;
&lt;li&gt;While we're at it, I'd like to increase rendering precision through implementing the computations in a purely integer manner. You know, &lt;a href="http://en.wikipedia.org/wiki/Ariane_5_Flight_501"&gt;floating-point is evil&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;The user interface on the web browser side could use some brushups, perhaps with some jQuery magic.&lt;/li&gt;
&lt;li&gt;Colormaps should be configurable.&lt;/li&gt;
&lt;li&gt;And so on. You know, some projects are never finished...&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Your Turn&lt;/h3&gt;
&lt;p&gt;Did you try out Node already? What are your experiences? Any cool libraries, hacks, tips to share? Do you like the Mandelbrot set web service, or do you think this is too 80's? Let me know in the comments!&lt;/p&gt;
&lt;p&gt;* Affiliate link: You buy great stuff that's good for you, I get a small commission to help finance this blog, we both win!&lt;/p&gt;
&lt;div class="flattr-box"&gt;&lt;script type="text/javascript"&gt;
  var flattr_uid = '26528';
  var flattr_tle = 'How to Render the Mandelbrot Set in the Joyent Cloud with Node.js';
  var flattr_dsc = 'First of all: Apologies for not posting for a long time. The reason? I was having too much fun with node.js and the Joyent Cloud :).What started as a small experimental hack turned quickly into an exciting new pet project involving the good old Mandelbrot Set, as a web service, running in the Joyent cloud, programmed in node.js.But first things first: Let&amp;#039;s take a look at node.js as a language and programming model, at the Joyent Cloud and how it relates to Solaris and finally some details on how the picture you see was rendered inside the Joyent Cloud, including an interactive Mandelbrot Set explorer you can play with now, written as a web app.';
  var flattr_tag = 'cloud,containers,dtrace,General,hacking,joyent,mandelbrot set,node.js,programming,solaris,web services';
  var flattr_cat = 'text';
  var flattr_url = 'http://constantin.glez.de/blog/2011/05/how-render-mandelbrot-set-joyent-cloud-nodejs';
  var flattr_lng = 'en_GB'&lt;/script&gt;
&lt;script src="http://api.flattr.com/button/load.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/div&gt;&lt;script src="http://feedproxy.google.com/~s/ConstantThinking/?i=http://constantin.glez.de/blog/2011/05/how-render-mandelbrot-set-joyent-cloud-nodejs" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;div class='sexybookmarks-default-7686'&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=1gfDn0qRngE:0LB1uUnHq9M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=1gfDn0qRngE:0LB1uUnHq9M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=1gfDn0qRngE:0LB1uUnHq9M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=1gfDn0qRngE:0LB1uUnHq9M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=1gfDn0qRngE:0LB1uUnHq9M:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=1gfDn0qRngE:0LB1uUnHq9M:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=1gfDn0qRngE:0LB1uUnHq9M:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=1gfDn0qRngE:0LB1uUnHq9M:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=1gfDn0qRngE:0LB1uUnHq9M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ConstantThinking/~4/1gfDn0qRngE" height="1" width="1"/&gt;</description>
 <category domain="http://constantin.glez.de/tag/cloud">cloud</category>
 <category domain="http://constantin.glez.de/tag/containers">containers</category>
 <category domain="http://constantin.glez.de/tag/dtrace">dtrace</category>
 <category domain="http://constantin.glez.de/category/general">General</category>
 <category domain="http://constantin.glez.de/tag/hacking">hacking</category>
 <category domain="http://constantin.glez.de/tag/joyent">joyent</category>
 <category domain="http://constantin.glez.de/tag/mandelbrot-set">mandelbrot set</category>
 <category domain="http://constantin.glez.de/tag/nodejs">node.js</category>
 <category domain="http://constantin.glez.de/tag/programming">programming</category>
 <category domain="http://constantin.glez.de/tag/solaris">solaris</category>
 <category domain="http://constantin.glez.de/tag/web-services">web services</category>
 
 <pubDate>Sun, 15 May 2011 20:36:48 +0000</pubDate>
 <dc:creator>constant</dc:creator>
 <guid isPermaLink="false">220 at http://constantin.glez.de</guid>
<feedburner:origLink>http://constantin.glez.de/blog/2011/05/how-render-mandelbrot-set-joyent-cloud-nodejs</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/ConstantThinking/~5/terg3i_Lrkk/preview" length="33566" type="image/jpeg" /><feedburner:origEnclosureLink>http://constantin.glez.de/image/view/219/preview</feedburner:origEnclosureLink></item>
<item>
 <title>Checking Out the Amplidata Storage Cloud Technology</title>
 <link>http://feedproxy.google.com/~r/ConstantThinking/~3/QWSDThvM9f4/checking-out-amplidata-storage-cloud-technology</link>
 <description>&lt;div class="all-attached-images"&gt;&lt;div class="image-attach-body image-attach-node-214" style="width: 320px;"&gt;&lt;a href="/image/rack-full-amplidata-devices"&gt;&lt;img src="http://constantin.glez.de/sites/constantin.glez.de/files/images/amplidata.blog.jpg" alt="A Rack Full of Amplidata Devices" title="A Rack Full of Amplidata Devices"  class="image image-blog " width="320" height="213" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;Last week during WorldHostingDays, I had the opportunity to visit &lt;a href="http://tomleyden.wordpress.com/"&gt;Tom&lt;/a&gt; (&lt;a href="https://twitter.com/#!/tomme"&gt;@tomme&lt;/a&gt;), a former colleague of mine who came with Q-Layer to Sun, then to Oracle.&lt;br /&gt;
Today, he works for a new Belgian startup called &lt;a href="http://amplidata.com/"&gt;Amplidata&lt;/a&gt;, a company that specializes in building storage clouds. He introduced me to Wim, their CEO and we discussed their optimized object storage technology, some parallels to ZFS and the newest trends in cloud computing storage.&lt;br /&gt;
Amplidata is a spin-off of &lt;a href="http://www.incubaid.com/"&gt;Incubaid&lt;/a&gt;, a technology incubator which is responsible for the success of two good old Sun friends: Innotek (VirtualBox) and Q-Layer (The company that powered the Sun Cloud).&lt;/p&gt;
&lt;p&gt;The Amplidata idea is simple: Take the data and spread it across many storage nodes in a clever form, so that it is available in a scaleable, reliable and power-efficient way. Cloud storage in a box, err in multiple boxes, if you will.&lt;/p&gt;
&lt;h3&gt;The Technology&lt;/h3&gt;
&lt;p&gt;The way this works is slightly more complex, and Amplidata's secret sauce is composed of three technologies:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BitSpread&lt;/strong&gt;: This is a clever new algorithm that splits up a given block of data into multiple blocks that can be spread across multiple nodes.&lt;br /&gt;
The trick here is that it can reconstruct the original data out of a &lt;em&gt;sufficient&lt;/em&gt; number of blocks, which is smaller than the &lt;em&gt;total&lt;/em&gt; number of blocks.&lt;br /&gt;
Sounds weird? Let's try an example: Take a block of data and pass it through the BitSpread codec and it will yield, say, 10 blocks. The codec is set so that 7 blocks are sufficient to reconstruct the data. Now, you can take &lt;em&gt;any subset&lt;/em&gt; of 7 blocks out of the 10 and the codec will be able to reconstruct the original data. Kinda like RAID, but with no distinction between data and parity blocks, and with an arbitrary number of total blocks and sufficient blocks, which is configurable.&lt;br /&gt;
The more obvious advantage is that now any 3 blocks (assuming we stay with 10 total blocks and 7 sufficient ones) can be missing and we can still reconstruct the data out of the remaining 7. Since blocks are spread across nodes, it's a bit like a distributed RAID algorithm.&lt;br /&gt;
The other advantage is that when you retrieve data, you can ask all ten nodes to send you their blocks, and you can deliver the original block as soon as the first 7 have arrived. This can help performance if some of your nodes are more loaded than others.&lt;br /&gt;
Or, you can choose to bring down up to 30% of your storage nodes to save power and still be able to deliver your data. Neat.&lt;br /&gt;
There's also a security aspect to this: When data is spread across many nodes, an attacker can't learn much if he only steals one node's worth of data (or even a rack, if the installation is big enough).&lt;br /&gt;
The BitSpread parameters are configurable: For each file, the user can specify the number of resulting blocks to spread across and how many of them are to be sufficient for reconstruction.&lt;br /&gt;
Finally, and contrary to RAID-5 and similar algorithms, the BitSpread codec is designed to have a low overhead, so it doesn't get in the way of performance.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BitLog&lt;/strong&gt;: Many of the concepts behind BitLog reminded me of ZFS although they're implemented quite differently. It's a combination of smart caches (similar to ZFS' ZIL and L2ARC) to store written and read data locally in order to help performance, combined with a special data structure that enables snapshots, clones, I/O optimization and other more advanced data services. Again, BitLog is spread across nodes and helps the whole system to provide transactional robustness and higher level features.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BitDynamics&lt;/strong&gt;: This is the management software that manages the Amplidata storage nodes. It manages all the housekeeping between the nodes such as data integrity, scrubbing, node management, self-healing and garbage collection.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The three technologies form the foundation of the Amplidata storage system, which adds block device, iSCSI, Fiber Channel and Amazon S3 interfaces on top. This enables customers to build storage clouds out of Amplidata's nodes and deliver services similar to both traditional SANs and cloud computing vendors. &lt;/p&gt;
&lt;h3&gt;Two Business Models&lt;/h3&gt;
&lt;p&gt;One of the main challenges for a startup is figuring out how to bring their technology to market. Amplidata has two models:&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;Amplidata company&lt;/strong&gt; offers their technology as an OEM solution to partners who want to build storage clouds.&lt;/p&gt;
&lt;p&gt;The &lt;strong&gt;AmpliStor product&lt;/strong&gt; is an optimized object storage solution for petabyte-scale, unstructured data applications.&lt;/p&gt;
&lt;p&gt;AmpliStor comes with its own hardware, using high capacity storage enclosures, low-power drives, pre-installed software and some extra temperature and power management intelligence to make the solution more energy-efficient. For example, AmpliStor can switch off individual drives or full nodes when not used, to save energy.&lt;/p&gt;
&lt;h3&gt;Uses and Applications&lt;/h3&gt;
&lt;p&gt;Amplidata and AmpliStor are different from your good old NFS server, therefore it's important to know where they fit and where not. The distributed nature of the system is a powerful concept, but it comes at the price of higher latency compared to direct attach or traditional NAS storage (though I haven't seen benchmarks yet). Here are some typical applications:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Web 2.0 Style Media&lt;/strong&gt;: Petabytes of photos, movies, audio etc. are created every day by social networks and their users. This is a natural fit for the Amplidata storage model, because the data is largely unstructured (here's my data and a hash, when I show you the hash, gimme the data back) and the distributed nature makes it easy to provide reliable storage at web-style performance for affordable cost.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Media Archives&lt;/strong&gt;: There's a growing space in archiving that requires less power-use than disk storage, but is more demanding than tape storage. For example, digital media archives (think YouTube) want to archive large amounts of data, but they're not always happy with the latency of tape (think YouTube, but with minutes of waiting before the video starts). Still, they want to save power and cooling, so this would be an attractive solution here.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cloud Storage&lt;/strong&gt;: Of course, if you're a service provider or a public cloud, you'll likely want to provide something similar to Amazon's S3 service. This solution comes with a pre-built S3-compatible API, too. Cloud storage in boxes.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;The Verdict&lt;/h3&gt;
&lt;p&gt;Amplidata has some very innovative technology. It reminds me of a distributed kind of ZFS, though some parts are quite different. Today, they're using standard Linux nodes as the base of their storage servers. It would be cool to try their solution with ZFS and Solaris on their nodes for some extra robustness, performance, and data integrity (through ZFS), reliability (through Solaris FMA and SMF) and observability (DTrace). Maybe something for the future?&lt;/p&gt;
&lt;p&gt;Anyway, if you're looking for an optimized object storage solution in the cloud, check them out.&lt;/p&gt;
&lt;h3&gt;More Information&lt;/h3&gt;
&lt;p&gt;The &lt;a href="http://amplidata.com/"&gt;Amplidata web site&lt;/a&gt; is evolving quickly, so check often. There's a small &lt;a href="http://amplidata.com/Technology"&gt;page on technology&lt;/a&gt; but you can &lt;a href="http://www.amplidata.com/Contactform_technology"&gt;request a technology paper&lt;/a&gt; if you want more details.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Full disclosure and disclaimer&lt;/strong&gt;: Tom gave me a free ticket to visit WorldHostingDays in Rust, where Amplidata had a booth, though with no strings attached. Thanks, Tom! Also remember that I'm an Oracle employee, but this is solely my own, personal and independent opinion and not my employer's.&lt;/p&gt;
&lt;div class="flattr-box"&gt;&lt;script type="text/javascript"&gt;
  var flattr_uid = '26528';
  var flattr_tle = 'Checking Out the Amplidata Storage Cloud Technology';
  var flattr_dsc = 'Last week during WorldHostingDays, I had the opportunity to visit &amp;lt;a href=&amp;quot;http://tomleyden.wordpress.com/&amp;quot;&amp;gt;Tom&amp;lt;/a&amp;gt; (&amp;lt;a href=&amp;quot;https://twitter.com/#!/tomme&amp;quot;&amp;gt;@tomme&amp;lt;/a&amp;gt;), a former colleague of mine who came with Q-Layer to Sun, then to Oracle.Today, he works for a new Belgian startup called &amp;lt;a href=&amp;quot;http://amplidata.com/&amp;quot;&amp;gt;Amplidata&amp;lt;/a&amp;gt;, a company that specializes in building storage clouds. He introduced me to Wim, their CEO and we discussed their optimized object storage technology, some parallels to ZFS and the newest trends in cloud computing storage.Amplidata is a spin-off of &amp;lt;a href=&amp;quot;http://www.incubaid.com/&amp;quot;&amp;gt;Incubaid&amp;lt;/a&amp;gt;, a technology incubator which is responsible for the success of two good old Sun friends: Innotek (VirtualBox) and Q-Layer (The company that powered the Sun Cloud).';
  var flattr_tag = 'amplidata,amplistore,clouds,distributed,object storage,Reviews,storage,technology';
  var flattr_cat = 'text';
  var flattr_url = 'http://constantin.glez.de/blog/2011/03/checking-out-amplidata-storage-cloud-technology';
  var flattr_lng = 'en_GB'&lt;/script&gt;
&lt;script src="http://api.flattr.com/button/load.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/div&gt;&lt;script src="http://feedproxy.google.com/~s/ConstantThinking/?i=http://constantin.glez.de/blog/2011/03/checking-out-amplidata-storage-cloud-technology" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;div class='sexybookmarks-default-5127'&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=QWSDThvM9f4:Wp1oWmeKMiU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=QWSDThvM9f4:Wp1oWmeKMiU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=QWSDThvM9f4:Wp1oWmeKMiU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=QWSDThvM9f4:Wp1oWmeKMiU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=QWSDThvM9f4:Wp1oWmeKMiU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=QWSDThvM9f4:Wp1oWmeKMiU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=QWSDThvM9f4:Wp1oWmeKMiU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=QWSDThvM9f4:Wp1oWmeKMiU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=QWSDThvM9f4:Wp1oWmeKMiU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ConstantThinking/~4/QWSDThvM9f4" height="1" width="1"/&gt;</description>
 <category domain="http://constantin.glez.de/tag/amplidata">amplidata</category>
 <category domain="http://constantin.glez.de/tag/amplistore">amplistore</category>
 <category domain="http://constantin.glez.de/tag/clouds">clouds</category>
 <category domain="http://constantin.glez.de/tag/distributed">distributed</category>
 <category domain="http://constantin.glez.de/tag/object-storage">object storage</category>
 <category domain="http://constantin.glez.de/category/reviews">Reviews</category>
 <category domain="http://constantin.glez.de/tag/storage">storage</category>
 <category domain="http://constantin.glez.de/tag/technology">technology</category>
 
 <pubDate>Mon, 28 Mar 2011 20:14:23 +0000</pubDate>
 <dc:creator>constant</dc:creator>
 <guid isPermaLink="false">213 at http://constantin.glez.de</guid>
<feedburner:origLink>http://constantin.glez.de/blog/2011/03/checking-out-amplidata-storage-cloud-technology</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/ConstantThinking/~5/yfrqNPjq7-E/preview" length="61892" type="image/jpeg" /><feedburner:origEnclosureLink>http://constantin.glez.de/image/view/214/preview</feedburner:origEnclosureLink></item>
<item>
 <title>How to Set Up a ZFS Root Pool Mirror in Oracle Solaris 11 Express</title>
 <link>http://feedproxy.google.com/~r/ConstantThinking/~3/8ewDCBhanqY/how-set-zfs-root-pool-mirror-oracle-solaris-11-express</link>
 <description>&lt;div class="all-attached-images"&gt;&lt;div class="image-attach-body image-attach-node-207" style="width: 320px;"&gt;&lt;a href="/image/mirroring-root-pool-zfs"&gt;&lt;img src="http://constantin.glez.de/sites/constantin.glez.de/files/images/MirroringRpool.blog.jpg" alt="Mirroring the root pool with ZFS" title="Mirroring the root pool with ZFS"  class="image image-blog " width="320" height="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;One of the first things to do when setting up a new system is to mirror your boot disk. This protects you against system disk failures: If one of the two mirrored boot disks fails, the system can continue running from the other disk without downtime. You can even boot from the surviving mirror half and continue using the system normally, until you have replaced the failed half.&lt;/p&gt;
&lt;p&gt;At the currently low prices for boot drive sized disks, this is a no-brainer for increasing your system's availability, even for a home server system.&lt;/p&gt;
&lt;p&gt;Unfortunately, the steps to complete until you're running off a mirrored ZFS root pool are not yet a no-brainer. While there is a piece of documentation entitled &lt;em&gt;&lt;a href="http://download.oracle.com/docs/cd/E19963-01/html/821-1448/gjtuk.html#gjtui"&gt;How to Configure a Mirrored Root Pool&lt;/a&gt;&lt;/em&gt;, it only covers how to add a second disk to your root pool, it does not cover how to prepare and layout a fresh disk so Solaris will accept it as a bootable second half of an rpool mirror.&lt;/p&gt;
&lt;p&gt;Which, for historic reasons, is slightly more complicated than just saying &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;zpool attach&lt;/code&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Over the weekend, I sat down and played a bit with the current &lt;a href="http://www.oracle.com/technetwork/server-storage/solaris11/overview/index.html"&gt;Oracle Solaris 11 Express&lt;/a&gt; release in &lt;a href="http://virtualbox.org/"&gt;VirtualBox&lt;/a&gt; and tested, re-tested and investigated all currently necessary steps to get your root pool mirrored, including some common issues and variations.&lt;/p&gt;
&lt;p&gt;Here's a complete, step-by-step guide with background information on how to mirror your ZFS root pool:&lt;/p&gt;
&lt;h3&gt;The Basic Plan&lt;/h3&gt;
&lt;p&gt;After a standard install of Oracle Solaris 11 Express, we'll have our system disk configured as a ZFS root pool called &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;rpool&lt;/code&gt;&lt;/span&gt;. The rpool disk is set up as an &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;fdisk&lt;/code&gt;&lt;/span&gt; partition with some SMI partitions (= "slices") on top. The &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;fdisk&lt;/code&gt;&lt;/span&gt; part is for compatibility with other OSes, the SMI slicing is done in order to reserve some room on the physical disk for the boot blocks and GRUB.&lt;/p&gt;
&lt;p&gt;This is different from a regular ZFS data disk which would normally use EFI (not fdisk) labels and no further partitioning.&lt;/p&gt;
&lt;p&gt;So here's the basic plan on how to turn a fresh disk into an rpool mirror:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt; &lt;a href="#whatdisks"&gt;First, we'll figure out what disks we have on the system and what their device names are&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt; &lt;a href="#fdisk"&gt;For x86 systems, we need to create an &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;fdisk(1M)&lt;/code&gt;&lt;/span&gt; primary partition on the second disk (the one to be mirrored), so it uses the same partitioning technology as the original rpool disk and so it can support booting&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt; &lt;a href="#label"&gt;We'll then set up an SMI label on the second disk with the same layout (slices) than on the first disk. This includes the slice that reserves space for boot blocks and GRUB and the slice that will contain the rpool's second mirror half&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt; &lt;a href="#attach"&gt;Now that we have sliced and diced the second disk the same way as the original rpool disk, we can use &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;zpool attach&lt;/code&gt;&lt;/span&gt; to let ZFS mirror its data on top of it&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt; &lt;a href="#installgrub"&gt;For x86 systems, and after ZFS has finished resilvering the rpool mirror, we'll install GRUB onto the second disk so it becomes equivalent to the original rpool disk in terms of bootability&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt; &lt;a href="#bootprom"&gt;As a final step, you need to configure your BIOS or OpenBoot PROM to try booting from the second disk if the first one is not available&lt;/a&gt;.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You see, the official documentation only covers step 4 above, and let's you guess about the other steps. Here's the full sequence of stuff to do to create a proper mirror in more detail:&lt;/p&gt;
&lt;h3&gt;&lt;a name="whatdisks"&gt;&lt;/a&gt;1. Figure Out Your System's Disks&lt;/h3&gt;
&lt;p&gt;Hard drives in Solaris show up in the &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;/dev/rdsk&lt;/code&gt;&lt;/span&gt; directory as raw devices and the same drives with the same names show up again in &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;/dev/dsk&lt;/code&gt;&lt;/span&gt;. The former are used to perform raw partitioning and low-level options, while the latter is the standard way to access disks from a day-to-day point of view such as setting up ZFS pools.&lt;/p&gt;
&lt;p&gt;Here's a typical device name: &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;c0t0d0s0&lt;/code&gt;&lt;/span&gt;. The naming convention is simple: &lt;strong&gt;C&lt;/strong&gt;ontroller 0, SCSI &lt;strong&gt;t&lt;/strong&gt;arget 0, &lt;strong&gt;d&lt;/strong&gt;isk 0 and Solaris &lt;strong&gt;s&lt;/strong&gt;lice 0.
&lt;/p&gt;&lt;p&gt; Of course, the digits may vary and even become multi-digits in larger systems such as &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;c12t18d5s8&lt;/code&gt;&lt;/span&gt;, but the convention is always the same.&lt;/p&gt;
&lt;p&gt;PATA systems omit the &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;t0&lt;/code&gt;&lt;/span&gt; part, because PATA doesn't support "targets" like SCSI or SATA does. This will give you devices like: &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;c0d0s0&lt;/code&gt;&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;Sometimes, when dealing with DOS partitions, you'll see a &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;p0&lt;/code&gt;&lt;/span&gt; part instead of the (Solaris specific) &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;s0&lt;/code&gt;&lt;/span&gt; piece. This simply refers to DOS partition 0 (or any other DOS primary partition).&lt;/p&gt;
&lt;p&gt;So before we do anything, we need to figure out what disks we are dealing with, what device names they have and if they're used somewhere else already. Two commands will help us here:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;zpool status&lt;/code&gt;&lt;/span&gt; will print information about running zpools. This should tell you what the device name for your existing root pool ("rpool") is. On my system, I get this:&lt;br /&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;admin@s11test:~$ zpool status
  pool: rpool
 state: ONLINE
 scan: resilvered 2.61G in 0h16m with 0 errors on Sun Mar 13 21:01:06 2011
config:
&amp;nbsp;
        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          c7t0d0s0  ONLINE       0     0     0
&amp;nbsp;
errors: No known data errors&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This means my rpool sits on controller 7, target 0, disk 0 and slice 0.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt; The easiest, interactive way of figuring out all of your disks in the system would be the &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;format&lt;/code&gt;&lt;/span&gt; command, but we don't want to spend time going through menus and needless interactivity. Here's a less common, but effective option: &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;cfgadm&lt;/code&gt;&lt;/span&gt;. This command will tell you what disks we have in the system:&lt;br /&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;admin@s11test:~$ cfgadm -s &amp;quot;select=type(disk)&amp;quot;
Ap_Id                          Type         Receptacle   Occupant     Condition
sata0/0::dsk/c7t0d0            disk         connected    configured   ok
sata0/1::dsk/c7t1d0            disk         connected    configured   ok&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Not surprisingly, the second disk in our system therefore sits on target 1 of the same controller. Since &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;cfgadm&lt;/code&gt;&lt;/span&gt; only knows about hardware, not (software) slices, it omits any "s" part.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Now we know what disks we have, which of them is used for rpool already, and which ones are available as a second mirror half for our rpool.&lt;/p&gt;
&lt;h3&gt;&lt;a name="fdisk"&gt;&lt;/a&gt;2. x86 only: Set Up a Single Fdisk Partition on Your Second Disk&lt;/h3&gt;
&lt;p&gt;Solaris disk partitioning works differently in the SPARC and in the x86 world:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;SPARC&lt;/strong&gt;: Disks are labeled using special, Solaris-specific "SMI labels". No need for special boot magic or GRUB, etc. here, as the SPARC systems' OpenBoot PROM is intelligent enough to handle the boot process by itself.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;x86&lt;/strong&gt;: For reasons of compatibility with the rest of the x86 world, Solaris uses a primary &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;fdisk&lt;/code&gt;&lt;/span&gt; partition labeled &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;Solaris2&lt;/code&gt;&lt;/span&gt;, so it can coexist with other OSes. Solaris then treats its &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;fdisk&lt;/code&gt;&lt;/span&gt; partition as if it were the whole disk and proceeds by using an SMI label on top of that to further slice the disk into smaller partitions. These are then called "slices".&lt;br /&gt;
The boot process uses GRUB, again for compatibility reasons, with a special module that is capable of booting off a ZFS root pool.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;So for x86, the first thing to do now is to make sure that the disk has an fdisk partition of type "Solaris2" that spans the whole disk. For SPARC, we can skip this step.&lt;/p&gt;
&lt;p&gt;&lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;fdisk&lt;/code&gt;&lt;/span&gt; doesn't know about Solaris slices, it only cares about DOS-style partitions. Therefore, device names are different when dealing with &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;fdisk&lt;/code&gt;&lt;/span&gt;: We'll refer to the first partition now and call it "p0". This will work even if there are no partitions defined on the disk, it's just a way to address the disk in DOS partition mode.&lt;/p&gt;
&lt;p&gt;Again, we could use &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;fdisk&lt;/code&gt;&lt;/span&gt; in interactive mode and wiggle ourselves through the menus, but I prefer the command line way. Here's how to check if your disk already has some kind of DOS partitioning:&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;admin@s11test:~# fdisk -W - c7t1d0p0
&amp;nbsp;
* /dev/rdsk/c7t1d0p0 default fdisk table
* Dimensions:
*    512 bytes/sector
*     63 sectors/track
*    255 tracks/cylinder
*   2088 cylinders
*
* systid:
*    1: DOSOS12
*    2: PCIXOS
*    4: DOSOS16&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;(lots of id specifications omitted...)&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;*  191: SUNIXOS2
*  238: EFI_PMBR
*  239: EFI_FS
*
&amp;nbsp;
* Id    Act  Bhead  Bsect  Bcyl    Ehead  Esect  Ecyl    Rsect      Numsect
  0     0    0      0      0       0      0      0       0          0         
  0     0    0      0      0       0      0      0       0          0         
  0     0    0      0      0       0      0      0       0          0         
  0     0    0      0      0       0      0      0       0          0&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;The second &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;-&lt;/code&gt;&lt;/span&gt; tells the &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;W&lt;/code&gt;&lt;/span&gt; option to write to standard out instead of to a file.&lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;SUNIXOS2&lt;/code&gt;&lt;/span&gt; (191) really means &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;SOLARIS2&lt;/code&gt;&lt;/span&gt;. This is the partition type that we'll create soon.&lt;/p&gt;
&lt;p&gt;Here's how to apply a default Solaris &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;fdisk&lt;/code&gt;&lt;/span&gt; partition to a disk in one simple step:&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;admin@s11test:~# fdisk -B c7t1d0p0&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;That's it. Be careful and double-check that you got the device name right! If you're unsure, you can still use the interactive version (&lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;fdisk c7t1d0p0&lt;/code&gt;&lt;/span&gt;) and work through the menus by hand.&lt;/p&gt;
&lt;p&gt;Now let's verify that we got what we wanted:&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;admin@s11test:~# fdisk -W - c7t1d0p0
&amp;nbsp;
* /dev/rdsk/c7t1d0p0 default fdisk table
* Dimensions:
*    512 bytes/sector
*     63 sectors/track
*    255 tracks/cylinder
*   2088 cylinders
*
* systid:
*    1: DOSOS12
*    2: PCIXOS
*    4: DOSOS16&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;(stuff omitted...)&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;*  191: SUNIXOS2
*  238: EFI_PMBR
*  239: EFI_FS
*
&amp;nbsp;
* Id    Act  Bhead  Bsect  Bcyl    Ehead  Esect  Ecyl    Rsect      Numsect
  191   128  0      1      1       254    63     1023    16065      33527655  
  0     0    0      0      0       0      0      0       0          0         
  0     0    0      0      0       0      0      0       0          0         
  0     0    0      0      0       0      0      0       0          0&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Here's the &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;fdisk&lt;/code&gt;&lt;/span&gt; partition we wanted. Its type is 191 which equals to &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;SOLARIS2&lt;/code&gt;&lt;/span&gt; (you can double-check using the interactive version of &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;fdisk&lt;/code&gt;&lt;/span&gt;), and it spans the whole disk.&lt;/p&gt;
&lt;h3&gt;&lt;a name="label"&gt;&lt;/a&gt;3. Set Up an SMI Label With the Same Partitioning on the Second Disk&lt;/h3&gt;
&lt;p&gt;Before ZFS can do its magic, we need to tell it where on the disk the rpool's mirror is supposed to be, and what blocks are off-limits because they're supposed to host the GRUB bootloader. This is done by using a Solaris SMI label that breaks down our &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;Solaris2 fdisk&lt;/code&gt;&lt;/span&gt; partition into Solaris "slices".&lt;/p&gt;
&lt;p&gt;Again, there's an interactive possibility using the &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;format&lt;/code&gt;&lt;/span&gt; command, which involves many interactive steps (print out the original disk's layout, set it up step by step on the second disk, write the label), but we want to be cool here, so we'll do it in a single step, again:&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;admin@s11test:~# prtvtoc /dev/rdsk/c7t0d0s0 | fmthard -s - /dev/rdsk/c7t1d0s0
fmthard:  New volume table of contents now in place.&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;That's it. You can check how the new Solaris-style partitioning looks like on the second disk and compare to the first one. Here's my first disk:&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;admin@s11test:~# format
Searching for disks...done
&amp;nbsp;
&amp;nbsp;
AVAILABLE DISK SELECTIONS:
       0. c7t0d0 &amp;lt;ATA    -VBOX HARDDISK  -1.0  cyl 2085 alt 2 hd 255 sec 63&amp;gt;
          /pci@0,0/pci8086,2829@d/disk@0,0
       1. c7t1d0 &amp;lt;ATA    -VBOX HARDDISK  -1.0  cyl 2085 alt 2 hd 255 sec 63&amp;gt;
          /pci@0,0/pci8086,2829@d/disk@1,0
Specify disk (enter its number): 0
selecting c7t0d0
[disk formatted]
/dev/dsk/c7t0d0s0 is part of active ZFS pool rpool. Please see zpool(1M).
&amp;nbsp;
&amp;nbsp;
FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        fdisk      - run the fdisk program
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        inquiry    - show vendor, product and revision
        volname    - set 8-character volume name
        !&amp;lt;cmd&amp;gt;     - execute &amp;lt;cmd&amp;gt;, then return
        quit
format&amp;gt; p
&amp;nbsp;
&amp;nbsp;
PARTITION MENU:
        0      - change `0' partition
        1      - change `1' partition
        2      - change `2' partition
        3      - change `3' partition
        4      - change `4' partition
        5      - change `5' partition
        6      - change `6' partition
        7      - change `7' partition
        select - select a predefined table
        modify - modify a predefined partition table
        name   - name the current table
        print  - display the current table
        label  - write partition map and label to the disk
        !&amp;lt;cmd&amp;gt; - execute &amp;lt;cmd&amp;gt;, then return
        quit
partition&amp;gt; p
Current partition table (original):
Total disk cylinders available: 2085 + 2 (reserved cylinders)
&amp;nbsp;
Part      Tag    Flag     Cylinders        Size            Blocks
  0       root    wm       1 - 2084       15.96GB    (2084/0/0) 33479460
  1 unassigned    wm       0               0         (0/0/0)           0
  2     backup    wu       0 - 2084       15.97GB    (2085/0/0) 33495525
  3 unassigned    wm       0               0         (0/0/0)           0
  4 unassigned    wm       0               0         (0/0/0)           0
  5 unassigned    wm       0               0         (0/0/0)           0
  6 unassigned    wm       0               0         (0/0/0)           0
  7 unassigned    wm       0               0         (0/0/0)           0
  8       boot    wu       0 -    0        7.84MB    (1/0/0)       16065
  9 unassigned    wm       0               0         (0/0/0)           0
&amp;nbsp;
partition&amp;gt; q&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;And here's my second disk:&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;admin@s11test:~# format
Searching for disks...done
&amp;nbsp;
&amp;nbsp;
AVAILABLE DISK SELECTIONS:
       0. c7t0d0 &amp;lt;ATA    -VBOX HARDDISK  -1.0  cyl 2085 alt 2 hd 255 sec 63&amp;gt;
          /pci@0,0/pci8086,2829@d/disk@0,0
       1. c7t1d0 &amp;lt;ATA    -VBOX HARDDISK  -1.0  cyl 2085 alt 2 hd 255 sec 63&amp;gt;
          /pci@0,0/pci8086,2829@d/disk@1,0
Specify disk (enter its number): 1
selecting c7t1d0
[disk formatted]
&amp;nbsp;
&amp;nbsp;
FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        fdisk      - run the fdisk program
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        inquiry    - show vendor, product and revision
        volname    - set 8-character volume name
        !&amp;lt;cmd&amp;gt;     - execute &amp;lt;cmd&amp;gt;, then return
        quit
format&amp;gt; p
&amp;nbsp;
&amp;nbsp;
PARTITION MENU:
        0      - change `0' partition
        1      - change `1' partition
        2      - change `2' partition
        3      - change `3' partition
        4      - change `4' partition
        5      - change `5' partition
        6      - change `6' partition
        7      - change `7' partition
        select - select a predefined table
        modify - modify a predefined partition table
        name   - name the current table
        print  - display the current table
        label  - write partition map and label to the disk
        !&amp;lt;cmd&amp;gt; - execute &amp;lt;cmd&amp;gt;, then return
        quit
partition&amp;gt; p
Current partition table (original):
Total disk cylinders available: 2085 + 2 (reserved cylinders)
&amp;nbsp;
Part      Tag    Flag     Cylinders        Size            Blocks
  0       root    wm       1 - 2084       15.96GB    (2084/0/0) 33479460
  1 unassigned    wu       0               0         (0/0/0)           0
  2     backup    wu       0 - 2084       15.97GB    (2085/0/0) 33495525
  3 unassigned    wu       0               0         (0/0/0)           0
  4 unassigned    wu       0               0         (0/0/0)           0
  5 unassigned    wu       0               0         (0/0/0)           0
  6 unassigned    wu       0               0         (0/0/0)           0
  7 unassigned    wu       0               0         (0/0/0)           0
  8       boot    wu       0 -    0        7.84MB    (1/0/0)       16065
  9 unassigned    wu       0               0         (0/0/0)           0
&amp;nbsp;
partition&amp;gt; q&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: This is a typical x86 layout. It's likely different on SPARC systems as they don't use a special slice for boot block hosting. But the basic idea on how to replicate the partition table is the same.&lt;/p&gt;
&lt;p&gt;Great! We're almost there.&lt;/p&gt;
&lt;h3&gt;&lt;a name="attach"&gt;&lt;/a&gt;4. Set Up the ZFS Rpool Mirror&lt;/h3&gt;
&lt;p&gt;Now that our second disk is prepared, the rest is quite easy. From now on, we can just follow the &lt;a href="http://download.oracle.com/docs/cd/E19963-01/html/821-1448/gjtuk.html#gjxku"&gt;standard Solaris documentation for mirroring the root pool&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The right command to use here is &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;zpool attach&lt;/code&gt;&lt;/span&gt;. Notice that this is different from &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;zpool add&lt;/code&gt;&lt;/span&gt;: By &lt;em&gt;attaching&lt;/em&gt; a disk to an existing disk, we mean &lt;em&gt;attaching it to its mirror&lt;/em&gt; (you can attach more than one disk to a mirror). By &lt;em&gt;adding&lt;/em&gt; a disk to a pool, we mean &lt;em&gt;expanding the pool size&lt;/em&gt; in the sense of striping in another disk (or sets of mirrored/RAID-Z disks). For mirroring, &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;zpool attach&lt;/code&gt;&lt;/span&gt; is the way to go. Remember? Slice 0 is the one we reserved for the rpool's mirrored data:&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;admin@s11test:~# zpool attach rpool c7t0d0s0 c7t1d0s0
invalid vdev specification
use '-f' to override the following errors:
/dev/dsk/c7t1d0s0 overlaps with /dev/dsk/c7t1d0s2&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Wait, what happened? ZFS is complaining that two slices are overlapping. If ZFS uses slice 0, and something else uses slice 2, it may overwrite some of ZFS' data!&lt;/p&gt;
&lt;p&gt;In this particular case, ZFS' worries are unfounded: Slice 2 by convention spans the whole disk and is named "backup" (see the output of format above), so traditional disk backup solutions have a way of easily performing raw backups of whole disks. Today it's hardly used, but the convention remains for historical reasons.&lt;/p&gt;
&lt;p&gt;Therefore, we can safely override this little nit and get our mirror done:&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;admin@s11test:~# zpool attach -f rpool c7t0d0s0 c7t1d0s0
Make sure to wait until resilver is done before rebooting.
admin@s11test:~# zpool status
  pool: rpool
 state: ONLINE
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
 scan: resilver in progress since Tue Mar 15 18:17:32 2011
    13.9M scanned out of 2.72G at 594K/s, 1h19m to go
    13.3M resilvered, 0.50% done
config:
&amp;nbsp;
        NAME          STATE     READ WRITE CKSUM
        rpool         ONLINE       0     0     0
          mirror-0    ONLINE       0     0     0
            c7t0d0s0  ONLINE       0     0     0
            c7t1d0s0  ONLINE       0     0     0  (resilvering)
&amp;nbsp;
errors: No known data errors&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Great! Everything's working fine now. Before we make the second disk bootable, we should really wait until it has finished resilvering. We don't want to boot into a half-baked root pool, do we?&lt;/p&gt;
&lt;p&gt;Here's the end state, freshly resilvered:&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;admin@s11test:~# zpool status
  pool: rpool
 state: ONLINE
 scan: resilvered 2.72G in 0h15m with 0 errors on Tue Mar 15 18:33:23 2011
config:
&amp;nbsp;
        NAME          STATE     READ WRITE CKSUM
        rpool         ONLINE       0     0     0
          mirror-0    ONLINE       0     0     0
            c7t0d0s0  ONLINE       0     0     0
            c7t1d0s0  ONLINE       0     0     0
&amp;nbsp;
errors: No known data errors&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;&lt;a name="installgrub"&gt;&lt;/a&gt;5. x86 only: Make the Second Mirror Half Bootable&lt;/h3&gt;
&lt;p&gt;Since x86 systems depend on a bootloader that is installed on disk, we need to perform a final step so that the system can boot off the second disk, too, in case the first one fails completely.&lt;/p&gt;
&lt;p&gt;This is a simple install of GRUB onto the second disk. GRUB, ZFS and Solaris will then figure it out automatically in case you have to boot from the second disk instead of the original one.&lt;/p&gt;
&lt;div class="geshifilter"&gt;
&lt;pre class="text geshifilter-text"&gt;admin@s11test:~# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c7t1d0s0
stage2 written to partition 0, 277 sectors starting at 50 (abs 16115)
stage1 written to partition 0 sector 0 (abs 16065)&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Since we're dealing with a low-level operation (boot blocks etc.), we want to address the devices using the raw device paths. The &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;s0&lt;/code&gt;&lt;/span&gt; part is still needed so GRUB knows what slice to boot from.&lt;/p&gt;
&lt;p&gt;Almost done!&lt;/p&gt;
&lt;h3&gt;&lt;a name="bootprom"&gt;&lt;/a&gt;6. Add the Second Disk to the BIOS' or OpenBoot PROM's List of Bootable Devices&lt;/h3&gt;
&lt;p&gt;This is one of the little things that often gets overlooked but then becomes critical in case of a real failure: The system crashes because the first disk is completely borked, or you force a reboot and the first disk fails to come up again. How does the system know it's supposed to boot from the second half of the mirror?&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;a href="http://download.oracle.com/docs/cd/E19963-01/html/821-1451/grubtasks-1.html"&gt;Managing the Solaris boot behavior and its mechanism&lt;/a&gt; is described thoroughly in the documentation:&lt;/li&gt;
&lt;li&gt; SPARC: Here you usually set up aliases for your bootable mirror halfs in the Open Boot PROM, then assign them to the &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;boot-device&lt;/code&gt;&lt;/span&gt; variable as a list of possible devices to boot from (e.g.: "&lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;disk1 disk2 net&lt;/code&gt;&lt;/span&gt;"). Check out the &lt;a href="http://www.oracle.com/technetwork/documentation/oracle-sparc-ent-servers-189996.html"&gt;SPARC Enterprise Servers&lt;/a&gt; section of the Oracle System Documentation area, find the administration guide for your particular system, then consult the sections on booting.&lt;/li&gt;
&lt;li&gt; x86: Most BIOSes have a section where you can configure what disks to boot from, in what order and what to do if a disk is not bootable. Here's &lt;a href="http://www.oracle.com/technetwork/documentation/oracle-x86-servers-190077.html"&gt;a list of current Oracle Sun x86 system documentations&lt;/a&gt;. Again, look for the boot section of your system's admin manual.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Play With It! And Check Out Some Man Pages!&lt;/h3&gt;
&lt;p&gt;How do you know if this really works? How do you develop confidence for something critical like booting from a second mirror half, surviving a disk disaster, etc.?&lt;/p&gt;
&lt;p&gt;Here's the easiest option: Use &lt;a href="http://virtualbox.org/"&gt;VirtualBox&lt;/a&gt; to set up a test system like I did. It comes with ready-to use suggestions for a standard Solaris machine. Then, configure a second virtual disk and play with the commands above. Set up a mirrored rpool, bring down the machine, unconfigure the original disk, then see if it can boot from the second mirror half and so on.&lt;/p&gt;
&lt;p&gt;BTW: I did not find a way to tell VirtualBox what disk to boot from (it only allows to specify what &lt;em&gt;type&lt;/em&gt; of device to boot from, not what &lt;em&gt;individual disk&lt;/em&gt;), so I reverted to just pull out (figuratively speaking) the original boot disk, then test if if boots from the mirrored one.&lt;/p&gt;
&lt;p&gt;In short: Play, experiment, break it, etc., until you know what's going on and are confident to make it happen on your real system.&lt;/p&gt;
&lt;p&gt;Finally, here's a list of useful man pages to check out, including links:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://download.oracle.com/docs/cd/E19963-01/html/821-1462/cfgadm-1m.html"&gt;&lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;cgfadm(1M)&lt;/code&gt;&lt;/span&gt;&lt;/a&gt;: Asks about and modify's your system's hardware.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://download.oracle.com/docs/cd/E19963-01/html/821-1462/fdisk-1m.html"&gt;&lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;fdisk(1M)&lt;/code&gt;&lt;/span&gt;&lt;/a&gt;: Manipulate DOS-style partitions.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://download.oracle.com/docs/cd/E19963-01/html/821-1462/prtvtoc-1m.html"&gt;&lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;prtvtoc(1M)&lt;/code&gt;&lt;/span&gt;&lt;/a&gt;: Print out a disk's partitioning information in a machine-readable format.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://download.oracle.com/docs/cd/E19963-01/html/821-1462/fmthard-1m.html"&gt;&lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;fmthard(1M)&lt;/code&gt;&lt;/span&gt;&lt;/a&gt;: Write a partitioning table to a disk.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://download.oracle.com/docs/cd/E19963-01/html/821-1462/format-1m.html"&gt;&lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;format(1M)&lt;/code&gt;&lt;/span&gt;&lt;/a&gt;: Interactive formatting utility.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://download.oracle.com/docs/cd/E19963-01/html/821-1462/zpool-1m.html"&gt;&lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;zpool(1M)&lt;/code&gt;&lt;/span&gt;&lt;/a&gt;: Manipulate ZFS pools.&lt;/li&gt;
&lt;li&gt;&lt;a href="http://download.oracle.com/docs/cd/E19963-01/html/821-1462/installgrub-1m.html"&gt;&lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;installgrub(1M)&lt;/code&gt;&lt;/span&gt;&lt;/a&gt;: Install the GRUB boot loader.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I hope this article has made rpool mirroring a little easier for you from now on!&lt;/p&gt;
&lt;h3&gt;Your Take&lt;/h3&gt;
&lt;p&gt;There are endless variations to the above, and sometimes I've been more verbose, or more simplified for the sake of ease-of-use. I'm sure there are many different ways to achieve the same result, so here's your chance to share your favorite mirrored rpool tricks!&lt;/p&gt;
&lt;p&gt;What's your routine for mirroring rpools? Did you find other good tutorials to share? ('cause I didn't, at least nothing obvious in Google...) What are your preferred rpool mirroring tricks?&lt;/p&gt;
&lt;p&gt;Feel free to write a comment!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Wow, this article got a lot of comments, thank you! Make sure you check them out as they contain a lot of useful additional information.&lt;/p&gt;
&lt;div class="flattr-box"&gt;&lt;script type="text/javascript"&gt;
  var flattr_uid = '26528';
  var flattr_tle = 'How to Set Up a ZFS Root Pool Mirror in Oracle Solaris 11 Express';
  var flattr_dsc = 'One of the first things to do when setting up a new system is to mirror your boot disk. This protects you against system disk failures: If one of the two mirrored boot disks fails, the system can continue running from the other disk without downtime. You can even boot from the surviving mirror half and continue using the system normally, until you have replaced the failed half.At the currently low prices for boot drive sized disks, this is a no-brainer for increasing your system&amp;#039;s availability, even for a home server system.Unfortunately, the steps to complete until you&amp;#039;re running off a mirrored ZFS root pool are not yet a no-brainer. While there is a piece of documentation entitled &amp;lt;em&amp;gt;&amp;lt;a href=&amp;quot;http://download.oracle.com/docs/cd/E19963-01/html/821-1448/gjtuk.html#gjtui&amp;quot;&amp;gt;How to Configure a Mirrored Root Pool&amp;lt;/a&amp;gt;&amp;lt;/em&amp;gt;, it only covers how to add a second disk to your root pool, it does not cover how to prepare and layout a fresh disk so Solaris will accept it as a bootable second half of an rpool mirror.Which, for historic reasons, is slightly more complicated than just saying &amp;lt;code&amp;gt;zpool attach&amp;lt;/code&amp;gt;.Over the weekend, I sat down and played a bit with the current &amp;lt;a href=&amp;quot;http://www.oracle.com/technetwork/server-storage/solaris11/overview/index.html&amp;quot;&amp;gt;Oracle Solaris 11 Express&amp;lt;/a&amp;gt; release in &amp;lt;a href=&amp;quot;http://virtualbox.org/&amp;quot;&amp;gt;VirtualBox&amp;lt;/a&amp;gt; and tested, re-tested and investigated all currently necessary steps to get your root pool mirrored, including some common issues and variations.Here&amp;#039;s a complete, step-by-step guide with background information on how to mirror your ZFS root pool:';
  var flattr_tag = 'availability,Disks,fdisk,format,howto,installgrub,label,mirroring,oracle solaris,partitioning,Solaris,useful,zfs,zpool';
  var flattr_cat = 'text';
  var flattr_url = 'http://constantin.glez.de/blog/2011/03/how-set-zfs-root-pool-mirror-oracle-solaris-11-express';
  var flattr_lng = 'en_GB'&lt;/script&gt;
&lt;script src="http://api.flattr.com/button/load.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/div&gt;&lt;script src="http://feedproxy.google.com/~s/ConstantThinking/?i=http://constantin.glez.de/blog/2011/03/how-set-zfs-root-pool-mirror-oracle-solaris-11-express" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;div class='sexybookmarks-default-2943'&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=8ewDCBhanqY:tz7uypMjquk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=8ewDCBhanqY:tz7uypMjquk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=8ewDCBhanqY:tz7uypMjquk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=8ewDCBhanqY:tz7uypMjquk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=8ewDCBhanqY:tz7uypMjquk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=8ewDCBhanqY:tz7uypMjquk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=8ewDCBhanqY:tz7uypMjquk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=8ewDCBhanqY:tz7uypMjquk:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=8ewDCBhanqY:tz7uypMjquk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ConstantThinking/~4/8ewDCBhanqY" height="1" width="1"/&gt;</description>
 <category domain="http://constantin.glez.de/tag/availability">availability</category>
 <category domain="http://constantin.glez.de/tag/disks">Disks</category>
 <category domain="http://constantin.glez.de/tag/fdisk">fdisk</category>
 <category domain="http://constantin.glez.de/tag/format">format</category>
 <category domain="http://constantin.glez.de/tag/howto">howto</category>
 <category domain="http://constantin.glez.de/tag/installgrub">installgrub</category>
 <category domain="http://constantin.glez.de/tag/label">label</category>
 <category domain="http://constantin.glez.de/tag/mirroring">mirroring</category>
 <category domain="http://constantin.glez.de/tag/oracle-solaris">oracle solaris</category>
 <category domain="http://constantin.glez.de/tag/partitioning">partitioning</category>
 <category domain="http://constantin.glez.de/category/solaris">Solaris</category>
 <category domain="http://constantin.glez.de/tag/useful">useful</category>
 <category domain="http://constantin.glez.de/tag/zfs">zfs</category>
 <category domain="http://constantin.glez.de/tag/zpool">zpool</category>
 
 <pubDate>Mon, 14 Mar 2011 16:45:27 +0000</pubDate>
 <dc:creator>constant</dc:creator>
 <guid isPermaLink="false">206 at http://constantin.glez.de</guid>
<feedburner:origLink>http://constantin.glez.de/blog/2011/03/how-set-zfs-root-pool-mirror-oracle-solaris-11-express</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/ConstantThinking/~5/Jrbui6adi58/preview" length="29710" type="image/jpeg" /><feedburner:origEnclosureLink>http://constantin.glez.de/image/view/207/preview</feedburner:origEnclosureLink></item>
<item>
 <title>Frequently Asked Questions About Flash Memory (SSDs) and ZFS</title>
 <link>http://feedproxy.google.com/~r/ConstantThinking/~3/6NQo4H6BQow/frequently-asked-questions-about-flash-memory-ssds-and-zfs</link>
 <description>&lt;div class="all-attached-images"&gt;&lt;div class="image-attach-body image-attach-node-167" style="width: 320px;"&gt;&lt;a href="/image/zfs-ssd-faq-illustration"&gt;&lt;img src="http://constantin.glez.de/sites/constantin.glez.de/files/images/ZFSSSDFAQ.blog.jpg" alt="ZFS SSD FAQ Illustration" title="ZFS SSD FAQ Illustration"  class="image image-blog " width="320" height="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;A few weeks ago, a reader asked me a couple of questions about SSDs and ZFS, hinting that this might be a good topic to write a blog post about.&lt;/p&gt;
&lt;p&gt;Sure enough, just last week, a couple of similar questions came up, this time from a customer and a colleague at work.&lt;/p&gt;
&lt;p&gt;Well, if that's not a sign from heaven, I don't know what is, so here's a collection of frequently asked questions about flash memory (also known as solid state disks, or SSDs) and ZFS, with answers and some useful links, and an index, too.&lt;/p&gt;
&lt;h3&gt;Index&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#what"&gt;What Are SSDs?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#same"&gt;Are Flash Memory and SSDs the Same Thing?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#better"&gt;Are SSDs "Better" Than Traditional Hard Disks?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#equal"&gt;Are All Flash Memory SSDs Equal or are there Different Variants?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#benefit"&gt;How Can ZFS Benefit From SSDs?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#write"&gt;How Do I Know if an SSD Will Really Help My Write Performance?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#read"&gt;How Do I Know if an SSD Will Really Help My Read Performance?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#types"&gt;Are different types of SSDs better suited as read or write accelerators?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#mirror"&gt;Should I mirror flash memory drives?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#both"&gt;Can I use the same SSD both as a ZIL and as an L2ARC?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#spacezil"&gt;How much space do I need for a ZIL?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#spacel2arc"&gt;How much space do I need for an L2ARC?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#configure"&gt;How do I configure ZFS to use SSDs?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#easier"&gt;That is too complicated, is there an easier way?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#nozfs"&gt;Can I benefit from Flash Memory/SSDs even if I don't use ZFS?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#more"&gt;More Questions and Answers&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a name="what"&gt;&lt;/a&gt;What Are SSDs?&lt;/h3&gt;
&lt;p&gt;"SSD" stands for "Solid State Disk". In short: A disk that doesn't have any moving parts. Today, most SSDs are made using flash memory, but some SSDs use a combination of RAM and some form of battery back up to make them permanent. The key is to leave out the moving parts so the SSD has much faster performance characteristics, especially in terms of IOPS. Read more about &lt;a href="http://en.wikipedia.org/wiki/Ssd"&gt;SSDs on Wikipedia&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;a name="same"&gt;&lt;/a&gt;Are Flash Memory and SSDs the Same Thing?&lt;/h3&gt;
&lt;p&gt;Technically, no: SSDs are a drive category, and flash memory are a memory technology. But in practice, people use both terms synonymously: A drive that looks like a harddrive but uses flash memory to store data instead of rotating rust is an SSD, which is the same as a "Flash Memory Drive". But much if not all that is being said about Flash Memory SSDs can also be applied to any other storage medium that has very fast IO performance characteristics, especially in terms of IOPS.&lt;/p&gt;
&lt;h3&gt;&lt;a name="better"&gt;&lt;/a&gt;Are SSDs "Better" Than Traditional Hard Disks?&lt;/h3&gt;
&lt;p&gt;It depends on what you're looking at: Flash Memory SSDs are about two orders of magnitude faster in terms of IOPS (the number of IO operations per second) than traditional harddisks. But in terms of throughput performance (MB/s) they're in a similar league. Since there are no moving parts, SSDs consume a lot less energy than traditional hard disks. For the same reason, they're also more reliable. On the other hand, the cost per GB is much higher with SSDs.&lt;br /&gt;
This creates an interesting phenomenon: While it would be cool to throw out all traditional disks from your datacenter, PCs and laptops, it would also be expensive. Therefore, the key to taking advantage of SSDs is to use them at the right place, and where their benefits most matter.&lt;br /&gt;
Think of SSDs as being a new layer of memory between RAM and traditional harddisks: Faster than drives, slower than RAM, cheaper than RAM on a per GB basis, but more expensive than disks. &lt;/p&gt;
&lt;h3&gt;&lt;a name="equal"&gt;&lt;/a&gt;Are All Flash Memory SSDs Equal or are there Different Variants?&lt;/h3&gt;
&lt;p&gt;No. There are different categories of flash memory and occasionally, new technologies are invented that expand the scope of SSD variants.&lt;br /&gt;
Today, the two most important types of flash memory are &lt;a href="http://en.wikipedia.org/wiki/Multi-level_cell#Single-level_cell"&gt;SLC&lt;/a&gt; (Single Level Cell) and &lt;a href="http://en.wikipedia.org/wiki/Multi-level_cell"&gt;MLC&lt;/a&gt; (Multi Level Cell).&lt;br /&gt;
SLC flash memory uses a single level per cell to store a bit of data. This results in faster performance, better reliability and lower power consumption than MLC.&lt;br /&gt;
MLC flash on the other hand uses multiple levels per cell. This allows each cell to store more values than just 0 and 1. Therefore, an MLC cell can store two (most common) or more bits of data. This makes MLC flash less expensive on a per GB basis and more data can be stored in the same form factor.&lt;br /&gt;
When selecting SSDs, you need to weigh these factors according to the way you want to use your SSD: Do you need better reliability and performance? Or are you after a lower cost, more dense option?&lt;/p&gt;
&lt;h3&gt;&lt;a name="benefit"&gt;&lt;/a&gt;How Can ZFS Benefit From SSDs?&lt;/h3&gt;
&lt;p&gt;There are two ways in which SSDs can be used with ZFS (See the &lt;a href="http://hub.opensolaris.org/bin/view/Community+Group+zfs/source"&gt;ZFS source tour diagram&lt;/a&gt; to better understand the following):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;ZFS uses a logging mechanism, the ZFS intent log (ZIL) to store synchronous writes, until they're safely written to the main data structure on the pool. The speed at which data can be written to the ZIL determines the speed at which synchronous write requests can be serviced: The faster the ZIL, the faster most database, NFS and other important write operations become. Normally, the ZIL is part of the regular pool on disk. But ZFS offers the possibility to use a dedicated device for the ZIL. This is then called a "log device".&lt;br /&gt;
By using a fast SSD as a ZFS log device, you accelerate the ZIL and synchronous write performance improves. See also &lt;em&gt;&lt;a href="http://constantin.glez.de/blog/2010/07/solaris-zfs-synchronous-writes-and-zil-explained"&gt;Solaris ZFS, Synchronous Writes and the ZIL Explained&lt;/a&gt;&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;ZFS also has a sophisticated cache called the "Adaptive Replacement Cache" (ARC) where it stores both most &lt;em&gt;frequently&lt;/em&gt; used blocks of data and most &lt;em&gt;recently&lt;/em&gt; used ones. The ARC is stored in RAM, so each block of data that is found in the RAM can be delivered quickly to the application, instead of having to fetch it again from disk. When RAM is full, data needs to be thrown out of the cache and is not available any more to accelerate reads.&lt;br /&gt;
SSDs can be used as a second level cache: Blocks that can't be stored in the RAM-based ARC can then be stored on SSDs and in case they're needed, they can still be delivered quicker to the application than by fetching them again from disk. An SSD that is used as a second level ARC is therefore called an L2ARC, or a "cache device".&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;In summary, SSDs can be used in two important parts of the ZFS architecture: A log device will accelerate synchronous writes, and a cache device will accelerate reads.&lt;/p&gt;
&lt;h3&gt;&lt;a name="write"&gt;&lt;/a&gt;How Do I Know if an SSD Will Really Help My Write Performance?&lt;/h3&gt;
&lt;p&gt;Good question. Sometimes, the situation is so borked (or the bottleneck so non-obvious) that an SSD for the ZIL won't help you much. Before you invest money in an SSD, it's better to check.&lt;br /&gt;
&lt;a href="http://www.richardelling.com/"&gt;Richard Elling&lt;/a&gt; has written a cool utility called &lt;a href="http://www.richardelling.com/Home/scripts-and-programs-1/zilstat"&gt;&lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;zilstat&lt;/code&gt;&lt;/span&gt;&lt;/a&gt; that answers the question: How stressed is my ZIL?. Run this script, put your server under a typical load and watch for yourself. If you see a lot of ZIL activity, you'll likely benefit from a ZIL that is offloaded onto an SSD.&lt;/p&gt;
&lt;h3&gt;&lt;a name="read"&gt;&lt;/a&gt;How Do I Know if an SSD Will Really Help My Read Performance?&lt;/h3&gt;
&lt;p&gt;Again a very good question. Sometimes, the most popular data fits into your RAM, so an L2ARC won't give you much extra benefit. Sometimes, though, the ARC is so busy that it really could use some extra help from an SSD. Again, there's a cool script that will help you decide, this time from &lt;a href="http://www.cuddletech.com/blog/"&gt;Ben Rockwood&lt;/a&gt;: &lt;a href="http://cuddletech.com/arc_summary/"&gt;&lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;arc_summary&lt;/code&gt;&lt;/span&gt;&lt;/a&gt; will collect a number of useful ARC statistics and his &lt;em&gt;&lt;a href="http://www.cuddletech.com/blog/pivot/entry.php?id=979"&gt;Explore Your ZFS Adaptive Replacement Cache (ARC)&lt;/a&gt;&lt;/em&gt; article will teach you what numbers to look for.&lt;br /&gt;
The short version: If you see a lot of ghosts (= blocks that were eliminated from the ARC but that were discovered later to be useful), then you should buy an SSD for an L2ARC to keep them from becoming ghosts.&lt;/p&gt;
&lt;h3&gt;&lt;a name="types"&gt;&lt;/a&gt;Are different types of SSDs better suited as read or write accelerators?&lt;/h3&gt;
&lt;p&gt;Yes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SLC flash is faster for writes and more reliable, therefore it's the best choice for a ZIL. You can still use it as an L2ARC, though. Reliability and speed never hurts.&lt;/li&gt;
&lt;li&gt;MLC flash will give you more capacity for your money, but is less reliable and less fast than SLC. Therefore, MLC makes a good read accelerator when you're budget-constrained. But don't use MLC flash as a ZIL: If a write to a single cell breaks, other bits may be affected and the failed write may affect blocks that were previously written.&lt;br /&gt;
Data on a ZIL is an important backup mechanism, you don't want to compromise that.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a name="mirror"&gt;&lt;/a&gt;Should I mirror flash memory drives?&lt;/h3&gt;
&lt;p&gt;Interesting question. On one hand, hardware breaks all the time, and SSDs are no exception. On the other hand, SSDs don't have any moving parts and so they're statistically much less susceptible to failures.&lt;br /&gt;
It really depends on your risk tolerance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The ZIL is the last resort to go to if the system crashes before data that was promised to the application to be "safe" is actually written to disk. Then, upon reboot, the system reads back the ZIL and performs the missing updates on the actual ZFS storage pool. Since the ZIL is so important for ensuring data integrity, it should therefore be mirrored and ZFS supports that quite nicely.&lt;/li&gt;
&lt;li&gt;The L2ARC is a read cache: It stores data for convenience and speed only, but every bit of data in the L2ARC is also available elsewhere. So mirroring an L2ARC SSD is not really necessary (though &lt;a href="http://www.eall.com.br/blog/?p=1844"&gt;Marcelo has a very good point in that a dramatic loss of performance may actually justify an L2ARC mirror&lt;/a&gt;). Instead, ZFS will use any extra SSDs you give it for L2ARC in order to expand the amount of space for caching data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a name="both"&gt;&lt;/a&gt;Can I use the same SSD both as a ZIL and as an L2ARC?&lt;/h3&gt;
&lt;p&gt;Yes, you can. (I always wanted to say that phrase, btw...)&lt;br /&gt;
In theory you can split up an SSD into two slices through the &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;format(1M)&lt;/code&gt;&lt;/span&gt; command.&lt;br /&gt;
In practice, this means that you'll have two streams of data (ZIL writes and L2ARC writes and reads) instead of one, competing for the limited resources of the SSD's connection and controller. That may compromise your ZIL performance as two mechanisms step on each other's feet.&lt;br /&gt;
Better try it out: split up the SSD, configure the ZIL part of it, see how much it improves your write performance, then hook up the L2ARC part, while observing if the ZIL performance is still good. Use &lt;a href="http://www.richardelling.com/Home/scripts-and-programs-1/zilstat"&gt;&lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;zilstat&lt;/code&gt;&lt;/span&gt;&lt;/a&gt; for monitoring ZIL performance.&lt;/p&gt;
&lt;h3&gt;&lt;a name="spacezil"&gt;&lt;/a&gt;How much space do I need for a ZIL?&lt;/h3&gt;
&lt;p&gt;The role of the ZIL is to store a transaction group until it has safely been written to disk. After that, this can be safely deleted and the space used for the next transaction group.&lt;br /&gt;
So the question becomes: How much transaction group data is "in flight" (i.e. not yet written to disk) at any time?&lt;br /&gt;
ZFS issues a new transaction group (and consequently a new pool update) every 5 seconds at the latest (more if the load is higher). While one transaction group is written to the ZIL, the previous one may still be in the process of being written to disk, so we need enough space to store two transaction groups, which means 10 seconds of maximum write throughput worth of data.&lt;br /&gt;
What's the maximum amount of data that your server writes in 10 seconds? Well, an upper boundary would be the maximum write speed of your SSD. At the time of this writing this was about 170 MB/s for an Intel X25-E, times 10 that would be just short of 2 GB for a typical ZIL.&lt;br /&gt;
So for ZILs, a little can go a long way.&lt;/p&gt;
&lt;h3&gt;&lt;a name="spacel2arc"&gt;&lt;/a&gt;How much space do I need for an L2ARC?&lt;/h3&gt;
&lt;p&gt;This is more difficult, or more easy, depending on how you put it. More is always better, but too much would be a waste if it's not used. Check your L2ARC usage with &lt;a href="http://cuddletech.com/arc_summary/"&gt;&lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;arc_summary&lt;/code&gt;&lt;/span&gt;&lt;/a&gt; and if you still see a significant amount of ghosts after adding an L2ARC, you'll likely benefit from even more L2ARC space.&lt;br /&gt;
Another way to estimate L2ARC need is by looking at your &lt;em&gt;working set&lt;/em&gt;: The amount of data that is used most frequently. Depending on your application, this could be your top 10 research projects, your top 20% of recurring customers, your most popular 100 products etc. &lt;/p&gt;
&lt;h3&gt;&lt;a name="configure"&gt;&lt;/a&gt;How do I configure ZFS to use SSDs?&lt;/h3&gt;
&lt;p&gt;Read the &lt;a href="http://download.oracle.com/docs/cd/E19963-01/821-1462/6nmeouk9h/index.html"&gt;&lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;zpool(1M)&lt;/code&gt;&lt;/span&gt;&lt;/a&gt; man page, in particular the sections on &lt;em&gt;Intent Log&lt;/em&gt;, &lt;em&gt;Cache Devices&lt;/em&gt;, the &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;zpool add&lt;/code&gt;&lt;/span&gt; and &lt;span class="geshifilter"&gt;&lt;code class="text geshifilter-text"&gt;zpool attach&lt;/code&gt;&lt;/span&gt; subcommands and the &lt;em&gt;EXAMPLES&lt;/em&gt; section.&lt;/p&gt;
&lt;h3&gt;&lt;a name="easier"&gt;&lt;/a&gt;That is too complicated, is there an easier way?&lt;/h3&gt;
&lt;p&gt;It's actually not complicated, ZFS can be administered with just two commands!&lt;br /&gt;
But if you're looking for a GUI version, check out the &lt;a href="http://www.oracle.com/us/products/servers-storage/storage/unified-storage/index.html"&gt;Oracle ZFS Storage Appliance products&lt;/a&gt; for an easy-to-use NAS version of ZFS. Some third party vendors offer other appliances or appliance-ready OS distributions that are based on OpenSolaris or FreeBSD. They don't support all the latest features that the Oracle ZFS Storage Appliances (or Oracle Solaris 11 Express) offer, but they may be good enough for some. Examples include &lt;a href="http://nexenta.com/"&gt;Nexenta&lt;/a&gt;, &lt;a href="http://sites.google.com/site/eonstorage/"&gt;EON&lt;/a&gt; and &lt;a href="http://freenas.org/FreeNAS"&gt;FreeNAS&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;&lt;a name="nozfs"&gt;&lt;/a&gt;Can I benefit from Flash Memory/SSDs even if I don't use ZFS?&lt;/h3&gt;
&lt;p&gt;Certainly. Here are a few common scenarios:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Any filesystem that you place on an SSD is going to be faster due to the physical nature of SSDs versus rotating rust.&lt;/li&gt;
&lt;li&gt;Databases often allow you to place their database log onto a separate file system. SSDs are a great choice for database log files. Actually, a database log and the ZFS ZIL are very similar mechanisms.&lt;/li&gt;
&lt;li&gt;The Oracle database in particular has a &lt;a href="http://www.oracle.com/technetwork/articles/systems-hardware-architecture/oracle-db-smart-flash-cache-175588.pdf"&gt;Smart Flash Cache Feature&lt;/a&gt; that works similarly to the L2ARC described above: It's basically an extension of the SGA so that frequently needed data remains accessible from fast flash memory even if the SGA (which is in memory) is not big enough.&lt;/li&gt;
&lt;li&gt;I'm sure you can come up with other great uses, but that almost always involves some sort of intelligent distinction between data that is accelerated with flash and data that is stored on regular disks. The beauty of ZFS is that it does this job automatically for you.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a name="more"&gt;&lt;/a&gt;More Questions and Answers&lt;/h3&gt;
&lt;p&gt;That was quite a few questions, but I think these are the most common ones. Hopefully this FAQ is useful to you!&lt;/p&gt;
&lt;p&gt;What are your most common SSD+ZFS related questions? Which ones have been left unanswered? What do you think would make a valuable addition to the FAQ above?&lt;/p&gt;
&lt;p&gt;As always, let me know in the comments!&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&lt;a href="http://www.flickr.com/photos/ciaociao/2859153476/"&gt;SSD image&lt;/a&gt; by Flickr-User &lt;a href="http://www.flickr.com/photos/ciaociao/"&gt;ciaociao&lt;/a&gt;, used under CC-BY-NC license.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Update: Thanks to Cedar for the idea for this post!&lt;/p&gt;
&lt;div class="flattr-box"&gt;&lt;script type="text/javascript"&gt;
  var flattr_uid = '26528';
  var flattr_tle = 'Frequently Asked Questions About Flash Memory (SSDs) and ZFS';
  var flattr_dsc = 'A few weeks ago, a reader asked me a couple of questions about SSDs and ZFS, hinting that this might be a good topic to write a blog post about.Sure enough, just last week, a couple of similar questions came up, this time from a customer and a colleague at work.Well, if that&amp;#039;s not a sign from heaven, I don&amp;#039;t know what is, so here&amp;#039;s a collection of frequently asked questions about flash memory (also known as solid state disks, or SSDs) and ZFS, with answers and some useful links, and an index, too.';
  var flattr_tag = 'faq,flash,memory,performance,Solaris,ssd,tips,zfs';
  var flattr_cat = 'text';
  var flattr_url = 'http://constantin.glez.de/blog/2011/02/frequently-asked-questions-about-flash-memory-ssds-and-zfs';
  var flattr_lng = 'en_GB'&lt;/script&gt;
&lt;script src="http://api.flattr.com/button/load.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/div&gt;&lt;script src="http://feedproxy.google.com/~s/ConstantThinking/?i=http://constantin.glez.de/blog/2011/02/frequently-asked-questions-about-flash-memory-ssds-and-zfs" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;div class='sexybookmarks-default-3008'&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=6NQo4H6BQow:bZrt0uC5Yro:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=6NQo4H6BQow:bZrt0uC5Yro:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=6NQo4H6BQow:bZrt0uC5Yro:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=6NQo4H6BQow:bZrt0uC5Yro:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=6NQo4H6BQow:bZrt0uC5Yro:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=6NQo4H6BQow:bZrt0uC5Yro:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=6NQo4H6BQow:bZrt0uC5Yro:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=6NQo4H6BQow:bZrt0uC5Yro:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=6NQo4H6BQow:bZrt0uC5Yro:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ConstantThinking/~4/6NQo4H6BQow" height="1" width="1"/&gt;</description>
 <category domain="http://constantin.glez.de/tag/faq">faq</category>
 <category domain="http://constantin.glez.de/tag/flash">flash</category>
 <category domain="http://constantin.glez.de/tag/memory">memory</category>
 <category domain="http://constantin.glez.de/tag/performance">performance</category>
 <category domain="http://constantin.glez.de/category/solaris">Solaris</category>
 <category domain="http://constantin.glez.de/tag/ssd">ssd</category>
 <category domain="http://constantin.glez.de/tag/tips">tips</category>
 <category domain="http://constantin.glez.de/tag/zfs">zfs</category>
 
 <pubDate>Sat, 19 Feb 2011 15:51:43 +0000</pubDate>
 <dc:creator>constant</dc:creator>
 <guid isPermaLink="false">166 at http://constantin.glez.de</guid>
<feedburner:origLink>http://constantin.glez.de/blog/2011/02/frequently-asked-questions-about-flash-memory-ssds-and-zfs</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/ConstantThinking/~5/VKAGSggRZDw/preview" length="31064" type="image/jpeg" /><feedburner:origEnclosureLink>http://constantin.glez.de/image/view/167/preview</feedburner:origEnclosureLink></item>
<item>
 <title>Video: An Interview With the Fathers of "Iron Sky"</title>
 <link>http://feedproxy.google.com/~r/ConstantThinking/~3/z3_tDqlpXJc/video-interview-fathers-iron-sky</link>
 <description>&lt;div class="all-attached-images"&gt;&lt;div class="image-attach-body image-attach-node-164" style="width: 320px;"&gt;&lt;a href="/image/van-docks-set-iron-sky"&gt;&lt;img src="http://constantin.glez.de/sites/constantin.glez.de/files/images/IronSkyVan.blog.jpg" alt="A van in the docks, at the set of &amp;quot;Iron Sky&amp;quot;" title="A van in the docks, at the set of &amp;quot;Iron Sky&amp;quot;"  class="image image-blog " width="320" height="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;A deserted street in the docks. The rain is pouring.&lt;/p&gt;
&lt;p&gt;A small, old, flower-power style painted Volkswagen van drives by at high speed, then stops below a lifting crane, tires screeching.&lt;/p&gt;
&lt;p&gt;The door opens and a woman stumbles out of the vehicle, as if trying to escape. A tall man in uniform catches her violently. Intense exchange of words, probably four-lettered. She hesitates, then follows him back into the van.&lt;/p&gt;
&lt;p&gt;"Cut!"&lt;/p&gt;
&lt;p&gt;My brother and I are watching from the side of the road. It's a scene from the upcoming movie &lt;em&gt;&lt;a href="http://ironsky.net/"&gt;Iron Sky&lt;/a&gt;&lt;/em&gt;, a science-fiction comedy about the Nazis who escaped with UFOs to the dark side of the moon and who come back in 2018 to conquer the earth.&lt;/p&gt;
&lt;p&gt;What?&lt;/p&gt;
&lt;p&gt;It's a long, fun story, but you better see it for yourself. Early 2012, that is, when the movie is done.&lt;/p&gt;
&lt;p&gt;If you've ever met me at a party, you'll know that I'm a movie fan.&lt;/p&gt;
&lt;p&gt;As a student, I've worked for the local movie theater: Distributing flyers, setting up the online movie schedule, as a projectionist, etc. In exchange, I got to see all the movies for free, often a few days in advance. For example, I've seen &lt;em&gt;Speed&lt;/em&gt; and &lt;em&gt;The Mask&lt;/em&gt; during theater owner previews, and my friends and I got to watch &lt;em&gt;Toy Story&lt;/em&gt; the day before it was released.&lt;/p&gt;
&lt;p&gt;I still carry some pieces of real film in my wallet as a lucky charm and to illustrate how different movie sound formats like DTS, Dolby Digital, Dolby ProLogic work, but I digress.&lt;/p&gt;
&lt;h3&gt;Sudden Snow Storm Freezes Frankfurt!&lt;/h3&gt;
&lt;p&gt;It is Wednesday, December 8th. My brother and I took the day off to drive to Frankfurt, where the &lt;em&gt;Iron Sky&lt;/em&gt; team is shooting. The week before, they got to &lt;a href="http://blog.starwreck.com/2010/11/25/iron-sky-signal-e18-fans-and-explosions-in-frankfurt/"&gt;explode one of Frankfurt's main streets&lt;/a&gt;, which was great fun, I hear. Today, we're less lucky: The rain is turning into snow, Frankfurt airport is about to be closed and chaos is spreading across Frankfurt's streets and autobahns as the &lt;a href="http://blog.starwreck.com/2010/12/09/iron-sky-shoot-day-16-all-aboard-the-failboat/"&gt;blizzard sets out to conquer the city, making our shoot impossible&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;But none of that matters, this is the coolest day of the year for us: We are on a real movie set!&lt;/p&gt;
&lt;p&gt;You see, &lt;em&gt;Iron Sky&lt;/em&gt; is not your normal Hollywood-style movie. It is one of the first major cinema projects that is financed with the help of its own fan community: If you want to support the film, you can become an investor and help make the movie happen. If the movie becomes profitable, you can get your money back. If the movie becomes a success, you may even earn a little extra.&lt;/p&gt;
&lt;p&gt;But that's not the point. &lt;em&gt;Iron Sky&lt;/em&gt; is all about community involvement: Fans all over the world are involved in the filmmaking process: You can witness the production process through blogs and video diaries, you can "demand to see Iron Sky" as a way of showing distributors and theaters how popular the movie is, you may be invited to spend a day with the cast and crew while they shoot the movie, or you can have a sneak peek at the whole film-making process of the first 5 minutes: From the script to the final movie.&lt;/p&gt;
&lt;p&gt;And you can ask the director and the inventor of the movie to sit down and do an interview for your blog, which is what I did a few hours before the van scene was shot.&lt;/p&gt;
&lt;h3&gt;Watch the Interview&lt;/h3&gt;
&lt;p&gt;In this interview, we talk about how the original idea of the movie came into being, the role of technology in &lt;em&gt;Iron Sky&lt;/em&gt; and what "to steampunk a gun" means. We also talk about the role of social media and communities in the making of the movie. Enjoy!&lt;/p&gt;
&lt;p&gt;    &lt;iframe src="http://player.vimeo.com/video/19084376?portrait=0" width="376" height="249" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;(Sorry for the shaky camera and funky sound, we're still practicing :).)&lt;/p&gt;
&lt;p&gt;Due to the snow, we had to interrupt the shooting and look for alternatives. We returned to the "studio" which was an abandoned area with three skyscrapers in the middle of downtown Frankfurt. I was told that the skyscrapers used to belong to Lehman Brothers who went broke in 2008. I told them "Cool, so you have more investors than you think".&lt;/p&gt;
&lt;h3&gt;Waiting, Chatting, and a Long Night&lt;/h3&gt;
&lt;p&gt;The utter majority of time on a movie set is spent waiting: Waiting for the set to be prepared, waiting for makeup, waiting until stuff is ready, and waiting for people who have been waiting for whatever reason.&lt;/p&gt;
&lt;p&gt;This gave us lots of time to talk and get to know the team: We saw cool concept drawings, heavy gun mock-ups, space pilot uniforms and other cool "steampunked" stuff.&lt;/p&gt;
&lt;p&gt;The actors are cool and fun people to hang out with: &lt;a href="http://www.imdb.com/name/nm0653248/"&gt;Götz Otto&lt;/a&gt; is hilarious when he puts on his "Of course the Nazis are on the moon, I was there, too!" expression in front of the journalists who attended the press conference. &lt;a href="http://www.imdb.com/name/nm0456130/"&gt;Chris Kirby&lt;/a&gt; told us how he took his son to see the &lt;em&gt;Matrix&lt;/em&gt; movies, where he played "Mauser", resulting in naming their cat "Neo". And &lt;a href="http://www.imdb.com/name/nm1087430/"&gt;Julia Dietze&lt;/a&gt; charmed the press with her ambition to study every tiny move of Marlene Dietrich, so her role as "Renate Richter", who grew up on the moon, culturally frozen in the era of the 40ies, becomes more convincing.&lt;/p&gt;
&lt;p&gt;After dinner, the scene needs to be modified to a different surrounding. &lt;a href="http://www.imdb.com/name/nm1560632/"&gt;Peta Sergeant&lt;/a&gt; and director &lt;a href="http://www.imdb.com/name/nm1993322/"&gt;Timo Vuorensola&lt;/a&gt; discuss the motivations, background and conflicts of their characters, so the new scene can be make to "work". A discussion among actors, the director and fans emerges, while they brainstorm different possibilities for the course of the scene. It's amazing how much attention to detail and dedication the team puts into the movie: From the tiniest mechanical bits inside computer-generated machinery to gorgeous space suits made of sauna tubes to subtle humor in the naming of characters or space ships. Everything about this movie is made with love and hard work.&lt;/p&gt;
&lt;p&gt;Around midnight, the team found a new location: A closed fairground parking garage where the crew managed to set up the new scene in record time, complete with lights, camera, catering, heating, A/V equipment and so on. We shoot until 3 AM and after a short night, my brother and I try to beat the snow storm on our way back to Munich.&lt;/p&gt;
&lt;p&gt;We will return.&lt;/p&gt;
&lt;h3&gt;How You Can Help&lt;/h3&gt;
&lt;p&gt;If you're like &lt;a href="http://www.facebook.com/ironsky"&gt;more than 45,000 fans who "like" &lt;em&gt;Iron Sky&lt;/em&gt; on Facebook&lt;/a&gt;, and if you too want to make this crazy Finnish-Australian-German science-fiction comedy Co-Production happen, here' s what you can do to help:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Support &lt;em&gt;Iron Sky&lt;/em&gt; for free&lt;/strong&gt;: See how the movie is being made by following the &lt;a href="http://www.ironsky.net/site/#blog"&gt;Iron Sky Blog&lt;/a&gt;. Or &lt;a href="http://www.ironsky.net/site/support/how-to-support/"&gt;Demand to see Iron Sky&lt;/a&gt; so the producers can convince more and more distributors and movie theaters to license the movie for screening.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Support &lt;em&gt;Iron Sky&lt;/em&gt; for $1 or more&lt;/strong&gt;: For only a dollar (or any amount you choose), you can &lt;a href="http://www.ironsky.net/sneakpeek/"&gt;witness how the first 5 minutes of the movie are made&lt;/a&gt;: From the original script to storyboards, shooting, CGI, post-production to the end result, you'll get one new piece of the puzzle each month until the movie is released.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Support &lt;em&gt;Iron Sky&lt;/em&gt; for EUR 7.50 or more&lt;/strong&gt;: By &lt;a href="http://store.ironsky.net/"&gt;shopping in the Iron Sky fan store&lt;/a&gt;, you can buy cool stuff like T-Shirts, mouse pads, concept art, posters, "War bonds", even pre-order the special collector's edition of the movie. Of course, any profit flows directly into financing the movie.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Support &lt;em&gt;Iron Sky&lt;/em&gt; by becoming an investor&lt;/strong&gt;: If you are from Europe and are ready to invest EUR 1000 or more, you can apply to &lt;a href="http://www.ironsky.net/site/support/finance/"&gt;become an investor in &lt;em&gt;Iron Sky&lt;/em&gt;&lt;/a&gt;. Certain rules apply, but there are also perks: You'll be more involved in the making of the movie, get a chance to visit the team and who knows, the movie might even turn a profit that you can benefit from.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Meanwhile, &lt;a href="http://www.ironsky.net/site/#teaser"&gt;enjoy the trailers&lt;/a&gt;, and stay tuned for more tales from the dark side of the moon at the &lt;a href="http://www.ironsky.net/site/#blog"&gt;Iron Sky blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;German-speaking readers&lt;/strong&gt;: More background on Iron Sky is available in &lt;a href="http://systemhelden.com/heldenfunk/2010/12/hf051-exalogic-fidor-bank-iron-sky-weihnachtsgeschenke"&gt;episode #51 of the HELDENfunk podcast&lt;/a&gt; and in this &lt;a href="http://www.pimpyourbrain.de/2010/12/22/blick-270-crowdfunding-mit-constantin-gonzalez/"&gt;"Blick über den Tellerrand" interview about crowd-funding&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Or Do You Prefer a TV Show?&lt;/h3&gt;
&lt;p&gt;Before we close, I'd like to quickly introduce you to another cool project:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://vodo.net/pioneerone"&gt;&lt;em&gt;Pioneer One&lt;/em&gt;&lt;/a&gt; is a TV series about a mysterious incident at the border of Canada, where a radioactive capsule with a strange survivor has been found. The FBI and the Canadian authorities are trying to solve the mystery, under their government's pressure who think this may be a terrorist attack. Slowly they realize how strange their survivor really is...&lt;/p&gt;
&lt;p&gt;This series follows a similar crowd-funding concept: Fans can donate money and as soon as the goal for an episode is reached, it gets produced, then distributed through BitTorrent for free. You can download the first two episodes now for free and trust me: This is a very ambitious and well-scripted story. Great stuff!&lt;/p&gt;
&lt;h3&gt;Are You a Movie Buff?&lt;/h3&gt;
&lt;p&gt;How about you? What's your favorite movie? Are you a movie investor? Do you believe that crowd-funding is changing the world of film or is this just an exotic indie gig? Share your thoughts in the comments!&lt;/p&gt;
&lt;h3&gt;Disclosure&lt;/h3&gt;
&lt;p&gt;As you have guessed by now, I'm an investor in &lt;em&gt;Iron Sky&lt;/em&gt;, so I have an interest in promoting the movie, its funding and its commercial success.&lt;/p&gt;
&lt;div class="flattr-box"&gt;&lt;script type="text/javascript"&gt;
  var flattr_uid = '26528';
  var flattr_tle = 'Video: An Interview With the Fathers of &amp;quot;Iron Sky&amp;quot;';
  var flattr_dsc = 'A deserted street in the docks. The rain is pouring.A small, old, flower-power style painted Volkswagen van drives by at high speed, then stops below a lifting crane, tires screeching.The door opens and a woman stumbles out of the vehicle, as if trying to escape. A tall man in uniform catches her violently. Intense exchange of words, probably four-lettered. She hesitates, then follows him back into the van.&amp;quot;Cut!&amp;quot;My brother and I are watching from the side of the road. It&amp;#039;s a scene from the upcoming movie &amp;lt;em&amp;gt;&amp;lt;a href=&amp;quot;http://ironsky.net/&amp;quot;&amp;gt;Iron Sky&amp;lt;/a&amp;gt;&amp;lt;/em&amp;gt;, a science-fiction comedy about the Nazis who escaped with UFOs to the dark side of the moon and who come back in 2018 to conquer the earth.What?It&amp;#039;s a long, fun story, but you better see it for yourself. Early 2012, that is, when the movie is done.';
  var flattr_tag = 'cinema,cool,General,interview,ironsky,movies,video';
  var flattr_cat = 'text';
  var flattr_url = 'http://constantin.glez.de/blog/2011/01/video-interview-fathers-iron-sky';
  var flattr_lng = 'en_GB'&lt;/script&gt;
&lt;script src="http://api.flattr.com/button/load.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/div&gt;&lt;script src="http://feedproxy.google.com/~s/ConstantThinking/?i=http://constantin.glez.de/blog/2011/01/video-interview-fathers-iron-sky" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;div class='sexybookmarks-default-1570'&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=z3_tDqlpXJc:3oK6RRjkNPU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=z3_tDqlpXJc:3oK6RRjkNPU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=z3_tDqlpXJc:3oK6RRjkNPU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=z3_tDqlpXJc:3oK6RRjkNPU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=z3_tDqlpXJc:3oK6RRjkNPU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=z3_tDqlpXJc:3oK6RRjkNPU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=z3_tDqlpXJc:3oK6RRjkNPU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=z3_tDqlpXJc:3oK6RRjkNPU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=z3_tDqlpXJc:3oK6RRjkNPU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ConstantThinking/~4/z3_tDqlpXJc" height="1" width="1"/&gt;</description>
 <category domain="http://constantin.glez.de/tag/cinema">cinema</category>
 <category domain="http://constantin.glez.de/tag/cool">cool</category>
 <category domain="http://constantin.glez.de/category/general">General</category>
 <category domain="http://constantin.glez.de/tag/interview">interview</category>
 <category domain="http://constantin.glez.de/tag/ironsky">ironsky</category>
 <category domain="http://constantin.glez.de/tag/movies">movies</category>
 <category domain="http://constantin.glez.de/tag/video">video</category>
 
 <pubDate>Tue, 25 Jan 2011 21:30:36 +0000</pubDate>
 <dc:creator>constant</dc:creator>
 <guid isPermaLink="false">165 at http://constantin.glez.de</guid>
<feedburner:origLink>http://constantin.glez.de/blog/2011/01/video-interview-fathers-iron-sky</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/ConstantThinking/~5/faJWFI6gB84/preview" length="46502" type="image/jpeg" /><feedburner:origEnclosureLink>http://constantin.glez.de/image/view/164/preview</feedburner:origEnclosureLink></item>
<item>
 <title>How to Save the World with ZFS and 12 USB sticks: 4th Anniversary Video Re-Release Edition</title>
 <link>http://feedproxy.google.com/~r/ConstantThinking/~3/AsibgZ7GUSY/how-save-world-zfs-and-12-usb-sticks-4th-anniversary-video-re-release-edition</link>
 <description>&lt;div class="all-attached-images"&gt;&lt;div class="image-attach-body image-attach-node-163" style="width: 301px;"&gt;&lt;a href="/image/screenshot-video"&gt;&lt;img src="http://constantin.glez.de/sites/constantin.glez.de/files/images/video.blog.jpg" alt="Screenshot from the video" title="Screenshot from the video"  class="image image-blog " width="301" height="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;About 4 years ago, a few colleagues and myself got together and we created a short video about the coolness of two of the most innovative products from Sun of the last decade: ZFS and the X4500 Server.&lt;/p&gt;
&lt;p&gt;Today, nearly 4 years later, the video has been downloaded more than 100,000 times (across the original German and the English dubbed version, plus the full resolution downloadable files) and shown to a lot more people during tradeshows, customer demos, etc.&lt;/p&gt;
&lt;p&gt;Now YouTube and Google Video (remember?) don't allow for highest video quality and the old Sun Mediacast server, where we hosted the original MP4 file, no longer exists. Instead, Vimeo has emerged as my video hoster of choice for a variety of projects (&lt;a href="http://vimeo.com/zalez/videos"&gt;check out my video collection on Vimeo&lt;/a&gt;) and so it was time to give this video a new home.&lt;/p&gt;
&lt;p&gt;For your viewing pleasure.&lt;/p&gt;
&lt;p&gt;Watch the English dubbed version:&lt;/p&gt;
&lt;p&gt;    &lt;iframe src="http://player.vimeo.com/video/16433418?portrait=0" width="376" height="282" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;Or if you understand German (or have a taste for movies in original language), watch the original:&lt;/p&gt;
&lt;p&gt;    &lt;iframe src="http://player.vimeo.com/video/16429564?portrait=0" width="376" height="282" frameborder="0"&gt;&lt;/iframe&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://blogs.sun.com/constantin/entry/csi_munich_how_to_save"&gt;The original CSI:Munich blog post&lt;/a&gt; explains some of the technical background of the video, as does its German counterpart post "&lt;a href="http://blogs.sun.com/solarium/entry/solaris_zfs_auf_12_usb"&gt;Solaris ZFS auf 12 USB-Sticks: Ein "Thumper" für Arme!&lt;/a&gt;".&lt;/p&gt;
&lt;p&gt;It's amazing to see how far ZFS has made it today. Still, there's no other file system I know of that can be configured in seconds, provides data integrity at mathematically deep levels, implements database-like transaction safety, comes with a high-end featureset and gives you so much as ZFS.&lt;/p&gt;
&lt;p&gt;And the possibilities of ZFS continue to expand. Stay tuned.&lt;/p&gt;
&lt;div class="flattr-box"&gt;&lt;script type="text/javascript"&gt;
  var flattr_uid = '26528';
  var flattr_tle = 'How to Save the World with ZFS and 12 USB sticks: 4th Anniversary Video Re-Release Edition';
  var flattr_dsc = 'About 4 years ago, a few colleagues and myself got together and we created a short video about the coolness of two of the most innovative products from Sun of the last decade: ZFS and the X4500 Server.Today, nearly 4 years later, the video has been downloaded more than 100,000 times (across the original German and the English dubbed version, plus the full resolution downloadable files) and shown to a lot more people during tradeshows, customer demos, etc.Now YouTube and Google Video (remember?) don&amp;#039;t allow for highest video quality and the old Sun Mediacast server, where we hosted the original MP4 file, no longer exists. Instead, Vimeo has emerged as my video hoster of choice for a variety of projects (&amp;lt;a href=&amp;quot;http://vimeo.com/zalez/videos&amp;quot;&amp;gt;check out my video collection on Vimeo&amp;lt;/a&amp;gt;) and so it was time to give this video a new home.';
  var flattr_tag = 'cool,raid-z,Solaris,sticks,usb,video,zfs';
  var flattr_cat = 'text';
  var flattr_url = 'http://constantin.glez.de/blog/2011/01/how-save-world-zfs-and-12-usb-sticks-4th-anniversary-video-re-release-edition';
  var flattr_lng = 'en_GB'&lt;/script&gt;
&lt;script src="http://api.flattr.com/button/load.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/div&gt;&lt;script src="http://feedproxy.google.com/~s/ConstantThinking/?i=http://constantin.glez.de/blog/2011/01/how-save-world-zfs-and-12-usb-sticks-4th-anniversary-video-re-release-edition" type="text/javascript" charset="utf-8"&gt;&lt;/script&gt;&lt;div class='sexybookmarks-default-5835'&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=AsibgZ7GUSY:gm909r7UWYA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=AsibgZ7GUSY:gm909r7UWYA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=AsibgZ7GUSY:gm909r7UWYA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=AsibgZ7GUSY:gm909r7UWYA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=AsibgZ7GUSY:gm909r7UWYA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=AsibgZ7GUSY:gm909r7UWYA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?i=AsibgZ7GUSY:gm909r7UWYA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=AsibgZ7GUSY:gm909r7UWYA:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/ConstantThinking?a=AsibgZ7GUSY:gm909r7UWYA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/ConstantThinking?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/ConstantThinking/~4/AsibgZ7GUSY" height="1" width="1"/&gt;</description>
 <category domain="http://constantin.glez.de/tag/cool">cool</category>
 <category domain="http://constantin.glez.de/tag/raid-z">raid-z</category>
 <category domain="http://constantin.glez.de/category/solaris">Solaris</category>
 <category domain="http://constantin.glez.de/tag/sticks">sticks</category>
 <category domain="http://constantin.glez.de/tag/usb">usb</category>
 <category domain="http://constantin.glez.de/tag/video">video</category>
 <category domain="http://constantin.glez.de/tag/zfs">zfs</category>
 
 <pubDate>Mon, 24 Jan 2011 21:11:45 +0000</pubDate>
 <dc:creator>constant</dc:creator>
 <guid isPermaLink="false">162 at http://constantin.glez.de</guid>
<feedburner:origLink>http://constantin.glez.de/blog/2011/01/how-save-world-zfs-and-12-usb-sticks-4th-anniversary-video-re-release-edition</feedburner:origLink><enclosure url="http://feedproxy.google.com/~r/ConstantThinking/~5/Sgfr1DJiN-s/preview" length="51486" type="image/jpeg" /><feedburner:origEnclosureLink>http://constantin.glez.de/image/view/163/preview</feedburner:origEnclosureLink></item>
</channel>
</rss>

