snapraid/design.html
Andrea Mazzoleni de31773be8 Auto update
2015-12-28 16:31:53 +01:00

113 lines
4.3 KiB
HTML

<!doctype html public "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<link rel="stylesheet" type="text/css" href="style.css" />
<title>SnapRAID</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="cache-control" content="no-cache" />
<meta name="description" content="A backup program for disk arrays. It stores parity information of your data and it recovers from up to six disk failures" />
<meta name="keywords" content="snapraid snapshot raid backup disk array redundancy parity" />
<meta name="author" content="Andrea Mazzoleni" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-21967501-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body>
<div id="title">
</div>
<div id="bar">
<a href="index.html">About</a>
<a href="download.html">Download</a>
<a href="design.html">Design</a>
<a href="compare.html">Compare</a>
<a href="faq.html">FAQ</a>
<a href="manual.html">Manual</a>
<a href="https://sourceforge.net/p/snapraid/discussion/1677233/">Forum</a>
<a href="authors.html">Authors</a>
</div>
<div id="main">
<p>
<span class="bold">SnapRAID</span> was created following the <a href="http://en.wikipedia.org/wiki/Unix_philosophy">Unix philosophy</a>:
<em>Write programs that do one thing and do it well</em>.
</p>
<p>
The first design principle was <span class="bold">reliability</span>.
The result is a simple architecture and an easy to understand implementation,
following the <a href="http://en.wikipedia.org/wiki/Edsger_W._Dijkstra">Dijkstra</a>
quote <i>Simplicity is prerequisite for reliability</i>.
</p>
<p>
Extensive and automated tests with the runtime checker <a href="http://valgrind.org/">valgrind</a> and
the static analyzer <a href="http://clang-analyzer.llvm.org/">clang</a> are done to ensure the correctness of the final application.
The test has a <a href="cov/">code coverage of over 90%</a>, measured with <a href="http://ltp.sourceforge.net/coverage/lcov.php">lcov</a>.
</p>
<p>
The second design principle was <span class="bold">robustness</span>.
It supports any kind of problem. Even on kernel panics, power-downs
or any other hard failure at runtime, your redundancy data is in safe hands.
<br>
It uses all the possible storage techniques to ensure to always keep consistent
redundancy even after critical interruptions.
</p>
<p>
The third design principle was <span class="bold">efficiency</span>.
It's a native C application highly optimized using all the
possible OS services to ensure the maximum throughput of you disk array.
</p>
<p>
For integrity checks is used the highly efficient <a href="http://code.google.com/p/smhasher/">murmur3</a>
and <a href="http://burtleburtle.net/bob/hash/spooky.html">SpookyHash</a> hashes at 128 bits.
For the redundancy computations we use a
<a href="https://github.com/amadvance/snapraid/tree/master/raid">RAID library</a>
written from scratch that supports up to six levels of parity delivering top-notch performance.
The library design is originally based, and also binary compatible,
with the <a href="http://lxr.linux.no/linux+*/lib/raid6">Linux Kernel RAID</a>
library made by H. Peter Anvin.
As internal data base it's used the <a href="http://www.tommyds.it/">TommyDS</a> library of data structures.
</p>
</div>
<div id="bottombar">
<div style="float: left; width: 50%;">
<span class="bold">Donate with</span>
<br/>
<a href="http://sourceforge.net/p/snapraid/donate/"><img src="paypal.png"/></a>
<a href="https://coinkite.com/u/amadvance/"><img src="bitcoin.png"/></a>
</div>
<div style="float: left; width: 50%;">
<span class="bold">Find other resources at</span>
<br/>
<a href="https://github.com/amadvance/snapraid/"><img src="github.png"/></a>
<a href="http://sourceforge.net/projects/snapraid/"><img src="sourceforge.png"/></a>
<a href="https://travis-ci.org/amadvance/snapraid/"><img src="travisci.png"/></a>
</div>
</div>
</body>
</html>