BTRFS Balance Bug a Kernel 5.14.x verziójában

Btrfs Balance Bug A Kernel 5 14 X Verziojaban



Van egy hiba az 5.14.x rendszermagban, ami miatt a btrfs fájlrendszer csak olvashatóvá válik a metaadatprofil konvertálásakor egyetlen nak nek dup . A fájlrendszer írásvédett állapotba kerül. A probléma megoldása nem szokványos javítást igényel.

A BTRFS profilokról

A btrfs egyik nagyszerű tulajdonsága a különböző raidprofilok használatának lehetősége. Mivel a btrfs külön tárolja az adatokat és a metaadatokat, az adatokat raid0-ként csíkozhatja a lemezeken, és az összes metaadatot raid1-ként tükrözheti. Ez a metaadatok redundanciája kevés extra helyet foglal el. És ez ajánlott a btrfs raid0 beállításokban.

Mindig is javasolták a metaadatok megkettőzését, akár egyetlen lemezen is, mivel a metaadatok elvesztése az adatok elvesztését is jelenti.







A Btrfs képes megváltoztatni a raid profilt egy élő rendszeren, átalakítva az adatokat és a metaadatokat, hogy redundanciát biztosítson (vagy eltávolítson). Ez történik a egyensúly . A btrfs egyensúly újraírja a fájlrendszer összes blokkját, és úgy igazodik, hogy megfeleljen az új profiloknak.



A bogár

Megpróbáltam megváltoztatni a metaadat-profilt az egyetlen lemezemről egyetlen nak nek dup a redundanciáért.



$ sudo btrfs egyensúly indul -mconvert =dup / mnt





A fájlrendszer azonnal csak olvasható állapotba került. A rendszer tönkrement. Amikor újraindult, nem tudtam túllépni a helyreállítási initramfs-en. Nem lehetett adatot írni a lemezre.

Ha egy egyensúlyi művelet megszakad a btrfs fájlrendszeren, az automatikusan folytatódik a fájlrendszer következő csatlakoztatásakor. Ez általában megállítható a következőkkel:



$ sudo hegy -O skip_balance,rw / dev / sdX / mnt

Ezután törölje, ha szükséges, a következő paranccsal:

$ sudo btrfs egyenleg törlése / mnt

A hiba azonban nem csak az egyensúly blokkolását okozta, hanem figyelmen kívül hagyták a folytatást megakadályozó felcsatolási lehetőségeket is. Minden alkalommal, amikor a fájlrendszert felcsatolják, az egyensúly megkísérli újraindulni. Nem sikerült, és a fájlrendszer csak olvashatóvá vált. Ha ezt tapasztalod, minden disztribúciót el kell indítanod egy régebbi kernellel. Az én esetemben Arch volt 4.18-cal.

Csatlakoztassa a fájlrendszert a régebbi kenellel:

$ sudo hegy -O skip_balance,rw / dev / sdX / mnt

Az egyenleg törlése:

$ sudo btrfs egyenleg törlése / mnt

Végezze el újra a mérleget:

$ sudo btrfs egyensúly indul -mconvert =dup / mnt

Miután az egyensúly elkészült, biztonságosan indítható egy újabb kernellel, amely immár duplikált metaadatokkal rendelkezik a fájlrendszerben. Ellenőrizze a fájlrendszer által használt profilokat. Látni fogja, hogy két példánya van a fájlrendszer metaadataiból, és csak egy példánya az adatokból:

$ sudo btrfs lenni használat < hegy csucs >

Következtetés

A Btrfs egy csodálatos fájlrendszer, amely számos speciális beállításra képes. A btrfs használatakor azonban rendelkeznie kell működő biztonsági másolatokkal, valamint egy LTS disztribúcióból származó indítható kernellel a rendszermentéshez. Annak ellenére, hogy a mérleg futtatható egy csatlakoztatott gyökér fájlrendszeren, nem mindig tanácsos ezt megtenni. Még mindig sok hiba van a fájlrendszerben. Fel kell készülnie a fájlrendszer megmentésére, amikor a btrfs modult még nem tesztelték teljes mértékben a vérszegény kernelekkel szemben.