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

<channel>
	<title>Red Leopard &#187; linux</title>
	<atom:link href="http://www.redleopard.com/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.redleopard.com</link>
	<description>A Stranger in a Strange Land</description>
	<lastBuildDate>Tue, 20 Dec 2011 14:55:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>SOD: System Benchmarking Hardware</title>
		<link>http://www.redleopard.com/2010/11/sod-system-benchmarking-hardware/</link>
		<comments>http://www.redleopard.com/2010/11/sod-system-benchmarking-hardware/#comments</comments>
		<pubDate>Fri, 26 Nov 2010 21:55:14 +0000</pubDate>
		<dc:creator>kelly</dc:creator>
				<category><![CDATA[KellyBlog]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://www.redleopard.com/?p=1158</guid>
		<description><![CDATA[I&#8217;ve been working on and off on the next Seeds of Discontent article. This is a tidbit of an upcoming post but I wanted to push it out now since I need it published for a divergent sidebar article. It stands here bald and raw. That&#8217;s life. This system uses most of the Rampage III [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working on and off on the next Seeds of Discontent article. This is a tidbit of an upcoming post but I wanted to push it out now since I need it published for a divergent sidebar article. It stands here bald and raw. That&#8217;s life.</p>
<p><img width="300" height="265" style="float: left; margin: 0 0.5em 0.5ex 0;" src="/images/test-system-hardware-300x265.png" alt="" title="test-system-hardware" /></p>
<p>This system uses most of the Rampage III resources. The two Radeon cards will completely consume the PCI Express lanes (2 x16). The 24GB DDR3 will fill the six DRAM slots.</p>
<p>There are 7 SATA II and 2 SATA III ports.</p>
<p>The two SATA III ports connect the two SSD drives as a RAID Level 0. All non-user data is served from this drive (e.g., the operating system and benchmark applications).</p>
<p>One SATA II port connects the DVD writer.</p>
<p>Six SATA II ports connect the six HDD as a RAID Level 0. The HDD were selected for their cache (64MB), interface (SATA III, though connected to SATA II), spindle speed (7200 rpm, not as fast as 10,000 or 15,000 rpm but much, much cheaper) and price (cheap).</p>
<p>The two video cards were selected for being current and for being cheap (sort of).</p>
<p>Not shown in the picture are four 1920 x 1080 LCD monitors. These monitors pivot making them nice for a development (4320 x 1920).</p>
<div class="terminal">
<pre>
Item 1                                         $  60
Antec Three Hundred Computer Case
Black Steel ATX Mid Tower

Item 2                                           180
CORSAIR AX850 850W Power Supply

Item 3                                           230
ASUS Rampage III LGA 1366 Intel X58
Micro ATX Intel Motherboard
N82E16813131658

Item 4                                           880
Intel Core i7-970 Gulftown 3.2GHz LGA 1366
130W Six-Core Desktop Processor
L2 Cache: 6 X 256KB
L3 Cache: 12MB
BX80613I7970

Item 5                                           225
Item 6                                           225
Patriot Gamer Series (3 x 4GB)
SDRAM DDR3 1333 (PC3 10666)
PGS312G1333ELK

Item 7                                            70
Item 8                                            70
Item 9                                            70
Item 10                                           70
Item 11                                           70
Item 12                                           70
Western Digital 3.5" Caviar
640GB 7200 RPM SATA 6.0Gb/s
Cache: 64MB
WD6402AAEX

Item 13                                          134
Item 14                                          134
Crucial RealSSD C300 2.5" SSD
64GB MLC SATA 6.0Gb/s
CTFDDAC064MAG-1G1

Item 15                                           10
SilverStone Bay Converter
mounting bracket 3.5" to 2 x 2.5"
SDP08

Item 16                                          185
Item 17                                          185
ASUS Radeon HD 6850
EAH6850 DirectCU/2DIS/1GD5
1GB 256-bit GDDR5 PCI Express 2.1 x16
EAH6850

Item 18                                           11
HIS CrossFire Bridge Interconnect Cable
HCFBC4065

Item 19                                          250
Item 20                                          250
Item 21                                          250
Item 22                                          250
Acer 1920 x 1080 LCD Monitor
B243H

Item 23                                           25
LITE-ON 24X DVD Writer Black
iHAS424-98
</pre>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.redleopard.com/2010/11/sod-system-benchmarking-hardware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Will it Blend?</title>
		<link>http://www.redleopard.com/2010/10/will-it-blend/</link>
		<comments>http://www.redleopard.com/2010/10/will-it-blend/#comments</comments>
		<pubDate>Sun, 31 Oct 2010 23:52:02 +0000</pubDate>
		<dc:creator>kelly</dc:creator>
				<category><![CDATA[KellyBlog]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://www.redleopard.com/?p=1135</guid>
		<description><![CDATA[In the previous article Seeds of Discontent, I jotted down a few benchmarks to compare OS X, Windows and Linux performance at a system level. In this article, I explore further a test built around graphics rendering engines. In particular, I was impressed by Sintel, an open source movie built with (among others) Blender. I [...]]]></description>
			<content:encoded><![CDATA[<p>In the previous article <a href="http://www.redleopard.com/2010/10/seeds-of-discontent/">Seeds of Discontent</a>, I jotted down a few benchmarks to compare OS X, Windows and Linux performance at a system level. In this article, I explore further a test built around graphics rendering engines. In particular, I was impressed by <a href="http://sintel.org/">Sintel</a>, an open source movie built with (among others) <a href="http://www.blender.org/">Blender</a>.</p>
<p>I don&#8217;t know how long it takes to assemble the movie from source assets into a shipping product but I&#8217;ll venture it is quite a compute intensive process. I got the idea for this benchmark while reading on the sintel.org home page that the project is re-rendering the film for 4K and that it should be ready later this year (still a few months away). I didn&#8217;t know what 4K was so I looked it up. That lead me to compile a table of film formats and supported Frames per Second (FPS). I also appended three rows for HDTV of which only 720p and 1080p are real. 4320p is something bandied about as future but I couldn&#8217;t find material online that would lead me to believe it&#8217;s anything but a concept. I included it to define the upper envelope edge. (Note: different formats support different levels of FPS.)</p>
<div class="terminal">
<pre>
Fomat   Width    Height    Frames per Second (FPS)
------- ------   ------  ----------------------------
2k 16:9 (2,048 × 1,152)  24, 25, 30, 50, 60, 100, 120
2K 2:1  (2,048 × 1,024)  24, 25, 30, 50, 60, 100, 120
2K ANA  (1,408 × 1,152)  24, 25, 30, 50, 60, 100, 120

3k 16:9 (3,072 × 1,728)  24, 25, 30, 50, 60
3K 2:1  (3,072 × 1,536)  24, 25, 30, 50, 60
3K ANA  (2,112 × 1,728)  24, 25, 30, 50, 60

4k 16:9 (4,096 × 2,304)  24, 25, 30
4K 2:1  (4,096 × 2,048)  24, 25, 30
4K HD   (3,840 × 2,160)  24, 25, 30
4K ANA  (2,816 × 2,304)  24, 25, 30

4.5k WS (4,480 × 1,920)  24, 25, 30

720p    (1,280 ×   720)  24, 25, 30, 50, 60
1080p   (1,920 × 1,080)  24, 25, 30, 50, 60
4320p   (7,680 × 4,320)  24, 25, 30, 50, 60
</pre>
</div>
<p>From this, I build a spreadsheet table of &#8220;Gigabytes per Second&#8221; of uncompressed data and converted the table into a set of data files compatible with gnuplot. Below are plots for 24 and 60 FPS for three formats.</p>
<p><img width="592" height="444" style="float: left; margin: 0 0.5em 0.5ex 0;" alt="Gigabytes per Second, 1080p, 4K 16:9, 4320p, 24 frames per second" src="/images/benchmark-plot-24.png" /></p>
<p><img width="592" height="444" style="float: left; margin: 0 0.5em 0.5ex 0;" alt="Gigabytes per Second, 1080p, 4320p, 60 frames per second" src="/images/benchmark-plot-60.png" /></p>
<p>I chose 24 FPS since it is a standard film frame rate. I excluded 25 and 30 FPS since they were so close to 24 FPS that they didn&#8217;t add any additional insight into designing the test. (25 and 30 FPS happen to be half of 50 and 60 FPS, which I discuss next). One datapoint to consider is that Blu-Ray supports 1080p at no greater than 24 FPS.</p>
<p>Just as the world is split between driving on the left or right hand side of the road, the world&#8217;s electrical power is split between 50 and 60 Hz. Neither is right or wrong but they are different and the two don&#8217;t mix well (like people driving on both the left and right side of the same road don&#8217;t mix well). I currently live in a 60Hz world so I biasedly chose the familiar but I could have easily chosen 50Hz. They are so close to each other in context of this exercise that the differences are negligible.</p>
<p>I chose two HD formats (4320p and 1080p) plus one film format (4K 16:9). The film format file size falls between the two HD formats. Note that 4K doesn&#8217;t support a frame rate obove 30 FPS and isn&#8217;t included in the 60 FPS graph.</p>
<p>Note that I haven&#8217;t included compression in this test as I believe it to be a different strain on the system.</p>
<p>My thoughts for the blender test was to establish a benchmark that would be inherently obvious and understandable to anyone, especially to those without any previous knowledge of video rendering or video formats. It&#8217;s more intuitive to say, &#8220;This system renders the video 1000 times slower than real time.&#8221; It also makes for a nice roadmap chart. Consider time on a linear x-axis and rendering ratio on a logrithmic y-axis.</p>
<p>A second roadmap milestone map could be what format/fps combination(s) achieve real time rendering status for a specific system on a specific date.</p>
<p>It would be interesting to see the performance of an ad hoc office cluster vs. a 40 foot shipping container of specialized hardware. If this sounds crazy, juxtapose any of the recent systems from Tom&#8217;s Hardware <a href="http://www.tomshardware.com/reviews/build-a-pc-overclock-components,2725.html">System Builder Marathon</a> against the original IBM PC. (Or the <a href="http://en.wikipedia.org/wiki/ENIAC">ENIAC</a> ;^)</p>
<p>In the conclusions section, I&#8217;d want to see analysis/conjecture about the test results regarding system bottlenecks. In an attempt to compare the systems, I&#8217;d also want to see the individual system price divided by the performance ratio. For example,</p>
<div class="terminal">
<pre>
System A
Cost         $1200 USD
Ratio        0.0005245  (1830:1)
Cost/Ratio   2,196,000

System B
Cost         $1153 USD
Ratio        0.0005736  (1735:1)
Cost/Ratio   2,021,209

Cost Comparison
System A  : System B
    1,200 : 1,153
    1.040 : 1  (A is 4% more expensive than B)

Ratio Comparison
System A  : System B
    1,830 : 1,735
    1.055 : 1  (A is 5.5% slower than B)

Cost/Ratio Comparison
System A  : System B
2,196,000 : 2,021,209
    1.086 : 1  (A is 8.6% more expensive to
                to finish the same job as B)
</pre>
</div>
<p>If one starts to compare operating environments (Windows 7, OS X, Ubuntu, Fedora) on the same system and then repeats those tests across various systems (Dell, Apple, Whitebox), we start to get an apples to apples comparison in price, performance and price/performance ratios.</p>
<p>Note: the spreadsheet (numbers, exported to excel), data files, gnuplot scripts and images are available for <a href="http://www.redleopard.com/share/seeds-of-discontent-will-it-blend.tar.gz">download</a>.</p>
<p>[<b>update 2010-10-05</b>: I just read at <a href="http://thenextweb.com/2010/01/01/avatar-takes-1-petabyte-storage-space-equivalent-32-year-long-mp3/">thenextweb.com</a> that rendering Avatar requires 1 petabyte of drive space. That's in 3D but it still makes me wonder why there's a wide gap between my calculations of a hypothetical 2 hour movie and that of Avatar. The article at <a href="http://www.information-management.com/newsletters/avatar_data_processing-10016774-1.html">information-management.com</a> gives a reference of 17.28 gigabyte/minute. At 166 minutes, this is 2.8 terabytes (a long way off from a petabyte). Perhaps there are a lot of intermediate stages for each frame which must be saved? Nevertheless, I believe the test is still interesting.] </p>
]]></content:encoded>
			<wfw:commentRss>http://www.redleopard.com/2010/10/will-it-blend/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seeds of Discontent</title>
		<link>http://www.redleopard.com/2010/10/seeds-of-discontent/</link>
		<comments>http://www.redleopard.com/2010/10/seeds-of-discontent/#comments</comments>
		<pubDate>Sun, 24 Oct 2010 03:10:48 +0000</pubDate>
		<dc:creator>kelly</dc:creator>
				<category><![CDATA[KellyBlog]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://www.redleopard.com/?p=1116</guid>
		<description><![CDATA[I like reading Tom&#8217;s Hardware Guide. I liked it better in the site&#8217;s early days when it wasn&#8217;t so javacript and flash heavy and the articles were idomatically &#8216;German-English&#8217;. A lot happens in twelve or so years. Still, Tom&#8217;s is the best source of information on the web. I read a CPU benchmark this morning [...]]]></description>
			<content:encoded><![CDATA[<p>I like reading <a href="http://www.tomshardware.com/">Tom&#8217;s Hardware Guide</a>. I liked it better in the site&#8217;s early days when it wasn&#8217;t so javacript and flash heavy and the articles were idomatically &#8216;German-English&#8217;. A lot happens in twelve or so years. Still, Tom&#8217;s is the best source of information on the web.</p>
<p>I read a <a href="http://www.tomshardware.com/reviews/xeon-e5620-overclocking-westmere-ep,2767.html">CPU benchmark</a> this morning which got me wondering if there were a possiblity to benchmark on any operating system but Windows. I concluded for the kind of benchmarks seen on Tom&#8217;s&#8211;not really.</p>
<p>Many (most?) of the benchmarks rely on software only available on Windows. The platforms are varied while holding the software and operating system constant. This makes sense as Tom&#8217;s Hardware is, well, primarily a <em>hardware</em> site.</p>
<p>But what could we could we learn by holding the hardware constant and vary the operating systems? A lot, I believe.</p>
<p>One point I&#8217;ve noticed in reading Tom&#8217;s benchmarks over the years is the increasingly predictable nature of the results. Motherboards often perform within a few percentage points of each other. THere is some variance in different CPUs but rarely unpredicable. The conclusions often center around cost-performance comparisons to see if the premium parts are justified.</p>
<p>What really motivated me to write this blog entry was a <a href="http://www.tomshardware.com/reviews/radeon-hd-6870-radeon-hd-6850-barts,2776.html">video card</a> benchmark. The two major vendors (AMD née ATI, NVidia) have been long locked in fierce battle. The benchmark seems to keep the software constant and only varies the video card hardware but the lines are not so cleanly drawn. Each video card has a unique architectural philosphy and design. Software modules are written to detect and take special advantage of these differences in video cards.</p>
<p>I argue that a systems approach might make for an interesting benchmark and would likely yield surprising results. Furthermore, such a benchmark would spark the desktop religious wars that have subsided in recent years (e.g., 68000 vs x86, PowerPC vs x86, IPX vs TCP/IP, RLL vs ESDI, Word vs. WordPerfect, Microsoft vs. Novell &#8230;). It seems the good fight has now moved on to smartphones and tablets. The desktop market has become docile.</p>
<p>My aim is to whack the hive. This is my vision.</p>
<p>1. This benchmark has a name: &#8220;Seeds of Discontent&#8221;</p>
<p>Why this name? It fits. How?</p>
<p>Ah. A little about me. My first job out of college was writing assembly language graphics routines used in medical imaging. On a 12MHz 80286. This introduced me to graphics hardware leading to a job at National Semiconductor (yes, National once developed graphics chips) and a deeper understanding of PC architecture. In the late nineties, I moved on to a small consumer electronics startup and eventually into pure software. I&#8217;ve seen the industry from several perspectives.</p>
<p>The early PC days placed importance on CPU speed for better performance and hardware integration (combining many chips into a single chip) for lower cost. The early days are gone and the funeral was the death of Comdex which happened a few years before the last Comdex. Those last few Comdex shows were zombies and those of you who were there know what I mean.</p>
<p>Nowdays, the big advances in hardware don&#8217;t spur the kind of religious fervor of old. It evokes a semi-interested &#8220;Oh, that&#8217;s kinda cool&#8221; response. (e.g., PATA to SATA, HDD TO SDD, dual core to quad core to six core). Interesting but not controversial.</p>
<p>This isn&#8217;t to say the hardware designers are sleeping. They are not. It&#8217;s just that hardware advancments alone won&#8217;t produce the kinds of dramatic performance improvements year-over-year that we saw during the eighties and nineties. The kinds of hardware advances we now see require specialized software to take advantage of those advances. And the industry knows it.</p>
<p>The greatest potential for seeing surprisingly results in a benchmark are <em>not</em> in swapping out CPUs or mainboards. The greatest potential lies in swapping out the operating systems. If there is one scrap of religiosity left in the industry, it&#8217;s in operating systems. As it happens, the OS is also the component that now has the biggest potential to influence the industry.</p>
<p>Which brings me to my point. I believe the right set of benchmark tests could pit OS vs OS and spur the kind of religious spat that leads to real progress. But with peace breaking out all over the industry, whipping up a bit of OS hooiganism might just whip up a real revolution. As David W. once told me, &#8220;Man&#8217;s best friend is his dogma.&#8221; Today, there is nothing more religious in the industry than operating systems.</p>
<p>2. &#8220;Seeds of Discontent&#8221; has a mission: I see you, OS</p>
<p>Chicken and egg.</p>
<p>Mulitcore CPUs and graphics engines both require specialized software to take advantage of the hardware. But today&#8217;s changing hardware is a moving target. It&#8217;s hard for a small software firms to write specialized hardware for an ever changing platform. But without software running on a platform (e.g., graphics), there is no &#8220;tie down&#8221; for a hardware vendor to stick with a stable API (I&#8217;m looking at you Nvidia, AMD).</p>
<p>In the multicore CPU arena, it takes a partner in the OS vendor to take full advantage of the multicore architecture. This isn&#8217;t to say mutithreaded software is held back by today&#8217;s OS but rather todays OS don&#8217;t do enough to create a furtile ground for multithreaded/multicore software development. (Yeah, the penguinistas are going ape-shit about now but I stick with my proposition.)</p>
<p>The real problem, as I see it, is that it takes a coordinated effort to make the necessary software development changes. No body wants to spend their money first. Nobody. Especially those with no money (the solo developer with no resources other than time.)</p>
<p>Disclaimer: I am a macinista.</p>
<p>Apple&#8217;s Snow Leopard (I have no information on Lion) arrived with much fanfare about <a href="http://developer.apple.com/technologies/mac/snowleopard/gcd.html">Grand Central Dispatch</a>, <a href="http://developer.apple.com/library/ios/#documentation/CompilerTools/Conceptual/">LLVM</a>, <a href="http://developer.apple.com/library/mac/#documentation/Performance/Conceptual/OpenCL_MacProgGuide/">OpenCL</a>, blah blah blah and other multicore magic. I love the candy-coated icons for Core-X. But how has that translated into better software support for modern hardware? You don&#8217;t hear much about it (even if it has or hasn&#8217;t happened).</p>
<p>&#8220;Seeds of Discontent&#8221; is a set of benchmarks to provide an adequacy gap for each OS to buck up and meet the challenge of each other. Really. Can anyone name a benchmark today by which one OS can embarrass another? No.</p>
<p>The real value add an OS can deliver is hardware abstraction. (Unless you are the dominate OS -Microsoft&#8211;software developers are undermotivated to deliver software cutomized for specialize hardware under the OS.) I want OS vendors motivated to deliver better performance with cost-effective effort for software vendors. Not exlusively but in a multi-vendor environment. </p>
<p>Benchmarks give a measurable performance comparison between operating systems. And the operative word here is &#8220;System&#8221;. Given a fixed hardware platform, how do the various system&#8217;s perform. It&#8217;s not which comes first &#8220;chicken or egg,&#8221; what comes first is the benchmark and the &#8220;gap of shame.&#8221; Nobody wants to be last. Nobody.</p>
<p>3. Who?</p>
<p>To compare various Operating Systems presupposes a fixed hardware platform, (I say.) It also presupposes running the same software on all systems. Technically, that is impossible. Well, impossible except in a systems perspective.</p>
<p>Software makes OS calls to handle many functions. Mostly this is to abstract the hardware details from the OS. What&#8217;s needed then is software that has been compiled for each of the target systems. Since I&#8217;m interested in system performance (i.e., what you see when you <em>use</em> the system), I don&#8217;t care about how the software is written. If a package is not opitimized to use the special benefits offered by the OS, I don&#8217;t care. In my world, the experience is diminished.</p>
<p>So the one thing that is constant in a benchmark is the hardware. This isn&#8217;t such a problem for Linux and Windows but does present a problem for OS X. I want OS X included. Here lies a fork in the road. Does the benchmark use an Apple computer and install all OS on that machine? Or does the benchmark use a white-box PC and install all OS <em>that<em> machine?</p>
<p>I vote for the latter. This means that only way to make a proper benchmark is to build a <a href="http://en.wikipedia.org/wiki/Hackintosh">hackintosh</a>. This presents a problem since Apple forbids it. I recommend, then, including a &#8220;Brand-X&#8221; OS. Of course, the people actually performing the benchmark cannot comment but I would want Brand-X to be OS X, ostensibly the latest shipping version at the time of the benchmark. Of course, Brand-X could be anything. Maybe even Solaris ;^). But what about the other operating systems?</p>
<p>Brand-X<br />
Windows<br />
Ubuntu<br />
Fedora</p>
<p>4. What?</p>
<p>Operating systems alone do not a benchmark make. What software applications could be used for the tests? Tom&#8217;s uses software that&#8217;s only available on Winodws so those won&#8217;t work. I give here a short candidate list. This isn&#8217;t a definitive list but a starting point for discussion. All packages are available for compilation and execution on all platforms.</p>
<p>4.1 <a href="http://www.inkscape.org/">inkscape</a>: complex vector graphics generation<br />
4.2 <a href="http://www.gimp.org/">gimp</a>: complex bit image manipulation<br />
4.3 <a href="http://www.blender.org/">blender</a>: complex 3D image manipulation, rendering. (Could we get the raw sources to render the entirity of Sintel?)<br />
4.4 <a href="http://www.aqsis.org/">aqsis renderer</a>: another rendering engine<br />
4.5 <a href="http://brlcad.org/">brl-cad</a>: yeat another rendering engine<br />
4.6 <a href="http://handbrake.fr/">handbrake</a>: DVD ripping<br />
4.7 <a href="http://www.ffmpeg.org/">ffmpeg</a>: audio transcoding<br />
4.8 <a href="http://www.r-project.org/">R</a>, <a href="http://rgl.neoscientists.org/about.shtml">rgl</a>: converting data into visualization (e.g., httpd logfiles)<br />
4.9 <a href="http://activemq.apache.org/">activemq</a>: build with unit tests (requires java, maven)<br />
4.10 <a href="http://code.google.com/p/tesseract-ocr/">tesseract-ocr</a>: OCR convert scaned text to text files<br />
4.11 <a href="http://nanoc.stoneship.org/">nanoc</a>: convert text file + gutenberg to static HTML site<br />
4.12 <a href="http://nginx.org/">nginx</a>: file server of a static assets (see 4.12)<br />
4.13 quake (<a href="http://en.wikipedia.org/wiki/Quake_II">II</a>, <a href="http://en.wikipedia.org/wiki/Quake_4">4</a>, <a href="http://quakespasm.sourceforge.net/">spasm</a>): compile, performance benchmark</p>
<p>Conclusion: Will this go anywhere? I hope so. But I believe for it to come alive requires a large community to care about it. For them to care about it requires a benchmark that defines a tangible result. The difference between 63 and 68 frames per second in some game that only runs on one platform is largely irrelevant; it only says that if you spend a few hundred dollars more, you get a few more frames per second.</p>
<p>What would make sense? Well, for example, how many frames per second could one render raw source files for the short film <a href="http://sintel.org">Sintel</a> at HD 1080p? My guess that right now that is under one frame per second. That sets a milestone. I really don&#8217;t know. Maybe it is greater than 1 FPS on a desktop machine running a quadcore CPU and some sort of GPU acceleration. Then again, maybe not. But there will be a price point for that. So maybe a better benchmark is $US/FPS or €/FPS (that is, cost of the system over frames per second.)</p>
<p>Another benchmark that puts pressure on the OS could be quake (pick your poison/version). If the only objective were FPS, then I&#8217;m confident that all OS versions could (with effort) come out about the same when running on the same platform. However, a benchmark which relied upon the OS (e.g., OpenGL, DirectX) for rendering would provide a more apples-to-apples comparison. The astute reader would immediately recognize that DirectX has an advantage in games. That&#8217;s the point. If non-Windows hopes to compete, they have to compete with the experience of games on DirectX.</p>
<p>This extends to the other benchmarks as well. Apple&#8217;s (remember, I&#8217;m a fan) deployment of Grand Central Dispatch, OpenCL, LLVM in Snow Leopard was exciting but I want to see it make it&#8217;s way to real software. I also use CentOS in my servers so I have a vested interest in the evolution of Fedora. Since I&#8217;m interested in Fedora, I&#8217;m interested in the other major linux OS, Ubuntu. And since OS X, Fedora and Ubuntu are minority players and these benchmarks set a bar, I&#8217;m interested in Windows. In the end, a battle for tangible system level benchmark performance benefits all.</p>
<p>I don&#8217;t believe the desktop is dead. After all, software written for consoles, or smartphones or tablets (or even other desktops) are written on desktops. The industry is asleep. I want to whack the hive.</p>
<p>&#8220;Breakin&#8217; the law!&#8221; &#8211;Beavis</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redleopard.com/2010/10/seeds-of-discontent/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apache Directory Indexing</title>
		<link>http://www.redleopard.com/2009/12/apache-directory-indexing/</link>
		<comments>http://www.redleopard.com/2009/12/apache-directory-indexing/#comments</comments>
		<pubDate>Sun, 06 Dec 2009 22:47:59 +0000</pubDate>
		<dc:creator>kelly</dc:creator>
				<category><![CDATA[KellyBlog]]></category>
		<category><![CDATA[httpd]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.redleopard.com/?p=812</guid>
		<description><![CDATA[Sometimes a problem persists long enough—is an irritant long enough—that I&#8217;ll burn an entire Sunday morning simply out of spite. Today&#8217;s irrational time-waste went to solving &#8220;Directory index forbidden by Options directive.&#8221; [marmaduke ~] $ cat /var/log/httpd/error_log \ &#124; grep '\[error\]' \ &#124; head -1 [Sun Dec 06 09:25:05 2009] [error] [client 192.168.2.29]↩ Directory index [...]]]></description>
			<content:encoded><![CDATA[<p>Sometimes a problem persists long enough—is an irritant long enough—that I&#8217;ll burn an entire Sunday morning simply out of spite. Today&#8217;s irrational time-waste went to solving &#8220;Directory index forbidden by Options directive.&#8221;</p>
<div class="terminal">
<pre>
[marmaduke ~] $ <span style="color: green;">cat /var/log/httpd/error_log \
 | grep '\[error\]' \
 | head -1</span>
[Sun Dec 06 09:25:05 2009] [error] [client 192.168.2.29]↩
Directory index forbidden by Options directive:↩
/var/www/documentation/public_html/
</pre>
</div>
<p>I have a development server that I use to offload work from my laptop.</p>
<div class="terminal">
<pre>
[marmaduke ~] $ <span style="color: green;">hostname</span>
marmaduke

[marmaduke ~] $ <span style="color: green;">cat /etc/redhat-release</span>
CentOS release 5.4 (Final)
</pre>
</div>
<p>Among other things, marmaduke hosts scads of apache virtual hosts, including documentation. I&#8217;ve wanted to index the documentation directory for quite sometime but never could get apache configured to auto index.</p>
<p>Every configuration problem has already been solved by someone else. A quick search (<a href="http://www.google.com/search?hl=en&#038;as_q=apache+allow+directory+index">apache+allow+directory+index</a>) yielded surprisingly consistent instructions.</p>
<p>These instructions yielded consistent failure for me. I simply could not get auto indexing to work. Until now.</p>
<p>My apache installation is a basic yum install.</p>
<div class="terminal">
<pre>
[marmaduke ~] $ <span style="color: green;">yum list | grep httpd | grep installed</span>
httpd.x86_64           2.2.3-31.el5.centos    installed
httpd-devel.x86_64     2.2.3-31.el5.centos    installed
httpd-manual.x86_64    2.2.3-31.el5.centos    installed
</pre>
</div>
<p>I&#8217;ve extracted (below) a partial listing of relevant parts from the httpd.conf file.</p>
<p>I include configuration files from two directories: module configurations in /etc/httpd/conf.d/ and all virtual host configurations in /etc/httd/conf.d/hosts/.</p>
<p>For the most part, I leave httpd.conf untouched. Note that apache runs under the user and group named &#8216;apache&#8217;.</p>
<div class="terminal">
<pre>
<span style="color: gray;"># /etc/httpd/conf/httpd.conf (partial listing)</span>
Listen 80

Include conf.d/*.conf
Include conf.d/hosts/*.conf

User apache
Group apache

ServerName marmaduke:80
UseCanonicalName Off

DocumentRoot "/var/www/html"

&lt;Directory /&gt;
    Options FollowSymLinks
    AllowOverride None
&lt;/Directory&gt;

&lt;Directory "/var/www/html"&gt;
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
&lt;/Directory&gt;

DirectoryIndex index.html index.html.var

IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable

NameVirtualHost *:80
</pre>
</div>
<p>Permissions are important.</p>
<p>I place my documentation directories in /var/www/documentation/public_html and the entire tree from /var/www/documentation downwards has the same user and group name. All directories have 755 permission and all non-directories have 644 permission.</p>
<div class="terminal">
<pre>
[marmaduke ~] $ <span style="color: green;">ll /var/www</span>
drwxr-xr-x 3 kelly apache 4096 Dec  6 09:23 documentation

[marmaduke ~] $ <span style="color: green;">ll /var/www/documentation</span>
drwxr-xr-x 7 kelly apache 4096 Dec  6 11:51 public_html

[marmaduke ~] $ <span style="color: green;">ll /var/www/documentation/public_html</span>
-rw-r--r-- 1 kelly apache 5174 Dec  6 09:33 favicon.ico
drwxr-xr-x 2 kelly apache 4096 Dec  6 09:21 icecast-2.3.2
drwxr-xr-x 3 kelly apache 4096 Dec  6 12:00 mysql-5.0
drwxr-xr-x 4 kelly apache 4096 Dec  6 11:50 mysql-5.1
drwxr-xr-x 3 kelly apache 4096 Dec  6 11:51 mysql-5.4
drwxr-xr-x 3 kelly apache 4096 Dec  6 11:51 mysql-5.5

[marmaduke ~] $ <span style="color: green;">ll /var/www/documentation/public_html/mysql-5.0</span>
drwxr-xr-x 3 kelly apache 4096 Dec  6 10:05 en
</pre>
</div>
<p>My virtual host enables indexing through the Directory directive. So far, this is consistent with most of the instructions found through web search. Yet, auto indexing still didn&#8217;t work for me.</p>
<div class="terminal">
<pre>
<span style="color: gray;"># /etc/httpd/conf.d/hosts/documentation.conf</span>
&lt;VirtualHost *:80&gt;
  DocumentRoot /var/www/documentation/public_html
  ServerName documentation.site
  Options Indexes FollowSymLinks

  &lt;Directory "/var/www/documentation/public_html"&gt;
    Options Indexes FollowSymLinks
    Order allow,deny
    Allow from all
  &lt;/Directory&gt;

  RewriteEngine on
  RewriteLogLevel 1
&lt;/VirtualHost&gt;
</pre>
</div>
<p>It turns out that there is a nastly little surprise in one of the configuration files that comes standard with the centos yum install. </p>
<p>Inside LocationMatch, there the Options directive turns off Indexes. From the apache documentation, &#8220;<b>Regardless of any access restrictions placed in &lt;Directory&gt; sections, the &lt;Location&gt; section will be evaluated last…</b>&#8221;</p>
<div class="terminal">
<pre>
<span style="color: gray;"># /etc/httpd/conf.d/welcome.conf</span>
&lt;LocationMatch "^/+$"&gt;

  # this is the culprit!
  <b>Options -Indexes</b>

  ErrorDocument 403 /error/noindex.html
&lt;/LocationMatch&gt;
</pre>
</div>
<p>Since <code>LocationMatch</code> is evaluated last, the <code>-Indexes</code> parameter disables options set in any <code>Directory</code> directive. Either changing the parameter <code>-Indexes</code> to <code>Indexes</code> or deleting the welcome.conf file will allow auto indexing (assuming the other configurations are correct).</p>
<p><img width="592" height="445" alt="screenshot of apache directory listing" src="/images/apache-directory-index.jpg" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.redleopard.com/2009/12/apache-directory-indexing/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Software RAID 10</title>
		<link>http://www.redleopard.com/2009/01/software-raid-10/</link>
		<comments>http://www.redleopard.com/2009/01/software-raid-10/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 19:25:57 +0000</pubDate>
		<dc:creator>kelly</dc:creator>
				<category><![CDATA[KellyBlog]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.redleopard.com/?p=511</guid>
		<description><![CDATA[I&#8217;ve been putting off building the software RAID10 on marmaduke. Today, I put it off no longer. The server marmaduke has six storage devices (2 IDE and 4 SATA) $ ls -1 /dev/hd? /dev/hde /dev/hdf $ ls -1 /dev/sd? /dev/sda /dev/sdb /dev/sdc /dev/sdd The CDROM is attached as /dev/hde and a 300GB HDD as /dev/hdf [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been putting off building the software RAID10 on marmaduke. Today, I put it off no longer.</p>
<p>The server marmaduke has six storage devices (2 IDE and 4 SATA)</p>
<div class="terminal">
<pre>
$ ls -1 /dev/hd?
/dev/hde
/dev/hdf

$ ls -1 /dev/sd?
/dev/sda
/dev/sdb
/dev/sdc
/dev/sdd
</pre>
</div>
<p>The CDROM is attached as /dev/hde and a 300GB HDD as /dev/hdf on which I&#8217;ve installed CentOS 5.2. The four SATA drives will be used to build a RAID 10. I&#8217;ve read through a number of postings on how to build a software RAID. The cleanest, shortest and clearest of them is on <a href="http://www.tgharold.com/techblog/2006/08/creating-4-disk-raid10-using-mdadm.shtml">tgharold.com</a>.</p>
<h3>mknod</h3>
<p>First, create a node for the array.</p>
<div class="terminal">
<pre>
# mknod /dev/md0 b 9 0
</pre>
</div>
<p>I chose <code>md0</code> since it was available.</p>
<p>The parameter &#8216;b&#8217; directs <code>mknod</code> to create a block (buffered) special file.</p>
<p>The parameter &#8217;9&#8242; is the Major version. (huh?) Seems the correct parameter can be found in </code>/proc/devices</code>. (see also, <a href="http://www.centos.org/docs/5/html/5.2/Virtualization/sect-Virtualization-Installation_and_Configuration_of_Para_virtualized_Drivers_on_Red_Hat_Enterprise_Linux_3.html">centos docs</a>)</p>
<div class="terminal">
<pre>
$ cat /proc/devices | grep -e "md$"
  9 md
</pre>
</div>
<p>The parameter '0' corresponds to the last digit in the device <code>/dev/md0</code>. tgharold.com points out that the digit used in the device name should be the same as the last parameter. Why? Dunno. Something to look up some day.</p>
<h3>fdisk</h3>
<p>Second, partition the disks, each and every one.</p>
<div class="terminal">
<pre>
# fdisk /dev/sda
# fdisk /dev/sdb
# fdisk /dev/sdc
# fdisk /dev/sdd
</pre>
</div>
<p>I don't know why I set the boot flag. The important point is to set the ID to 'fd' which is 'Linux raid autodetect'.</p>
<div class="terminal">
<pre>
   Device  Boot  Start    End     Blocks  Id  System
/dev/sda1  *         1  60801  488384001  fd  Linux raid autodetect
/dev/sdb1  *         1  36481  293033601  fd  Linux raid autodetect
/dev/sdc1  *         1  36481  293033601  fd  Linux raid autodetect
/dev/sdd1  *         1  36481  293033601  fd  Linux raid autodetect
</pre>
</div>
<p>One of my drives is larger than the others. Three drives (Seagate ST3300620AS) where previously used in a RAID5. It's impossible to find these drives any longer so I picked up the closest match (Seagate ST3500630AS). It has a larger capacity but otherwise the specs match. In a RAID10, the larger drive's extra space (~200GB) will go unused.</p>
<p>I formatted the drives but perhaps it was unnecessary. I did this as a check on each drive before I began building the array. Didn't seem to hurt anything.</p>
<div class="terminal">
<pre>
# mkfs.ext3 /dev/sda1
# mkfs.ext3 /dev/sda2
# mkfs.ext3 /dev/sda3
# mkfs.ext3 /dev/sda4
</pre>
</div>
<h3>mdadm</h3>
<p>Third, time to pull the trigger. Let <code>mdadm</code> do the heavy lifting.</p>
<div class="terminal">
<pre>
# mdadm             \
  --create /dev/md0 \
  -v                \
  --raid-devices=4  \
  --chunk=32        \
  --level=raid10    \
  /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
</pre>
</div>
<h3>mkfs</h3>
<p>Fourth, whether you format the drive individually or not you must format the RAID.</p>
<div class="terminal">
<pre>
# mkfs.ext3 /dev/md0
</pre>
</div>
<h3>mount</h3>
<p>Finally, mount the RAID.</p>
<div class="terminal">
<pre>
# mount /dev/md0 /mnt/xen
</pre>
</div>
<p>Sweet. </p>
<div class="terminal">
<pre>
$ df -h
Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup00-LogVol00
           287G  36G  237G  14% /
/dev/hdf1   99M  19M   76M  20% /boot
tmpfs      3.9G    0  3.9G   0% /dev/shm
/dev/md0   551G 198M  523G   1% /mnt/xen
</pre>
</div>
<p>Now, where is that Xen tutorial?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redleopard.com/2009/01/software-raid-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RAID 01 vs. RAID 10</title>
		<link>http://www.redleopard.com/2009/01/raid-01-vs-raid-10/</link>
		<comments>http://www.redleopard.com/2009/01/raid-01-vs-raid-10/#comments</comments>
		<pubDate>Sun, 18 Jan 2009 19:25:29 +0000</pubDate>
		<dc:creator>kelly</dc:creator>
				<category><![CDATA[KellyBlog]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.redleopard.com/?p=525</guid>
		<description><![CDATA[I just finished building a four-drive software RAID10 on marmaduke and wanted to jot down my thoughts on RAID failure. In particular, I read a number of postings on the difference between RAID 01 and RAID 10. None of them satisfactory described the differences and how those differences changed when adding more drives. Marmaduke only [...]]]></description>
			<content:encoded><![CDATA[<p>I just finished building a four-drive software RAID10 on marmaduke and wanted to jot down my thoughts on RAID failure. In particular, I read a number of postings on the difference between RAID 01 and RAID 10. None of them satisfactory described the differences and how those differences changed when adding more drives.</p>
<p>Marmaduke only has four drives in its array. Most of the web postings dealt with four drives but I also wanted to see the impact on six drives. Here is a hypothetical set of six drives.</p>
<div class="terminal">
<pre>
Six Drives:
  /dev/sda  a
  /dev/sdb  b
  /dev/sdc  c
  /dev/sdd  d
  /dev/sde  e
  /dev/sdf  f
</pre>
</div>
<p>For clarity, I will refer to <code>/dev/sda</code> simply as &#8216;a&#8217;, and so on.</p>
<p>Recall that RAID&nbsp;0 &#8216;stripes&#8217; two or more drives and RAID&nbsp;1 &#8216;mirrors&#8217; two drives.</p>
<p><strong>RAID 01 Composition</strong></p>
<div class="terminal">
<pre>
Four Drive RAID 01
  STRIPE:   a  b     as  0
  STRIPE:   c  d     as  1
  MIRROR:   0  1     as  R01 (RAID 0+1)

Six Drive RAID 01
  STRIPE:   a  b  c  as  0
  STRIPE:   d  e  f  as  1
  MIRROR:   0  1     as  R01 (RAID 0+1)
</pre>
</div>
<p>In both the four and six disk arrays, RAID 01 mirrors two striped arrays. Each striped array can contain two or more drives but there are always only two striped arrays. (A mirror has only two subarrays.)</p>
<p><strong>RAID 10 Composition</strong></p>
<div class="terminal">
<pre>
Four Drive RAID 10
  MIRROR:   a  b     as  0
  MIRROR:   c  d     as  1
  STRIPE:   0  1     as  R10 (RAID 1+0)

Six Drive RAID 10
  MIRROR:   a  b     as  0
  MIRROR:   c  d     as  1
  MIRROR:   e  f     as  2
  STRIPE:   0  1  2  as  R10 (RAID 1+0)
</pre>
</div>
<p>In both the four and six disk arrays, RAID 10 stripes two or more mirrored raids. Each mirror has exactly two disks.</p>
<p><strong>01 vs. 10</strong></p>
<p>Which is better? Both cost the same in terms of disk drives. Both yield the same final RAID capacity. Performance is (for my purposes) the same.</p>
<p>I conclude that the difference is primarily in the failure rates between the two drives. There are two types of failures.</p>
<p>First is a failure that takes out a drive but not the array. Replace the drive and you can rebuild the array.</p>
<p>Second is a failure that takes out a drive and the array. Nothing you can do. The array is lost. Game over.</p>
<p>Which drive or drive set cause a catastrophic array loss? I&#8217;ve created two tables (ah, the beauty of pure 7-bit ASCII) to detail every scenario for both a 4-drive and a 6-drive array of both RAID 01 and RAID 10.</p>
<p>An asterisk denotes a catastrophic failure.</p>
<p>Column 1 : &#8220;F&#8221;, number of drives that failed in the array.</p>
<p>Column 2 : &#8220;DRIVES&#8221;, each drive in the array.</p>
<p>Column 3 : &#8220;RO1&#8243;, subarrays for RAID 01.</p>
<p>Column 4 : &#8220;R10&#8243;, subarrays for RAID 10.</p>
<p>Column 5 : &#8220;RAIDS&#8221;, the two final arrays.</p>
<div class="terminal">
<pre>
            Four Drive Arrays

       DRIVES     R01    R10     RAIDS
    ...........   ...   .....   ...  ...
F   a b c d       0 1   0 1     R01  R10
----------------------------------------
0 |             |     |       |
----------------------------------------
  |       *     |   * |       |
1 |     *       |   * |       |
  |   *         | *   |       |
  | *           | *   |       |
----------------------------------------
  |     * *     |   * |   *   |       *
  |   *   *     | * * |       |  *
2 |   * *       | * * |       |  *
  | *     *     | * * |       |  *
  | *   *       | * * |       |  *
  | * *         | *   | *     |       *
----------------------------------------
  |   * * *     | * * |   *   |  *    *
3 | *   * *     | * * |   *   |  *    *
  | * *   *     | * * | *     |  *    *
  | * * *       | * * | *     |  *    *
----------------------------------------
4 | * * * *     | * * | * *   |  *    *
----------------------------------------
</pre>
</div>
<p>Neither RAID configurations can survive a 3 or 4 drive failure.</p>
<p>Both configurations can survive a 1 drive failure. One of the subarrays in RAID 01 always fail with a single drive failure but it doesn&#8217;t bring down the array. In RAID 10, the subarray doesn&#8217;t fail because the subarray is a mirror.</p>
<p>With four drives, there are six possible combinations of two drive failures. In this case, RAID 10 has twice the survival rate (two failure points) as does RAID 01 (four failure points).</p>
<div class="terminal">
<pre>
            Six Drive Arrays

       DRIVES     R01    R10     RAIDS
    ...........   ...   .....   ...  ...
    a b c d e f   0 1   0 1 2   R01  R10
----------------------------------------
0 |             |     |       |
----------------------------------------
  |           * |   * |       |
  |         *   |   * |       |
1 |       *     |   * |       |
  |     *       | *   |       |
  |   *         | *   |       |
  | *           | *   |       |
----------------------------------------
  |         * * |   * |     * |       *
  |       *   * |   * |       |
  |       * *   |   * |       |
  |     *     * | * * |       |  *
  |     *   *   | * * |       |  *
  |     * *     | * * |   *   |  *    *
2 |   *       * | * * |       |  *
  |   *     *   | * * |       |  *
  |   *   *     | * * |       |  *
  |   * *       | *   |       |
  | *         * | * * |       |  *
  | *       *   | * * |       |  *
  | *     *     | * * |       |  *
  | *   *       | *   |       |
  | * *         | *   | *     |       *
----------------------------------------
  |       * * * |   * |     * |       *
  |     *   * * | * * |     * |  *    *
  |     * *   * | * * |   *   |  *    *
  |     * * *   | * * |   *   |  *    *
  |   *     * * | * * |     * |  *    *
  |   *   *   * | * * |       |  *
  |   *   * *   | * * |       |  *
  |   * *     * | * * |       |  *
  |   * *   *   | * * |       |  *
  |   * * *     | * * |   *   |  *    *
3 | *       * * | * * |     * |  *    *
  | *     *   * | * * |       |  *
  | *     * *   | * * |       |  *
  | *   *     * | * * |       |  *
  | *   *   *   | * * |       |  *
  | *   * *     | * * |   *   |  *    *
  | * *       * | * * | *     |  *    *
  | * *     *   | * * | *     |  *    *
  | * *   *     | * * | *     |  *    *
  | * * *       | *   | *     |       *
----------------------------------------
  |     * * * * | * * |   * * |  *    *
  |   *   * * * | * * |     * |  *    *
  |   * *   * * | * * |     * |  *    *
  |   * * *   * | * * |   *   |  *    *
  |   * * * *   | * * |   *   |  *    *
  | *     * * * | * * |     * |  *    *
4 | *   *   * * | * * |     * |  *    *
  | *   * *   * | * * |   *   |  *    *
  | *   * * *   | * * |   *   |  *    *
  | * *     * * | * * | *   * |  *    *
  | * *   *   * | * * | *     |  *    *
  | * *   * *   | * * | *     |  *    *
  | * * *     * | * * | *     |  *    *
  | * * *   *   | * * | *     |  *    *
  | * * * *     | * * | *     |  *    *
----------------------------------------
  |   * * * * * | * * |   * * |  *    *
  | *   * * * * | * * |   * * |  *    *
5 | * *   * * * | * * | *   * |  *    *
  | * * *   * * | * * | *   * |  *    *
  | * * * *   * | * * | * *   |  *    *
  | * * * * *   | * * | * *   |  *    *
----------------------------------------
6 | * * * * * * | * * | * * * |  *    *
----------------------------------------
</pre>
</div>
<p>With a six drive array, RAID 10 has three failure points if two drives fail. However, RAID 01 has nine failure points.</p>
<p>Finally if three drives fail, RAID 10 has 12 failure points compared to RAID 01 which has 18 failure points. In the following table, &#8216;prm&#8217; is the number of permutations for that number of drive failures.</p>
<div class="terminal">
<pre>
          RAID Failure Points

        4-drive           6-drive
    ...............   ...............
F   R01   R10   prm   R01   R10   prm
----------------------------------------
0                1                 1
1                4                 6
2    4     2     6     9     3    15
3    4     4     4    18    12    20
4    1     1     1    15    15    15
5    -     -     -     6     6     6
6    -     -     -     1     1     1
</pre>
</div>
<p>It is my conclusion that the likelihood of a catastrophic array failure is substantially greater for RAID 01 and prudence suggests a preference for RAID 10.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.redleopard.com/2009/01/raid-01-vs-raid-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

