BTRFS és RAID

Ezt találtam: https://btrfs.wiki.kernel.org/index.php/RAID56. TLDR: BTRFS mellett RAID5/6 használata életveszélyes és tilos. Ez remélem azt jelenti, hogy a BTRFS fájlrendszer szinten tud RAID-et (à la ZFS), ami szar, de ha nekem van egy mdraid-em, és azon felül egy nyers BTRFS, az menni fog, ugye? A Synology-s BTRFS+RAID nem szar, ugye?

A másik, fő kérdésem az, hogy egy RAID5/6 által nyújtott redundancia és a BTRFS által adott checksum össze tud játszani valahogy? Amikor a Linux kernel a diszkről olvas, egyszerre olvassa az összes diszkről az adatokat és RAID paritást is, és on-the-fly ellenőriz, vagy a RAID paritás csak egy esetleges rebuild esetén kerül felhasználásra? Ha hibás adat jön fel a RAID tömbből pl. bad block miatt, a BTRFS checksum észreveszi, hogy baj van, de hogy tudja javítani? Megkéri a RAID alrendszert, hogy más diszkről olvassa be az adatot, hátha az jó lesz, vagy simán csak olvasási hibát jelez és széttárja a kezét?

Hozzászólások

Asszem magamnak is meg tudom válaszolni, de ez is segített: https://superuser.com/a/1131710/66977

Ha a BTRFS maga kezeli a RAID-et, akkor checksum hiba esetén tud javítani. Csak ez még közel sem production ready RAID5/6 esetén.

Egyébként mdadm esetén a BTRFS nem tud az alatta levő RAID-ről semmit. Ha checksum hiba van, szétteszi a kezét, ő nem tud adat replikáról, ami alapján javítani tudna. Alapból az mdadm sem fog hibát detektálni, nyilván óriási performancia romlást okozna, ha minden diszkről olvas egyszerre. Viszont meg lehet kérni, hogy olvasson végig mindent, és akkor fog paritást ellenőrizni.

Tehát silent data corruption elleni védelemre vagy BTRFS+RAID1, vagy ZFS.

Azt hiszem, félreértettelek. Azt gondoltam, hogy egy mdadm-es RAID1-re akarnál BTRFS-t tenni. Amikor én legutóbb hasonló okokból néztem a BTRFS-t, az nem tetszett benne, hogy három lemezes BTRFS RAID1 esetén nem három példányban mentette az adatokat, hanem ugyanúgy kettő példányban, csak megnövelte a pool méretét. Az már csak hab abtortán, hogy mennyire nem volt production-ready (talán 2016 októberében kapott a kernel oldal egy major rewrite-ot). Ezért is maradtam a FreeBSD-s ZFS-nél. Nem volt nehéz Linux után beletanulni.

Úgy értelmezem, hogy a btrfs saját raid5/6 kódja volt kissé likas és nem az volt a gond, hogy egyéb alsóbb raid eszközön ne lenne használható. Szünetmentesed azért legyen a NAS-on, remekül elmanagelgeti USB-n vagy hálózaton is.

Elvben hibás adat nem jöhet a RAID-ről vagy a teljes stripe és checksum hibás és gyanúsan hibás volt a kiírása is. Az mdadm szokott rendszeresen karbantartani, checksumolni, ha úgy tetszik. Ha olvasási hiba van, akkor a kernel kicsapja a diszket a tömbből, de ez fizikai hiba.