Jak podaje wyłącznie ZFS ,ZFS jest uważany za niewrażliwy ZFS akceptuje fakt, że może być podatny na awarie zasilania.
Nie mogłem znaleźć takiego oświadczenia dla BTRFS. Czy jest (lub zaprojektowany / ma być) trwały między przerwami w dostawie prądu?
btrfs
failure-resistance
ceremcem
źródło
źródło
zpool clear -F
poleceniasync
lubflush
który pisze pamięci podręcznej na dysku, lub nie podczas przerwy w zasilaniu, że dane zostaną utracone. ZFS może działać idealnie, jeśli dysk twardy jest w dobrej kondycji i nie występują przerwy w dostawie prądu (lub UPS jest podłączony, aby prawidłowo wyłączyć komputer w przypadku awarii). Czego nie możesz powiedzieć o FAT32.should be ok if your hw isn't "buggy"
gdzie nie znaczy „buggy”your hw has correct flush/barrier semantics
. Zamieściłem link do tego pytania na IRC, mam nadzieję, że ktoś poświęci trochę czasu na opracowanie; ale na razie to jest to.Odpowiedzi:
TL; DR: Oznacza to, że btrfs jest chroniony przed uszkodzeniem danych spowodowanym utratą zasilania w podobny sposób jak ZFS.
Oto dlaczego: Ogólna idea ZFS i btrfs jest podobna. Oba wykorzystują drzewa Merkle jako strukturę danych . Zapisy mogą wymagać aktualizacji wielu bloków na dyskach. System plików obsługuje to, zapisując nowe dane w pustych blokach (nawet jeśli istniejący plik jest modyfikowany, więc nie trzeba modyfikować bloków odzwierciedlających stary stan) i budując nowe zaktualizowane drzewo. Gdy wszystkie ciężkie podnoszenie zostanie wykonane, a dane + zaktualizowane drzewo zostaną zapisane na dysku, wskaźnik głowy zostanie zaktualizowany do nowego drzewa, dzięki czemu zmiana będzie widoczna.
Oto, jak mają się zachowywać zapisy do pliku:
W przypadku utraty zasilania po (4) transakcja jest zakończona. W przypadku utraty zasilania w krokach (1) do (3) system plików powróci do starego stanu (dane zapisane w kroku (1) zostaną utracone, ale system plików będzie spójny). Pamiętaj, że nie ma potrzeby sprawdzania błędów systemu plików, co oznacza, że system plików jest dostępny natychmiast, co jest dużą zaletą (sprawdzanie dużych systemów plików może trwać bardzo długo!).
Oto przykład, jak coś może pójść nie tak z „buggy” sprzętem:
System plików stanie się niespójny, jeśli nastąpi utrata zasilania między (4) a (5) lub podczas wykonywania kroku (5). W konsekwencji drzewo Merkle i / lub dane mogą być tylko częściowo zapisane, powodując niespójność systemu plików.
W praktyce należy zachować szczególną ostrożność podczas korzystania z kontrolerów RAID . Zwykle wyłączają pamięci podręczne zapisu na dysku i zamiast tego używają własnej pamięci podręcznej zapisu. Istnieją dwa typowe sposoby, aby coś poszło nie tak:
* Upraszczam tutaj. W rzeczywistości nie jest konieczne kopiowanie całego drzewa. Należy dodać tylko te części, które uległy zmianie - pozostałe części można współdzielić między starym i nowym drzewem .
źródło