Udostępnij za pośrednictwem


Rozwiązywanie problemów z rozruchem maszyny wirtualnej platformy Azure z systemem Linux z powodu pełnego dysku systemu operacyjnego

W pewnych okolicznościach i konfiguracjach dysk z pełnym systemem operacyjnym może prowadzić do problemów z rozruchem maszyny wirtualnej (VM) platformy Azure. Ten artykuł zawiera niektóre przyczyny i rozwiązania problemów z rozruchem.

Symptomy

Jeśli podczas normalnych operacji systemowych dysk systemu operacyjnego lub krytyczne partycje systemowe zapełnią się, mogą wystąpić następujące problemy:

  • Maszyna wirtualna zostanie nieoczekiwanie zamknięta.
  • Maszyna wirtualna nie uruchamia się pomyślnie.

Wymagania wstępne

Aby rozwiązać problemy z rozruchem i ukończyć naprawy systemu, należy spełnić następujące wymagania:

  • Uprawnienia do tworzenia migawki dysku lub obsługi niektórych narzędzi do tworzenia kopii zapasowych i przywracania.

    W tym artykule dane lub dyski są zmieniane, więc możliwość przywracania maszyny wirtualnej do poprzedniego stanu jest krytycznym składnikiem bezpiecznej administracji systemu.

  • Diagnostyka rozruchu , która jest włączona i skonfigurowana.

    Taka konfiguracja umożliwia przyszłe przeglądanie magazynu dziennika konsoli i interakcję z interfejsem konsoli szeregowej maszyny wirtualnej.

  • Uprawnienia do tworzenia maszyny wirtualnej w przypadku, gdy w dowolnym momencie potrzebna jest maszyna wirtualna ratunkowa.

  • Uprawnienia do tworzenia, odłączania i dołączania dysków w przypadku konieczności zamiany dysków.

Uwaga

Nie wszystkie wymagania dotyczą następujących scenariuszy.

Scenariusz 1. Nieoczekiwane zamknięcie maszyny wirtualnej i niepowodzenie rozruchu

Wiele rozwiązań w zakresie wzmacniania zabezpieczeń może prowadzić do trudności w utrzymaniu systemów. Jeśli podczas zapisywania w dzienniku inspekcji wystąpi błąd, jedna z typowych konfiguracji wymaga natychmiastowego zamknięcia systemu. Aby sprawdzić, czy przyczyną zamknięcia systemu jest ten scenariusz, wykonaj następujące czynności:

  • Sprawdź komunikaty zamknięcia systemu w dzienniku konsoli szeregowej .

    Jeśli system jest uruchomiony, "Uruchamianie usługi inspekcji zabezpieczeń..." zostanie wyświetlony komunikat. Ten komunikat nie wskazuje, że usługa została uruchomiona. Zamiast tego maszyna wirtualna natychmiast przechodzi do zamknięcia i zostanie wyświetlony komunikat "Power down". Jeśli system jest uruchomiony i nieoczekiwanie zostanie zamknięty, konsola szeregowa może wyświetlić proces uporządkowanego zamykania kończący się komunikatem "Power down". Zobacz następujące zrzuty ekranu jako przykład:

    Zrzut ekranu przedstawiający komunikat

    Zrzut ekranu przedstawiający komunikat

  • Zainstaluj dysk systemu operacyjnego przy użyciu poleceń az vm repair , ręcznej maszyny wirtualnej odzyskiwania lub trybu pojedynczego użytkownika. Następnie sprawdź wykorzystanie dysku przy użyciu df narzędzia wiersza polecenia i sprawdź, czy dysk zawierający katalog /var/log/audit jest w pobliżu 100% wykorzystania.

  • Uzyskaj dostęp do systemu plików systemu operacyjnego za pomocą poleceń az vm repair , ręcznej maszyny wirtualnej odzyskiwania lub trybu pojedynczego użytkownika i sprawdź, czy plik /etc/audit/auditd.conf zawiera następujące konfiguracje:

    [root@linux /]# grep action /etc/audit/auditd.conf
    admin_space_left_action = HALT
    disk_full_action = HALT
    disk_error_action = HALT
    

Rozwiązanie: tymczasowo wyłącz konfigurację FUNKCJI HALT

