Domyślnym trybem dziennika dla Ext4 jest data=ordered
, co zgodnie z dokumentacją oznacza
„Wszystkie dane są wymuszane bezpośrednio do głównego systemu plików, zanim metadane zostaną przesłane do dziennika”.
Istnieje jednak również data=journal
opcja, co oznacza, że
„Wszystkie dane są zapisywane w dzienniku przed zapisaniem w głównym systemie plików. Włączenie tego trybu spowoduje wyłączenie opóźnionego przydzielania i obsługi O_DIRECT.”
Rozumiem to, że data=journal
tryb rejestruje wszystkie dane, a także metadane, co na pierwszy rzut oka wydaje się oznaczać, że jest to najbezpieczniejsza opcja pod względem integralności i niezawodności danych, choć może nie tak bardzo pod względem wydajności.
Czy powinienem wybrać tę opcję, jeśli niezawodność jest sprawą najwyższej wagi, ale wydajność jest znacznie mniejsza? Czy są jakieś zastrzeżenia dotyczące korzystania z tej opcji?
W tle omawiany system znajduje się na zasilaczu UPS, a buforowanie zapisu jest wyłączone na dyskach.
data=journal
zapewni bezpieczniejszy wynik niżdata=ordered
+nodelalloc
. Czy maszTen wątek jest bardzo stary, ale nadal aktualny.
Chcieliśmy scalić wiele drobnych zapisów w bazie danych MySQL, działającej jako maszyna wirtualna pod KVM przy użyciu obrazów Ceph RBD.
Gość: VM CentOS 6 / etc / fstab:
Urządzenie „/ dev / sda” (1 TiB) znajduje się w skompresowanej puli NVMe z kodem wymazania, z relatywnie małym (128 MiB) dedykowanym urządzeniem dziennika w potrójnej replikowanej puli NVMe.
Oto polecenia, których użyliśmy w środowisku ratunkowym:
Odłącz dziennik:
Sprawdź system plików pod kątem niespójności:
Uzyskaj rozmiar bloku:
Sformatuj dedykowane urządzenie dziennika (OSTRZEŻENIE):
Minimalny rozmiar dziennika powinien wynosić 1024 * rozmiar bloku (dla bezpieczeństwa używamy 128 MiB)
Ustaw rozmiar bloku tak, aby pasował do rozmiaru / dev / sda1
Podłącz dedykowane urządzenie dziennika do systemu plików:
Ustawienia MySQL:
źródło