Auto update

This commit is contained in:
Andrea Mazzoleni 2015-09-10 08:41:16 +02:00
parent b35ef07ea6
commit 73b07b038a
7 changed files with 156 additions and 115 deletions

View file

@ -24,7 +24,7 @@
</head>
<body>
<div id="title">
<img src="index.png" width="1200" height="150" alt="Title"/>
<img src="index.png" width="1200" height="150" alt="Title">
</div>
<div id="bar">
<a href="index.html">About</a>
@ -62,17 +62,17 @@ You can contact me by email using the address
<div class="half">
<span class="bold">Donate with</span>
<br/>
<a href="http://sourceforge.net/p/snapraid/donate/"><img src="paypal.png" width="160" height="60" alt="PayPal"/></a>
<a href="https://coinkite.com/u/amadvance/"><img src="bitcoin.png" width="160" height="60" alt="BitCoin"/></a>
<br>
<a href="http://sourceforge.net/p/snapraid/donate/"><img src="paypal.png" width="160" height="60" alt="PayPal"></a>
<a href="https://coinkite.com/u/amadvance/"><img src="bitcoin.png" width="160" height="60" alt="BitCoin"></a>
</div>
<div class="half">
<span class="bold">Find other resources at</span>
<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>
<a href="https://travis-ci.org/amadvance/snapraid/"><img src="travisci.png" width="64" height="60" alt="TravisCI"/></a>
<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>
<a href="https://travis-ci.org/amadvance/snapraid/"><img src="travisci.png" width="64" height="60" alt="TravisCI"></a>
</div>
</div>

View file