Uwaga

Jeśli to rozwiązanie nie działa lub nie jest odpowiednie dla twojego środowiska, przejdź do sekcji Rozwiązywanie problemów.

Jeśli inspekcja konfiguracji powoduje zamknięcie systemu w przypadku awarii dziennika inspekcji, tymczasowe wyłączenie HALT konfiguracji umożliwia maszynie wirtualnej rozruch do pełnego systemu operacyjnego w celu skorygowania.

Aby rozwiązać ten typowy problem z inspekcją i kilka innych typowych problemów, uruchom az vm repair rozszerzenie automatycznie w interfejsie wiersza polecenia platformy Azure przy użyciu akcji inspekcji w narzędziu Azure Linux Automatic Repair (ALAR). Aby wykonać tę samą procedurę ręcznie, wykonaj następujące kroki:

  1. Wykonaj migawkę dysku systemu operacyjnego, aby zapewnić stan odzyskiwania.

  2. Uzyskaj dostęp do pliku konfiguracji za pomocą poleceń az vm repair , ręcznej maszyny wirtualnej odzyskiwania lub trybu pojedynczego użytkownika.

  3. Zanotuj bieżącą konfigurację, ponieważ tworzenie kopii zapasowej pliku na maszynie wirtualnej może być niedostępne.

  4. Zmień poprzednie konfiguracje w pliku /etc/audit/auditd.conf z na dowolną inną prawidłową wartość z HALT wyjątkiem SINGLE. W tym scenariuszu wartości mogą mieć IGNOREwartość , SUSPENDlub dowolne inne wartości wymienione na stronie systemu Linux man dla pliku auditd.conf , który udostępnia odpowiednie parametry dla wersji oprogramowania używanego na maszynie wirtualnej.

    [root@linux /]# grep action /etc/audit/auditd.conf
    admin_space_left_action = SUSPEND
    disk_full_action = SUSPEND
    disk_error_action = SUSPEND
    
  • Jeśli używasz maszyny wirtualnej odzyskiwania, postępuj zgodnie z instrukcjami w temacie Odinstaluj i odłącz oryginalny wirtualny dysk twardy , aby zamienić dysk systemu operacyjnego z powrotem na problematyczną maszynę wirtualną, i spróbuj uruchomić maszynę wirtualną normalnie. Jeśli używasz trybu pojedynczego użytkownika, wyjdź, a następnie ponownie uruchomisz maszynę wirtualną.

  • Po pełnym rozruchu maszyny wirtualnej przejrzyj system plików i zwolnij trochę miejsca przy użyciu narzędzi wiersza polecenia, takich jak df i du. Około 10% systemu plików zawierającego katalog /var/log/audit powinno być dobrym początkowym celem.

Po rozwiązaniu problemu przywróć zawartość pliku /etc/audit/auditd.conf do oryginalnych wartości i uruchom ponownie maszynę wirtualną.

Scenariusz 2. Rozmiar dysku maszyny wirtualnej jest zmieniany na platformie Azure, ale nie można zmienić rozmiaru systemu operacyjnego, a maszyna wirtualna nie jest w pełni uruchomiona

Po zidentyfikowaniu pełnego dysku i zamknięciu maszyny wirtualnej w celu zmiany rozmiaru dysku systemu operacyjnego maszyna wirtualna może nie zostać pomyślnie uruchomiona. Ten scenariusz może być mylący w niektórych dystrybucjach, w których system operacyjny próbuje automatycznie zmienić rozmiar głównego (/) systemu plików podczas ponownego uruchamiania. Jeśli dysk jest pełny, operacja zmiany rozmiaru może zakończyć się niepowodzeniem, ponieważ proces wymaga wolnego miejsca na rozszerzenie systemu plików. Brak wolnego miejsca może spowodować niepowodzenie funkcji cloud-init, a następnie maszyna wirtualna nie kończy rozruchu.

Aby zidentyfikować ten problem, przejrzyj dzienniki rozruchu w konsoli szeregowej i sprawdź, czy są obecne wiersze podobne do następującego tekstu:

[   15.384699] cloud-init[1142]: OSError: [Errno 28] No space left on device
[   15.384742] cloud-init[1142]: Original exception was:
[   15.384784] cloud-init[1142]: OSError: [Errno 28] No space left on device

