Strona główna
» Jak
»
Kiedy SLES Btrfs przechodzi w tryb tylko do odczytu: diagnoza przed ponownym zamontowaniem
Kiedy SLES Btrfs przechodzi w tryb tylko do odczytu: diagnoza przed ponownym zamontowaniem
Jeśli system plików SUSE Linux Enterprise Btrfs zgłasza „System plików tylko do odczytu”, najpierw sprawdź, czy został on celowo zamontowany w trybie tylko do odczytu, czy też został przełączony w tryb tylko do odczytu po wystąpieniu błędu. Przed próbą ponownego zamontowania sprawdź opcje montowania, ilość wolnego miejsca i dziennik jądra. Użyj narzędzia Snapper Rollback, aby uzyskać zweryfikowaną migawkę systemu, która nadaje się do rozruchu. Jeśli system Btrfs zapisał błędy wejścia/wyjścia lub metadanych, zabezpiecz dane i zdiagnozuj ścieżkę pamięci masowej przed ponownym zapisem w systemie plików.
Przykład sprawdza opcje montowania i identyfikuje urządzenie Btrfs, na którym znajduje się kopia zapasowa /data.
1. Odróżnij celowe montowanie w trybie tylko do odczytu od błędu systemu plików
Zastąp /dataodpowiednim punktem montowania lub /punktem root.
findmnt -T /data -o SOURCE,FSTYPE,OPTIONS
sudo btrfs filesystem show /data
W pierwszym poleceniu poszukaj w opcjach parametru rolub rw. Oczekuje się, że migawka Snappera tylko do odczytu odrzuci zapisy. Montowanie skonfigurowane za pomocą roparametru in /etc/fstabmoże być również celowe. System plików Btrfs może również przełączyć się w tryb tylko do odczytu po poważnych błędach transakcji, metadanych lub urządzenia. W takim przypadku wielokrotne uruchamianie mount -o remount,rwnie naprawi przyczyny i może natychmiast zakończyć się niepowodzeniem.
Jeżeli system plików został celowo zamontowany w trybie tylko do odczytu, jego urządzenie jest sprawne, a w dzienniku jądra nie ma błędów Btrfs ani błędów wejścia/wyjścia, normalne montowanie danych można ponownie zamontować w trybie tylko do odczytu i zapisu:
sudo mount -o remount,rw /data
findmnt -T /data -o TARGET,OPTIONS
Nie należy używać tego polecenia jako polecenia odzyskiwania dla uruchomionej migawki tylko do odczytu lub systemu plików tylko do odczytu wymuszonego błędem. Pomyślne ponowne zamontowanie potwierdza możliwość zapisu, a nie integralność systemu plików.
2. Sprawdź, czy problemem jest ciśnienie w pomieszczeniu
Porównaj wolną przestrzeń w systemie plików ze szczegółami alokacji w systemie Btrfs. Przykładowe wartości mają charakter poglądowy.
W systemie Btrfs może zabraknąć miejsca do alokacji, nawet gdy widok dysku podstawowego wygląda zaskakująco, ponieważ alokacja danych i metadanych jest śledzona oddzielnie. Sprawdź zarówno zwykłe wolne miejsce, jak i wykorzystanie Btrfs:
df -hT /data
sudo btrfs filesystem usage -T /data
Jeśli system zgłosi błąd No space left on device, a dziennik jądra nie wykaże awarii urządzeń ani błędów strukturalnych, przed usunięciem czegokolwiek sprawdź wykorzystanie Snappera:
sudo snapper list
Usuwaj tylko migawki, których utratę zezwala Ci polityka przechowywania, używając tej opcji sudo snapper delete SNAPSHOT_IDdla każdego wybranego identyfikatora. Zachowaj znaną, poprawną migawkę sprzed aktualizacji, jeśli potrzebujesz opcji wycofania; usunięcie migawek przywraca miejsce, ale usuwa punkty odzyskiwania. Czyszczenie może nie przywrócić miejsca od razu, a migawki nie naprawią błędów wejścia/wyjścia. Nie uruchamiaj równoważenia w celu wymuszenia zapisu w systemie plików tylko do odczytu; przenosi ono dane i jest przeznaczone do rozwiązania zdiagnozowanego problemu z alokacją w sprawnym, zapisywalnym systemie plików.
3. Przeczytaj dziennik jądra przed wyborem metody naprawy
Komunikaty jądra potrafią odróżnić błędy związane z brakiem miejsca od błędów odczytu, sumy kontrolnej lub urządzenia. Pokazane wiersze są przykładami.
Zwróć uwagę na pierwszy błąd Btrfs, błąd urządzenia blokowego, błąd kontrolera lub błąd transportu, a nie tylko na ostatni komunikat informujący, że system plików stał się tylko do odczytu:
Komunikaty o nieudanych odczytach, niezgodnościach sum kontrolnych, brakujących urządzeniach lub błędach wejścia/wyjścia wskazują na inną ścieżkę niż prosta roopcja montowania. Sprawdź raportowany dysk, kontroler, RAID/HBA, SAN lub warstwę dysku wirtualnego oraz informacje o stanie dostawcy. Najpierw napraw niestabilny sprzęt lub łączność. Jeśli dane mają znaczenie, zminimalizuj liczbę zapisów i skontaktuj się z administratorem, aby utworzyć kopię zapasową lub obraz na poziomie bloku, zanim podejmiesz próbę naprawy systemu plików.
4. Wybierz najmniej ryzykowne leczenie zgodne z dowodami
Co znalazłeś
Następna czynność
Kompromis
rojest skonfigurowany lub miejsce zamontowania było celowo ustawione jako tylko do odczytu; brak istotnych błędów jądra
Popraw konfigurację montowania, jeśli jest niezamierzona, lub ponownie zamontuj normalny, zapisywalny podwolumin po potwierdzeniu, że urządzenie jest sprawne.
Szybko, ale ponowne zamontowanie nie może wyczyścić stanu „tylko do odczytu” wymuszonego błędem ani uczynić migawki „tylko do odczytu” zapisywalną.
Działa bootowalna migawka roota, a problem pojawił się po zmianie systemu
Uruchom i przetestuj migawkę, a następnie sudo snapper rollbackuruchom ponownie komputer, używając domyślnego wpisu.
Przywraca podwolumin główny do stanu migawki. Dane w wykluczonych lub oddzielnych podwoluminach nie są wycofywane. System SLES 15 SP7 obsługuje to wycofywanie tylko w domyślnym układzie główny-podwolumin i systemie plików głównym z jednym urządzeniem.
Dziennik jądra zawiera błędy wejścia/wyjścia pamięci masowej lub błędy strukturalne Btrfs
Stabilizuj pamięć masową i zabezpieczaj dane; korzystaj ze środowiska ratunkowego i eskaluj w celu odzyskania danych specyficznych dla systemu plików.
Wolniejszy, ale unika ukrywania nierozwiązanego problemu sprzętowego dzięki możliwości ponownego zamontowania z możliwością zapisu.
Zgłaszane są jedynie przypadki wyczerpania miejsca, błędy przechowywania nie występują
Sprawdź przechowywanie Snappera i dozwolone bezpłatne migawki lub dane, a następnie ponownie sprawdź użycie Btrfs.
Zwalnia pojemność kosztem wybranych punktów odzyskiwania lub plików.
Wybierz migawkę sprzed awarii, zweryfikuj rozruch testowy tylko do odczytu, a następnie, jeśli to rozwiąże problem, wykonaj wycofanie Snappera.
W systemie SLES, bootowalne migawki korzystają z domyślnej konfiguracji głównego katalogu Snapper. Katalog główny musi być w formacie Btrfs na jednym urządzeniu, bootloader musi go obsługiwać, a przywracany jest tylko podwolumin główny. Przed zatwierdzeniem należy zweryfikować kandydata; jeśli nie jest odpowiedni, należy uruchomić ponownie system lub środowisko ratunkowe. Zobacz procedurę przywracania katalogu Snapper w systemie SLES 15 SP7 .
Kiedy właściwe są kontrole offline lub czyszczenie
Jeżeli nie można zamontować systemu plików lub komunikaty jądra wskazują na uszkodzenie strukturalne, należy uruchomić system ratunkowy SLES lub inne odpowiednie środowisko odzyskiwania, zidentyfikować właściwe urządzenie i upewnić się, że jest ono odmontowane przed uruchomieniem domyślnego sprawdzenia w trybie tylko do odczytu:
sudo btrfs check /dev/DEVICE
Użyj rzeczywistego urządzenia blokowego Btrfs, a nie symbolu zastępczego punktu montowania. Sprawdzenie może zająć trochę czasu i pamięci oraz zgłosić błędy strukturalne; nie gwarantuje ono naprawy. Nie dodawaj go --repairjako rutynowego kolejnego kroku. Dokumentacja Btrfs ostrzega, że naprawa może pogorszyć sytuację i powinna być stosowana wyłącznie pod nadzorem eksperta po zaakceptowaniu ryzyka związanego z danymi. Skontaktuj się ze wsparciem technicznym SUSE lub specjalistą Btrfs, gdy sprawdzenie zgłosi błędy lub urządzenie będzie miało błędy wejścia/wyjścia.
Aby przywrócić migawkę roota, najpierw zrestartuj komputer i upewnij się, że system domyślny uruchamia się normalnie. Następnie sprawdź nowy dziennik jądra pod kątem powtarzających się błędów Btrfs lub urządzeń. Sama flaga odczytu i zapisu nie jest potwierdzeniem prawidłowego stanu: jeśli błędy się powtórzą, przerwij zapis i wróć do diagnostyki pamięci masowej.