@ -24,7 +24,7 @@
</head>
<body>
<div id="title">
<img src="index.png" width="1200" height="150" alt="Title"/>
<img src="index.png" width="1200" height="150" alt="Title">
</div>
<div id="bar">
<a href="index.html">About</a>
@ -95,17 +95,17 @@ and if <span class="bold">all your disks are spinning when reading one file</spa
<table class="compare">
<tr><th width="30%"></th><th><span class="bold">SnapRAID</span></th><th>unRAID</th><th>FlexRAID</th><th>disParity</th><th>ZFS</th><th>Btrfs</th><th>Storage Spaces</th></tr>
<tr><td><span class="bold">Redundancy model</span><br/>Real-time computes parity at real-time like RAID,
<tr><td><span class="bold">Redundancy model</span><br>Real-time computes parity at real-time like RAID,
snapshot at request time, like Backup.</td>
<td>Snapshot</td><td>Real-time</td><td>Real-time<br/>Snapshot</td><td>Snapshot</td><td>Real-time<br/>Snapshot</td><td>Real-time<br/>Snapshot</td><td>Real-time</td></tr>
<td>Snapshot</td><td>Real-time</td><td>Real-time<br>Snapshot</td><td>Snapshot</td><td>Real-time<br>Snapshot</td><td>Real-time<br>Snapshot</td><td>Real-time</td></tr>
<tr><td><span class="bold">Integrity</span><br/>
<tr><td><span class="bold">Integrity</span><br>
If data is validated with some kind of checksum,
and which one is the default.
<td>Yes<br/>SpookyHash<br/>128 bit</td><td>No</td><td>Yes<br/>Adler32<br/>32 bit</td><td>Yes<br/>MD5<br>128 bit</td><td>Yes<br/>fletcher4<br/>256 bit</td><td>Yes<br/>CRC32C<br/>32 bit</td><td>No</td></tr>
and which one is the default.</td>
<td>Yes<br>SpookyHash<br>128 bit</td><td>No</td><td>Yes<br>Adler32<br>32 bit</td><td>Yes<br>MD5<br>128 bit</td><td>Yes<br>fletcher4<br>256 bit</td><td>Yes<br>CRC32C<br>32 bit</td><td>No</td></tr>
<tr><td><span class="bold">Fix silent errors</span><br/>
If silent errors are detected and fixed before they can propagate into the parity.
<tr><td><span class="bold">Fix silent errors</span><br>
If silent errors are detected and fixed before they can propagate into the parity.</td>
<td>Yes</td><td>No <a href="#note1">[1]</a></td><td>No <a href="#note2">[2]</a></td><td>No</td><td>Yes <a href="#note3">[3]</a></td><td>Yes <a href="#note3">[3]</a></td><td>No</td></tr>
<!---
@ -130,22 +130,22 @@ http://forum.flexraid.com/index.php/topic,1753.msg12512.html#msg12512
http://www.openegg.org/forums/posts/list/727.page
-->
<tr><td><span class="bold">Number of failures</span><br/>
<tr><td><span class="bold">Number of failures</span><br>
How many disk failures are supported? 1 is for RAID5, 2 for RAID6.
</td>
<td>1 2 3 4 5 6</td><td>1</td><td>1 2 3 4 5 6+</td><td>1</td><td>1 2 3</td><td>1 2</td><td>1</td></tr>
<tr><td><span class="bold">Other failures</span><br/>If more disks fail than the supported redundancy model,
<tr><td><span class="bold">Other failures</span><br>If more disks fail than the supported redundancy model,
is it possible to recover the data in the not failed disks?</td>
<td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td><td>No</td><td>No</td><td>No</td></tr>
<tr><td><span class="bold">Power/Noise</span><br/>How many disks are spinning when reading a single file?</td>
<tr><td><span class="bold">Power/Noise</span><br>How many disks are spinning when reading a single file?</td>
<td>One</td><td>One</td><td>One</td><td>One</td><td>All</td><td>All</td><td>All</td></tr>
<tr><td><span class="bold">Filled disks</span><br/>Can you start with already filled disks?</td>
<tr><td><span class="bold">Filled disks</span><br>Can you start with already filled disks?</td>
<td>Yes</td><td>Partial<a href="#note4">[4]</a></td><td>Yes</td><td>Yes</td><td>No</td><td>No</td><td>No</td></tr>
<tr><td><span class="bold">Add disks</span><br/>Can you add disks at later time?</td>
<tr><td><span class="bold">Add disks</span><br>Can you add disks at later time?</td>
<td>Yes</td><td>Yes</td><td>Yes</td><td>Yes</td><td>No</td><td>Yes</td><td>Yes</td></tr>
<!--
@ -153,10 +153,10 @@ ZFS does't allow to add new disks to a raidz pool
http://serverfault.com/questions/190207/how-can-i-add-one-disk-to-an-existing-raidz-zpool
-->
<tr><td><span class="bold">Operating system</span><br/>Which OS is supported?</td>
<td>Linux<br/>Windows<br/>Mac&nbsp;OS&nbsp;X<br/>OpenIndiana<br/>Solaris<br/>BSD</td><td>Linux</td><td>Windows<br/>Linux</td><td>Windows</td><td>Linux <a href="#note5">[5]</a><br/>Mac&nbsp;OS&nbsp;X<br/>OpenIndiana<br/>Solaris<br/>BSD</td><td>Linux</td><td>Windows</td></tr>
<tr><td><span class="bold">Operating system</span><br>Which OS is supported?</td>
<td>Linux<br>Windows<br>Mac&nbsp;OS&nbsp;X<br>OpenIndiana<br>Solaris<br>BSD</td><td>Linux</td><td>Windows<br>Linux</td><td>Windows</td><td>Linux <a href="#note5">[5]</a><br>Mac&nbsp;OS&nbsp;X<br>OpenIndiana<br>Solaris<br>BSD</td><td>Linux</td><td>Windows</td></tr>
<tr><td><span class="bold">Age</span><br/>The year of the first official release supporting at least RAID5 redundancy.</td>
<tr><td><span class="bold">Age</span><br>The year of the first official release supporting at least RAID5 redundancy.</td>
<td>2011</td><td>2005</td><td>2008</td><td>2009</td><td>2005</td><td>2013</td><td>2012</td></tr>
<!---
@ -167,16 +167,16 @@ RAID 1987 is the date of the paper:
http://www.eecs.berkeley.edu/Pubs/TechRpts/1987/5853.html
-->
<tr><td><span class="bold">License/Price</span><br/>
<tr><td><span class="bold">License/Price</span><br>
Software license and price.
</td>
<td>Open Source GPL3<br/>Free</td><td>Open Source GPL2<br/>89$/129$</td><td>Proprietary<br/>40$/60$</td><td>Proprietary<br/>Free</td><td>Open Source CDDL<br/>Free</td><td>Open Source GPL2<br/>Free</td><td>Proprietary<br/>Windows 8</td></tr>
<td>Open Source GPL3<br>Free</td><td>Open Source GPL2<br>89$/129$</td><td>Proprietary<br>40$/60$</td><td>Proprietary<br>Free</td><td>Open Source CDDL<br>Free</td><td>Open Source GPL2<br>Free</td><td>Proprietary<br>Windows 8</td></tr>
<tr><td><span class="bold">Interface</span><br/>Which interface is provided? GUI or command line?</td>
<tr><td><span class="bold">Interface</span><br>Which interface is provided? GUI or command line?</td>
<td>
command line<br/>or <a href="http://elucidate.codeplex.com/">Elucidate</a> GUI,
command line<br>or <a href="http://elucidate.codeplex.com/">Elucidate</a> GUI,
or plugin for for <a href="http://www.openmediavault.org/">OpenMediaVault</a>
</td><td>command line<br/>GUI</td><td>GUI</td><td>command line</td><td>command line<br/>GUI/Plugins <a href="#note6">[6]</a></td><td>command line</td><td>GUI</td></tr>
</td><td>command line<br>GUI</td><td>GUI</td><td>command line</td><td>command line<br>GUI/Plugins <a href="#note6">[6]</a></td><td>command line</td><td>GUI</td></tr>
</table>
@ -193,7 +193,7 @@ the parity is automatically recomputed, making impossible to recover the silent
<a href="http://forum.flexraid.com/index.php/topic,3233.0.html">are not verified when data is read to update the parity</a>.
This means that any silent error present will propagate into the parity,
making impossible to fix it later, even if it can be still detected comparing the file checksum.
<br/>
<br>
You can get in a state where the "Validate" operation
reports errors, but the "Verify" one reports no problem in the parity,
making impossible to fix the errors.
@ -203,19 +203,19 @@ making impossible to fix the errors.
<a id="note3">[3]</a> - ZFS and Btrfs provide a bit-rot protection at the same level of SnapRAID,
always checking data before using it.
In this regards all the three solutions represent the state-of-the-art.
<br/>
<br>
A cons of ZFS is that the default <a href="http://en.wikipedia.org/wiki/Fletcher%27s_checksum">Fletcher</a>
checksum is a choice that favorites speed over quality.
The same for the default CRC32C used by Btrfs.
The 128 bits <a href="http://burtleburtle.net/bob/hash/spooky.html">SpookyHash</a>
used by SnapRAID is instead the state-of-the-art in checksumming quality,
without compromising in speed.
<br/>
<br>
Another cons of ZFS is that it lacks a fast RAID implementation in assembler.
It only has a C implementation, that is from two to four times slower than SnapRAID/Btrfs.
<br/>
<br>
ZFS also uses a sub-optimal RAID-Z3 algorithm, that requires double computations than the equivalent SnapRAID's z-parity.
<br/>
<br>
Instead, both SnapRAID and Btrfs use top-notch assembler implementations to compute the RAID parity,
always using the best known RAID algorithm and implementation.
</p>
@ -245,17 +245,17 @@ If you think that some information reported is incorrect or simply unfair, pleas
<div class="half">
<span class="bold">Donate with</span>
<br/>
<a href="http://sourceforge.net/p/snapraid/donate/"><img src="paypal.png" width="160" height="60" alt="PayPal"/></a>
<a href="https://coinkite.com/u/amadvance/"><img src="bitcoin.png" width="160" height="60" alt="BitCoin"/></a>
<br>
<a href="http://sourceforge.net/p/snapraid/donate/"><img src="paypal.png" width="160" height="60" alt="PayPal"></a>
<a href="https://coinkite.com/u/amadvance/"><img src="bitcoin.png" width="160" height="60" alt="BitCoin"></a>
</div>
<div class="half">
<span class="bold">Find other resources at</span>
<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>
<a href="https://travis-ci.org/amadvance/snapraid/"><img src="travisci.png" width="64" height="60" alt="TravisCI"/></a>
<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>
<a href="https://travis-ci.org/amadvance/snapraid/"><img src="travisci.png" width="64" height="60" alt="TravisCI"></a>
</div>
</div>