Ponieważ określone komunikaty cloud-init mogą nie być najbardziej widocznym komunikatem zwróconym, poszukaj innych wierszy zawierających tekst "[Errno 28] Brak miejsca na urządzeniu" lub podobne komunikaty "brak miejsca".

Aby rozwiązać ten problem, wyczyść niepotrzebne dane , aby zwolnić niewielką ilość miejsca na dysku, a następnie rozwiń system plików.

Scenariusz 3. Maszyna wirtualna jest uruchamiana, ale jest niedostępna z powodu błędów usługi

Maszyna wirtualna, która wydaje się całkowicie uruchamiać, może mieć następujące problemy:

  • Podczas rozruchu występują problemy z usługą.
  • Agent platformy Azure może być niedostępny.
  • Connections do maszyny wirtualnej może zakończyć się niepowodzeniem.
  • Maszyna wirtualna może wydawać się być w trybie offline zgodnie z aplikacjami.

Podczas rozruchu wiele komunikatów, takich jak "[Errno 28] Brak miejsca na urządzeniu" lub inne typy komunikatów wskazują, że główny system plików jest pełny.

Jeśli maszyna wirtualna jest uruchamiana, ale wydaje się niedostępna, sprawdź dziennik szeregowy w diagnostyki rozruchu, aby wyświetlić komunikaty rozruchowe, lub użyj konsoli szeregowej do interakcji z maszyną wirtualną. Jeśli ilość miejsca jest niewystarczająca, wyczyść niepotrzebne dane , aby zwolnić miejsce lub rozwinąć dyski.

Jeśli dziennik konsoli zawiera wiele komunikatów z informacją "BŁĄD ExtHandler /proc/net/route nie zawiera żadnych tras", przyczyną może być również pełny dysk systemu operacyjnego, ponieważ usługi sieciowe nie mogą całkowicie uruchomić.

Rozwiązanie

Poniższe rozwiązania dotyczą dowolnego z poprzednich scenariuszy.

Rozwiązanie 1. Wyczyść niepotrzebne dane

  1. Uzyskaj dostęp do dysku systemu operacyjnego i partycji za pomocą poleceń az vm repair , ręcznej maszyny wirtualnej odzyskiwania lub trybu pojedynczego użytkownika, ponieważ system nie uruchamia się normalnie.

  2. Identyfikowanie dużych plików i katalogów przy użyciu standardowych narzędzi i poleceń systemu Linux:

    • du -ks /* | sort -n — Zlokalizuj pliki lub katalogi zużywające najwięcej miejsca w lokalizacji. Powtarzaj w największym zgłoszonym katalogu do momentu wykrycia dużej ilości danych.

    • ls -altSr /var/log — Wyświetl zawartość katalogu uporządkowanego według rozmiaru w kolejności rosnącej.

    • find / -size +500M -exec ls -alFh {} \; - Znajdź duże pojedyncze pliki. Dostosuj 500M wartość do kilku megabajtów lub gigabajtów w razie potrzeby, aby zlokalizować najskuteczniejsze pliki do przycinenia.

  3. Usuń wszystkie pliki, które można zidentyfikować jako niepotrzebne, takie jak stare dzienniki, zapomniane kopie zapasowe i podobne pliki.

  4. Gdy odpowiednia ilość miejsca zostanie wyczyszczona, ukiekuj około 10% wolnego dysku i uruchom ponownie system.

Rozwiązanie 2. Rozwijanie systemu plików systemu operacyjnego

Jeśli nie można wyczyścić żadnych danych z systemu plików systemu operacyjnego, zalecamy rozszerzenie dysku zawierającego krytyczne woluminy systemu operacyjnego. Aby uzyskać więcej informacji, zobacz Rozwijanie wirtualnych dysków twardych na maszynie wirtualnej z systemem Linux.

Następne kroki

Jeśli konkretny błąd rozruchu nie jest problemem z rozruchem systemu Linux z powodu pełnego dysku systemu operacyjnego, zobacz Rozwiązywanie problemów z błędami rozruchu maszyny wirtualnej z systemem Azure Linux , aby uzyskać dalsze rozwiązywanie problemów.

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.