snapraid/design.html

144 lines
5.4 KiB
HTML
Raw Normal View History

2015-09-09 23:03:32 +02:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2015-09-11 00:06:29 +02:00
<html lang="en">
2011-03-01 22:19:30 +01:00
<head>
2015-09-09 23:18:24 +02:00
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<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">
2025-12-10 00:14:08 +01:00
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
2015-09-09 23:18:24 +02:00
<link rel="stylesheet" type="text/css" href="style.css">
2011-03-01 22:19:30 +01:00
<title>SnapRAID</title>
2023-01-17 18:38:08 +01:00
2023-01-17 18:39:47 +01:00
<!-- Google Analytics 4 -->
2023-01-17 18:38:08 +01:00
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-W1Z5FKHYQ4"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-W1Z5FKHYQ4');
</script>
2023-01-17 18:39:47 +01:00
<!-- Google Universal Analytics -->
2011-03-01 22:19:30 +01:00
<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>
2015-09-10 23:36:40 +02:00
<div id="header">
2016-01-07 18:59:37 +01:00
<img src="index.jpg" width="1200" height="150" alt="Title">
2011-03-01 22:19:30 +01:00
</div>
2015-09-10 23:36:40 +02:00
<div id="menu">
2015-09-26 14:13:32 +02:00
<a href="/">About</a>
<a href="download">Download</a>
<a href="design">Design</a>
<a href="compare">Compare</a>
<a href="faq">FAQ</a>
<a href="manual">Manual</a>
2025-10-12 18:38:38 +02:00
<a href="support">Support</a>
2015-09-26 14:13:32 +02:00
<a href="authors">Authors</a>
2011-03-01 22:19:30 +01:00
</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>
2016-01-10 21:16:55 +01:00
2011-03-01 22:19:30 +01:00
<p>
2016-01-10 21:42:35 +01:00
Extensive and automated tests with the runtime checker <a href="http://valgrind.org/">Valgrind</a>
and with the <a href="https://github.com/google/sanitizers">Google Sanitizers</a>
2016-01-10 21:11:26 +01:00
are done to ensure the correctness of the final application.
2021-09-27 22:11:18 +02:00
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>.
2011-03-01 22:19:30 +01:00
</p>
2016-01-10 21:16:55 +01:00
<p>
2016-01-13 19:35:59 +01:00
SnapRAID is also verified with the
2016-01-10 21:42:35 +01:00
<a href="https://scan.coverity.com/projects/snapraid">Coverity Scan</a>
2016-01-13 19:35:59 +01:00
and <a href="http://clang-analyzer.llvm.org/">clang</a> static analyzers,
and with the <a href="http://lcamtuf.coredump.cx/afl/">American Fuzzy Lop</a> fuzzy tester.
2016-01-10 21:16:55 +01:00
</p>
2011-03-01 22:19:30 +01:00
<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 your disk array.
2011-03-01 22:19:30 +01:00
</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>
2025-12-13 17:35:07 +01:00
<p>
</p>
2011-03-01 22:19:30 +01:00
</div>
2015-09-10 23:36:40 +02:00
<div id="footer">
2011-03-01 22:19:30 +01:00
2015-09-10 23:36:40 +02:00
<div class="column">
2011-03-01 22:19:30 +01:00
<span class="bold">Donate with</span>
2015-09-10 08:41:16 +02:00
<br>
2016-05-31 23:54:41 +02:00
<!--
2015-09-10 08:41:16 +02:00
<a href="http://sourceforge.net/p/snapraid/donate/"><img src="paypal.png" width="160" height="60" alt="PayPal"></a>
2016-05-31 23:54:41 +02:00
-->
2016-06-01 13:07:08 +02:00
<a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=amadvance%40gmail%2ecom&lc=US&item_name=SnapRAID&no_note=0&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHostedGuest"><img src="paypal.png" width="160" height="60" alt="PayPal"></a>
2016-05-31 23:30:15 +02:00
<!--
2015-09-10 08:41:16 +02:00
<a href="https://coinkite.com/u/amadvance/"><img src="bitcoin.png" width="160" height="60" alt="BitCoin"></a>
2016-05-31 23:30:15 +02:00
-->
2011-03-01 22:19:30 +01:00
</div>
2015-09-10 23:36:40 +02:00
<div class="column">
2011-03-01 22:19:30 +01:00
<span class="bold">Find other resources at</span>
2015-09-10 08:41:16 +02:00
<br>
<a href="https://github.com/amadvance/snapraid/"><img src="github.png" width="160" height="60" alt="GitHub"></a>
<a href="http://sourceforge.net/projects/snapraid/"><img src="sourceforge.png" width="115" height="60" alt="SourceForge"></a>
2011-03-01 22:19:30 +01:00
</div>
</div>
</body>
</html>