View file

@ -24,7 +24,7 @@
</head>
<body>
<div id="title">
<img src="index.png" width="1200" height="150" alt="Title"/>
<img src="index.png" width="1200" height="150" alt="Title">
</div>
<div id="bar">
<a href="index.html">About</a>
@ -90,17 +90,17 @@ As internal data base it's used the <a href="http://www.tommyds.it/">TommyDS</a>
<div class="half">
<span class="bold">Donate with</span>
<br/>
<a href="http://sourceforge.net/p/snapraid/donate/"><img src="paypal.png" width="160" height="60" alt="PayPal"/></a>
<a href="https://coinkite.com/u/amadvance/"><img src="bitcoin.png" width="160" height="60" alt="BitCoin"/></a>
<br>
<a href="http://sourceforge.net/p/snapraid/donate/"><img src="paypal.png" width="160" height="60" alt="PayPal"></a>
<a href="https://coinkite.com/u/amadvance/"><img src="bitcoin.png" width="160" height="60" alt="BitCoin"></a>
</div>
<div class="half">
<span class="bold">Find other resources at</span>
<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>
<a href="https://travis-ci.org/amadvance/snapraid/"><img src="travisci.png" width="64" height="60" alt="TravisCI"/></a>
<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>
<a href="https://travis-ci.org/amadvance/snapraid/"><img src="travisci.png" width="64" height="60" alt="TravisCI"></a>
</div>
</div>

View file

