Mám HDD, kterému úplně nedůvěřuji, ale přesto ho chci používat (těžba burstcoinů, kde když dostanu špatný blok v souboru, přijdu jen o pár centů).
Jak mohu říct btrfs, aby označil určité bloky jako špatné (např. z badblocks
výstup)?
Pokud nemohu předem označit bloky jako špatné, budou všechny špatné bloky identifikované pomocí btrfs scrub
vyhnout se v budoucnu, pokud bude smazán soubor, který je používá?
Přijatá odpověď:
Bohužel ne.
btrfs nesleduje špatné bloky a btrfs scrub
nezabrání tomu, aby další soubor narazil na stejné špatné bloky.
Tento příspěvek z konference btrfs navrhuje použití ext4 s mkfs.ext4 -c
(toto „vytvoří seznam špatných bloků a pak
tyto sektory nepoužije“ ).
Návrh používat btrfs přes mdadm 3.1+ s RAID0 nebude fungovat.
Zdá se, že LVM nepodporuje přerozdělení chybných bloků.
Řešením je vytvořit zařízení s vyloučením bloků, o kterých je známo, že jsou špatné:btrfs přes dmsetup.
Wiki btrfs Project Ideas říká:
Nenárokováno — zatím žádné záplaty — Zatím není v jádře
V současné době btrfs nesleduje špatné bloky, diskové bloky, u kterých je velmi pravděpodobné, že ztratí data na nich zapsaná. Btrfs by měl přijmout seznam ve výstupním formátu badblocks, uložit jej do nového btree (nebo možná do aktuálního stromu rozsahů s novým příznakem), přemístit jakákoli data, která bloky obsahují, a rezervovat tyto bloky, aby je nebylo možné použít. pro budoucí příděly. Kromě toho lze scrub naučit testovat špatné bloky, když je nalezena chyba kontrolního součtu. Díky tomu by byl peeling mnohem užitečnější; Chyby kontrolního součtu jsou obecně způsobeny diskem, ale zatímco scrub detekuje postižené soubory, což ve scénáři zálohování dává příležitost je znovu vytvořit, další soubor, který znovu použije špatné bloky, začne místo toho dostávat chyby. Tyto dvě položky by odpovídaly funkci ext4 (používané prostřednictvím e2fsck).
Prosím komentujte, pokud se stav změní, a já tuto odpověď aktualizuji.
Související:Debian – Jak nainstalovat jeden balíček z testování Debianu nebo nestabilní na stabilní?