Nee, een ZFS pool is niet gevoeliger dan Ext4, ook ZFS' eigen operaties zijn copy-on-write, dus mocht er corruptie optreden, kan je in theorie zelfs dat terugdraaien (via ingewikkelde zdb commando's enzo...)
@CiPHER, je praat al over het wegschrijven... Zo ver moet je nog helemaal niet denken. Data gaat nog wel 4 keer door je geheugen heen voor het weggeschreven wordt.
Fysieke nic chip -> NIC driver memory
Driver memory -> Kernel memory (TCP stack)
TCP stack -> Samba / NFS memory
Samba / NFS memory -> VFS laag (POSIX compatible laag van ZFS)
VFS -> ZIO
ZIO -> Disk
(ik zal het heus niet helemaal correct hebben, maar je snapt het punt)
Pas bij de op een na laatste stap wordt de checksum berekend. In al die stappen daarvoor kan er al een bitflip optreden.
Potentieel klopt je verhaal heus wel, alleen moeten we niet zeggen dat een bitflip ALTIJD in data voorkomt of ALTIJD in ZFS data of waar dan ook.
De kans is namelijk ook heel groot, dat er een bitflipl in
programmacode voorkomt. Dat is potentieel
VEEL erger.
Stel de bitflip gebeurt op een address waarop ZFS het virtuele on disk block (dus voor RAID) adres heeft staan, en dat adres word gecorrumpeert, gaat ZFS vrolijk de data
consistent en
met checksum naar het
verkeerde adres schrijven.
Ik ben echt niet bang voor een kapotte ZFS pool, omdat de programmacode misschien maar een paar honderd MB is (inclusief hele BSD / Linux kernel). En je L2ARC / ZFS Write Cache veel groter is.
Maar de checksums staan zelf niet in memory, alleen op disk, dus ZFS controleert volgens mij alleen de checksum als data van disk komt, en
niet als deze uit L1 ARC komt.
Daar zit ook nog een risico...
Dus: CiPHER en Q, jullie hebben beide gelijk, en de waarheid ligt ergens in het midden.
[
Voor 79% gewijzigd door
FireDrunk op 22-01-2014 18:27
]
Even niets...