@ -24,7 +24,7 @@
</head>
<body>
<div id="title">
<img src="index.png" width="1200" height="150" alt="Title"/>
<img src="index.png" width="1200" height="150" alt="Title">
</div>
<div id="bar">
<a href="index.html">About</a>
@ -93,17 +93,17 @@ Donations are spent on stuffs related to SnapRAID development like to buy new ha
<div class="half">
<span class="bold">Donate with</span>
<br/>
<a href="http://sourceforge.net/p/snapraid/donate/"><img src="paypal.png" width="160" height="60" alt="PayPal"/></a>
<a href="https://coinkite.com/u/amadvance/"><img src="bitcoin.png" width="160" height="60" alt="BitCoin"/></a>
<br>
<a href="http://sourceforge.net/p/snapraid/donate/"><img src="paypal.png" width="160" height="60" alt="PayPal"></a>
<a href="https://coinkite.com/u/amadvance/"><img src="bitcoin.png" width="160" height="60" alt="BitCoin"></a>
</div>
<div class="half">
<span class="bold">Find other resources at</span>
<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>
<a href="https://travis-ci.org/amadvance/snapraid/"><img src="travisci.png" width="64" height="60" alt="TravisCI"/></a>
<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>
<a href="https://travis-ci.org/amadvance/snapraid/"><img src="travisci.png" width="64" height="60" alt="TravisCI"></a>
</div>
</div>

125
faq.html
View file

