Portál AbcLinuxu, 5. května 2025 21:24
Po velice špatných zkušenostech s btrfs…
S btrfs — nebo s rozbitým hardwarem, který maří data, což XFS bez checksumů dat nemá jak zjistit?
Hlavně když to nehlásí žádné chyby! Co na tom, v jakém stavu jsou data.
…a vše je ok delší dobu
Vše je zdánlivě OK, protože když FS neumí zjistit poškození dat, ničí se data vesele dál, jenom v tichosti.
Logy jsem nemohl (neuměl) dodat protože system byl nepoužitelný.
Jasně. A live flashdisk byl určitě taky nepoužitelný. A pak Červená Karkulka snědla vlka.
Pokud budeš mít jeden vadný SATA kabel a 5 ostatních SATA kabelů v tomtéž RAID5 / RAID6 / RAID1 / RAID1C3 / … diskovém poli bude v pořádku, Btrfs samozřejmě
Pokud redundance chybí a jediný SATA kabel byl vadný a poškodil na jediném data, opravit je není jak(0).
Tohle↑↑↑ je ovšem tak extrémně zjevné, až ani nevím, proč to sem vůbec píšu.
(0) Leda z Btrfs redundance v rámci jednoho disku (DUP
), kdyby byla nastavená, ale to je jenom náhodná loterie; obě repliky můžou být v tahu.
Neplácej ptákoviny, když tomu ani za mák nerozumíš.
Btrfs RAID6 mám od roku 2016, stále totéž pole, funguje to znamenitě.
O Btrfs RAID 5/6 se vykládají hloupé pověry kvůli několika vzácným, ryze hypotetickým (v praxi nepozorovaným, leč teoreticky možným) scénářům podobným write hole.
Nicméně Btrfs RAID 5/6 je nesrovnatelně bezpečnější než „hardwarový“ (paskvilo-proprietární) AID 5/6 (bez R) i než dmraid
/ mdadm
paskvilo-AID.
Jinými slovy, když už chce někdo „zavrhnout“ Btrfs RAID 5/6, musí podle této „logiky“ nutně zavrhnout v podstatě každý jiný (R)AID 5/6. (Kromě ZFS RAIDZ[N]; ten je samozřejmě cajk a srovnatelný s Btrfs.)
[1][Pha][root@max ~]# btrfs fi show / Label: none uuid: a9bf9a20-6ffb-4a2a-952a-ab937941b0a6 Total devices 2 FS bytes used 419.35GiB devid 1 size 929.91GiB used 574.03GiB path /dev/mapper/system devid 2 size 929.91GiB used 454.03GiB path /dev/mapper/system2 [1][Pha][root@max ~]# btrfs fi show /mnt/datastore/ Label: none uuid: 883b2033-37ae-46f5-81a5-8af02b07005f Total devices 3 FS bytes used 5.55TiB devid 1 size 7.28TiB used 3.72TiB path /dev/mapper/datastore-dev1 devid 2 size 7.28TiB used 3.72TiB path /dev/mapper/datastore-dev2 devid 3 size 7.28TiB used 3.72TiB path /dev/mapper/datastore-dev3Firemní pc
[29][root@devaine ~]# btrfs fi show / Label: none uuid: 1ab0f1bd-dd9c-448f-83cb-800215a333f5 Total devices 1 FS bytes used 219.47GiB devid 1 size 229.98GiB used 229.98GiB path /dev/mapper/system [29][root@devaine ~]# btrfs fi show /mnt/vms/ Label: none uuid: d80a4574-0b6e-4c31-a292-9e8b0ec4199b Total devices 1 FS bytes used 414.91GiB devid 1 size 476.92GiB used 419.02GiB path /dev/mapper/datastore-vms [29][root@devaine ~]# btrfs fi show /mnt/datastore Label: none uuid: 6f74aa7b-ac35-4c70-aa70-7a8b3940c191 Total devices 1 FS bytes used 928.19GiB devid 1 size 931.50GiB used 931.50GiB path /dev/mapper/datastore1Domácí server:
root@stor:~# btrfs fi show / Label: none uuid: 46abdeae-2212-42d1-8164-1694131d75c2 Total devices 1 FS bytes used 33.20GiB devid 1 size 111.79GiB used 35.14GiB path /dev/sdd1 root@stor:~# btrfs fi show /mnt/datastore/ Label: none uuid: 88076d9e-26ab-4764-875d-f513625dfbbc Total devices 4 FS bytes used 5.90TiB devid 1 size 5.46TiB used 2.51TiB path /dev/mapper/crypt_dev-part1 devid 2 size 5.46TiB used 2.51TiB path /dev/mapper/crypt_dev-part2 devid 3 size 5.46TiB used 2.51TiB path /dev/mapper/crypt_dev-part3 devid 4 size 7.28TiB used 4.33TiB path /dev/mapper/crypt_dev-part4ArchLinux i Debian, hafec let, žádný problém. Měl jsem jednou silent data corruption na původním serveru, kde na to btrfs krásně upozornilo, viz: Můj aktuální-nový domácí server (neměl jsem náhradní kopii, pod tím byl mdadm RAID5, šílená kombinace problémových disků atd.).
There's nothing special about ZFS that requires/encourages the use of ECC RAM more so than any other filesystem. If you use UFS, EXT, NTFS, btrfs, etc without ECC RAM, you are just as much at risk as if you used ZFS without ECC RAM. Actually, ZFS can mitigate this risk to some degree if you enable the unsupported ZFS_DEBUG_MODIFY flag (zfs_flags=0x10). This will checksum the data while at rest in memory, and verify it before writing to disk, thus reducing the window of vulnerability from a memory error. I would simply say: if you love your data, use ECC RAM. Additionally, use a filesystem that checksums your data, such as ZFS.
There's nothing special about ZFS that requires/encourages the use of ECC RAM more so than any other filesystem.Já si myslím, že taková speciální věc je neexistence fsck na ZFS (a obdobně pro btrfs, kde fsck sice existuje, ale je ve stavu "do not use"). Když se ti vlivem chyby RAM poškodí struktura, co budeš dělat? Jedině vytvořit nový a přelejt data?
Já si myslím, že taková speciální věc je neexistence fsck na ZFS (a obdobně pro btrfs, kde fsck sice existuje, ale je ve stavu "do not use")
Tuhle přihlouplou a stokrát vyvrácenou pověru o fsck hodláš opakovat ještě dlouho?
Hele, to je ale zajímavé, že někomu tohle docvakne už koncem nultých let, na základě dokumentace k ZFS a (ranému) Btrfs, zatímco někomu jinému to ještě o 15 let později … ehm … působí nejasnosti. Inu, každý svým tempem, že jo…
Na kterém FS existuje fsck? Na základě představy o fsck, kterou výše naznačuješ (že zázrakem, záhadně, z křišťálové koule obnoví (meta)data ztracená kvůli selhávající RAM), nelze než konstatovat, že žádný FS nemá fsck; fsck dle tvých představ v tomhle vesmíru neexistuje.
Otázka je tedy stále stejná (už asi 10 let): S čím srovnáváš? Co je ten etalon, ten hypotetický ideální FS? Jmenuj ho, prosím. Jsem zvědavý. Už ho tajíš příliš dlouho. Nenechávej si to tajemství pro sebe.
Když se ti vlivem chyby RAM poškodí struktura, co budeš dělat?
Co si vojín Kefalín představuje pod takovým pojmem struktura? Asi metadata?
To↑ je ovšem nahrávka na smeč pro Btrfs, který (na rozdíl od špatných, zastaralých FS) implicitně (pokud uživatel nestanoví jinak) ukládá dvě kopie metadat (i na jednom zařízení), samozřejmě chráněné checksumy, aby se nepoškozená kopie (existuje-li ještě) dala s rozumnou pravděpodobností identifikovat. (Co když se obě kopie zapsaly ze stejné, poškozené RAM? Tak smůla, ale opět: S čím srovnáváme? Co by dopadlo lépe?)
Co tedy bude uživatel dělat?
Musím zopakovat (cca podvacáté) znova důvod, proč ZFS a Btrfs nemají zbytečný nesmysl zvaný fsck: Rozumný FS s checksumy, copy-on-write a redundancí musí být (v mezích zvolené redundance) funkční a odolný proti chybám, i když jsou chyby odhalené (nebo přímo nastanou) během provozu.
Izolovaný fsck, který funguje pouze na odmountovaném FS, nemá prakticky žádnou hodnotu, protože všechny podstatné mechanismy pro redundanci a obnovu / opravu dat musí být tak či onak součástí základního driveru příslušného FS. Neexistuje proto rozumný důvod tuhle logiku duplikovat, dvakrát odděleně testovat, (marně) doufat v udržení kompatibility mezi fsck s driverem, atd.
Na kterém FS existuje fsck? Na základě představy o fsck, kterou výše naznačuješ (že zázrakem, záhadně, z křišťálové koule obnoví (meta)data ztracená kvůli selhávající RAM), nelze než konstatovat, že žádný FS nemá fsck; fsck dle tvých představ v tomhle vesmíru neexistuje.Reálná zkušenost říká, že fsck na ext4 pravidelně někde najde chybu, opraví ji a jede se dál.
Rozumný FS s checksumy, copy-on-write a redundancí musí být (v mezích zvolené redundance) funkční a odolný proti chybám, i když jsou chyby odhalené (nebo přímo nastanou) během provozu.To je pravda, kdyby to takhle fungovalo, tak by to bylo opravdu dobré. Nevím jak na ZFS (nikdy jsem nepoužíval), ale na btrfs tohle bohužel není moje zkušenost. Tedy v letech 2016-2020 nebyla, pak jsem se na to vykašlal. Pevně věřím, že dnes už je to lepší.
Reálná zkušenost říká, že fsck na ext4 pravidelně někde najde chybu, opraví ji a jede se dál.
To bych nenazval zkušenost, nýbrž domněnka a/nebo špatná interpretace příslušné situace:
Rozumnější interpretace bude, že Ext4 je zastaralý filesystém a že fsck nad Ext4 není zcela kompatibilní s driverem pro Ext4, což je pravděpodobné a u odděleného fsck v podstatě nevyhnutelné.
Rozumný FS s checksumy, copy-on-write a redundancí musí být (v mezích zvolené redundance) funkční a odolný proti chybám, i když jsou chyby odhalené (nebo přímo nastanou) během provozu.To je pravda, kdyby to takhle fungovalo, tak by to bylo opravdu dobré. Nevím jak na ZFS (nikdy jsem nepoužíval), ale na btrfs tohle bohužel není moje zkušenost. Tedy v letech 2016-2020 nebyla, pak jsem se na to vykašlal. Pevně věřím, že dnes už je to lepší.
Nebyl to náhodou pokaždé příběh typu jeden starý disk na jednom starém křápu, který se dřív s ne-checksumovaným FS (mylně) zdál být funkční…? Rád bych podtrhl (tedy, aspoň ztučnil): …v mezích zvolené redundance…
Tady by mě opravdu zajímalo, kolika disků se ta špatná zkušenost týkala a jestli opravdu Btrfs ztratil data třeba v situaci s (dejme tomu) RAID1+ daty a RAID1C3+ metadaty… A ztratil je, nebo jenom zjistil, že už byla ztracená?
(Schválně jsem zmínil pouze RAID1+, ať nežeru; věřme na okamžik pověrám, že RAID 5/6 u Btrfs není lepší než kterýkoliv jiný (R)AID 5/6, byť ve skutečnosti je. Moje RAID 6 pole z roku 2016 stále funguje, ač jsem mu „pod rukama“ vyměnil 2 (naráz) selhávající disky, za pár let jsem ho bez ztráty kytičky přestěhoval (online) z 6 disků na 8 SSD a pak jsem 2 z těch SSD vyměnil; jedno selhalo po roce a jedno o 3 roky později… Pak jsem celé pole (online, jak jinak) překonvertoval z RAID6 metadat na RAID1C3 metadata, protože … dobře, když už ta pověra existuje, tak to zkusme. Flexibilita par excellence.)
i když přiznávám že že mě štve že se asi nikdy nedozvím co bylo přesnou příčinou.Jestli se dobře pamatuji, psal jsi, že se to opakovalo. Ale souborový systém se jen tak sám od sebe obvykle nerozbíjí. Natož potom opakovaně. Vždycky to bude mít nějakou příčinu. A jak bylo i zde uvedeno, btrfs často upozorní na to, že v hardwaru je něco shnilého. Takže se může stát, že se nakonec dozvíš, proč došlo k poškození btrfs, protože pokud to byl hardwarový problém, tak se zase může objevit. Akorát na to přijdeš později než s btrfs.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.