Portál AbcLinuxu, 6. května 2025 06:40
Řešení dotazu:
Tj. všechno podstatné se mi už podařilo vysvětlit. ✓
BTRFS na jednom disku je takové křehké. Když se něco podělá, tak se neumí opravit.
Naprostý nesmysl, velké-N-krát vyvrácený.
V tom je EXT4 mnohem lepší
Kolosální nesmysl. Nebo vtip? Nebo flamebait pro pobavení?
Přijdeš o nějaký ten soubor, ale zbytek přežije
Tady^^^ je ale najednou řeč o Btrfs, nikoliv o Ext4, že? Trochu nekonzistentní písemný projev, tak celkově.
Doporučil bych dát BTRFS alespoň na dva disky do RAID1, aby BTRFS zvládlo opravovat chyby.
Jako by snad Btrfs neuměl duplikaci v rámci jednoho disku. (Na kterou se Ext4 nezmůže, zatímco u Btrfs je něco takového samozřejmost.)
Třetí disk by pro důležitá data také mohl dávat smysl, ale s tím zkušenost nemám.
Jako ostatně s Btrfs obecně, zdá se. Takže: Proč si neušetřit pár zbytečných FUDů?
Ne, není to nekonzistentní (a řeč byla opravdu o EXT4).
Je to nekonzistentní. Přesněji řečeno, vyplývá to z naprostého nepochopení Btrfs, ZFS a filesystémů hodných 21. století obecně.
Právě ta absence několika kontrolních mechanismů, které má BTRFS navíc, je důvod, proč EXT4 vydrží víc.
Prdlajs. (Sorry jako, tohle je asi jako věřit v hovnomeopatii nebo v duhového jednorožce.)
U EXT4 se prostě počítá s tím, že tam můžou být chyby a má nástroje na opravu
Nemá. Bez checksumů metadat i dat nejsou žádné nástroje na opravu. Data jsou prostě náhodně posraná. Jinými slovy, Ext4 nebrat.
Když se kousek poškodí, tak zbytek filesystému zůstane funkční a fsck to při troše štěstí opraví (ve smyslu, že uvede filesystém do konzistentního stavu, nikoliv že zachrání data). A když se oprava nedaří, tak to jde připojit read-only.
A zase omylem mluvíš o Btrfs, nikoliv o Ext4. Tuhle výhodu má Btrfs, zatímco Ext4 ji nemá.
U BTRFS je situace jiná. Tam se nepočítá s výskytem chyb.
Podle mě jenom trolluješ. A v tom případě je to jistě skvělá zábava. Nebo jsi prospal celé desetiletí a za celé desetiletí sis nepřečetl nic o Btrfs? Těžko říct.
Jenže pak něco v pořádku není a pokud není k dispozici kopie (např. díky duplikaci na druhý disk), tak filesystém jen suše oznámí, že je rozbitý a máš smůlu.
Naprostý nesmysl. Nebo trolling. Nebo obojí.
Nástroje na opravu prakticky žádné, ty co existují to spíš ještě dorazí.
Odkaz na seznam nástrojů jsem už uváděl. Proč znova opakovat na hlavu postavený a vyvrácený pseudoargument?
Jediná šance je vykopírovat data na jiný disk a vyrobit filesystém znovu.
Prdlajs. Je rok 2020, ne 2010, víme?
Pokud je to například zálohovací disk s hromadou snapshotů, tak je o zábavu postaráno (vlastní zkušenost).
Jasně, teď přijdou anekdoty z doby před 10 lety. Super. Bezva. Byla to opravdu zkušenost, nebo jenom neochota číst manuálové stránky? Nebo hodně nespolehlivý hardware, na kterém by Ext4 kleknul a nevrátil ani byte, zatímco Btrfs v read-only režimu spoustu dat zachránil? Jak to vlastně bylo?
Jasně, poškození dat na disku je chyba disku, nikoliv filesystému, ale filesystém je to, co se s tím musí umět vyrovnat. Například to, že poškozený disk lze v read-only režimu připojit jen jednou je jednoznačně blbost vývojářů – když to jde přečíst jednou, musí to jít i podruhé. Je to právě přístup k zotavení po chybách co dělá BTRFS tak špatnou pověst (a oprávněně).
Btrfs nemá špatnou pověst. Jenom je kolem něj špatný hloupý FUD. Objektivní pověst má skvělou. A spoustu úspěchů v produkčních nasazeních typu Facebook.
Btrfs se umí s částečným i úplným selháním disku / disků vyrovnat, přesně podle stanovené redundance. Ext4 to neumí. Bavíme se tady o realitě nebo jenom o FUD povídačkách?
Od té doby se mi moc nechce mít všechny disky s jedním fs.To je rozumné opatření. Zejména na zálohy používám vždy jiný FS, než na původním úložišti. (Na Linuxu XFS, na FreeBSD UFS.)
To já mám stále ještě pár záloh (velmi malých a velmi důležitých) na ZFS (na Linuxu; OpenIndianu už nemám). U XFS (nebo UFS) by to bohužel vedlo zpátky k nejistotě, kdy nevím, zda ty zálohy ve skutečnosti mám nebo ne , pročež těmto historickým FS vůbec nevěnuji čas.
Čistě teoreticky by asi bylo nejlepší mít ty ZFS zálohy navíc na úplně jiném kernelu, třeba FreeBSD, protože asi tak jediný důvod pro zálohy na jiném filesystému (a voser s nimi spojený) je onen doomsday scénář, kdy zásadní bug bude chvíli sedět v kernelu / VFS, sežere data a přijde se na něj až se zpožděním. (No … i když … Ext4 by mohl vyprávět.) V takovém případě pomůže mít zálohy co nejvíc oddělené, pokud jde o použitý software.
(A pak je otázka, jestli není lepší si ultradůležitá (a obvykle malá) data zašifrovat a nahrát do cloudu, jehož redundanci (geografické i všemožné jiné) se uživatel-jednotlivec nemůže rovnat.)
U XFS (nebo UFS) by to bohužel vedlo zpátky k nejistotě, kdy nevím, zda ty zálohy ve skutečnosti mám nebo neOn někdo zakázal dělat sha512 sumy těch archivů? V případě trochu větší paranoie to lze okořenit Reed-Solomonem.
Proč bych dělal manuálně nějaké checksumy? Sloužím já souborovému systému nebo souborový systém mně?
Ano, samoopravné kódy (místo pouhého checksumu) je feature, která pořád ještě trochu chybí. (Na rotačních discích se dá rádoby-nahradit duplikací dat i metadat v rámci jednoho disku. Na SSD duplikace nemá smysl (kvůli vestavěné deduplikaci některých (většiny?) řadičů) a bývá implicitně vypnutá i u metadat.)
Proč bych dělal manuálně nějaké checksumy? Sloužím já souborovému systému nebo souborový systém mně?Tohle není o souborovém systému. Ve skutečnosti jsem chtěl napsat rovnou digitální podpis, ale to už by bylo dost OT v rámci tohoto dotazu. V kontextu tohoto vlákna se jedná o zálohy a u těch chceš mít jistotu, že jsou v pořádku a že s nimi nikdo nemanipuloval. "Manuální" checksum se hodí i pro přenos po síti apod.
Dobrá, ale to bych ten checksum musel mít uložený (velmi) striktně odděleně od těch záloh atd. (aby nikdo nemanipuloval zároveň s ním). Což už je vskutku daleko off-topic.
Většinou když si něco zálohuju do cloudu, moje nastavení gpg
rozumné ověření autenticity zahrnuje.
Já osobně nemůžu convert
doporučit, protože ho nemám dobře vyzkoušený na svých vlastních strojích, natož v nějakém větším nasazení.
Někteří ho chválí, jiní naopak říkají, že jim sežral svačinu.
Moje hypotéza je, že pravda bude uprostřed a negativní ohlasy můžou pocházet například z rozbitých Ext4. Jestliže konvertovaný Ext4 (kvůli svým nedostatkům v konzistentnosti dat) byl už v době konverze v nepříliš přesně definovaném stavu, mohlo se následně stát cokoliv. Taková už jsou rizika filesystémů bez checksumů / redundance / copy-on-write.
Tohle^^^ je hlavní důvod, proč bych se já osobně convert
u vyhnul — nikdy nemůžu vědět, co přesně konvertuju.
Přijde mi nejlepší vytvořit Btrfs normálně pomocí mkfs.btrfs
, podívat se, co zajímavého nového dnes umí (například --csum xxhash
), a začít zkrátka od začátku.
po odpojeni subvolumesTím je míněno co?
UUID="...." /data.hddB/Dokumenty btrfs defaults,subvol=.subvolumes/Dokumenty 0 0nebo rucne:
mount /dev/sdb1 /data.hddB/Dokumenty -o subvol=.subvolumes/Dokumentykdyz se to chovao jak sem popisoval, dal sem umount mountpointu a naslednej mount se tvaril ze zadnej error (ani s -v ani v dmesg nic) ale mounpoint byl prazdnej, pomohlo:
btrfs check --repair -p /dev/sdb1
Data jsou prostě náhodně posraná. Jinými slovy, Ext4 nebrat.Pořád čekám, až se s tím setkám, ale zatím furt nic...
Objektivní pověst má skvělou."Objektivní pověst" je zajímavý termín pro váš názor.
Data jsou prostě náhodně posraná. Jinými slovy, Ext4 nebrat.Pořád čekám, až se s tím setkám, ale zatím furt nic...
To je ale zářivá logika, tohleto! Musel jsi nad tím dlouho přemýšlet?
Já si zase myslím, podle stejné logiky, že neexistují autonehody. Nikdy jsem totiž nebyl účastníkem žádné nehody. Pořád čekám, až se s nějakou nehodou setkám, ale zatím furt nic…
Takže nebudu používat bezpečnostní pás, airbagy si klidně nechám vymontovat — k čemu to všechno s sebou vozit — a ještě si nechám odlehčit auto o všechny ty zbytečné těžké výztuže ve dveřích a ve střeše.
Já si zase myslím, podle stejné logiky, že neexistují autonehody. Nikdy jsem totiž nebyl účastníkem žádné nehody.No, moc vám ta stejná logika nejde. "Setkal jsem se s dopravní nehodou" jaksi zahrnuje víc případů, než "byl jsem účastníkem dopravní nehody"
Rozdíl je v tomto případě nepodstatný a nemění pointu, takže si myslím, že mi to celkem jde.
Pravdou je, že se ta analogie dá rozšířit ve smyslu "setkání" místo přímé "účasti": Ano, viděl jsem už párkrát nabouraná auta, ale nikdy jsem neviděl, že by se nehoda stala. (Ano, viděl jsem už párkrát poškozená data, ale nikdy jsem neviděl, jak a kdy přesně se to stalo.) Tudíž budu předpokládat, že ta nabouraná auta nejsou výsledkem nehod, nýbrž že se jenom tak někde objevují, sama od sebe, stejně jako poškozená data nejsou výsledkem silent data corruption, nýbrž se jenom tak sama od sebe někde objevují. Celkem analogicky potom silent data corruption neexistuje (stejně jako neexistují autonehody) a je úplně v pohodě používat filesystém z doby 10-gigabytových disků v době 10-terabytových disků.
Level nesmyslnosti je tady^^^ (opět) minimálně 27. Podívám se do kalendáře, rok je větší než 2010, použiju ZFS nebo Btrfs. Hotovo.
Narozdíl od těch poškozených dat, které jsem na ext4 ještě neviděl.
Komu že to nejde? Nedostatek zkušeností (nebo nedostatek zkušeností s dostatečně velkými systémy a úložišti) rozhodně neznamená, že se něco neděje.
Ještě jinými slovy, abych objasnil, v čem přesně je tady chyba: Je rozdíl, když nabourané auto nikdy neviděl obyvatel moderní technické civilizace (čemuž bych se opravdu divil) a když nabourané auto nikdy neviděl příslušník nekontaktovaného pralesního kmene (což lze očekávat). V každém z obou případů má taková informace / zkušenost / absence zkušenosti jinou váhu, že?
Ad hominem? Jaký ad hominem?
Trochu mi tahle reakce připomíná rčení o potrefené huse.
Chtěl jsem všeho všudy říct, že moderní filesystémy nebyly vyvíjené jen tak zbytečně, s vidinou hypotetických a neexistujících selhání. Ta selhání hardware, o kterých je řeč, jsou velmi reálná a výrazně ovlivnila vývoj a návrh moderních filesystémů.
Že jeden konkrétní uživatel / administrátor / engineer / kdovíkdo nějaký problém ještě neviděl, to neznamená, že problém neexistuje.
Já jsem dokonce i velmi rád, že jsem ještě neviděl všechny možné problémy tohoto světa. (Ale nepředstavuji si na základě toho, že neexistují.)
Právě ta absence několika kontrolních mechanismů, které má BTRFS navíc, je důvod, proč EXT4 vydrží víc.Spíše je to důvod pro silent data corruption.
U EXT4 se prostě počítá s tím, že tam můžou být chyby a má nástroje na opravu.Jak se tam ty chyby dostanou? Vadou HW? V tom případě ti BTRFS alespoň oznámí, že nesedí checksum datového bloku a do kterého souboru se to trefilo. Ext4 ti neoznámí nic.
Jenže pak něco v pořádku není a pokud není k dispozici kopie (např. díky duplikaci na druhý disk), tak filesystém jen suše oznámí, že je rozbitý a máš smůlu.To jednoduše není pravda. Resp. jak je rozbitý? Pokud se chyba disku trefí zrovna do systémových stromů, tak ty jsou by default duplikované. (Pokud se bavíme o jednom disku.) Tzn to přežije. Pokud se chyba trefí do datových bloků, tak ext4 je ani nezjistí (viz výše), btrfs alespoň oznámí chybu checksumu.
Jednou ti umožní read-only mount a pak ani to ne.Nevím o čem mluvíš. Jednou jsem to tady testoval a umožňoval degradovaný multidevice btrfs připojit opakovaně a to dokonce jako rw. Max potom přišel s tím, že to bylo v nějaké konkrétní verzi. Navíc je otázka, jak se to má vlastně správně chovat. S tím tady (podle mě správně) argumentovat Filip Jirsák. Pokud si FS nastavíme s redundancí alespoň dvě kopie (btrfs raid-1), tak se FS nemůže (bez dalších disků) tvářit, že je vše v pořádku a měl by vyžadovat zásah admina. Jestli to někdy v minulosti vyřešili tak, že to nejde připojit rw, nevím, ale tohle řešení není automaticky špatné. Admin je odpovědný za to, aby tam bylo dostatečné množství disků (nebo jiné nastavení) k udržení jím požadované redundance. V minulosti jsem měl několik bezesných nocí třeba u mdadm, který umožňuje sestavení i provoz v degradovaném režimu a někteří lidé toho zneužívají k tomu, aby "ušetřili" za disky. Tj místo správného počtu hned na počátku se to různě flikuje. Ve skutečnosti i toto btrfs řeší velmi elegantně. Na počátku začneme třeba se třema diskama a potom jen přidáváme další. Bez nutnosti zdlouhavného resilveringu.
Jediná šance je vykopírovat data na jiný disk a vyrobit filesystém znovu.Což je za mě ta nejlepší varianta u každého fs. Jestli někdo spoléhá na fs, který musel být opravován externími příkazy (a neporadil si s tím driver fs), tak good luck. Navíc btrfs má nástroj restore, kterým umožní přečíst i velmi poškozený fs. Tj takový, který by při jiných FS ani nešel namountovat a tedy by nešly vykopírovat soubory.
EXT4 si projde žurnál a nějak to dá dohromady (vypadávaly mi disky na USB celkem běžně a v pohodě se to ustálo několik let).
Protože Ext4 přesně v té^^^ situaci ztrácí data! Z.t.r.á.c.í d.a.t.a.! Už? Tohle přece nemůže soudný uživatel považovat za výhodu.
Ext4 nemá checksumy dat, nemá redundanci (ani na jednom disku, ani přes víc disků) a nemá atomický copy-on-write. Tudíž může sice několik let předstírat, že funguje, jen ta data už na něm v původní podobě nebudou. K čemu je to dobré?
Chci vědět, která data mám a která nemám. Nechci za těch několik let, které to "ustálo" (ehm, ve skutečnosti neustálo) zjistit, že už ta data ve skutečnosti nemám.
Btrfs je nutný právě proto, že se stále větší kapacitou, se stále rychlejšími sběrnicemi a se stále levnější výrobou existuje stále častěji silent data corruption a spousta možných selhání řadičů / kabelů / disků.
Btrfs + ZFS je asi nejlepší možná kombinace v tomto ohledu, pokud člověk trvá na "diverzifikaci" filesystémů.
Oba mají všechny klíčové vlastnosti, tedy copy-on-write, redundanci, checksumy dat i metadat atd. ZFS má ještě pár hezkých vymožeností navíc, které Btrfs zatím nemá. (Například atomické snapshoty přes víc než jeden subvolume.)
XFS je filesystém z roku 1993 (open-source od roku 2001), takže jeho použití má zhruba stejné chronické problémy a nedostatky jako například Ext4. Většina filesystémů, které jsou dnes v kernelu (a že jich je!) bohužel pochází z dob, kdy disky měly 1 GB, nikoliv 10 TB, kdy prakticky neexistovala silent data corruption, kdy běžný desktop málokdy měl víc než jeden disk atd.
Obvykle pracuju s vonější definicí pojmu na jednom FS a důležitá (a poměrně malá) data z Btrfs RAIDu 5/6 zálohuju na Btrfs RAID 1 na jiném stroji (který možná někdy dostane upgrade na RAID1c3 nebo tak). Což proti některým čistě hypotetickým doomsday scénářům chrání a proti některým zase ne.
Protože Ext4 přesně v té^^^ situaci ztrácí dataOmyl. Hardware ztrácí data
Protože Ext4 přesně v té^^^ situaci ztrácí dataOmyl. Hardware ztrácí data
Ext4 má mylné předpoklady o hardware. Například vůbec nepočítá s tím, že by hardware mohl ztrácet data. Tudíž Ext4 ztrácí data.
(Nemluvě o těch karambolech, každé cca 3 roky opakovaných (2009, 2012, 2015, 2018), kdy Ext4 opravdu sám od sebe ztrácel data kvůli bugům. Ale dobrá, ty nechme tentokrát stranou.)
Anekdoty z Redditu jsou vskutku velmi zábavné.
Ještě pořád platí…
Nikdy neplatilo.
Takže se zase zbytečně bavíme o situaci po kritickém selhání redundance?
Potom, samozřejmě — což už jsme řešili a vyřešili jinde, že ano —, je prvním a v té chvíli jediným cílem obnovení redundance, nikoliv read/write přístup.
Hernajs, ať už dají všichni pokoj s mokrým snem o neredundantním read/write mountování něčeho. Kdo to chce? Snad jedině ten, kdo nemá rád svá data.
Těch pár hodin / dní to jistě funguje. Údajný problém byl až při následujícím mountu, že?
Nebyly náhodou všechny vřesky a stesky jenom kolem toho, že se to nedá (automaticky) namountovat degraded
?
Neřešili jsme náhodou už asi tak velké-N-krát, že si můžeš degraded
přidat do příkazové řádky kernelu, když takové (nesmyslné) chování chceš?
Sorry jako, ale tahle krátká paměť FUDistů je už fakt trapná záležitost.
Nebyly náhodou všechny vřesky a stesky jenom kolem toho, že se to nedá (automaticky) namountovat degraded?Nebyly.
Aha. Najednou. Pak tedy byly všechny vřesky a stesky zbytečné a/nebo prostým výsledkem dvojího metru.
Těch pár hodin / dní to jistě funguje.Ale nemělo by!! Není tam nakonfigurovaná redundance!!111!1
Zase jsi nepochopil psaný text.
Bavíme se o nějakém odletu na kernel panic, když selže 1. až (N - 1). disk z N při redundanci N (což by se rozhodně nemělo stát)? Nebo je řeč o tom, zda se má automaticky provést degraded
mount (což by se také rozhodně nemělo stát)? To jsou dvě hodně odlišné otázky, že?
Nevím, jestli ještě vaříš z vody nebo už jen z nějakých minerálních reziduí.
Abych to řekl polopatě a po lopatě: Samozřejmě, že uptime má trvat tak dlouho, jak jen to jde, i po selhání (N - 1) disků z N. Mimo jiné od toho tam ten RAID je, ne? Následující mount je ovšem úplně jiná situace / otázka / kapitola / fáze provozu Matrixu.
přijde novýJak přijde? Spare je snad v bedně, další disk na poličce.
Skutečně mají tvé počítače několikahodinový výpadek po každém umření disku?Ne, buď je tam klasický spare nebo v případě btrfs další disk a dostatek volného místa na FS. Tj po každém umření disku dojde pouze ke snížení dostupného místa na FS. (Uznávám, toto by chtělo vyšperkovat. Dneska je nutné odstranit missing device, mohlo by to fungoval automaticky.)
My, co doma neskladujeme přebytečný disk, aby se tu dva roky válel, kdyby náhodou nějaký chcípl, máme dělat co?Pointa je v tom, že se nemusí válet. Viz poznámka o "aktivním" spare. Ostatně člověku, který používá ceph, to asi nemusím vysvětlovat.
Pointa je v tom, že se nemusí válet. Viz poznámka o "aktivním" spare.To by byla dobrá poznámka, kdyby se desktopové základní desky vyráběly s víc než 6 SATA porty
dá se použít přídavný HBAjo, dá se, jeden v rozumné cenové relaci (pro domácí použití nechci za HBA dát víc peněz než za board) jsem zkusil a po pár týdnech zase vyhodil
Nepochopení mé logiky (nebo … zkrátka logiky?) vídám v souvislosti s Btrfs často.
Jistě, chyba hardware není totéž jako chyba software. (Tvrdil to tu snad někdo?) Předností software ovšem může být odolnost vůči (některým) chybám hardware a/nebo správná detekce chyb hardware a reakce na ně.
Když se budeme držet těch analogií s auty, nepřesných ale ilustrativních: Dejme tomu, že mě nabourá Trabant, bez mého zavinění. To odpovídá té chybě hardware, kterou nemůžu ovlivnit nebo předvídat. Budu mít nějakou výhodu, když budu v té chvíli sedět v Rolls-Royce? Nebo pro mě nehoda dopadne úplně stejně, když pojedu taky v Trabantu?
Řekl bych, že Rolls-Royce (Btrfs) bude mít své výhody.
Každý filesystém, který počítá s hypotetickým ideálním hardwarem a žije v jakési bublině odtržené od reality, v podstatě ztrácí data.
Dá se kolem toho slovíčkařit praktiky libovolně, ale faktem je, že některý filesystém se do 21. století hodí a některý zas až tolik ne.
Zatímco FUDy o "stabilním" Ext4 a "nestabilním" Btrfs, kterými se to tady půlka vlákna (už zase) doslova hemží, jsou zářným příkladem objektivního hodnocení, že jo.
S čím přesně předřečník srovnává? Který jiný filesystém by se s uvedenou situací vyrovnal?
Dvojí metr je opravdu ptákovina a ohraná písnička.
S čím přesně předřečník srovnává? Který jiný filesystém by se s uvedenou situací vyrovnal?Použijte své oblíbené vstupní zařízení, posuňte si stránku o něco výše a můžete si to přečíst sám.
Dvojí metr je opravdu ptákovina a ohraná písnička.Tak toho nechte, když se vám to nelíbí
Neodbíhejme od tématu: Který filesystém (by) příslušnou situaci ustál? Nějaký příklad takového filesystému? (Jak už jsem psal jinde: Nevidím řešení v tom, že filesystém nějaký problém dokáže ignorovat; to není žádná výhoda.)
Pokud tedy nemáme příklad toho bájného filesystému, který by se ve stejné situaci zachoval výrazně lépe, máme tu nejspíš opět dvojí metr + mlácení prázdné slámy, že ano.
Neodbíhejme od tématu: Který filesystém (by) příslušnou situaci ustál?Použijte své oblíbené vstupní zařízení, posuňte si stránku o něco výše a můžete si to přečíst sám.
Nápodobně.
Ono to tam totiž není napsáno. Proč? Protože žádný filesystém (a rozhodně ne zmiňovaný Ext4) příslušnou situaci neustojí. Už to vysvětluju asi tak podesáté: Když se filesystém chová, jako by bylo všechno v pořádku, a přitom klidně vrací náhodně poškozená data, je to průser, nikoliv výhoda. Že nějaký filesystém (například Btrfs nebo ZFS) dokáže velmi brzy upozornit na selhávající hardware, to je obrovská výhoda, nikoliv problém.
Smutné je, že někteří tak jednoduchou úvahu dodnes nebyli schopní zpracovat. To musí být spousta kilometrů dlouhého vedení.
Nemá smysl lpět na hardwaru, který selhává a pravděpodobně patří do sběrného dvora. Prý Btrfs nefunguje. A to je zajímavé, že v obrovských produkčních nasazeních (statisíce strojů) typu Facebook nějakým zázrakem funguje.
Takže, bude jméno toho zázračného (a dosud nezmíněného, ba možná dosud neimplementovaného) filesystému? Zkusím hádat: Nebude.
Není. (Jak už jsem opakovaně vysvětlil.)
Tohle jsou fakt kilometry dlouhého vedení; to se nevidí.
To by už stačilo. Jedine čo si dosiahol je neustále pridávanie príspevkov.
Osobne mi je to jedno, že chodíš neustále v kruhu.
Osobne mi je to jedno, že chodíš neustále v kruhu.
Zase někdo vidí kruhy, kde nejsou? No jo, nějak se tu s takovými roztrhl pytel.
V kruhu se točí všeho všudy FUDisté se svými stokrát vyvrácenými nesmysly, které nedovedou nijak obhájit.
Důvod, proč je dobré tyhle kolosální kraviny vyvracet, nejsou FUDisté samotní — těm není pomoci —, nýbrž ostatní, pozdější čtenáři takového vlákna. Když bude každý dotaz o Btrfs zaplevelený hloupým FUDem, na který nikdo nebude reagovat, může to vytvořit mylný dojem, že stabilní a léty "produkčních" nasazení prověřený filesystém má jakési záhadné problémy, kterých by se měl uživatel bát.
Ve skutečnosti, jak už jsem psal, by se uživatelé dnes měli bát nepoužívat Btrfs, nikoliv používat Btrfs.
Tak ten název toho bájného filesystému bude?
A jejda! Nebude! A zase nebude.
Zase jenom kecy v kleci.
Zoufalství FUDistů par excellence.
Takkže nebude. Protože ten hypotetický zázračný filesystém neexistuje.
Jaké to překvapení! FUDista žvaní kraviny a nedokáže ty kraviny ničím doložit. Standard, klasika.
Jak se tam ty chyby dostanou? Vadou HW?Nebo SW (jo, chápu, že to je neuvěřitelné, ale prý existuje software, ve kterém jsou chyby :)
V tom případě ti BTRFS alespoň oznámí, že nesedí checksum datového bloku a do kterého souboru se to trefilo. Ext4 ti neoznámí nic.To už tu píšu asi po sté: btrfs checksumy checksumují opravdu jen že to, co se přečetlo, je to, co se před tím zapsalo. Neřeší vůbec, jestli datové struktury stále dávají smysl! To řeší fsck, který byl před ~4 lety naprosto nepoužitelný. Doufejme, že to od té doby opravili.
Jednou jsem to tady testoval a umožňoval degradovaný multidevice btrfs připojit opakovaně a to dokonce jako rw. Max potom přišel s tím, že to bylo v nějaké konkrétní verzi.Bylo to pro všechny verze od začátku do 4.něco a umožnilo to jednou rw a pak už pouze ro.
Pokud si FS nastavíme s redundancí alespoň dvě kopie (btrfs raid-1), tak se FS nemůže (bez dalších disků) tvářit, že je vše v pořádku a měl by vyžadovat zásah admina.On se netváří, že je vše v pořádku, a zásah admina nepomůže, protože ten flag nebylo možno obejít (bez patchování kernelu). RAID si lidé typicky pořizují proto, aby systém fungoval i při selhání jednoho disku, což zde splněno nebylo.
Jak se tam ty chyby dostanou? Vadou HW?Nebo SW (jo, chápu, že to je neuvěřitelné, ale prý existuje software, ve kterém jsou chyby :)
No ovšemže. Například Ext4 vlivem bugů posral lidem data v roce 2009, 2012, 2015, 2018 [všechny incidenty snadno dohledatelné]… Takže co? Je v plánu i 2021? Jo, to bude zase párty, co?
To je ale divné, že Btrfs v tom Facebooku a všude možně jinde, kde běží, tyhle tříleté výroční kalby s šavlí poránu nepořádá. To je ale záhada!
V tom případě ti BTRFS alespoň oznámí, že nesedí checksum datového bloku a do kterého souboru se to trefilo. Ext4 ti neoznámí nic.To už tu píšu asi po sté: btrfs checksumy checksumují opravdu jen že to, co se přečetlo, je to, co se před tím zapsalo. Neřeší vůbec, jestli datové struktury stále dávají smysl! To řeší fsck, který byl před ~4 lety naprosto nepoužitelný. Doufejme, že to od té doby opravili.
A ani posté jsi to nepochopil. Tak ještě po sté první: Checksumy nezaručují dokonalou konzistentnost dat. Proč? Protože mají kolize. Co přesně tedy dělají checksumy? Snižují pravděpodobnost nededetekovaného poškození dat o několik (řádově třeba 10 až 20, podle typu checksumu) desítkových řádů.
A teď mi objasni, jak by se (jinak než náhodnými a krajně nepravděpodobnými kolizemi checksumů) dosáhlo toho, aby datové struktury (nějak, záhadně, ba kouzelně) nedávaly smysl, ale těmi checksumy by pořád procházely. Takový zázrak! To bude asi nějaký průlom v kvantové fyzice, že?
Ve kterém žurnálu je o tomhle článek?
Jednou jsem to tady testoval a umožňoval degradovaný multidevice btrfs připojit opakovaně a to dokonce jako rw. Max potom přišel s tím, že to bylo v nějaké konkrétní verzi.Bylo to pro všechny verze od začátku do 4.něco a umožnilo to jednou rw a pak už pouze ro.
Úspěšný r/w mount má zaručovat redundanci, která je v konfiguraci daného filesystému určená. Cokoliv jiného má být nanejvýš r/o. Uživatelům AIDů bez R tohle sice dlouho nedocházelo, ale je dobře, že se konečně takové základy fungování světa a Matrixu dostávají do obecného povědomí.
RAID si lidé typicky pořizují proto, aby systém fungoval i při selhání jednoho disku, což zde splněno nebylo.
Naprostý nesmysl. RAID si lidé pořizují proto, aby selhání N - 1 disků (při redundanci N) nevedlo ke ztrátě dat. Takový předpoklad se zásadně liší od předpokladu (a leckdy je v rozporu s předpokladem), že RAID s N - 1 disky bude (v nějakém slova smyslu) fungovat.
No ovšemže. Například Ext4 vlivem bugů posral lidem data v roce 2009, 2012, 2015, 2018 [všechny incidenty snadno dohledatelné]… Takže co? Je v plánu i 2021? Jo, to bude zase párty, co?Prohlášení, že v btrfs mohou být chyby, neposkytuje žádnou informaci o tom, zda v ext4 nebo jakémkoli jiném software chyby nejsou.To je ale divné, že Btrfs v tom Facebooku a všude možně jinde, kde běží, tyhle tříleté výroční kalby s šavlí poránu nepořádá. To je ale záhada!
A teď mi objasni, jak by se (jinak než náhodnými a krajně nepravděpodobnými kolizemi checksumů) dosáhlo toho, aby datové struktury (nějak, záhadně, ba kouzelně) nedávaly smysl, ale těmi checksumy by pořád procházely.Například tak, že někdo v implementaci B-stromu udělá race condition. Ale možná jsme já a vývojáři filesystémů co nejsou btrfs nebo zfs opravdu jediní na světě, kdo dělá chyby při implementaci datových struktur. Nebo dojde k chybě v RAM nebo při výpočtu v procesoru (udávaná chybovost minimálně non-ECC RAM (příspěvek je o hardwaru bez ECC) je ještě děsivější než udávaná chybovost silent data corruption pevných disků).
No ovšemže. Například Ext4 vlivem bugů posral lidem data v roce 2009, 2012, 2015, 2018 [všechny incidenty snadno dohledatelné]… Takže co? Je v plánu i 2021? Jo, to bude zase párty, co?Prohlášení, že v btrfs mohou být chyby, neposkytuje žádnou informaci o tom, zda v ext4 nebo jakémkoli jiném software chyby nejsou.To je ale divné, že Btrfs v tom Facebooku a všude možně jinde, kde běží, tyhle tříleté výroční kalby s šavlí poránu nepořádá. To je ale záhada!
Podstatný rozdíl je ovšem hlavně v tom, že některý software se dokáže lépe vypořádat s chybami hardwaru a jiný hůř. Některému software se čtyři kritické chyby se ztrátou dat během jediné dekády mlčky tolerují, zatímco u jiného se (nahlas) předpokládá dokonalost. Už mě unavuje připomínat, jak nesmyslný je celý tenhle dvojí metr.
A teď mi objasni, jak by se (jinak než náhodnými a krajně nepravděpodobnými kolizemi checksumů) dosáhlo toho, aby datové struktury (nějak, záhadně, ba kouzelně) nedávaly smysl, ale těmi checksumy by pořád procházely.Například tak, že někdo v implementaci B-stromu udělá race condition. Ale možná jsme já a vývojáři filesystémů co nejsou btrfs nebo zfs opravdu jediní na světě, kdo dělá chyby při implementaci datových struktur. Nebo dojde k chybě v RAM nebo při výpočtu v procesoru (udávaná chybovost minimálně non-ECC RAM (příspěvek je o hardwaru bez ECC) je ještě děsivější než udávaná chybovost silent data corruption pevných disků).
Jaký je vliv té chybovosti na pravděpodobnost poškození dat? Jak dlouho se data zdrží v RAM a jak dlouho na disku? Mám takové tušení, že tam bude celkem zásadní rozdíl v době uložení dat a v době působení všech možných vlivů na ně. (Inu, na všechno, co mi spravuje úložiště, si kupuju zásadně ECC RAM. Ne že by mi někdy selhala RAM třeba v notebooku, který ECC nemá, ale je to jako s autonehodami: sice jsem nikdy autonehodu nezažil, no nicméně když už je k dispozici bezpečnostní pás, samozřejmě ho použiju.)
Je příjemné vědět, že Btrfs dokáže tu a tam odhalit dokonce i problémy s RAM bez ECC (byť zdaleka ne vždy).
Například Ext4 vlivem bugů posral lidem data v roce 2009, 2012, 2015, 2018 [všechny incidenty snadno dohledatelné]A pokud to jsou ty samé, co tvrdíte vždycky, tak to většinou nebyla chyba ext4.
Úspěšný r/w mount má zaručovat redundanci, která je v konfiguraci daného filesystému určená. Cokoliv jiného má být nanejvýš r/o.To je pouze váš názor. Redundance ovšem znamená - vždycky to tak v případě RAIDů bylo - že daná věc bude schopna fungovat plnohodnotně ve smyslu poskytované služby, i po selhání nějaké své části.
Naprostý nesmysl. RAID si lidé pořizují proto, aby selhání N - 1 disků (při redundanci N) nevedlo ke ztrátě dat.Mýlíte se. Já jsem si RAID pořídil z obou důvodů.
Naprostý nesmysl. RAID si lidé pořizují proto, aby selhání N - 1 disků (při redundanci N) nevedlo ke ztrátě dat.Mýlíte se. Já jsem si RAID pořídil z obou důvodů.
Opravdový RAID nebo AID? Iluze R může být nakonec horší problém než úplná absence R.
Dobrá tedy. Pak nezbývá než říct, podle této logiky, že Btfs je jakási blíže neurčená (leč znamenitě fungující) redundance, zatímco RAID (v jakési přehnaně pedantsky přesné definici) ještě nikdy nikde na světě nebyl implementovaný (zatímco AID je, bohužel, na každém rohu).
AID chybně označovaný za RAID jsem také nějaký pátek používal, když jsem ještě příliš nechápal, jak tenhle svět funguje. Jo, už je to přes 10 let od té doby; čas letí.
Ten pocit, když AID 6 zničí všechna data kvůli poškození dat na jednom disku — k nezaplacení! (Neměl náhodou ustát poškození dat na 2 discích? Měl, jenže resilvering bez checksumu je jako airbag bez pásu.)
Inu, někteří pochopí, jak zhruba tenhle Matrix funguje, a někteří ne. To se nedá nic dělat. Někteří možná jen potřebují víc času… (Ale smát se jim můžu už teď.)
Oblíbil jsem si důležité základní principy (kterými se řídí například Btrfs a ZFS), nikoliv jeden konkrétní filesystém.
Tak potom mají Btrfs nebo ZFS.
Protože nechtějí, aby jim předpotopní Ext4 v kombinaci s předpotopním AIDem pomalu a potichu sežral data.
(A protože už nežijí v době legendárních 36GB SCSI disků nebo něčeho podobného.)
Tak potom mají Btrfs nebo ZFS.Možná to ZFS, i když u toho se taky nějaké překvapení najde. Nicméně furt nic tak překvapivého jako třeba že když zaplníte Btrfs, tak to nejde řešit smazáním dat.
Protože nechtějí, aby jim předpotopní Ext4 v kombinaci s předpotopním AIDem pomalu a potichu sežral data.Takže používají aktuální Ext4 a aktuální RAID a nemají problém.
Nicméně furt nic tak překvapivého jako třeba že když zaplníte Btrfs, tak to nejde řešit smazáním dat.
A nelze tomu předejít nastavením kvóty?
No ja neviem. Mne sa uz niekolkokrat stalo, ze do /var/log to napchalo za par minut niekolko desiatok giga logov, pricom inak tam pribuda niekolko MB za den. Niekedy sa proste stane, ze sa cely disk zaplni. S tym musi kazdy FS pocitat.
Nemusí. Já třeba mám z tohoto důvodu oddělen /var a přiřadil jsem mu 15 GiB. Pokud se něco zblázní a začne to logovat, tak po zaplnění /var mi po rebootu systém naběhne. Což by se nestalo, kdyby se zaplnil celý /. Kdybych používal Btrfs, tak bych pro /var nastavil kvótu a zase by to bylo OK.
Lze tomu předejít hromadou způsobů a hlavně to byl problém někdy v roce 2013.Tak pokud je platným argumentem proti ext4 problém z roku 2009, problém z roku 2013 je platným argumentem proti Btrfs, ne?
Platný není ani jeden. Nemáš se nechat vyprovokovat. Se mi právě líbí, že stále odpovídáš slušně a trpělivě. Takovouto argumentací jsi se ale ponížil a shodil jsi i to, za co tu "bojuješ".
Možná to ZFS ... jako třeba že když zaplníte Btrfs, tak to nejde řešit smazáním dat.Jsi si jistý, že ZFS tím netrpělo?. V tom článku je spousta možností jak to vyřešit. Pro EXT4 zase existuje spousta článků jak řešit problémy, které se zase u BTRFS/ZFS řešit nemusí. Tím, že problém s mazáním souborů při 100% zaplnění vychází ze samotného designu COW, tak při bližším zkoumáním bychom možná zjistili, že to je/byla nehezká vlastnost většiny COW filesystémů.
Zase další anonym, který trochu tápe v tom, jak tenhle Matrix funguje, a trochu se neobtěžoval číst vlákno výše.
Presne jak tu nekde kolem zminil trekker.dk, raid ma predevsim zajistit, ze sluzba pobezi dal, i v pripade selhani nejake komponenty, v tomhle pripade disku a nebo ... trebas casti ram, protoze slusnej HW umi raid i v ramce.
A přesně to Btrfs RAID zajišťuje, jak už tady bylo opakovaně zmíněno. Služba běží dál. Pojem běží dál ovšem nemusí nutně zahrnovat reboot — ten se do běhu jako takového většinou nepočítá, víme???
Ještě jednou (už asi popáté) připomenu, že tady není řeč o volbě Btrfs (který umožňuje několik možných chování v případě selhání disku), nýbrž o volbě uživatele. Uživatel si může v příkazové řádce kernelu (nebo v /etc/fstab
) klidně nechat napořád kouzelné slůvko degraded
, pokud si myslí, že se to takhle má chovat. V čem přesně je problém?
Další otázka je, o jaké službě se bavíme. Ano, pro mail server v JZD Vidlákov opravdu platí, že služba má běžet dál, za každou cenu, do roztrhání příslušného (nejspíš jednoho) stroje. Potud souhlas. (To Btrfs jaksi implicitně splňuje.)
U služby nějakých větších rozměrů (například u služby poskytované veřejně) je tohle celé nesmysl a RAID jako takový tam je téměř nepodstatný. RAID tam rozhodně nezajišťuje, že služba běží dál. To zajišťuje redundance mnoha (tisíců) strojů v mnoha geograficky oddělených lokalitách, redundantní na všech úrovních od synchronizačních primitiv (Paxos) až po jeden globální systém. Tolik jen ve zkratce k tomu, jak tenhle svět (ne)funguje a kde je RAID (ne)podstatný.
degraded
v /etc/fstab
. BTRFS se prostě neumí vzpamatovat z degraded stavu. Dokonce pokud ti vypadne disk, třeba vadným kabelem, a dojde na degraded mount, tak už disk nejde vrátit. Musí se vymazat a přidat jako prázdný nový disk. Tím se samozřejmě riskuje, že případná poškození dat na zůstavším disku budou fatální. Drobný výpadek napájení tak dokáže nadělat velkou paseku.
Správné řešení by bylo, aby BTRFS dočasně nedostupný disk vzalo a sloučilo stromy zpět do jednoho. Je potřeba si jen poznamenat, kdy došlo k degraded mountům, aby šlo detekovat, zda disky nebyly připojovány na střídačku.
Dokonce pokud ti vypadne disk, třeba vadným kabelem, a dojde na degraded mount, tak už disk nejde vrátit. Musí se vymazat a přidat jako prázdný nový disk.LOL no jo, to fakt nemá nic jako write intent bitmap? (MD RAID si při krátkodobém vyndání disku pamatuje, které bloky měnil, a pak dosyncuje jenom ty -- samozřejmě si můžeš vynutit přečtení všech ostatních, abys zjistil, jestli je to fakt v pořádku. Každopádně pointa je, že nedojde k tomu vymazání, takže když po většinu doby vypadne nějaký jiný disk, data furt máš)
velmi dobrý důvod proč nemít degraded v /etc/fstabNo jo, ale když chci mít na btrfs /? A jak tady Andrej propaguje, partitions a LVM jsou pasé, celé to má být jeden FS a mít subvolumes. Tak to pak stejně musím namountovat celé.
Proto jsem zmínil klíčovou frázi větších rozměrů.
Domácí počítač je asi tak stejně velká služba jako mail server JZD Vidlákov, tedy rozhodně ne větších rozměrů.
Na domácím počítači (pokud jeho data rozumně pravidelně zálohuji) si klidně nastavím/povolím degraded
a pak není co řešit.
Ano, bylo by skvělé, kdyby Btrfs podporoval hot spare. Třeba něco takového v budoucnu přibude. V seznamu feature requestů na Wiki to je.
…nicméně taky máme (já i ti zemědělci) zájem na tom, aby to fungovalo…
Tedy Btrfs je jasná volba.
…což nesmyslné rozhodnutí vývojářů Btrfs komplikuje
Které přesně rozhodnutí? Že budou při mountu striktně vyžadovat dodržení slibované redundance a komu se to nelíbí, může si někam připsat kouzelné slůvko degraded
?
No to je ale hrozivé rozhodnutí! Hrůza pomyslet, fakt.
Tedy Btrfs je jasná volba.Fungovalo, aniž by se kolem toho muselo běhat a řešit překvapení: Btrfs je volba, které se jasně vyhnout
Tedy Btrfs je jasná volba.Fungovalo, aniž by se kolem toho muselo běhat a řešit překvapení: Btrfs je volba, které se jasně vyhnout
To musí být děsivé, takhle netušit, která bije, jak tenhle svět funguje, o co se vůbec jedná atd.
Jasně, takový Facebook se svými statisíci strojů pořád jenom běhá a řeší překvapení. (Nebo ne?)
Kdy už si anti-Btrfs FUDisté neuvědomí, že Btrfs nebo ZFS přináší mnohem méně překvapení než zastaralé filesystémy (protože dokážou včas odhalit problematický hardware a celkově mají mnohem lepší odolnost proti poškození dat)?
To má být asi vtip, tohleto.
Že Ext4 nefunguje na RAID 5, to se ví. (Takže v tomto smyslu to jistě nikoho nepřekvapí.) Mnozí si mysleli, že mají RAID 5 pod Ext4, než zjistili, že to byl pouhý AID 5 se svým vyhlášeným data žeroucím resilveringem bez checksumů.
Ext4 má mnohem větší šanci, že skončí v režimu read-only, než Btrfs. Zaprvé má zastaralý FSCK, tj. spousta drobných oprav, které v Btrfs zvládnou algoritmy přímo v kernelu v rámci mountu, skončí u Ext4 jako read-only režim s nutností FSCK. Zadruhé nemá žádnou vestavěnou redundanci, ani v rámci jednoho disku, ani přes několik disků.
Ten FUD se zaplněním disku už je ohraný; co takhle zvolit novější gramofonovou desku než hitparádu 2013 nebo ze kdy tohle je? (Nemluvě o tom, že uživatel jiný než root
nemá mít vůbec kvótu na to, aby zaplnil celý disk.)
Že Ext4 nefunguje na RAID 5, to se ví.Ale, odkdy? Poslyšte, vy máte takových problémů s věcmi, co jiným fungují, jestli ono to nebude rukama...?
Ten FUD se zaplněním disku už je ohranýHistorii nesmažete.
Historii nesmažete.
Přesně! Ext4: 2009, 2012, 2015, 2018, … to byly roky, co? Je v plánu i 2021?
Mimochodem, nastavení dnešních strojů (o kterém byl taky původní dotaz) se řídí dávnou historií odkdy?
Ext4: 2009, 2012, 2015, 2018, … to byly roky, co?Btrfs: 2013 (a další), to byly roky, co? A to je ještě rozdíl v tom, že ty bugy v Btrfs byly bugy v Btrfs, zatímco vy šíříte FUDy i o případech, kde bug byl v aplikacích, které něco dělaly chybně v rozporu se specifikací a opravoval to za ně filesystém.
Jasně, protože aplikace přece mají nějakou moc nad tím, co dělá filesystém v kernelu. A teď ještě tu o Červené karkulce.
Btrfs je prostě lepší než předpotopní sračky, po všech stránkách. Tečka, hotovo. Ještě nějaké nepochopení? Ještě nějaké otázky?
Ach jo. Tohle snad není možné. Pořád někdo bude hájit ty sračku žeroucí data, například mdadm
/dmraid
+ Ext4. Je tohle nějaká zvrácená forma Stockholmského syndromu nebo co?
Jasně, protože aplikace přece mají nějakou moc nad tím, co dělá filesystém v kerneluAno, to mají, docela velkou. Ten mechanismus se jmenuje systémová volání, zkuste si to najít.
Btrfs je prostě lepší než předpotopní sračky, po všech stránkách.Ano, problémy s Btrefs jsou prostě lepší po všech stránkách. Život by bez nich byl nudnější a člověk by musel přemýšlet, co dělat s volným časem.
Pořád někdo bude hájit ty sračku žeroucí data, například mdadm/dmraid + Ext4.Já nevím, co jste s tím dělal, že vám to žralo data.
Že budou při mountu striktně vyžadovat dodržení slibované redundance a komu se to nelíbí, může si někam připsat kouzelné slůvko degraded?LOL GPT-3 s omezeným kontextem. Ne, mluvil o případu s kernelem před 4.12 (cca.). Ten už samozřejmě teď neplatí, ale bojí se, že na nějaké další podobné překvapení narazí.
Zatímco pravidelných 3-letých průšvihů v Ext4 (a další, plíživé silent data corruption mezi nimi) se nejspíš nebojí. No jo. Klasika.
Bylo to pro všechny verze od začátku do 4.něco a umožnilo to jednou rw a pak už pouze ro.O tom teda dost pochybuju. Články jsem psal v roce 2011 od tehdy jsem s tím dělal psí kusy a na toto jsem nikdy nenarazil. Potom to někdo řešil tady na abc a to jsem testoval a opět nic. Asi jsem nějak ty konkrétní verze přeskočil.
RAID si lidé typicky pořizují proto, aby systém fungoval i při selhání jednoho disku, což zde splněno nebylo.Nechám stranou tento konkrétní účel (který pro mě rozhodně neplatí), ale pokud si lidé něco pořizují, tak by si o tom jednak měli něco zjistit a pro svůj účel taky otestovat. Jestli někdo nasadí něco a doufá, že se to bude chovat stejně jako něco jiného, tak to je nejrychlejší cesta do potíží. A přesně proto vznikají naprosto nesmyslné diskuse, kdy někdo nasadí něco a potom to používá podle zvykového práva něčeho zcela jiného.
A přesně proto vznikají naprosto nesmyslné diskuse, kdy někdo nasadí něco a potom to používá podle zvykového práva něčeho zcela jiného.Ano, to je situace, která nastane, když vezmete běžně používaný termín s nějaký významem a použijete jej pro něco jiného, což přesně udělali vývojáři btrfs, když jejich ne-RAID pojmenovali RAID. Je to jako kdyby výrobce prodával smartphone, ale ve skutečnosti ta věc uměla jenom fotit. To se nazývá podvod. Pro srovnání si vezměte třeba Ceph - tam výraz RAID používají jen při srování "tato naše věc pojmenovaná X je něco jako RAID". A když to někdo nasadí, k žádnému zmatku nedojde.
Pokud si někdo pod pojmem raid-1 představuje jen to, že na všech discích jsou stejná data, tak by mě fakt zajímalo, co by se podle něj mělo stát v případě, kdyby se tam připojil menší disk.Že velikost reálně využitelného prostoru bude rovná velikosti menšího (ze dvou) disku? Jako u jakéhokoliv jiného RAIDu, ať už HW nebo SW. (Pro víc disků analogicky, i když na HW řadiči jsem tohle nezkoušel.) Což by ostatně mělo nastat i u toho btrfs (teď mluvím o případu s 2 disky), jen s tím rozdílem, že v principu může zkousnout, když menší disk dostane jako náhradu disku, co selhal (protože nereplikuje prázdné místo, tj. když se vejdou data.)
Pokud si někdo pod pojmem raid-1 představuje jen to, že na všech discích jsou stejná data, tak by mě fakt zajímalo, co by se podle něj mělo stát v případě, kdyby se tam připojil menší disk. To by rázem přišel o data větší než, nebo by to ten disk mělo odmítnout? Fakt nevím.Zaujímalo by ma, prečo by SW RAID nemal odmietnúť menší disk. On ten RAID nerobí s menšími mernými jednotkami ako s blokovými zariadeniami.
[root@CentOS-6 tmp]# truncate -s 1G del/file-5.img [root@CentOS-6 tmp]# truncate -s 512M del/file-6.img [root@CentOS-6 tmp]# losetup /dev/loop4 del/file-5.img [root@CentOS-6 tmp]# losetup /dev/loop5 del/file-6.img [root@CentOS-6 tmp]# mdadm --add /dev/md0 /dev/loop4 /dev/loop5 mdadm: added /dev/loop4 mdadm: /dev/loop5 not large enough to join array [root@CentOS-6 tmp]#
Zaujímalo by ma, prečo by SW RAID nemal odmietnúť menší disk.Ať si klidně odmítne (ostatně to tak dělají), ale ať mi teda někdo vysvětlí, jak by to šlo dohromady s ostatními deklarovanými vlastnostmi multidevice btrfs. Tj přidej disk, odeber disk (s ohledem na dostatek místa pro data), bez ohledu na počet a velikost. Tohle jsou vlastnosti deklarované už možná někdy v roce 2009.
ak by to šlo dohromady s ostatními deklarovanými vlastnostmi multidevice btrfsA prečo by to malo ísť dohromady? RAID na úrovni blokového zariadenia má inú filozofiu ako RAID na úrovni FS. Ale na druhú stranu by ma zaujímalo ako si v prípade BTRFS vytvorím RAID Mirror tak aby boli dáta zapísané naraz v troch kópiách. Chcel by som mať totižto domáci NAS odolný voči výpadku jedného disku, a nechcem ten NAS pripájať cez UPS a Dízel Agregát.
Ale na druhú stranu by ma zaujímalo ako si v prípade BTRFS vytvorím RAID Mirror tak aby boli dáta zapísané naraz v troch kópiách.BTRFS nabízí RAID1C3 nebo RAID1C4. Kdy data zapisuje ve 3 nebo 4 kopích.
Neotestovaného ve srovnání s čím? V jakém slova smyslu?
Ext4 je neotestované řešení, podle stejné logiky. Přesto ho někteří stále používají. (Naštěstí aspoň ta Fedora konečně dostává rozum.)
root@Ubuntu-2010:~# mount -v -t btrfs /dev/disk/by-uuid/052cc789-14f1-4857-a2a5-0a98cda5ace0 /mnt/BTRFS mount: /mnt/BTRFS: wrong fs type, bad option, bad superblock on /dev/loop21, missing codepage or helper program, or other error. root@Ubuntu-2010:~# dmesg | tail ... [ 191.746410] BTRFS info (device loop21): disk space caching is enabled [ 191.746411] BTRFS info (device loop21): has skinny extents [ 191.747060] BTRFS error (device loop21): devid 1 uuid 799e5847-0daf-4d00-bdbb-139c23e99fc1 is missing [ 191.747093] BTRFS error (device loop21): failed to read chunk tree: -2 [ 191.765276] BTRFS error (device loop21): open_ctree failedTak tomuto sa povie zrkadlenie údajov na viacero lokácií, aj s redundantným prístupom. Oproti desaťročia overenej kombinácii (EXT FS a SW RAID) to naozaj a stále nefunguje. Ten BTRFS síce ponúka kontrolné súčty aj na dáta (eliminuje silent data corruption), ale práca s dátami na degradovanom (ale stále redundantnom) poli je viac ako riziková. Alebo som snáď urobil niekde chybu? Skús ma vyviesť z omylu, a ukázať ako BTRFS pole prežije výpadok disku aj s viacnásobným reštartom.
MegaRAIDu (ostatní značky už byly asimilovány a zlikvidovány)Není to dneska
-o degraded
?
O data nepřijdete. Udělal jsem test, RAID1C3, tři zařízení. Nahrál data. Umount. Dvě zařízení jsem zrušil. Mount -o degraded
, fs je normálně dostupný rw.
Tj no problémo.
Label: none uuid: 6b47b4a3-c7f9-4c45-8f7a-c87cf8c9d0d2 Total devices 3 FS bytes used 995.74MiB devid 1 size 16.00GiB used 1.26GiB path /dev/mapper/VGData-a *** Some devices missingA celkem logicky to chce další disky:
root@tomas:/mnt/test# btrfs device remove missing /mnt/test ERROR: error removing device 'missing': unable to go below three devices on raid1c3Ale dá se to obejít:
btrfs balance start -dconvert=single -mconvert=dup /mnt/test
btrfs device remove missing /mnt/testA FS je opět happy:
Label: none uuid: 6b47b4a3-c7f9-4c45-8f7a-c87cf8c9d0d2 Total devices 1 FS bytes used 997.07MiB devid 1 size 16.00GiB used 2.06GiB path /dev/mapper/VGData-aTakže, na počátku raid1 se třemi kopiemi. O dvě (!!!) zařízení se přišlo. Buď mu je dodám zpět, ale pokud už nechci redundanci, tak to převedu na single a je to.
Ako zadám daný parameter pri štarte OS keď sa jedná o /Snad každý boot manager umožnuje ručně nastavit parametry jádra.
koľko bežných reštartov to vydrží bez servisného zásahu?∞ + 1
Teda že redundancia funguje len ak človek ručne pridá nejaké doplnkové parametre.Ach jo. Já nevím, jestli jste troll nebo to myslíte vážně. Zvolená míra redundance funguje vždy a je úlohou admina nastavit ten systém tak, aby i po očekávaném výpadku zařízení byly splněny dané podmínky. Tj nikoliv si nastavovat degraded jako default (jak tady někdo blbě radil), ale mít takový počet disků, aby při očekávaném výpadku počtu disků byly stále splněny podmínky. Tj pro raid1 a výpadku jednoho disku mít minimálně tři disky. Problém je, že se tady (nejen v této diskusi) furt bavíme o jednom až dvou discích a tedy se neustále naráží na krajní podmínky a potom se vymýšlejí kravská řešení. BTRFS je multidevice fs, takže jich tam můžete mít kolik chcete. A ve chvíli, kdy máte dostatek disků a volné místo na fs, tak na tyto věci nikdy nenarazíte.
Človek si predsa zapína RAID aby vedel s poľom fungovať vždy, nie len po vynútení.Pro mě tohle neplatí. Já si redundanci nastavuji, abych snížil riziko ztráty dat. Dostupnost se řeší jinak. Ono totiž tohle je další příklad tunelového vidění. Řeší se jen disky a dostupnost pole. Ale on ten komp může shořet jako celek. Takže pokud potřebujete dostupná data, musíte mít automaticky více kompů.
To je oproti bežnej kombinácii EXT FS na SW RAID, alebo ZFS trošku dosť nepohodlné.Tak si to používejte, pokud vám to vyhovuje. Nikdo vám přece nic nenutí.
Ak pripíšem dáta na degradované diskové pole, tak ich zapisuje v profile single, a nie mirror aj keď bolo pole vytvorené s profilom mirror.A jak přesně by to měl zapisovat jako mirror, když nemá dostatek zařízení?
Tj pro raid1 a výpadku jednoho disku mít minimálně tři disky.Když je to úlohou admina, tak mi určitě poradíte, jak vyřešit následující: mám server s 12 sloty pro disky, požadovaná úroveň je RAID 1, požadavky na kapacitu vyžadují použití šesti polí, přičemž server má tři druhy úložišť (v konfiguraci 1/2/3 spojená pole), na které se používají různé disky. Kromě prvního druhu úložiště vytvořeného z jednoho pole je zbývající volné místo úložiště menší než kapacita jednoho disku, který dané pole tvoří. Při výpadku kteréhokoliv disku musí být (váš požadavek) úroveň raidu zachována. Jak?
Ale on ten komp může shořet jako celek.Pravděpodobnost jednotlivých událostí tu hraje docela zásadní faktor. Kolikrát vám shořel komp a kolikrát vám chcípnul disk? Za mě ten rozdíl bude tak o dva řády.
Pravděpodobnost jednotlivých událostí tu hraje docela zásadní faktor. Kolikrát vám shořel komp a kolikrát vám chcípnul disk? Za mě ten rozdíl bude tak o dva řády.Jasně. Ale pointa byla v tom, že ty věci lze dělat a přemýšlet o nich i jinak. Buď budu mít jeden jediný pozlacený server, který nikdy nechcípne, nebo půjdou cestou jako google na počátku, tedy mít levné desky na poličce a když jedna chcípne, tak se nic nestane. Právě proto jsem v soukromí přestal řešit bedny pro x disků, řadiče disků apod. Prostě mám vedle sebe několik beden, každá 6 disků na levné základce. Nakonec je to i levnější řešení, protože ta bižuterie kolem (tj bedna, zdroj, deska, cpu, paměti) jsou ve skutečnosti levnější, než nějaká jedna bedna pro 48 disků. Navíc se tím získá i výpočetní výkon, takže můzu snadno rozhodit úlohy mezi x cores dostupných na síti. Ony i ty levné obyč i5 něco dokážou spočítat.
jaký smysl má pokládat neřešitelné otázky. Prostě si pořiďte 3 servery, nebo já nevím.Smysl je jednoduchý - ne ve všech situacích je možné splnit to, že v serveru bude pro každé pole spare disk. (I když jako pole budu brát hromadu disků spojených do jednoho btrfs, abych nezanedbal výhodu, kterou softwarový MD nemá.) Tohle je případ, kdy se tam prostě nevejde. I kdyby se vešel, bavíme se o nějakých 1/4 milionu v nevyužitých discích (i když na něj btrfs bude zapisovat, nevyužitelné volné místo bude vždy větší než kapacita jednoho disku, tj. v poli je nevyužitý disk) V případě, že bych si pořídil "3 servery", tak se kvůli tomu požadavku dostávám na řádově miliony za hardware a nějaké statisíce ročně za místo v datacentru. Obojí je více či méně ekonomický nesmysl - aspoň do určité velikosti firmy, pak už je to asi jedno. A režim fungování, že v případě výpadku disku někdo dojede DC disk nahradit nějakým spare ze skladové zásoby, je perfektně validní. I když vývojáři btrfs tvrdí opak.
To pole malo stále dostatok zariadení na zrkadlenie dát. Zlikvidoval som mu len dva zo štyroch LUNov. A aj napriek tomu to vyriešilo východzím profilom. Toto je krásne prekvapenie.Ak pripíšem dáta na degradované diskové pole, tak ich zapisuje v profile single, a nie mirror aj keď bolo pole vytvorené s profilom mirror.A jak přesně by to měl zapisovat jako mirror, když nemá dostatek zařízení?
Tak si to používejte, pokud vám to vyhovuje. Nikdo vám přece nic nenutí.Veď to aj robím. Používam to, čo mi vyhovuje, Do budúcnosti ma zaujalo či náhodou BTRFS nechce dohnať ostatné moderné FS. Ale vidím, že stále nie.
Do budúcnosti ma zaujalo či náhodou BTRFS nechce dohnať ostatné moderné FS. Ale vidím, že stále nie.
Které? Prosím konkrétní seznam. Tohle je fakt hloupý FUD.
Ten seznam "moderních" filesystémů nebude; tobych se vsadil. :-P Jsem na něj opravdu zvědavý.
To pole malo stále dostatok zariadení na zrkadlenie dát. Zlikvidoval som mu len dva zo štyroch LUNov. A aj napriek tomu to vyriešilo východzím profilom. Toto je krásne prekvapenie.
No, jak jsi na tom s takovými těmi počty? Myslím jako první třída a tak…?
Takže: Máš profil raid1c3
, jo? Co znamená c3
? Tři kopie.
Když ze 4 zařízení odstraníš 2, kolik zařízení tam zbude? Že by dvě? Takže, jak přesně na dvou zařízeních vytvoříš tři kopie dat?! Zázrakem?
Jasně, mohl bys chtít, aby jen tak najednou na některém z toho nedostatečného počtu zařízení vznikl profildup
, sám od sebe. To by bylo zajímavé. Který jiný filesystém tohle má? (Hint: Žádný. Dvojí metr. Už zase.)
SW RAID je FS? Zajímavé.Vytvorím si SW RAID nad štyrmi diskamiDo budúcnosti ma zaujalo či náhodou BTRFS nechce dohnať ostatné moderné FS. Ale vidím, že stále nie.Které? Prosím konkrétní seznam. Tohle je fakt hloupý FUD.
V prípade BTRFS sa to celé zablokuje.On vám někdo zakázal ten BTRFS vytvořit nad tím SW RAIDem se čtyřmi disky? Jako pokud nevěříte multidevice vlastnostem btrfs, tak si jej vytvořte nad polem a budete mít stále věci jako atomické snapshoty apod.
1 ; 1 ; 0 0 ; 1 ; 1 1 ; 0 ; 1Presne takhle to funguje, jinak receno, tretim diskem se zvedne celkova kapacita toho raidu. Kdyz chcipne ten treti disk, tak sem prisel o 2/3 duplikatu. Takze na tom nejsem o moc lip, nez kdyz mi chcipne jeden ze dvou disku. Je totiz uplne jedno kolik tech disku bude, ve 100% po selhani disku dojde je ztrate duplicity. A je dokonce i uplne jedno, jestli budes prouzivat ten tripl/quadro raid, protoze tam plati presne totez, jakmile selze disk, uz to neni pozadovany raid. --- Dete s tim guuglem dopice!
ve 100% po selhani disku dojde je ztrate duplicityNo to jistě, ale důležité je, že stále bude schopen zapisovat ve zvoleném profilu. Proto je důležité mít víc diskových zařízení a volné místo na výpadek požadovaného počtu disků. Mód raid1c3 je skvělý v tom, že po výpadku disku ta stávající data budou stále duplikována ve dvou kopiích. Tj tlak na rychlou výměnu vadného disku nebo rebalance je o to nižší. Pro úplné paranoiky je tady i raid1c4. Tj mít 6 disků, raid1c3 a máš super zabezpečená data a mnohem menší tlak na výmenu disku, než v případě libovolného jiného raid1e (dvě kopie). Je samozřejmně otázka, jestli u takto nízkého počtu disků není lepší použít raid6. To potom záleží na potřebě výkonu.
(proto je důležité mít volné místo)
Ako zadám daný parameter pri štarte OS keď sa jedná o /, a koľko bežných reštartov to vydrží bez servisného zásahu?
Používal jsi už někdy Linux? Příkazová řádka kernelu ti něco říká?
Už asi desetkrát je v tomhle vlákně zopakováno: Nastav si klidně flag degraded
permanentně, rovnou v příkazové řádce kernelu i v /etc/fstab
, pokud si myslíš, že se to takovým způsobem má chovat.
Kolik kilometrů dlouhého vedení máš ještě v zásobě?
Nejedná sa mi o magický oltár, okolo ktorého musí človek tancovať aby neupadol v nepriazeň osudu.
Pokud používáš Ext4 nebo jiné filesytémy navržené v minulém století, přesně u takového magického oltáře tancuješ a prosíš kvantová božstva, aby si z tvých dat neukousla příliš velké sousto.
Samozrejme že áno. Ale nerozumiem prečo by som mal v prípade použitia BTRFS vykonať zásah ktorý mi umožní aspoň čiastočne použiť to, čo je už desaťročia východzím chovaním u iných a bežnejších riešení.Ako zadám daný parameter pri štarte OS keď sa jedná o /, a koľko bežných reštartov to vydrží bez servisného zásahu?Používal jsi už někdy Linux? Příkazová řádka kernelu ti něco říká?
Pokiaľ potrebujem zabezpečiť konzistenciu dát, tak nepoužijem čistý EXT4. Ale to som už spomínal.Nejedná sa mi o magický oltár, okolo ktorého musí človek tancovať aby neupadol v nepriazeň osudu.Pokud používáš Ext4 nebo jiné filesytémy navržené v minulém století, přesně u takového magického oltáře tancuješ a prosíš kvantová božstva, aby si z tvých dat neukousla příliš velké sousto.
…čo je už desaťročia východzím chovaním u iných a bežnejších riešení.
Ne, není. Srovnáváš nesrovnatelné. To výchozí chování (celá desetiletí) bylo zhruba takové, že to naprosto nedefinovaně selhalo.
Pravda to je, resp. byla.
Celá tahle diskuse začíná být názorným přehledem toho, jak vzniká (a jak se udržuje při životě) nesmyslný FUD.
Jinými slovy, opět 0 argumentů. Proč máš stále potřebu hájit fosilní souborové systémy? Cui prodest?
Tahle polopravda z minulosti už dnes neplatí. Kromě toho, který máme rok? 2013?
a ti, co to opravdu udělajíJá už to opravdu dělám od roku 2011 a fsck jsem nikdy nepotřeboval, na vlastnost raid1 jsem nikdy nenarazil a tak dále. Z BTRFS se prostě stal jen otloukánek v diskusích. Nic víc. Ano, má svoje chyby, stejně jako jakýkoliv jiný software. Ale zatímco u ostatního to lidi tak nějak tiše ignorují (nebo ani nezaznamenají), tak na btrfs je potřeba si pořádně došlápnout. A to i v případech, kdy za to fs vůbec nemůže (viz případy potíží s lvm, nebo mdraidem, za které podle tazatelů může FS). Vůbec nejzábavnější jsou hate typu: když tam mám sto tisíc snapshotů, tak je to pomalé. Ok fajn, tak mi udělej sto tisíc snapshotů na ext4 a potom přijď (tj kategorie nikdo jiný to sice neumí, ale budu to pro jistotu hejtit taky).
když ve stabilním FS bylo tohleMám asi milion historek tohoto typu. Víš, kdy jsem naposledy* přišel o FS (nikoliv o data, ta jsou na zálohách)? Byla to kombinace "vlastností" mdadm a systemd. Disky jsem měl na HBA, který začal zlobit. Náhodně je odpojoval a připojoval. mdraid má tebou opěvovanou vlastnost, že disk po objevení znovu připojí do pole a podle bitmapy začne syncovat. Takhle postupně vypadly asi 4 disky ze 6 (RAID10). Ano, jednoznačně chyba HW. Dal jsem to na jinej řadič, mdadm pole nesložilo. Tak jsem si s tím chtěl pohrát, složil jsem pole (--force). Systemd nenapadlo nic lepšího, než device, na které tou dobou už několik hodin čekal, přimountovat, pochopitelně rw. To byl poslední hřebíček do rakve. Chtěl jsem udělat ro check, chtěl jsem se na to podívat apod. Ne, "vlastnost" systemd mi to zhatila. A takových případů mám hodně. Takže jestli se někdo pos*re z toho, že fs mu jde připojit jen RO (s tím, že všechna data má v pořádku), tak s prominutím v IT nic nezažil. *) Ve skutečnosti to byl jediný případ za posledních 10+let.
mdraid má tebou opěvovanou vlastnost, že disk po objevení znovu připojí do pole a podle bitmapy začne syncovatTy jo, já mám pocit, že pole bylo potřeba znovu sestavit (nebo device do běžícího pole ručně přidat), aby začal resync, což se typicky stane po rebootu (nebo samozřejmě ručním zásahu). Nedělá tvé systemd kromě automatického mountování (lol) i nějaké pokusy s automatickým přidáváním disků do pole?
Takže jestli se někdo pos*re z toho, že fs mu jde připojit jen RO (s tím, že všechna data má v pořádku), tak s prominutím v IT nic nezažil.Já se z toho „neposral“, jenom to snižuje dostupnost, přidělává opruz a práci.
pole bylo potřeba znovu sestavitNo jistě. mdadm jej automaticky nesestavil, musel jsem mu pomoct.
Nedělá tvé systemdTo není mé systemd. Systemd zkrátka čeká až se objeví device, které se má připojit. event driven. Když o tom člověk ví, tak to není zase tak nelogické. Ale je potřeba pamatovat na zastavení té automaticky vygenerové unity z fstabu. Problém je, že to nastalo během divokého přechodu na systemd a nikdo na tyto zvláštnosti neupozorňoval. (Což je opět pikantní, já jako systemd hater jsem si nejdřív musel napsat články a potom si je přečíst, abych se o systemd něco dozvěděl. Ti systemd loveři jaksi nic nepsali.) Poznámka na okraj, já už do fstabu žádné další fs nedávám. Cokoliv nad rámec rootfs si píšu rovnou jako mount a automount unity. Stejně jako už nepoužívám cron a na všechno si píšu timery.
Z BTRFS se prostě stal jen otloukánek v diskusích. Nic víc.Za což ovšem z velké části mohou lidi, co jej doporučovali, i když pro nasazení ještě vhodný nebyl.
Vůbec nejzábavnější jsou hate typu: když tam mám sto tisíc snapshotů, tak je to pomalé.Pokud ten dotyčný dostal od Andreje-like člověka radu "použij btrfs" a nefunguje to, tak je to vcelku oprávněná stížnost.
Ne, tahle diskuze ukazuje, že FS je především o důvěře.
Tak jak je potom možné, že dnes ještě někdo používá Ext4 a podobné "skvosty"?
Kromě toho, co je to ta důvěra? Jsou to nějaká přesná data z většího testování? Nebo jsou to dobře zdokumentované algoritmy podpořené náležitými matematickými základy? Nebo jsou to jenom dojmy, anekdoty a plácání prázdné slámy?
Celá tahle debata nakonec není o důvěře, nýbrž o nesmyslném dvojím metru, který se na moderní filesystémy aplikuje.
Už mnoho let tu lidem cpeš do hlavy, že btrfs už je stabilní a nemusí se bát ho používat
Opět jsi nepochopil, co tvrdím. Já necpu lidem do hlavy, že se Btrfs nemusí bát používat, nýbrž že se Btrfs mají bát nepoužívat. To je dost podstatný rozdíl.
A ano, už mnoho let mám pravdu; co se dá dělat.
zjistí, že neexistuje fsck (<=2014?)
No a? Samozřejmě, že u moderního filesystému typu ZFS nebo Btrfs nemá existovat fosilní nesmysl typu FSCK.
Není nijak překvapivé, že ani ZFS žádný FSCK nemá. (Přesto kolem něj existuje méně FUDu než kolem Btrfs, kupodivu.) Kde se asi tahle absence FSCK vzala? Že by snad experti na filesystémy, kteří vytvořili Btrfs a ZFS, netušili, co dělají, a potřebovali by poradit od chytrolínů na ABCLinuxu?
Pravda, pro Btrfs pár utilit na způsob FSCK (které jsem už zmiňoval) vzniklo. Nejspíš aby už chytrolíni drželi zobáky a aby mohli tu a tam dostat svá data z disků tak zbořených, že by to většina jiných filesystémů neustála — jenže dvojí metr praví, že Btrfs to přece ustát musí.
Rozpor v pseudoargumentech kolem FSCK je celkem zjevný:
Takže, co z toho^^^ platí? Jestli obojí naráz, tak který filesystém to obojí splňuje, jen tak pro zajímavost a pro srovnání?
Jistě, uvedené problémy jsou již opraveny, ale naprosto očekávaný strach lidí je „když ve stabilním FS bylo tohle, tak co za další překvapení nás tam ještě čeká“.
Proč se ten očekávaný strach nevztahuje na "stabilní" Ext4, který má každé 3 roky své (už skoro) tradiční bugy se ztrátou dat? Poslední dobrodružství se konalo v roce 2018, takže další je asi plánované na rok 2021, předpokládám…
Proč tomu očekávanému strachu nevadí, když data nejsou checksumovaná ani redundantní?
Proč ten očekávaný strach nekřičí, že nemá copy-on-write a atomické snapshoty, že u spousty use case dochází ke zbytečnému fyzickému kopírování víc dat, než by bylo potřeba, což by tolik nevadilo, kdyby data byla checksumovaná … jenže …
A takhle by se dalo pokračovat ještě dlouho.
a fsck jsem nikdy nepotřeboval
No a? Samozřejmě, že u moderního filesystému typu ZFS nebo Btrfs nemá existovat fosilní nesmysl typu FSCK.A jak tedy zjistíte, že datové struktury FS přestaly být validní? A ještě lépe, jak je opravíte? (pak je samozřejmě k diskuzi, jestli by se při jakémkoli poškození neměl celý FS zrušit a udělat znova; osobně si myslím, že pro nějaký drobný problém je to overkill když máte fsck který ověří že to je po opravě v pořádku, ale chápu že by bylo samozřejmě lepší to celé zkopírovat na čisto; ještě důležitější samozřejmě je zjistit, proč se chyba stala, ale to prostě často nejde -- jádro máte aktuální, pustíte přes noc memtest, nic nenajde, a co dál)
Kromě toho, co je to ta důvěra? Jsou to nějaká přesná data z většího testování? Nebo jsou to dobře zdokumentované algoritmy podpořené náležitými matematickými základy? Nebo jsou to jenom dojmy, anekdoty a plácání prázdné slámy?Jsou to anekdoty, často bohužel osobně prožité. Já mám za sebou konkrétně
Na jedné straně se má ten moderní filesystém přece vždycky sám opravit a automaticky namountovat read/write, stůj co stůjTo překrucuješ schválně, nebo fakt nečteš pozorně?
Proč se ten očekávaný strach nevztahuje na "stabilní" Ext4, který má každé 3 roky své (už skoro) tradiční bugy se ztrátou dat?Ještě záleží na tom, jak složité je na ten bug narazit.
Proč tomu očekávanému strachu nevadí, když data nejsou checksumovaná ani redundantní?Vadí, ale pokud si má vybrat mezi FS s checksumovanými daty ale historií podivných problémů a FS který nemá ani jedno (přičemž checksumuje disk, což je samozřejmě blackbox a kdo ví jaké jsou tam chyby, a redundanci dělá MD, což je naopak v pohodě), tak bere to druhé. btrfs ale furt zkouším a i na některých místech používám, a opravdu musím říct, že se problémy v posledních pár letech výrazně vyřešily. Ještě pár dalších let a třeba mu zase začnu věřit ;).
Proč ten očekávaný strach nekřičí, že nemá copy-on-write a atomické snapshotyKřičí, a občas se mi stane, že si omylem něco smažu, a musím se vracet třeba k denní záloze, zatímco 5minutové snapshoty držené hodinu zpátky by byly super a snapshoty jsou hlavní důvod, proč btrfs chci.
že u spousty use case dochází ke zbytečnému fyzickému kopírování víc dat, než by bylo potřebaMám pocit, že tohle se u mě děje jenom když si chci něco zkusit s nějakým velkým souborem, kde by bylo vhodnější vytvořit snapshot než ho celý kopírovat.
Na zjišťování problémů a automatickou opravu je scrub
.
Může se zdát podivné, že připomíná "FSCK v kernelu", nicméně je to celkem v souladu s ideou, že systém má mít co nejdéle uptime a co nejméně důvodů být v neobvyklém offline režimu, kdy běží FSCK na odmountovaných discích a nic jiného se nedá dělat.
Kromě toho mělo kdysi dávno smysl mít FSCK mimo kernel kvůli velikosti příslušného kódu. To ale při dnešních velikostech RAM (a při nápadech typu deduplikace na ZFS) nemá až tak valný smysl, což je jeden z těch mnoha důvodů přechodu od FSCK ke scrub
u.
Dlužno taky dodat, že scrub
trvá (obecně) mnohem déle než FSCK (bereme-li třeba Ext4 za vzor, jak dlouho má trvat FSCK), protože u Ext4 nejsou žádné checksumy dat ke kontrole. Proto je lepší, když se dá se systémem (aspoň omezeně) pracovat během scrub
u.
Případný oddělený FSCK pro Btrfs by taky znamenal, že by se musel na dvou místech udržovat kód, který by dělal něco velmi podobného, jen v jiném prostředí, s jinými požadavky na synchronizaci atd. Což nemusí být zrovna nejlepší využití času vývojářů.
…ale historií podivných problémů…
Otázka je, co z toho je skutečná historie Btrfs a co souvisí spíš s faktory mimo ten souborový systém.
Některé anekdoty mi (vzdáleně) připomínají začátky PulseAudio. V prvních 5 letech jeho existence jsem PulseAudio vyhazoval, jak jen to šlo, všechno buildil bez něj atd. Důvod byl ten, že to na žádném mém stroji nefungovalo. Nejčastěji zvuk nebyl vůbec. Nebo neexistovala možnost zároveň nahrávat a přehrávat, tedy mít normální online hovor. Nebo se místo očekávaného zvuku ozvalo něco divného, jako by si to rozdávali roboti.
Když se na to dívám zpětně, skoro nic z toho nebyly chyby v PluseAudio (byť něco málo možná jo). Jak se později ukázalo, vyplul zkrátka na povrch nepříjemný počet dlouho skrytých bugů v ALSA driverech všeho druhu.
Dnes mi PulseAudio funguje skvěle. Přes Bluetooth umí aptX. Přehrává mi všechno lokálně i po síti. Neumím si bez něj desktop představit.
Těžko říct, podobně na tom může být některý hardware (v anekdotách často zmiňovaný), který třeba s Ext4 "funguje" (v tom smyslu, že se na první pohled nic překvapivého neděje), zatímco s Btrfs to třeba najednou začne odlétat na některý z checksumů, které nesedí vlivem bitflipu v paměti.
To^^^ je samozřejmě znepokojivé a nepříjemné, ale nepřipadá mi to jako důvod nedůvěřovat Btrfs a důvěřovat tomu jinému filesystému. Rozumné dlouhodobé řešení podle mě netkví v tom, že se problém bude ignorovat a/nebo používat takový filesystém, který ho ignoruje.
Konkrétně tento nepříjemný zážitek s Btrfs jsem měl taky:
- FS je ve stavu že při každém mountu je potřeba udělat zero log
Bylo to v roce 2012. Chtěl jsem Btrfs RAID 5, jenže co s tím, když tenkrát žádný neexistoval. Disků bylo 5 a asi jsem na ně měl dát RAID 1 (v tom smyslu, v jakém ho definuje Btrfs), jenže i tuhle variantu jsem zavrhnul. (Přece nebudu mít jenom polovinu místa, blablabla, atd.)
Inu, udělal jsem tedy to, co se dělat nemělo a co návody velmi výslovně nedoporučovaly: mdadm
AID 5 a na tom Btrfs. Problém s tím byl hlavně proto, že tahle kombinace měla nějaký notoricky známý problém se synchronizací; Btrfs prostě nebyl na tenhle režim provozu navržený a měl mít vlastní RAID. (Taky v Btrfs není žádný optimalizační hint jako stride a stripe width; prostě to nad softwarovým AIDem být nemá.)
Asi 2 měsíce to takhle běželo, jenže potom, po nějakém divném restartu, resilveringu toho mdadm
a kdesičemsi dalším začala dlouho trvající otrava s btrfs-zero-log
(což je dnes btrfs rescue zero-log
; tenkrát to byla samostatná binárka). Sice ne při každém mountu, ale asi tak při každém pátém jo.
Celkově to rozhodně nebyla příjemná zkušenost, to ani náhodou, nicméně nenapadlo by mě vinit z důsledků takového experimentu Btrfs a/nebo usuzovat na základě toho cokoliv ohledně fungování Btrfs dnes.
Některé anekdoty mi (vzdáleně) připomínají začátky PulseAudio.Totéž v bledě modrém se stalo při vývoji ZFS, kdy se postupně zjišťovalo, že některé disky lžou o provedení flush cache apod. Je celkem záhadou, že se na to nepřišlo už třeba při lvm bariérách, ale tak multidevice fs jsou mnohem náchylnější na to, co všechno se ne/zapíše na jednotlivé device. Nebo experimenty mého kámoše s nvme diskem (Intel 600p NVMe), kdy mu to bořilo XFS. Prozkoumali to borci z RH a našli další bugy v HW.
V podstatě nemůžu; fakt netuším, co se tam mohlo stát. Určitě se na tom dají donekonečna zkoušet různé tooly pro obnovu, ale pokud se to (na příslušném disku / řadiči / hardwaru / kernelu) dál samo od sebe posírá, těžko říct, co s tím. Sám jsem takovou situaci nezažil. Kdyby jo, asi bych zkoušel postupně vyloučit možné příčiny, než by mi došla trpělivost a nahradil bych asi tak všechen hardware kolem toho.
Na přejmenování subvolume nic špatného nevidím. U nějakých snapshotů jsem je párkrát přejmenoval klidně skriptem po desítkách a nikdy jsem s tím neměl problém.
Jinak fakt nevím, co tam může být špatně. (Možnost zpětně to zjistit by byla velmi pěkná feature, ale obávám se, že to by mohlo jít jedině na nějakém striktně log-structured filesystému (a to ještě kdoví jestli).)
/.subvolumes(adresar)/{data,fotky,neco}(vse subvolume)na
/.subvols(adresar)/{data,fotky,neco}(vse subvolume)kdyz se to chovalo divne, prejmenoval zpatky...
cd projekty; btrfs sub create další_projekt; práce; btrfs sub snap co kam
.) Lze přejmenovávat cokoliv. Jak subvolumes, tak libovolnou část stromu. Nevíme, v jakém stavu (a proč) ten fs byl. Rozhodně je zvláštní hned na to pouštět repair
, který se v manu uvádí až jako poslední možnost.
Prostě celá tato historka by se dala shrnout: udělal jsem něco nevím co, opravil jsem to nevím jak a dál už jsem to nepoužíval. Ergo, btrfs je nahovno.
yyy
je obyč addr, aaa
je subvol
# btrfs sub list . ID 260 gen 56379 top level 5 path g2 ID 292 gen 56397 top level 5 path yyy/aaaNamountujeme:
# mount /dev/disk /mnt -o subvol=yyy/aaaVýpis mount:
/dev/disk on /mnt type btrfs (rw,relatime,ssd,space_cache,subvolid=292,subvol=/yyy/aaa)Přejmenujeme:
# mv yyy zzzA výpis mount se změní:
/dev/disk on /mnt type btrfs (rw,relatime,ssd,space_cache,subvolid=292,subvol=/zzz/aaa)Tj i pro namountovanou subvolume můžeme přejmenovat její cestu. Nebo i tu subvolume samotnou (což mě teda překvapilo, ale on to referencuje podle ID nikoliv podle jména zadaného při mountu):
# mv aaa bbb
/dev/disk on /mnt type btrfs (rw,relatime,ssd,space_cache,subvolid=292,subvol=/zzz/bbb)Tj přejmenováním to fakt nebylo.
Otázka je, co z toho je skutečná historie Btrfs a co souvisí spíš s faktory mimo ten souborový systém.Takže ext4 ztrácí data, zatímco když btrfs udělá chybu, tak je to faktor mimo souborový systém. Nechtěl jste přestat s tím dvojím metrem?
nicméně nenapadlo by mě vinit z důsledků takového experimentu BtrfsAno, protože Btrfs je pro vás svatá kráva. Filesystém, který "musí být navržený" na to, aby fungoval nad SW RAID5, je chybný. Z jeho pohledu to má být blokové zařízení jako každé jiné.
Takže ext4 ztrácí data…
Ano. Ve slavných letech 2009, 2012, 2015 i 2018 ztrácel data přímo vlivem bugů (ať už přímo v Ext4 nebo v interakci s VFS).
O tom, jaká je tady souvislost s nespolehlivými úložišti a silent data corruption, už bylo taktéž napsáno dost. Ext4 tiše toleruje chyby, jejich pravděpodobnost je technicky možné výrazně snížit (z pravděpodobnosti, že se stanou, na pravděpodobnost, že se stanou, krát pravděpodobnost kolize hashů).
…zatímco když btrfs udělá chybu…
Dvojí metr spočívá nejčastěji v definici toho, kdy udělá chybu. Pokud běží na hardwaru, na kterém mu prostě tu a tam nesedí checksum, jen tak sám od sebe, není to chyba Btrfs.
Když Btrfs (opravdu) udělá chybu, jistě je dobré to zdokumentovat, nahlásit a opravit, stejně jako u kteréhokoliv jiného softwaru. Tvrdil tu snad někdo opak?
Filesystém, který "musí být navržený" na to, aby fungoval nad SW RAID5, je chybný. Z jeho pohledu to má být blokové zařízení jako každé jiné.
Aha. No jasně. Podle některé je ten svět tak krásně jednoduchoučký… Málem by jim člověk tu představu záviděl.
Ve slavných letech 2009, 2012, 2015 i 2018 ztrácel data přímo vlivem bugů (ať už přímo v Ext4 nebo v interakci s VFS).l.ž.e.t.e.
Podle některé je ten svět tak krásně jednoduchoučký...Ono je to tak jednoduchoučké. Blokové zařízení je blokové zařízení. Uložím tam data, dostanu odtud data. Pokud filesystém dělá nějaké ptákoviny, které dokážou způsobit problém, je blbě navržený
Ve slavných letech 2009, 2012, 2015 i 2018 ztrácel data přímo vlivem bugů (ať už přímo v Ext4 nebo v interakci s VFS).l.ž.e.t.e.
Pravil šiřitel lží a FUDů. Výborně.
Podle některé je ten svět tak krásně jednoduchoučký...
Ono je to tak jednoduchoučké. Blokové zařízení je blokové zařízení. Uložím tam data, dostanu odtud data.
Jo? Opravdu? A co když ne? Co když bude v každém TB jeden bit jinak? Vadí to? Někdy jo, někdy ne. Je lepší nemuset o takových věcech vůbec uvažovat.
Pokud filesystém dělá nějaké ptákoviny, které dokážou způsobit problém, je blbě navržený
Tady^^^ je ale najednou řeč o Ext4, že? Ano, pokud filesystém dělá nějaké ptákoviny — což jsou například nechecksumovaná data nebo naprostá absence jakékoliv redundance —, je blbě navržený.
Pravda, není fair Ext4 tolik kritizovat; návrh Ext4 je zkrátka poplatný své době a je prostou evolucí něčeho, co pochází z dob 1-gigabytových disků a 1-diskových počítačů. (Do roku 2020 tedy rozhodně nepatří.)
Pravil šiřitel lží a FUDůAno, lží a FUDů jste tu pravil hodně.
Co když bude v každém TB jeden bit jinak? Vadí to? Někdy jo, někdy ne.Kdyby se mi to stalo, asi by mi to vadilo.
Tady^^^ je ale najednou řeč o Ext4, že?Ne, ext4 nemá s provozem nad RAID5 žádný problém. Příště čtěte pozorněji
Kdyby se mi to stalo...A dá se to trvdit s jistotou když ext4 nemá checksum? Nikdy jsem nedostal chybovou hlášku, že mi v RAM přeskočil bit, ale jelikož nemám ECC paměti, tak předpokládám, že se to statisticky už mockrát stalo.
Pokud bude chyba v datech, na příslušném dokumentu se to s docela velkou pravděpodobností pozná.Ano, měl jsem na mysli v datech, které ext4 nechecksumuje. Pokud se změní bit v dokumentu, tak to může poznat SW, který dokument otevírá a sám si to "opraví" (pokud to vůbec bude považovat za chybu), ale uživatel (ty) se to dozvědět nemusí. Příklad: Když z HTML dokumentu odebereš koncový tag "body" nebo "html" (což je hóóódně odebraných bitů), tak to nepoznáš. Proto se ptám kde bereš jistotu, že jsi neměl nějaký bit na ext4 jinak.
Dtto. s tou pamětí, něco nejspíš spadneTo si nemyslím. Kdysi jsem četl, že se to může v editoru obrázku projevit jen tím, že ti přeskočí pixel v obrázku a to jako uživatel taky zřejmě nepoznáš.
Pokud bude chyba v metadatech (která mj. ext4 checksumuje), ten filesystém bude nabořený.
Z čeho přesně vyplývá tahle^^^ implikace? To je nějaký nesmysl z hororového světa Ext4. Pro Btrfs nic takového neplatí.
Pokud budou metadata na jednom disku v profilu dup
, opraví se prostě z druhé repliky, pokud druhé replice sedí checksumy. Život jde dál.
Pokud má filesystém replikaci přes víc disků, což může snadno mít, opraví se metadata z některé z ostatních kopií, kde sedí checksumy.
Pokud má filesystém paritu přes víc disků, dopočtou se metadata z té parity a z těch bloků ve stripu, ve kterých sedí checksumy.
Pokud je filesystém béčko typu Ext4 … ano, jedině pak bude nabořený a nic se neopraví.
Pokud bude chyba v datech, na příslušném dokumentu se to s docela velkou pravděpodobností pozná.
Jo, jasně. A dokument se pak manuálně obnoví ze záloh, že? Vtipné je, že přesně tohle mi jednou tvrdil týpek, který zálohoval pomocí
rsync -ac
a nechápal, proč je to -c
špatně. Situace se pak jmenuje "v datech seno —> v zálohách seno".
Z čeho přesně vyplývá tahle^^^ implikace? To je nějaký nesmysl z hororového světa Ext4. Pro Btrfs nic takového neplatí.Ale platí, rozdíl je jen ve způsobu opravy.
Rozdíl je v samotné možnosti opravy spíš než ve způsobu opravy.
Na neredundantním Ext4 bez checksumů se nic neopraví.
Rozdíl je v samotné možnosti opravyNe, není, oba systémy mají metodu, jakým takovou chybu opravit.
Prdlajs.
mdadm
/dmraid
+ Ext4 [voser už sám o sobě] prostě nikdy nic neopraví. Posere se.
Jo, na tu zázračnou "metodu" jsem zvědavý. Tak, kdepak je ta metoda, bez checksumů každého bloku??? No jasně. Nikde.
mdadm/dmraid + Ext4 [voser už sám o sobě] prostě nikdy nic neopraví. Posere se.Musíte použít správný nástroj. Fsck se to jmenuje.
Kdyby se mi to stalo, asi by mi to vadilo.
A zase ta tupá pseudologika ve stylu nebudu mít airbagy ani bezpečnostní pásy — autonehody se přece nedějí. A kdyby se nehoda stala? Jo, kdyby se mi to stalo, asi by mi to vadilo.
Odkudpak se s ubohým Ext4 bez checksumů dat může vzít jistota, že tam není silent data corruption?
Hlavně pokud někdo dál používá rozbitý hardware, na kterém Btrfs prý kdysi "selhal" (tedy ve skutečnosti fungoval, jak měl, a hlásil chyby checksumů), je víc než pravděpodobné, že už má ve svých datech seno a slámu.
Ne, ext4 nemá s provozem nad RAID5 žádný problém.
No ovšemže ne, protože nic takového jako RAID 5 s Ext4 neexistuje. Tedy Ext4 s tím nemá problém v tom smyslu, že něco takového jako RAID 5 vůbec neumí.
Ext4 může běžet nad AID 5 — a to je tedy vskutku výhra! (Poškození kteréhokoliv jednoho disku zničí všechna data. (Důvod, proč to mu tak je, se tady už řešil tisíckrát — resilvering bez checksumů je horší zlo než absence celého AIDu.)) Nechápu, proč někdo stále lpí na takových nebezpečných fosiliích. Nemá to smysl.
Nejblíž k RAID 5 se Ext4 dostane v kombinaci s dm-integrity
, no nicméně jde o hodně velký voser, pokud jde o výkon, o celkovou složitost konfigurace z hlediska uživatele i o flexibilitu výsledného pole (přidávání / odebírání zařízení atd).
Zkrátka a jednoduše: Kdo chce RAID 5, potřebuje Btrfs nebo ZFS. (Jenom to některým docvakne dřív a některým později.)
Tedy Ext4 s tím nemá problém v tom smyslu, že něco takového jako RAID 5 vůbec neumí.Stačí si přečíst dokumentaci, zjistíte, že zcela bez problémů.
Poškození kteréhokoliv jednoho disku zničí všechna dataA možná i wikipedii na téma RAID
Kdo chce RAID 5, potřebuje BtrfsA to nad SW RAIDem, což - vaše slova - návody velmi výslovně nedoporučovaly? Nebo se zabudovaným, který není doporučené používat?
Poškození kteréhokoliv jednoho disku zničí všechna dataA možná i wikipedii na téma RAID
Tohle naivní nepochopení celého problému je velmi úsměvné. (Nebo by z něj běhal mráz po zádech, kdyby šlo o někoho v roli admina zodpovědného za moje data.)
Kdo chce RAID 5, potřebuje BtrfsA to nad SW RAIDem, což - vaše slova - návody velmi výslovně nedoporučovaly? Nebo se zabudovaným, který není doporučené používat?
Jak přesně souvisí můj popis jakéhosi experimentu z roku 2012 s dlouhodobým ukládáním dat v roce 2020?
Každopádně, kdybych náhodou znova instaloval experimentální stroj, na jehož spolehlivosti nezáleží (jako tenkrát), a kdyby byl rok 2012, klidně bych takové dočasné pseudo-řešení zvolil znova. Jo, tenkrát před 8+ lety, kdy ZoL v rozumné podobě neexistoval a kdy Btrfs neměl RAID 5/6, byla spousta věcí komplikovanější než dnes.
V případě dat, na kterých mi dlouhodobě záleží, bych takovou habaďůru samozřejmě nedělal — stejně jako bych taková data nedal na Ext4 nebo na jiný neredundantní a nechecksumovaný FS.
Tohle naivní nepochopení celého problému je velmi úsměvné.Ano, je, ale i tak by bylo dobré, kdybyste se dovzdělal.
Jak přesně souvisí můj popis jakéhosi experimentu z roku 2012 s dlouhodobým ukládáním dat v roce 2020?Tak, že v Btrfs byl zjevně nějaký problém při provozu nad SW RAID5 (což je mimo jiné opravdu hloupá chyba ze strany Btrfs), jakého překvapení se dočkáme příště?
Tohle naivní nepochopení celého problému je velmi úsměvné.Ano, je, ale i tak by bylo dobré, kdybyste se dovzdělal.
Nedovzdělanec povídá někomu, aby se dovzdělal. To jako fakt vážně? Ach jo. To snad ne. Jaký level hlouposti tady ještě nebyl pokořený???
Pokud někdo nechápe, proč AID 5 (nebo AID 6), na rozdíl od RAID5 nebo RAID6, pokaždé zničí všechna data kvůli selhání jednoho disku, tak ať třeba prostě drží zobák a jde něco dělat lopatou. Už je toho nechápání opravdu moc.
Jak přesně souvisí můj popis jakéhosi experimentu z roku 2012 s dlouhodobým ukládáním dat v roce 2020?Tak, že v Btrfs byl zjevně nějaký problém při provozu nad SW RAID5 (což je mimo jiné opravdu hloupá chyba ze strany Btrfs), jakého překvapení se dočkáme příště?
Jakákoliv hypotetická chyba v Btrfs je pořád čajíček vůči data žeroucí sračce typu mdadm
/dmraid
+ Ext4. Jakého průseru se dočkáme v roce 2021?
Citát dne, pro méně důvtipné, z jednoho z nejpesimističtějších hodnocení Btrfs RAID5: …btrfs raid5 is quantitatively more robust against data corruption than ext4+mdadm (which cannot self-repair corruption at all)…
FUDisti všech zemí, jděte už konečně do prdele. Víte prd o světě. Víte prd o filesystémech. Což by nikomu nevadilo — jenom kdybyste drželi zobáky a nechrchlali kolem sebe FUD o moderních filesystémech.
Upřímnou soustrast zaměstnavatelům takových lidí.
Když si tak Andreji čtu ty tvoje dnešní arogantní a vulgární reakce a koukám na čas jejich odeslání. To jsi je jako psal po návratu z baru? Jestli ano, tak už to prosím tě nedělej. Btrfs se mi líbí a do budoucna jej určitě nasadím. Bylo velmi zajímavé sledovat celé vlákno. Ale číst tvoje urážky, to už nikoho moc neposune. Psal si přece, že to děláš kvůli druhým, ne? Jdi do sebe a místo urážek piš raději argumenty.
Pokud někdo nechápe, proč AID 5 (nebo AID 6), na rozdíl od RAID5 nebo RAID6, pokaždé zničí všechna data kvůli selhání jednoho diskuNe, nezničí. Zrovna nedávno jsem si to vyzkoušel, když jsem měnil disk. Data stále mám.
Jakákoliv hypotetická chyba v Btrfs je pořád čajíček vůči data žeroucí sračce typu mdadm/dmraid + Ext4.Bez ohledu na to, kolikrát to budete opakovat, Ext4 data nežere.
btrfs raid5 is quantitatively more robust against data corruption than ext4+mdadmTaky mám jednu citaci, je z letošního července:
RAID 5 and 6 have "lots of edge cases", though, and have been famously unreliable.
FUDisti všech zemí, jděte už konečně do prdele. Víte prd o světě. Víte prd o filesystémech.Nesouhlas s vašimi názory neříká nic o tom, co ostatní ví o světě či filesystémech.
Na zjišťování problémů a automatickou opravu je scrub.To je jak do dubu. scrub nekontroluje validitu datových struktur, jen že se přečetlo to, co se zapsalo. #39. Další diskuze myslím nemá cenu, protože zjevně nevíš, jak btrfs funguje, a to ani po té, co to tu popíšu.
zatímco s Btrfs to třeba najednou začne odlétat na některý z checksumůV případě 1 je scrub irelevantní, v případech 2-4 jsem ho udělal a prošel bez chyby. Checksumy tedy seděly.
Celkově to rozhodně nebyla příjemná zkušenost, to ani náhodouMně se to stalo s kernelem 4.9, takže někdy v roce 2017-2018. A problém není ani tak v tom, že se něco takového stane (kdyby se to jenom stalo, tak bych to považoval za chybu HW (desktop, non-ECC poměti), a ne za chybu btrfs!), problém je v tom, že se něco takového stane, a všechny dostupné nástroje na kontrolu filesystému (což je v případě btrfs bohužel jen ten scrub) potvrdí, že je ten filesystém v pořádku a ani při používání to nepíše do dmesg žádné chyby, umount korektně proběhne, a po rebootu se to stane znova. Kolik dalších skrytých chyb si neseme ve svých filesystémech, když jsem ten FS přistihl hned v několika případech, že o sobě tvrdí, že je OK, i když zjevně není?
scrub nekontroluje validitu datových struktur
Teď mi přijde, že si jen tak tropíš žerty. Tohle myslíš vážně?
Drobný hint: Jakpak se scrub
dozví, kde jsou data? Z jakých struktur asi? Nemusí si náhodou přečíst příslušná metadata? A nemusí je náhodou u toho taky zkontrolovat, jako ostatně při každé jiné diskové operaci?
An online filesystem checking tool. Reads all the data and metadata on the filesystem, and uses checksums and the duplicate copies from RAID storage to identify and repair any corrupt data.
Další diskuze myslím nemá cenu, protože zjevně nevíš, jak btrfs funguje, a to ani po té, co to tu popíšu.
Nápodobně. Zjevně netušíš, která bije. V každé diskusi o Btrfs přijdeš s mixem předsudků, anekdot z doby před pár lety a jednotvárným portfoliem stokrát vyvrácených pseudoargumentů. Cui prodest? Jak už jsem odpovídal někomu jinému ve vedlejším vlákně: Klidně používej FAT12, pokud ti to vyhovuje. Jenom mi nepřijde rozumné doporučovat podobné volby ostatním a šířit FUD o Btrfs.
Mně se to stalo s kernelem 4.9, takže někdy v roce 2017-2018. A problém není ani tak v tom, že se něco takového stane (kdyby se to jenom stalo, tak bych to považoval za chybu HW (desktop, non-ECC poměti), a ne za chybu btrfs!), problém je v tom, že se něco takového stane, a všechny dostupné nástroje na kontrolu filesystému (což je v případě btrfs bohužel jen ten scrub) potvrdí, že je ten filesystém v pořádku a ani při používání to nepíše do dmesg žádné chyby, umount korektně proběhne, a po rebootu se to stane znova.
Na tom samém hardwaru, kde předtím ta chyba vznikla? Jak překvapivé.
Kolik dalších skrytých chyb si neseme ve svých filesystémech, když jsem ten FS přistihl hned v několika případech, že o sobě tvrdí, že je OK, i když zjevně není?
Btrfs nemá křišťálovou kouli, aby mohl předvídat nečekané chování hardwaru a diagnostikovat původ každého kousku dat, který nesedí.
Nemůže to být třeba tak, že před bitflipem v RAM mu checksum sedí a po bitflipu ne? (Celou škálu jiných podobných chyb v řadičích, discích a kdovíčem všem si jistě dovedeš představit.) Pokud tam je takový problém, opravdu za něj může Btrfs?
Já bych v takové situaci Btrfs spíš poděkoval, že mě upozornil na problém s hardwarem, byť bohužel v křišťálové kouli nenašel odpověď, kde přesně problém je.
A jak tedy zjistíte, že datové struktury FS přestaly být validní?Tím, že mají checksumy a jsou duplikované?
A ještě lépe, jak je opravíte?Z těch kopií?
pak je samozřejmě k diskuzi, jestli by se při jakémkoli poškození neměl celý FS zrušit a udělat znovaTohle je můj default mnoho let. Já nikdy netrávím večery nad fsck.xfs (ten má ale docela pěkný výstup) nebo u fsck.ext4. Pokud je to poškození závažné (tj jednak se to neopraví při mountu ani na jeden průchod fsck), tak automaticky jdou zálohy.
degradovaný „RAID1“ lze rw připojit pouze jednouStačí přidat disk. Je to jen nepříjemnost.
corrupt leaf a následně fsck rekurzivně smazal /To naštve.
vyrobil jsem soubor, jehož čtení vrátí I/O errorMě se na ZFS podařilo vyrobit několik souborů, které odmítal cachovat (ARC). Nevím jak, možná konkrétní verze FreeBSD. Po překopírování OK. Jinak já jsem se s vadným BTRFS setkal pouze na nestandardním HW, který bych si sám nikdy nekoupil. A to na SSHD a potom na SSD s chybou NCQ TRIM. Na normálním obyč disku, který si na nic nehraje, to funguje ok.
Mám pocit, že tohle se u mě děje jenom když si chci něco zkusit s nějakým velkým souborem, kde by bylo vhodnější vytvořit snapshot než ho celý kopírovat.Tohle fakt záleží na tom, co člověk dělá, ale já btrfs používám jako systém správy verzí pro velká data. Mám tady stovky GB velké balíky dat s několika desítkami verzí (snapshotů) a to bych na klasickém fs fakt dělat nechtěl (bylo by to prakticky nemožné).
Tím, že mají checksumy a jsou duplikované?Vzhledem k tomu, že nejsem sám, kdo narazil na chybu uvnitř bloku, kterému vyšel checksum, a mají o tom stránku na wiki, tak asi ne.
Já nikdy netrávím večery nad fsck.xfs (ten má ale docela pěkný výstup) nebo u fsck.ext4.To není o trávení večerů, to je o takovém tom „inode blabla fix blabla OK“ co problikne při bootu, ani to nestačíš přečíst.
A to na SSHD a potom na SSD s chybou NCQ TRIM.No ale tohle přesně přece má řešit ta posvátná kráva že ti to napíše „nesedí ti checksum, disk corruptí data, vyhoď to“, ne že se to náhodně rozbije.
To není o trávení večerů, to je o takovém tom „inode blabla fix blabla OK“ co problikne při bootu, ani to nestačíš přečíst.Ehm. Prošel jsem si logy dva roky zpětně (ano, journald....) a žádné takové hlášky nikde nejsou. Hw, kde je potřeba fsck při bootu bych raději vyhodil.
ne že se to náhodně rozbije.Tady se pohybujeme daleko za hranou toho, co by měl FS zvládat. Pokud mu disk lže o zápisu, náhodně nuluje bloky apod. tak se to může chovat fakt různě. Od oznámení chybného checksumu (pokud se to náhodou trefí do datového bloku) až po celkově divné chování. Jako tady bych od FS mnoho neočekával a naopak sypání náhodných chyb do logu by mělo admina vést k podezření na vadný HW.
přes různé tvrdé výpadky v síti. Jen proběhne fsck a jede to dálTak teda tohle by bylo fakt smutné kdyby nějaký FS neustál.
Máš to rozbité a (zase) šíříš FUD.
Alebo som snáď urobil niekde chybu? Skús ma vyviesť z omylu, a ukázať ako BTRFS pole prežije výpadok disku…
Těžko říct. Problém je celkem jistě v detailech, které neuvádíš (například jak přesně jsi pole vytvořil atd.) Mně to funguje. Tady je to 100% kompletní:
set -e # Připravíme to. cd mkdir btrfs cd btrfs for i in {0..3}; do truncate -s 10G "$i"; done for i in {0..3}; do sudo losetup -f "$i"; done DEVICES=($(for i in {0..3}; do losetup -j "$i" | cut -d: -f1; done)) sudo mkfs.btrfs -m raid1c3 -d raid1c3 "${DEVICES[@]}" UUID="$(sudo btrfs fi show "${DEVICES[0]}" | awk '/^Label:/ {print $4}')" sudo mkdir -p /mnt # Zkontrolujeme, jestli to funguje. sudo mount -t btrfs UUID="$UUID" /mnt sudo chown -R "$USER" /mnt cp -a ~/.config /mnt/ # ~2+ GB všeho možného tar -c /mnt | sha512sum # Posereme to. sudo umount /mnt sudo losetup -d "${DEVICES[1]}" sudo losetup -d "${DEVICES[2]}" rm 1 2 # aby se neřeklo; 0 a 3 zůstanou. # Zkontrolujeme, jestli to funguje. sudo mount -t btrfs -o ro,degraded UUID="$UUID" /mnt tar -c /mnt | sha512sum # Uklidíme zbytek toho nepořádku. sudo umount /mnt sudo losetup -d "${DEVICES[0]}" sudo losetup -d "${DEVICES[3]}" rm 0 3 cd rmdir btrfs
Jsou tam po zmizení dvou zařízení moje data? Jsou. Takže fakt nevím, o co tady jde. Ta ješitnost, s jakou si představuješ, že se něco dostalo do kernelu bez důkladného testování, zatímco ty jediný jsi to fakt otestoval, je fakt vtipná.
Záměrně nekompletní filesystém je normálně k nalezení, včetně seznamu chybějících zařízení:
$ sudo btrfs fi show "${DEVICES[0]}" warning, device 2 is missing warning, device 3 is missing Label: none uuid: e721f69b-da0f-4330-93c3-1c61882037ef Total devices 4 FS bytes used 2.69GiB devid 1 size 10.00GiB used 2.00GiB path /dev/loop13 devid 4 size 10.00GiB used 2.26GiB path /dev/loop17 *** Some devices missing
…aj s viacnásobným reštartom.…
Vícenásobný restart, ať už se tím myslí cokoliv, může být úplně jiná kategorie rizikových situací, že? (A trochu off-topic.) Je to právě ten typ situace, kvůli kterému některé hardwarové AID řadiče měly/mají na sobě dokonce i akumulátory. Obecně platí, že vícenásobný restart při / po / během selhávání disků není dobrý nápad. (To snad nemusím připomínat.)
Oproti desaťročia overenej kombinácii (EXT FS a SW RAID) to naozaj a stále nefunguje.
V jakém smyslu je ta kombinace prověřená? Je 100% prověřená jedině v tom smyslu, že nefunguje a ztrácí data. A davy mamlasů žijí v iluzi, že svá data ještě mají. Ach jo.
Ja chápem že si si nevšimol o čo sa jedná, tak ti to pripomeniem:
Jedná sa o prístup k dátam po výpadku jedného z redundantných diskov. Schválne som obetoval asi 10 minút z môjho života aby som si overil že tú funkcionalitu BTRFS nik netestoval.
Já chápu, že neumíš používat Btrfs a pak se mylně domníváš, že ho nikdo netestoval. No tak používej třeba FAT12.
mkfs.btrfs --label "BtrFS-Test" --data RAID1C3 --metadata RAID1C3 --checksum sha256 /dev/loop20 /dev/loop21 /dev/loop22 /dev/loop23Následne som mu dva disky zobral (resp. nechal 2 disky na mirroring). Potom som to pripojil to na zápis, a vykonal zápis:
root@Ubuntu-2010:~# btrfs filesystem df /mnt/BTRFS Data, single: total=208.00MiB, used=0.00B Data, RAID1C3: total=965.50MiB, used=965.19MiB System, RAID1C3: total=8.00MiB, used=16.00KiB Metadata, RAID1C3: total=256.00MiB, used=7.89MiB GlobalReserve, single: total=7.81MiB, used=16.00KiB WARNING: Multiple block group profiles detected, see 'man btrfs(5)'. WARNING: Data: single, raid1c3Ako som spomínal, tak pripisoval v profile Single. Ja chápem že takéto chovanie je dostatočné pre niektorých ľudí. Ale taký single režim je jak používať spomínaný FAT FS. Je pravda že v tomto prípade ten BTRFS nemal plnú redundanciu. Ale takáto drobnosť nastane vždy, keď vypadne disk z poľa ktoré už nemá rezervný disk. Môj osobný názor nie je o tom, či je redundancia podmienená rezervným diskom. Môj názor je o tom, prečo sa redundancia zahodí pri výpadku.
Už je vyřešený problém uživatelů, kteří nemají rozumně nastavené kvóty, takže neprivilegovaný uživatel dokáže zaplnit disk?
On někdo počítá s uživateli s právy roota, kteří si nikde nenastaví žádné kvóty a zaplní disk? No nevím, já asi ani ne.
Mimochodem č. 1: Filesystémy, které se zmohly jen na jeden jediný disk, ale zaplnění je zbořilo (tak, že ani přidání (ram)disku nemohlo pomoct, protože víc než jeden disk neuměly), už tu byly (a nejspíš i jsou). ReiserFS i Reiser4 (jo, to už je dávno) by mohly barvitě vyprávět.
Mimochodem č. 2: Filesystému s takovou flexibilitou, že umožňuje bez umountu/mountu přidávat/odebírat disky, bych celkem směle jakýsi drobný problém odpustil.
Mimochodem č. 3: Disky a pole dnes na 100% zaplňuje … kdo přesně? V době, kdy byl 1 GB za 10 klacků, se to asi mohlo stát, ale to není tahle doba.
Podle mě ne. (Není náhodou, že se o tom píše v kapitole "I've heard that…".)
(Ne že by nebylo dobré si nastavit kvóty, ale celý problém je spíš v tom, že někteří věci neznalí jedinci mechanicky opakují zkazky z dob kernelů 3.x.)
df
jak ji postupně přibývá volné místo (obsazené ti spadne hned). A třeba to trvá i několik minut.O tom teda dost pochybuju.Prostě to tak bylo, fakt.
a pro svůj účel taky otestovatAno, to udělali, ale ono to mount povolilo jednou/dvakrát (podle toho jak k výpadku došlo), takže je to skvěle napálilo.
Čistě prakticky je potřeba, aby si ty vrstvy mohly vyměňovat mnohem více informací, než umí teď, a uměly s nimi pracovat.Potom to nejsou vrstvy. Můžete se tvářit, že to jsou vrstvy, ale pokud vrstvy musí vzájemně intenzivně komunikovat, tak už to nejsou vrstvy. Můžeme tomu říkal klidně komponenty, nebo knihovní funkce, ale nejsou to vrstvy. (A netuším, jak moc btrfs používá stávající knihovní jaderný kód, určitě pro kompresi a pro hashe, ale jak moc je pro něj využitelný kód z těch vrstev, tipuju, že spíš ne.)
Aby tohle fungovalo, bylo by potřeba práce jako na kosteleNebo se na to úplně vykašlat a přejít na jiný způsob uvažování. O ničem jiném to už není. Právě to, že stávající systém by se musel brutálně přestavět, aby dosáhl něčeho, co v jiném konceptu jde levou zadní (a prakticky je to jen vedlejší produkt) je nejlepší ukázka zastaralosti tohoto přístupu. Ano, stávající "vrstvy" jsou produktem uvažování z doby, kdy disk, redundance, systém rozdělení na oddíly, fs byly skutečně oddělené vrstvy. Ale je jasné, že v tomto uspořádání není možné ani distribuovat volné místo přes různé oddíly. Nehledě na zmíněný resync pouze plných bloků. A další milion věcí. Ale jak jsem psal, za Stratis jsem rád, i když je to prostě jen truc projekt. Každé další storage řešení je lepší než nic.
Můžete se tvářit, že to jsou vrstvy, ale pokud vrstvy musí vzájemně intenzivně komunikovat, tak už to nejsou vrstvy.To je akorát ptákovina, kterou jste si vymyslel, abyste mohl nesouhlasit. Kde je rozhodující hranice pro intenzivnost komunikování, aby to už nebyly vrstvy? Je předávání dat k zápisu na disk příliš intenzivní, nebo ještě ok? Nebo chcete tvrdit, že filesystém (a VFS) a device mapper a MD RAID nejsou vrstvy, protože spolu intezivně komunikují, když filesystém pošle TRIM?
Nebo se na to úplně vykašlat a přejít na jiný způsob uvažování.To pro vás nebude problém a přecházejte si klidně, kam chcete. Já nevidím důvod, proč by např. checksumy dat měly být exkluzivní funkcí Btrfs a nemohla to dělat nižší vrstva pro kterýkoliv filesystém nebo cokoliv jiného, co využívá blokové zařízení.
du
uživatel vidí 1TB, i když to má na menším disku. Někde (v přednášce o vylepšení xfs), jsem zaslech informaci, že bude potřeba du
přepsat. Tohle už není ani unixové, tohle je jednoduše chaos, kdy se kvůli nějakému konceptu musí všechno přepsat, předávat si info (oklikou mimo vrstvy) ještě přes dbus. Ano, v stratis filesystem list
člověk vidí správné údaje, ale ve standardním nástroji nikoliv. A už vidím, jak nějaký magor typu Poettering bude prosazovat jediné správné předávání systémových informací přes dbus, na který se bude napojovat provider informací o fs.
Tak to asi tolik k těm vrstvám. Prostě ve stávajícím konceptu je to nemožné udělat.
checksumy dat měly být exkluzivní funkcí BtrfsNic takového jsem nikde nepsal. Jestli to někdo naimplementuje pro obecný blockdevice, tak to bude super (ve skutečnosti ano, md-integrity a dá se to použít v luks).
Vrstvy, které musejí intenzivně komunikovat oběma směry a ještě i přes sebe, nejsou vrstvy.To jste podruhé zopakoval to samé, ale argument stále žádný.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.