@ -24,7 +24,7 @@
</head>
<body>
<div id="title">
<img src="index.png" width="1200" height="150" alt="Title"/>
<img src="index.png" width="1200" height="150" alt="Title">
</div>
<div id="bar">
<a href="index.html">About</a>
@ -70,7 +70,7 @@ Frequently Asked Questions for <span class="bold">SnapRAID</span>.
<li><a href="#fs">Which filesystem is recommended for SnapRAID ?</a></li>
<li><a href="#hardware">Which hardware configuration is recommended?</a></li>
<li><a href="#cpu">Is a multi-core CPU recommended?</a></li>
<li><a href="#64">Is a 64 bit operating system recommended?</a></li>
<li><a href="#bit64">Is a 64 bit operating system recommended?</a></li>
<li><a href="#mem">How much memory SnapRAID requires to run?</a></li>
<li><a href="#smart">Do I have to check the SMART attributes of my disks?</a></li>
<li><a href="#multios">Is it possible to use SnapRAID in a dual boot configuration, like Windows and Linux?</a></li>
@ -162,6 +162,7 @@ For example, with SnapRAID, if you delete by accident a file, you can easily res
</p>
<p>
Others advantages over traditional RAID5/6 solutions are:
</p>
<ul>
<li>All your data is hashed to ensure data integrity and to avoid silent corruption.</li>
<li>If the failed disks are too many to allow a recovery, you lose the data only on the failed disks.
@ -176,6 +177,7 @@ without the need to reformat or move data.</li>
producing less noise.</li>
<li>You can have up to six parity levels compared to the one of RAID5 and the two of RAID6.</li>
</ul>
<p>
Obviously RAID has other advantages, like having a better speed due data striping.
What is best for you, depends on your specific use case.
</p>
@ -189,6 +191,7 @@ after a complete disk failure.
<p>
SnapRAID is more similar at the RAID-Z/RAID functionality of ZFS/Btrfs.
Compared to them, SnapRAID has the following advantages:
</p>
<ul>
<li>If the failed disks are too many to allow a recovery, you lose the data only on the failed disks.
All the data in the other disks is safe.</li>
@ -200,6 +203,7 @@ without the need to reformat or move data.</li>
producing less noise.</li>
<li>You can have up to six parity levels compared to the three of ZFS RAID-Z and the two of Btrfs RAID-5/6.</li>
</ul>
<p>
Obviously ZFS/Btrfs have other advantages, like being real-time solutions.
What is best for you, depends on your specific use case.
</p>
@ -251,13 +255,13 @@ with any other pooling solutions.
<p>
For encryption, SMART monitoring, Power control and Data Recovery you can use other tools.
Here some suggestions:
<p>
</p>
<table class="compare">
<tr><th></th><th>Linux</th><th>Windows</th><th>Mac OS X</th></tr>
<tr>
<td>Encryption</td>
<td>
<a href="http://en.wikipedia.org/wiki/Dm-crypt">dmcrypt/LUKS</a><br/>
<a href="http://en.wikipedia.org/wiki/Dm-crypt">dmcrypt/LUKS</a><br>
(<a href="http://zackreed.me/articles/79-encrypted-snapraid">tutorial</a>)</td>
<td>
<!--
@ -275,7 +279,7 @@ Discontinued? 28/5/2014
<tr>
<td>Virtual views/storage pooling</td>
<td><a href="http://romanrm.ru/en/mhddfs">mhddfs</a>
(<a href="http://zackreed.me/articles/84-snapraid-with-mhddfs">tutorial</a>)</a>,
(<a href="http://zackreed.me/articles/84-snapraid-with-mhddfs">tutorial</a>),
<a href="http://aufs.sourceforge.net/">aufs</a>,
<a href="http://www.greyhole.net/">Greyhole</a>
</td>
@ -327,7 +331,6 @@ Dead site?
<td></td>
</tr>
</table>
</p>
<a id="bakhome"><h3>Is SnapRAID suitable to backup the home/My Documents directory?</h3></a>
<p>
@ -353,8 +356,8 @@ For a setup example in Ubuntu 14.04 you can check the <a href="http://zackreed.m
<p>
As a rule of thumb you can stay with one parity disk (RAID5) with up to four data disks,
and then using one parity disk for each group of seven data disks, like in the table:
</p>
<p>
<table class="download">
<tr><th>Parities</th><th>Data disks</th></tr>
<tr>
@ -382,7 +385,6 @@ and then using one parity disk for each group of seven data disks, like in the t
<td>36 - 42</td>
</tr>
</table>
</p>
<p>
This table takes into account that more parity levels also help to recover from unsynced array,
@ -405,9 +407,11 @@ Some interesting articles about number of parity levels and failure rate of disk
</p>
<a id="fs"><h3>Which filesystem is recommended for SnapRAID ?</h3></a>
<p>
For the data disks, you can use whatever filesystem you like.
For the parity disks, follow these suggestions:
<p>
</p>
<table class="download">
<tr><th>FileSystem</th><th>Result</th></tr>
<tr>
@ -427,7 +431,7 @@ You can anyway use it if you limit the use of the parity disk to contain only th
<tr>
<td>JFS</td>
<td>No. It doesn't support the <a href="http://www.kernel.org/doc/man-pages/online/pages/man2/fallocate.2.html">fallocate()</a> command needed to allocated the parity files.
<br/>
<br>
It also doesn't seem to implement at the best the <a href="http://pubs.opengroup.org/onlinepubs/009695399/functions/posix_fadvise.html">posix_fadvise()</a> command.</td>
</tr>
<tr>
@ -449,11 +453,12 @@ You can anyway use it if you limit the use of the parity disk to contain only th
<td>OK</td>
</tr>
</table>
</p>
<p>
In Linux, to get more space for the parity, it's recommended to format the parity filesystem with the <em>-m 0 -T largefile4</em> options.
Like: <pre>mkfs.ext4 -m 0 -T largefile4 DEVICE</pre>
Like:
</p>
<pre>mkfs.ext4 -m 0 -T largefile4 DEVICE</pre>
<a id="hardware"><h3>Which hardware configuration is recommended?</h3></a>
<p>
@ -471,12 +476,14 @@ and <a href="https://www.backblaze.com/blog/enterprise-drive-reliability/">Backb
<a id="cpu"><h3>Is a multi-core CPU recommended?</h3></a>
<p>
No. SnapRAID is usually not CPU bound. The limiting factor is the read performance from disks.
So, also a single core CPU should be enough.<br/>
So, also a single core CPU should be enough.
</p>
<p>
For example, in my system I get a combined read speed of 400 MiB/s,
but SnapRAID is able to hash at 12000 MiB/s in a single core.
</p>
<a id="64"><h3>Is a 64 bit operating system recommended?</h3></a>
<a id="bit64"><h3>Is a 64 bit operating system recommended?</h3></a>
<p>
Yes. SnapRAID works better in a 64 bit operating system. It can access more than 4 GiB of memory,
and use faster hashing and parity algorithms.
@ -522,6 +529,7 @@ different than zero, replace the disk as recommended by
<p>
Check also <a href="http://research.google.com/pubs/pub32774.html">Google's Failure trends in a large disk drive population</a>
where is found that:
</p>
<pre>after the first reallocation, drives are
over 14 times more likely to fail within
60 days than drives without reallocation
@ -533,9 +541,10 @@ counts.</pre>
<pre>after the first offline reallocation, drives have over
21 times higher chances of failure within 60 days than
drives without offline reallocations.</pre>
</p>
<p>
that also recommens to replace the disk after the first error in the SMART attributes <b>Reallocated_Sector_Ct (5)</b>,
<b>Current_Pending_Sector (197)</b> and <b>Offline_Uncorrectable (198)</b>.
</p>
<a id="multios"><h3>Is it possible to use SnapRAID in a dual boot configuration, like Windows and Linux?</h3></a>
<p>
@ -598,6 +607,7 @@ using a drive letter. Just like in Linux.
<a id="guidelines"><h3>What are the most important things to do to prevent damages?</h3></a>
<p>
If you want to minimize the probability to lose data, do this:
</p>
<ul>
<li>Before running the first "sync", check your RAM memory with a program
like <a href="http://www.memtest86.com/">memtest86</a>.
@ -609,16 +619,15 @@ to monitor the SMART attributes.
At the first <b>Reallocated_Sector_Ct</b>, <b>Current_Pending_Sector</b> or <b>Offline_Uncorrectable</b>, replace the disk,
even if it still works.</li>
</ul>
</p>
<a id="adddatadisk"><h3>How can I add an additional data disk to an existing array?</h3></a>
<p>
To add a new data disk at the array, add the new "disk" option in the configuration file,
and then run a "sync" command.
</p>
<pre>
snapraid sync
</pre>
</p>
<a id="remdatadisk"><h3>How can I remove a data disk from an existing array?</h3></a>
<p>
@ -642,9 +651,11 @@ Your array is now without any reference to the removed disk.
<p>
To add a new parity level, add the proper "N-parity" option in the configuration file, and then run the "sync" command,
using the "F, --force-full" option:
</p>
<pre>
snapraid -F sync
</pre>
<p>
The "-F" option tells at SnapRAID to recompute the full parity.
</p>
<p>
@ -668,9 +679,11 @@ maintaining the same directory structure and names.
<p>
Then change the SnapRAID configuration to point the disk at the new mount point and run a "diff"
command to ensure that everything is placed correctly.
</p>
<pre>
snapraid diff
</pre>
<p>
If "diff" reports some "added" or "removed" files likely you have copied files
with a different directory structure.
In such case you have to fix it, until "diff" reports only "equal", "restored" or "copied" files.
@ -678,24 +691,24 @@ In such case you have to fix it, until "diff" reports only "equal", "restored" o
<p>
Now you can check that the files were really copied correctly, you can run a "check" audit command
limited to the replaced disk to check the checksum of all the files.
</p>
<pre>
snapraid check -a -d DISK_NAME
</pre>
</p>
<p>
Finally you can run "sync" to update the SnapRAID state. This command will be almost immediate.
</p>
<pre>
snapraid sync
</pre>
</p>
<a id="reppardisk"><h3>How can I replace a parity disk?</h3></a>
<p>
If the disk is still accessible, first ensure to have a synched array running a sync command:
</p>
<pre>
snapraid sync
</pre>
</p>
<p>
Then you can copy the big parity file to the new disk,
and configure the new parity location in the configuration file.
@ -703,9 +716,11 @@ and configure the new parity location in the configuration file.
<p>
In Linux a good copy command is <a href="http://www.gnu.org/software/ddrescue/">ddrescue</a>.
You can use:
</p>
<pre>
ddrescue /OLD_DISK/parity /NEW_DISK/parity /tmp/copy.log
</pre>
<p>
This will copy the parity file from the old to new location, and in case of errors,
it will continue copying what can be copied.
To retry to copy the problematic sections, you can just retry the same copy
@ -718,10 +733,11 @@ just run a "fix" command.
</p>
<p>
If instead you completely lost the parity file, you can run the "fix" command to recreate it.
</p>
<pre>
snapraid fix
</pre>
</p>
<a id="defrag"><h3>Can I defragment the data and parity disks?</h3></a>
<p>
Yes, you can defragment data and parity disks. Defragmentation doesn't invalidate the SnapRAID data.
@ -755,18 +771,22 @@ Ensure to disable this option in TrueCrypt.
<a id="undelete"><h3>How can I undelete a just deleted file?</h3></a>
<p>
Simply run the "fix" command using a filter for the specified file. Like:
</p>
<pre>
snapraid fix -f my_just_deleted_file
</pre>
<p>
To undelete a directory use:
</p>
<pre>
snapraid fix -f my_just_deleted_dir/
</pre>
<p>
To undelete all the missing files use:
</p>
<pre>
snapraid fix -m
</pre>
</p>
<a id="addandbreak"><h3>What happen if I add files and a disk breaks before I have updated the parity with "sync"?</h3></a>
<p>
@ -789,10 +809,10 @@ but outside the directory tree checked by SnapRAID. Then you can run the "sync"
its completion really delete the files.
In case you get a disk failure during the "sync", you have to just run the "fix" command specifying where
the deleted files are stored:
</p>
<pre>
snapraid fix -i dir_of_deleted_files
</pre>
</p>
<a id="syncandbreak"><h3>What happen if a disk breaks during a "sync" ?</h3></a>
<p>
@ -829,37 +849,41 @@ Another thing to check is the disk cabling and the CPU heat.
</p>
<p>
Another possibility is that you are using programs that change files without modifying the time-stamp of the file itself.
<br/>
<br>
In Linux this is almost guaranteed by the operating system. The only exception is for memory mapped files
not yet closed.
<br/>
<br>
In Windows it's a bit trickier. Even using normal writes, you have the guarantee of an updated time-stamp
only after closing it.
See the <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa365747%28v=vs.85%29.aspx">MSDN WriteFile():</a>
</p>
<pre>
When writing to a file, the last write time is not fully updated until
all handles used for writing have been closed. Therefore, to ensure an
accurate last write time, close the file handle immediately after writing
to the file.
</pre>
<p>
When using memory mapped file, the program must ensure to update the time-stamp manually,
because Windows doesn't do it automatically.
See the <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/aa366537%28v=vs.85%29.aspx">MSDN CreateFileMapping():</a>
</p>
<pre>
When modifying a file through a mapped view, the last modification timestamp
may not be updated automatically. If required, the caller should use SetFileTime
to set the timestamp.
</pre>
<p>
To avoid all these Windows problems, simply ensure to run "sync" when no program is using the files into the array.
</p>
<a id="log"><h3>How can I store in a file all the messages from a check and fix command</h3></a>
<p>
To generate a log file you can use the "-l" option.
</p>
<pre>
snapraid check -l mylog.log
</pre>
</p>
<a id="recconf"><h3>How can I recover the snapraid.conf file</h3></a>
<p>
@ -867,10 +891,10 @@ There is the dedicated -C, --gen-conf command that writes a template configurati
compatible with your content file.
Note that this configuration requires some manual adjustments to set the disk mount points,
but in the comments you'll find the required information to do so.
</p>
<pre>
snapraid -C snapraid.content > snapraid.conf.new
</pre>
</p>
<h2>Tech</h2>
@ -893,13 +917,13 @@ An introduction to this problem is in this article:
<p>
A good analysis of this risk is in the paper:
<a href="http://www.cs.toronto.edu/~bianca/papers/fast08.pdf">An Analysis of Data Corruption in the Storage Stack</a>
</p>
<pre>
A significant number (8% on average) of corruptions
are detected during RAID reconstruction, creating the
possibility of data loss. In this case, protection against
double disk failures is necessary to prevent data loss.
</pre>
</p>
<a id="multithread"><h3>Is SnapRAID multithread?</h3></a>
<p>
@ -950,10 +974,12 @@ Trying an automatic long sequence of retries, will likely kill the disk.
</p>
<p>
If after a such error, you want to retry, you have to just repeat the command.
<br/>
</p>
<p>
In the case of "fix" and "check" commands you can restart from the interrupted point using the "-s, --start"
option specifying the block number that generated the error.
<br/>
</p>
<p>
In the case of "sync" command, the latest state is anyway saved before termination.
So, just restarting it will continue where stopped.
</p>
@ -967,37 +993,48 @@ It's created where the first content file is placed.
<h2>Performance</h2>
<a id="perfhardware"><h3>Which is the optimal hardware configuration to get the best performance?</h3></a>
<p>
The most important factor is to connect all the disks using (E)SATA connections,
to avoid slowdown caused by the controller. Avoid any kind of USB disks.
<br/>
</p>
<p>
The second important factor is use disks with similar performance, because the read/write
speed is limited by the slowest disk of the array.
After a sync operation, it's printed a short stats with the wait times for each disk,
that could help to identify a bottleneck caused by a slow disk.
<br/>
</p>
<p>
As last, a fast CPU could improve the speed when having a lot of disks.
You can detect if the CPU is a limiting factor, checking the CPU usage during sync operations.
<br/>
</p>
<a id="blocksize"><h3>Which is the optimal blocksize to get the best performance?</h3></a>
<p>
The default blocksize should be already the best one.
<br/>
</p>
<p>
Note that increasing it doesn't necessarely improve the performance.
In some cases, it could decrease it.
</p>
<a id="readahead"><h3>Which is the optimal Linux read-ahead size to get the best performance?</h3></a>
<p>
The default Linux read-ahead size of 128 KiB already ensures the best performance
for the default SnapRAID block size of 256 KiB.
If you use a bigger block size, you should configure the read-ahead size to be at least equal
to half of the SnapRAID block size.
<br/>
</p>
<p>
For example, if you want to use a SnapRAID block size of 512 KiB,
it's recommended to configure a read-ahead size of 256 KiB for sdX using:
</p>
<pre>
echo 256 > /sys/block/sdX/queue/read_ahead_kb
</pre>
<p>
Note that if you want to use a SnapRAID block size smaller than 256 KiB, it's recommended to don't configure a specific
read-ahead size, and just use the default value.
</p>
<a id="speed"><h3>How fast are the hash and parity computation?</h3></a>
<p>
@ -1064,9 +1101,11 @@ RAID functions used for recovering with 'fix':
Likely you have too few free memory, and the Linux out-of-memory OOM killer terminates SnapRAID
because it's using too much memory.
You can use the free command to check how much free memory you have.
</p>
<pre>
free -m
</pre>
<p>
If it's too small, you have to install more memory in the machine.
</p>
@ -1084,9 +1123,11 @@ to reduce the size of the needed parity.
<p>
If you are using Linux, an alternate approach is to reformat the parity disk using
specific options to increase the available space, like:
</p>
<pre>
mkfs.ext4 -m 0 -T largefile4 DEVICE
</pre>
<p>
The '-T largefile4' and '-m 0' options should give more space available for the parity file.
</p>
@ -1097,17 +1138,17 @@ The '-T largefile4' and '-m 0' options should give more space available for the
<div class="half">
<span class="bold">Donate with</span>
<br/>
<a href="http://sourceforge.net/p/snapraid/donate/"><img src="paypal.png" width="160" height="60" alt="PayPal"/></a>
<a href="https://coinkite.com/u/amadvance/"><img src="bitcoin.png" width="160" height="60" alt="BitCoin"/></a>
<br>
<a href="http://sourceforge.net/p/snapraid/donate/"><img src="paypal.png" width="160" height="60" alt="PayPal"></a>
<a href="https://coinkite.com/u/amadvance/"><img src="bitcoin.png" width="160" height="60" alt="BitCoin"></a>
</div>
<div class="half">
<span class="bold">Find other resources at</span>
<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>
<a href="https://travis-ci.org/amadvance/snapraid/"><img src="travisci.png" width="64" height="60" alt="TravisCI"/></a>
<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>
<a href="https://travis-ci.org/amadvance/snapraid/"><img src="travisci.png" width="64" height="60" alt="TravisCI"></a>
</div>
</div>

