Jak zoptymalizować ext4 pod kątem niezawodności?

11

Ponieważ ext4 został wprowadzony jako bardziej niezawodny niż ext3 z dziennikami blokowymi, czy istnieje szansa, aby przypuszczać, że jest on w 100% niezawodny? Co się stanie, jeśli włączysz blokowanie dziennika na nim, które jest domyślnie wyłączone?

Jako przewodnik przyjaciela, który bardziej szczegółowo wyjaśnia mój przypadek: mam wbudowane urządzenie Linux, po instalacji klawiatura i monitor są odłączone i działają samodzielnie.

Moim obowiązkiem jest upewnić się, że ma niezawodny system plików, więc w przypadku błędów nie ma możliwości ręcznego naprawienia błędów w urządzeniu. Nie mogę zmusić mojego klienta do używania poprawek do każdego urządzenia, aby nie dopuścić do usterki spowodowanej awarią zasilania.

Co więcej może zaoferować mi ext4 poza księgowaniem bloków?

Z góry dziękuję.

jestem w
źródło
Wiem, że mam jakiś kompromis umożliwiający funkcje, takie jak blok dziennika, ale jestem naklejane na niezawodności i jestem gotów za to zapłacić
Amin
Zobacz także: serverfault.com/questions/244095/how-to-make-ext4-more-reliable , zamknięte, ponieważ są zbyt dwuznaczne.
Olli,
tak, zadałem tam moje pytanie i nie było już żadnej pomocy! mój system Linux jest systemem osadzonym bez podłączonego monitora ani klawiatury. więc chcę, aby był bardziej niezawodny w przypadku awarii zasilania itp. Wiem, że blokowanie jest sposobem, ale chcę wiedzieć, czy jest jakaś opcja. nie mogę zaoferować mojemu klientowi, aby miał ulepszenia dla każdego urządzenia.
amin
1
@amin Informacja o twojej skrzynce byłaby bardziej przydatna w twoim pytaniu, prawdopodobnie dlatego została zamknięta z powodu niejasności; dodaj więcej informacji do swojego pytania!
Jorge Castro,
2
Pytanie jest zbyt niejasne. Co oznacza „100% wiarygodny”? Zakładając, że przez „blokowanie raportów” masz na myśli data = journal, to tylko gigantyczna strata czasu. FS jest z natury niezawodny; dziennik tylko upewnia się, że nie będziesz musiał długo czekać na fsck po awarii.
psusi,

Odpowiedzi:

11

Nie. Nigdy nie można zakładać, że coś jest w 100% niezawodne.

Systemy plików kronikowania minimalizują utratę danych w przypadku nieoczekiwanego wyłączenia. Zakresy i bariery pomagają jeszcze bardziej, ale nie mogą wyeliminować wszystkich powiązanych problemów. Osobiście nigdy nie doświadczyłem utraty danych z powodu uszkodzenia systemu plików podczas korzystania z systemów plików kronikowania.

Ponadto kronikowanie nie jest domyślnie wyłączone.

Oto dobry przegląd ext4 i jego ulepszeń: http://kernelnewbies.org/Ext4

djeikyb
źródło
1
+1 za „nigdy nie można zakładać, że coś jest w 100% niezawodne”
Lekensteyn
ponieważ kronikowanie bloków porównania_systemów plików jest wyłączone, gdy kronikowanie metadanych jest włączone, jest to kompromis między niezawodnością a szybkością
amin
Właśnie zrestartowałem serwer, aby znaleźć ogromne uszkodzenie danych na ext4, gdzie pliki zawierają nieprawidłowe dane. Nie mogło się to zdarzyć na ZFS lub BTRFS, ponieważ dane zawierają sumy kontrolne.
user239558
5

Nową funkcją dodaną do ext4 i wprowadzoną do jądra 3.5 jest tak zwana „suma kontrolna metadanych”, która jest kolejną funkcją ext4, która ma poprawić niezawodność i integralność struktury systemu plików.

Ogólna implementacja jest dobrze wyjaśniona dla początkujących jądra :

Nowoczesne systemy plików, takie jak ZFS i Btrfs, udowodniły, że zapewnienie integralności systemu plików za pomocą sum kontrolnych jest cenną funkcją. Ext4 dodał możliwość przechowywania sum kontrolnych różnych pól metadanych. Za każdym razem, gdy odczytywane jest pole metadanych, suma kontrolna odczytanych danych jest porównywana z przechowywanymi sumami kontrolnymi, jeśli są one różne, oznacza to, że medata jest uszkodzona (zwróć uwagę, że ta funkcja nie obejmuje danych, tylko wewnętrzne struktury metadanych i nie ma możliwości „samoleczenia”).

Dowolny system plików ext4 można zaktualizować, aby używał sum kontrolnych za pomocą polecenia „tune2fs -O metadata_csum” lub „mkfs -O metadata_csum” w czasie tworzenia. Po włączeniu tej funkcji w systemie plików starsze jądra bez obsługi sum kontrolnych będą mogły zamontować ją tylko w trybie tylko do odczytu.

Artykuły takie jak ten na kernel.org szczegółowo omawiają szczegółowo, w jaki sposób użycie sum kontrolnych metadanych może zapobiec uszkodzeniu struktury systemu plików przez uszkodzone metadane.

Jednak artykuł ostrzega również, że:

Kod sumowania kontrolnego metadanych zaczął przechodzić do głównej linii w Linuksie 3.5, a od wersji 3.7-rc1 przechodzi testy użytkownika. Ten kod nie jest jeszcze solidny.

To nie jest domyślnie włączone w Ubuntu 12.10 i prawdopodobnie najlepiej nie włączać go na chwilę po ostatnich problemach z systemem plików ext4, jak wspomniano tutaj .


źródło
1

Możesz wyłączyć opóźnioną alokację w ext4 (nodelalloc), co znacznie zwiększy prawdopodobieństwo odzyskania większej ilości danych, jeśli wystąpi awaria zasilania podczas zapisu, ale będzie to kosztować więcej fragmentacji pliku system z czasem.

użytkownik3495444
źródło