Portál AbcLinuxu, 7. května 2025 21:48
Chtěl bych se zeptat, co si do budoucna počít s situací, kdy mi fsck nad ext4 LVM diskem běží již 11 dnů a nachází se ve fázi "1D", kdy to kontroluje překřížení souborů nebo tak něco a já jsem z toho celej nepříčetnej.
Už jen kvůli tomu, že když by to člověk zastavil a spustil znovu, tak to začíná od začátku.
Mám zahodit ext4 a přejít na XFS, které je pro RHEL 7 výchozí a tento problém se mi již nikdy nestane, protože například
Nebo to dopadne tak, že až mi párkrát upadne server, tak se mi XFS rozbije tak, že z něho už nic nevytáhnu a bude pokoj :( ?
Díky předem všem, kteří mají dlouhodobou zkušenost s provozováním takto velkých (a větších ) dat, za pomoc.
Můžu poprosit o nějaké detaily, co se nevyčtou v manuálu, ale je nutné je získat praxí?
Třeba jak to zvládá velikosti v řádek desítek TB, jak rychlá je oprava, jak náchylné to je na rozsypání po tvrdém resetu, jak rychlé je fsck a jak bývají opravy úspěšné?
Tak tohle jsou přesně ty případy kterých se bojím, že nastanou
S Ext mám zatím (uvidíme co bude, až mi fsck doběhne ) dobré zkušenosti. Sice vypisuje romány, ale data jsou pak OK.
Stejně zvažuju nějaké automatické md5 buď do EA nebo do .MD5 souborů v adresáři. Že se něco poškodí mi ani tak nevadí, ale že nepoznám, že se to poškodilo, tak to vadí víc.
Sice vypisuje romány, ale data jsou pak OK.Tak ti přeju pěkné počtení. Já při nasazení Ext4 obvykle skončil s hromadou souborů v adresáři
/lost+found
. A to ani zdaleka nešlo o diskové pole v řádech TB.
Taky se mi to občas stalo, ale to mi kupodivu nevadí.
Víc mi vadí, když skončím úplně bez dat, nebo s nulovou velikostí atp. Čehož se bojím u XFS, jak psal někdo výše.
Matně si vzpomínám, že jsem již před lety někde XFS na zálohy měl a po nějaké době používání jsem jej formátoval pěkně "zpátečnicky" na ext3....
Tak ne, díval jsem se do mé dokumentace a zemřelo to tenkrát na tom, že mi nedoběhl xfs_check do konce. OS byl 32bit s 4GB RAM, swap 8+GB a disk 4.5TB. Padalo to na out of memory, což jsem na těch 32bitech neměl moc jak řešit.
Ještě pro vysvětlení:
Pokud mi nějaký soubor chybí, odmažu staré zálohy a pustím to odznovu. Nic se neděje, nejsou to primární zálohy, kdy bych potřeboval bůh ví jakou délku do minulosti.
Pokud se ale smaže vše, znamená to tahat ty data přes internet, což u 16TB prostě trvá.
Plus mínus to mám stejně, ale rozšiřoval jsem pole a říkal jsem si, že než to resiznu, tak to zkontroluju.
Pustil jsem "fsck -n" a hlásilo mi to pár chybiček někde v kroku 3+. Tak jsem to debil pustil naostro a z pár chybiček jich bylo víc a hlavně se to již nenamountovalo a hlásí to problém s "ext2fs_test_block_bitmap". Což by se asi dalo opravit, ale fsck to neudělá, dokud nedojede celá kontrola do konce a to už právě trvá docela dlouho .
Použení pro příště je udělat LVM snapshot a když se to tak vysype, tak to raději zkopírovat na nově zformátovaný oddíl, než to kontrolovat.
…brtfs je alfa…
Tohle má být omyl, překlep nebo obojí? Já tedy vím jen o Btrfs, který není "alfa" a používá se v mnoha "produkčních" systémech. Kde přesně je psáno, že je Btrfs "alfa"? V nějakém článku z roku 2009 to asi bude. Zhruba od roku 2011 mám všechna svá data na Btrfs, k naprosté spokojenosti. Checksumy, copy-on-write a vestavěný RAID (který po desetiletích marných pokusů konečně opravdu dělá to, co RAID slibuje) jsou natolik zásadní vlastnosti, že si bez nich těžko lze představit souborový systém vhodný "do budoucna".
rnn-andrej-gen finished, inference took 10.973 seconds. Memory used: 985 MB.
Lidé, kteří dlouho šíří různé kraviny — zejména pak popírači nových technologií, od parního stroje až po Btrfs —, občas zabřednou do vlastních žvástů a fantazií tak hluboko, že přestanou vnímat realitu a papouškují stále dokola otřepané fráze.
Povědomí o silent data corruption člověk získá teprve tehdy, pokud má zkušenosti s dost velkými systémy. Vtipní jsou zejména ti mudrcové, kteří v životě viděli všeho všudy něco mezi jedním desktopem a jedním rackem, ale zaručeně vědí, že silent data corruption se jich netýká. (Přesněji, nic o tom nevědí, protože tam mají Ext4 a věří v zázraky.)
Opravdu se dostanou rychle ke svým datům? Co třeba ke svým náhodně pozměněným datům?
Jiný benchmark dopadne třeba pro Btrfs o fous lépe.
"Výkon" v nějakém benchmarku není až tak podstatný. Otázka je, jestli srovnáváme srovnatelné technologie. Jak by asi dopadl Ext4 s CoW, checksumy, vestavěným RAIDem a dvěma kopiemi metadat? Inu, dopadl by na prdel, protože nic z toho neumí.
Kdyby byl Btrfs desetkrát pomalejší než Ext4, asi by to stálo za nějakou hlubší úvahu. Jenže on je Btrfs v některých bencharkových "disciplínách" srovnatelný, někde dvakrát až třikrát pomalejší a výjimečně tu a tam rychlejší. Otázka pak je, proč bych vůbec měl uvažovat o zoufalství zvaném Ext4 bez checksumů, CoW a opravdového RAIDu. Fakt to nedává smysl. Můžu si koupit rychlejší disk nebo SSD, ale ztracená data si zpátky nekoupím.
"Výkon" v nějakém benchmarku není až tak podstatný. Otázka je, jestli srovnáváme srovnatelné technologie. Jak by asi dopadl Ext4 s CoW, checksumy, ...Asi tak. Srovnávají se dvě zcela odlišné věci a někdo z toho pořád chce dělat nějaké závěry.
který po desetiletích marných pokusů konečně opravdu dělá to, co RAID slibujeMně RAID slibuje, že systém nadále funguje i při selhání jednoho disku…
Omyl. Chvíli dopočítává paritu, ale pak spustí resilvering a zničí všechna data.
Tohle už jsem psal asi tak stokrát: Zastaralý RAID se vypořádá pouze s totálním selháním (tedy de facto odpojením) jednoho disku, nikoliv s poškozením dat (více či méně náhodným) na jednom disku.
Zastaralý RAID ale tento slib soustavně porušuje, což jsme řešili zhruba desetkrát, že ano. Nějak ses na těch jednoduchých faktech zaseknul a už mě celkem unavuje opakovat to stále dokola.
Zkus na RAIDu, který není integrovaný s filesystémem, přepsat celý jeden disk nulami, jen s výjimkou bloků s rádoby-RAID metadaty. Pak se uvidí, jestli ten systém opravdu ustojí (jakékoliv) selhání jednoho disku. Nápověda: Ne, neustojí; po čase spustí resilvering a zničí všechna data. ZFS nebo Btrfs v RAID konfiguraci to naopak ustojí, tedy kromě RAID0.
Zastaralý RAID se vypořádá pouze s totálním selháním (tedy de facto odpojením) jednoho disku, nikoliv s poškozením dat (více či méně náhodným) na jednom disku.Tak ještě že scrub tohle odhalí. Ne, počkat, scrub nekontroluje všechna metadata. Tak zkusíme ten strom projít. Ne, počkat, to přečte náhodně jenom jednu kopii metadat a navíc to neumíme efektivně udělat když máme snapshoty. Fuck.
Zkus na RAIDu, který není integrovaný s filesystémem, přepsat celý jeden disk nulami, jen s výjimkou bloků s rádoby-RAID metadaty.Proč bych to dělal? Proč místo toho radši nepřepsat kus paměti náhodnými daty nebo nespustit rm -rf --no-preserve-root /? Vybral sis jeden z žiliónu způsobů jak přijít o data, u kterého má zrovna btrfs docela dobrou šanci, že ho odhalí, a upnul ses na něj.
Proč bych to dělal?Protože přepsání jedné strany mirroru nulami nebo náhodnými daty je ve skutečnosti dost dobrý příklad toho, co se ve skutečnosti často děje. Obvykle je to nějaká varianta jednoho z následujících scénářů: 1) LUN, který je součástí mirroru někdo omylem připojí k jinému stroji, který na něj začne zapisovat. 2) LUN, který je součástí mirroru je vyexportovaný z nějakého inteligentního pole, které podporuje klonování LUN, různé snapshoty. No a "admin" se jednoho dne prostě uklikne a místo dalšího snapshotu udělá rollback, nebo si splete směr klonování...
Proč místo toho radši nepřepsat kus paměti náhodnými datyVytvořit prakticky nasaditelný (souborový) systém, odolný vůči tomuto vektoru je hodně težké, ale máte pravdu, bylo by krásné ho mít.
nespustit rm -rf --no-preserve-root /Tak od toho jsou snapshoty, případně další věci jako immutable zony atp.
scrub zkontroluje checksum bloku s metadaty, ale už nezkontroluje, že ta metadata dávají smysl, tj. třeba že to je pořád validní b-strom, že ty pointry neukazují třeba někam dopryč, že jsou pořád dosažitelné všechny soubory atd.Ano, předpokládáný model je, že souborový systém generuje správná data a ta se případně poškodí pozdějí (na disku, ale i v storage stacku, v transportu atd). U ZFS se předpokládá, že bloky se správným checksumem mají i správný obsah. fsck u extN atp. musí kontrolovat konzistenci metadata sémanticky, protože nemá jiný způsob, jak ověřit, že jsou správná. To sebou samozřejmě nese mnoho problém - to že nějaký blok vypadá jako uzel b-stromu ještě nemusí nutně znamenat, že to je opravdu správný a aktuální uzel toho správného b-stromu atd. Samozřejmě, že se může stát (a stává), že je chyba v kódu ovladače souborového systém, ta se ale hladá jinak a jinými nástroji. Když v produkci pomocí fsck zjistíte, že místo b-stromu ovladač vygeneroval graf s cyklem, stejně s tím už toho reálně mnoho nenaděláte.
1) LUN, který je součástí mirroru někdo omylem připojí k jinému stroji, který na něj začne zapisovat.Tady přesně dojde k té situaci, že jiný stroj zapsal na btrfs blok s validním checksumem, takže FS je nekonzistentní a nikdo se to nedozví, ne?
2) LUN, který je součástí mirroru je vyexportovaný z nějakého inteligentního pole, které podporuje klonování LUN, různé snapshoty. No a "admin" se jednoho dne prostě uklikne a místo dalšího snapshotu udělá rollback, nebo si splete směr klonování...Opět, rollbacknutý snapshot obsahuje bloky s validním checksumem…
Pokud vím, tak Btrfs není síťový souborový systém, takže by mne docela zajímaly bližší okolnosti, jak by k tomu mohlo dojít.1) LUN, který je součástí mirroru někdo omylem připojí k jinému stroji, který na něj začne zapisovat.Tady přesně dojde k té situaci, že jiný stroj zapsal na btrfs blok s validním checksumem, takže FS je nekonzistentní a nikdo se to nedozví, ne?
Ovšem v takovém případě se nabourá každý souborový systémCelou dobu tu neřešíme, jestli se FS nabourá, ale jestli se na to přijde. U MD s „klasickým“ FS se na to opravdu přijít nemusí.
Pokud použijete pro takový účelProsím přečti si ještě jednou ~3 příspěvky před tvojí reakcí. Bavíme se o omylu, ne o záměrném použití.
Mám zahodit ext4…
Ano.
…a přejít na XFS…
Ne.
Btrfs nebo ZFS.
Protože je rok 2017.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.