View file

@ -24,7 +24,7 @@
</head>
<body>
<div id="title">
<img src="index.png" width="1200" height="150" alt="Title"/>
<img src="index.png" width="1200" height="150" alt="Title">
</div>
<div id="bar">
<a href="index.html">About</a>
@ -96,17 +96,17 @@ Now go to <a href="download.html">Download</a>.
<div class="half">
<span class="bold">Donate with</span>
<br/>
<a href="http://sourceforge.net/p/snapraid/donate/"><img src="paypal.png" width="160" height="60" alt="PayPal"/></a>
<a href="https://coinkite.com/u/amadvance/"><img src="bitcoin.png" width="160" height="60" alt="BitCoin"/></a>
<br>
<a href="http://sourceforge.net/p/snapraid/donate/"><img src="paypal.png" width="160" height="60" alt="PayPal"></a>
<a href="https://coinkite.com/u/amadvance/"><img src="bitcoin.png" width="160" height="60" alt="BitCoin"></a>
</div>
<div class="half">
<span class="bold">Find other resources at</span>
<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>
<a href="https://travis-ci.org/amadvance/snapraid/"><img src="travisci.png" width="64" height="60" alt="TravisCI"/></a>
<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>
<a href="https://travis-ci.org/amadvance/snapraid/"><img src="travisci.png" width="64" height="60" alt="TravisCI"></a>
</div>
</div>

