[Beowulf] Big storage

Loic Tortay tortay at cc.in2p3.fr
Fri Sep 14 00:32:54 PDT 2007


According to Leif Nixon:
[...]
> >
> > There are two reasons:
> >  . ZFS has built-in error detection (through "zpool scrub") and we are
> >    (maybe naively) relying on this to detect and correct data corruption
> >    which would be otherwise silent;
> 
> It *would* be interesting to see if the ZFS checksumming lives up to
> its promises.
> 
During the last HEPiX meeting, Peter Kelemen mentionned something told 
to him by a ZFS developer (Jeff Bonwick, if I'm not mistaken) about 
data corrupted by a Fibre Channel HBA during transfer between disk and 
host.  ZFS, reportedly, detected (and corrected) the corruption.
Of course a ZFS developer may be biased.

I'm probably mis-remembering some of the technical details about this, 
since they seem quite unlikely now (something about the laser beam 
being somehow "corrupted", but I think this would be detected by the 
Fibre Channel link protocols or upper layers checksums).
The technical explanation was probably more akin to data corruption 
during DMA transfer from the HBA to the host memory.

If you remember some of the figures Peter gave, most of the corruptions 
they found were not random/spontaneous.  A very large majority was due 
to buggy hard disk firmware and another significant part to a batch of 
defective memory.

His slides are available there:
 <https://indico.desy.de/contributionDisplay.py?contribId=65&sessionId=42&confId=257>.

[...]
> 
> I still think it would be interesting to see how often one gets data
> corruption from other sources than disk errors (presuming ZFS is
> perfect). Data corruption is data corruption even if its from bad
> cache memory.
> 
Indeed, data corruption is data corruption wherever it comes from.

But since fsprobe writes its own data to disk, it can't test for 
corruptions on data (and metadata) which is already stored, leaving 
whole part of the disks untested on machines were files are static 
(system disks, program binaries, archives, etc.)

On the other hand, ZFS has a "parity check on read" feature which 
should be able to detect these corruptions.

If the data is corrupted during the transfer from disk to memory or in 
memory before it's moved to userland it will (supposedly) be spotted by 
ZFS.

If the data is corrupted in memory on a machine on which we use ZFS, 
then the machine is badly failing since they're all supposed to have 
ECC memory.


Loïc.
-- 
| Loïc Tortay <tortay at cc.in2p3.fr> -     IN2P3 Computing Centre     |



More information about the Beowulf mailing list