View file

@ -24,7 +24,7 @@
</head>
<body>
<div id="title">
<img src="index.png" width="1200" height="150" alt="Title"/>
<img src="index.png" width="1200" height="150" alt="Title">
</div>
<div id="bar">
<a href="index.html">About</a>
@ -1631,17 +1631,17 @@ in the UTF-8 format.
<div class="half">
<span class="bold">Donate with</span>
<br/>
<a href="http://sourceforge.net/p/snapraid/donate/"><img src="paypal.png" width="160" height="60" alt="PayPal"/></a>
<a href="https://coinkite.com/u/amadvance/"><img src="bitcoin.png" width="160" height="60" alt="BitCoin"/></a>
<br>
<a href="http://sourceforge.net/p/snapraid/donate/"><img src="paypal.png" width="160" height="60" alt="PayPal"></a>
<a href="https://coinkite.com/u/amadvance/"><img src="bitcoin.png" width="160" height="60" alt="BitCoin"></a>
</div>
<div class="half">
<span class="bold">Find other resources at</span>
<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>
<a href="https://travis-ci.org/amadvance/snapraid/"><img src="travisci.png" width="64" height="60" alt="TravisCI"/></a>
<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>
<a href="https://travis-ci.org/amadvance/snapraid/"><img src="travisci.png" width="64" height="60" alt="TravisCI"></a>
</div>
</div>