Behandeln von Problemen beim Starten virtueller Azure Linux-Computer aufgrund des vollständigen Betriebssystemdatenträgers
Gilt für: ✔️ Linux-VMs
Unter bestimmten Umständen und Konfigurationen kann ein vollständiger Betriebssystemdatenträger zu Startproblemen mit virtuellen Azure Linux-Computern (VM) führen. Dieser Artikel enthält einige Ursachen und Lösungen für startprobleme.
Symptome
Wenn der Betriebssystemdatenträger oder kritische Systempartitionen vollständig sind, können bei normalen Systemvorgängen die folgenden Probleme auftreten:
- Ein virtueller Computer wird unerwartet heruntergefahren.
- Ein virtueller Computer wird nicht erfolgreich gestartet.
Voraussetzungen
Um die Startprobleme zu beheben und Systemreparaturen abzuschließen, sollten die folgenden Anforderungen erfüllt sein:
Berechtigungen zum Erstellen einer Datenträgermomentaufnahme oder zum Ausführen einiger Sicherungs- und Wiederherstellungstools.
In diesem Artikel werden Daten oder Datenträger geändert, sodass die Möglichkeit besteht, den virtuellen Computer in einen vorherigen Zustand zurückzuverwenden, eine wichtige Komponente der sicheren Systemverwaltung ist.
Startdiagnose , die aktiviert und konfiguriert sind.
Diese Konfiguration ermöglicht eine zukünftige Überprüfung des Speichers des Konsolenprotokolls und die Interaktion mit der seriellen Konsolenschnittstelle der VM.
Berechtigungen zum Erstellen eines virtuellen Computers für den Fall, dass an jedem Punkt eine Rettungs-VM benötigt wird.
Berechtigungen zum Erstellen, Trennen und Anfügen von Datenträgern für den Fall, dass Swapping-Datenträger erforderlich sind.
Notiz
Nicht alle Anforderungen gelten für die folgenden Szenarien.
Szenario 1: Der virtuelle Computer wird unerwartet heruntergefahren und kann nicht gestartet werden.
Viele Sicherheitshärtungsmethoden können zu Schwierigkeiten bei der Wartung von Systemen führen. Wenn beim Schreiben in das Überwachungsprotokoll ein Fehler auftritt, muss das System sofort heruntergefahren werden. Führen Sie die folgenden Aktionen aus, um zu überprüfen, ob dieses Szenario der Grund für das Herunterfahren eines Systems ist:
Überprüfen Sie die Meldungen zum Herunterfahren des Systems im seriellen Konsolenprotokoll .
Wenn das System gestartet wird, wird ein "Sicherheitsüberwachungsdienst wird gestartet..." Die Meldung wird angezeigt. Diese Meldung gibt nicht an, dass der Dienst gestartet wurde. Stattdessen wechselt der virtuelle Computer sofort zum Herunterfahren, und es wird eine Meldung "Herunterfahren" angezeigt. Wenn das System ausgeführt wird und unerwartet heruntergefahren wird, zeigt die serielle Konsole möglicherweise einen geordneten Herunterfahrenvorgang an, der in einer Meldung "Power down" endet. Sehen Sie sich die folgenden Screenshots als Beispiel an:
Mount the OS disk by using az vm repair commands, a manual recovery VM, or single user mode. Überprüfen Sie dann die Datenträgerauslastung mithilfe des
df
Befehlszeilentools, und überprüfen Sie, ob der Datenträger, der das Verzeichnis "/var/log/audit " enthält, nahezu 100 % auslastung ist.Greifen Sie auf das Betriebssystemdateisystem mithilfe von az vm-Reparaturbefehlen , einer manuellen Wiederherstellungs-VM oder einem einzelbenutzermodus zu, und überprüfen Sie, ob die Datei "/etc/audit/auditd.conf " die folgenden Konfigurationen enthält:
[root@linux /]# grep action /etc/audit/auditd.conf admin_space_left_action = HALT disk_full_action = HALT disk_error_action = HALT
Lösung: Vorübergehendes Deaktivieren der HALT-Konfiguration
Notiz
Wenn diese Lösung nicht funktioniert oder für Ihre Umgebung nicht geeignet ist, wechseln Sie zum Abschnitt "Lösung ".
Wenn die überwachte Konfiguration dazu führt, dass das System bei Überwachungsprotokollfehlern heruntergefahren wird, ermöglicht das vorübergehende Deaktivieren der HALT
Konfiguration dem virtuellen Computer das Starten des vollständigen Betriebssystems zur Behebung.
Um dieses häufige überwachte Problem und mehrere andere häufige Probleme zu beheben, führen Sie die az vm repair
Erweiterung automatisch in der Azure CLI aus, indem Sie die überwachte Aktion im Azure Linux Automatic Repair (ALAR)-Tool verwenden. Führen Sie die folgenden Schritte aus, um dasselbe Verfahren manuell auszuführen:
Erstellen Sie eine Momentaufnahme des Betriebssystemdatenträgers, um einen Wiederherstellungszustand bereitzustellen.
Erhalten Sie Zugriff auf die Konfigurationsdatei mithilfe von Az VM-Reparaturbefehlen, einer manuellen Wiederherstellungs-VM oder einem einzelbenutzermodus.
Notieren Sie sich die aktuelle Konfiguration, da der Speicherplatz möglicherweise nicht verfügbar ist, um die Datei auf dem virtuellen Computer zu sichern.
Ändern Sie die vorherigen Konfigurationen in der Datei "/etc/audit/auditd.conf " in
HALT
einen anderen gültigen Wert außerSINGLE
. In diesem Szenario können die Werte auf der Linux-Seiteman
für die Datei "auditd.conf" aufgeführt seinIGNORE
, oder andere Werte, die den entsprechenden Parametern für die In der VM verwendeten Softwareversionen entsprechen.SUSPEND
[root@linux /]# grep action /etc/audit/auditd.conf admin_space_left_action = SUSPEND disk_full_action = SUSPEND disk_error_action = SUSPEND
Wenn Sie eine Wiederherstellungs-VM verwenden, folgen Sie den Anweisungen unter "Aufheben der Bereitstellung", und trennen Sie die ursprüngliche virtuelle Festplatte, um den Betriebssystemdatenträger wieder auf den problematischen virtuellen Computer umzutauschen, und versuchen Sie, den virtuellen Computer normal zu starten. Wenn Sie den Einzelbenutzermodus verwenden, beenden Sie den virtuellen Computer und starten dann neu.
Nachdem der virtuelle Computer vollständig gestartet wurde, durchsuchen Sie das Dateisystem, und geben Sie Speicherplatz frei, indem Sie Befehlszeilentools wie
df
z. B. unddu
. Etwa 10 % des Dateisystems, das das Verzeichnis "/var/log/audit " enthält, sollte ein gutes Anfangsziel sein.
Nachdem das Problem behoben wurde, setzen Sie den Inhalt in der Datei "/etc/audit/auditd.conf " auf ihre ursprünglichen Werte zurück, und starten Sie den virtuellen Computer neu.
Szenario 2: Vm-Datenträger wird in Azure geändert, aber die Größe des Betriebssystems kann nicht geändert werden, und der virtuelle Computer startet nicht vollständig
Nachdem ein vollständiger Datenträger identifiziert wurde und der virtuelle Computer heruntergefahren wurde, um die Größe des Betriebssystemdatenträgers zu ändern, wird der virtuelle Computer möglicherweise nicht erfolgreich gestartet. Dieses Szenario kann bei einigen Verteilungen verwirrend sein, bei denen das Betriebssystem versucht, die Größe des Stammdateisystems (/
) beim Neustart automatisch zu ändern. Wenn der Datenträger voll ist, schlägt der Größenänderungsvorgang möglicherweise fehl, da für den Prozess freier Speicherplatz erforderlich ist, um das Dateisystem zu erweitern. Wenn kein freier Speicherplatz vorhanden ist, kann cloudinit fehlschlagen, und dann wird der Start der VM nicht abgeschlossen.
Um dieses Problem zu identifizieren, überprüfen Sie die Startprotokolle in der seriellen Konsole, und überprüfen Sie, ob Zeilen vorhanden sind, die dem folgenden Text ähneln:
[ 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
Da die spezifischen Cloud-Init-Nachrichten möglicherweise nicht die sichtbarste Nachricht sind, die zurückgegeben wird, suchen Sie nach anderen Zeilen, die den Text "[Errno 28] Kein Leerraum auf dem Gerät verbleiben" oder ähnliche "Keine Leerzeichen"-Nachrichten enthalten.
Um dieses Problem zu beheben, löschen Sie nicht benötigte Daten, um einen kleinen Speicherplatz freizugeben, und erweitern Sie dann das Dateisystem.
Szenario 3: VM-Start, kann jedoch aufgrund von Dienstfehlern nicht darauf zugegriffen werden
Ein virtueller Computer, der scheinbar vollständig gestartet wird, kann die folgenden Probleme haben:
- Dienstprobleme treten während des Starts auf.
- Der Azure-Agent ist möglicherweise nicht verfügbar.
- Verbindungen mit dem virtuellen Computer können fehlschlagen.
- Der virtuelle Computer scheint nach Anwendungen offline zu sein.
Während des Starts geben mehrere Nachrichten wie "[Errno 28] Kein Leerraum auf dem Gerät" oder andere Nachrichtentypen an, dass die Stammdateisystem voll ist.
Wenn ein virtueller Computer gestartet, aber nicht verfügbar ist, überprüfen Sie das serielle Protokoll in der Startdiagnose, um die Startmeldungen anzuzeigen, oder verwenden Sie die serielle Konsole , um mit dem virtuellen Computer zu interagieren. Wenn der Speicherplatz nicht ausreicht, löschen Sie nicht benötigte Daten, um Speicherplatz frei zu geben oder die Datenträger zu erweitern.
Wenn das Konsolenprotokoll viele Meldungen mit dem Hinweis "ERROR ExtHandler /proc/net/route enthält keine Routen" enthält, kann auch ein vollständiger Betriebssystemdatenträger die Ursache sein, da die Netzwerkdienste nicht vollständig gestartet werden können.
Lösung
Die folgenden Lösungen gelten für alle vorherigen Szenarien.
Lösung 1: Löschen nicht benötigter Daten
Erhalten Sie Zugriff auf Betriebssystemdatenträger und Partitionen mithilfe von Az VM-Reparaturbefehlen , einer manuellen Wiederherstellungs-VM oder einem einzelbenutzermodus, da das System nicht normal startet.
Identifizieren Sie große Dateien und Verzeichnisse mithilfe von Standardmäßigen Linux-Tools und -Befehlen:
du -ks /* | sort -n
– Suchen Sie die am meisten speicherplatzaufwendigen Dateien oder Verzeichnisse an einem Speicherort. Wiederholen Sie den Vorgang im größten gemeldeten Verzeichnis, bis einige große Daten aufgedeckt werden.ls -altSr /var/log
– Listet den Inhalt eines Verzeichnisses auf, sortiert nach Größe, in aufsteigender Reihenfolge.find / -size +500M -exec ls -alFh {} \;
- Suchen Sie große einzelne Dateien. Passen Sie den500M
Wert bei Bedarf auf mehrere Megabyte oder Gigabyte an, um die effektivsten Dateien zu finden, um zu löschen.
Entfernen Sie alle Dateien, die als unnötig identifiziert werden können, z. B. alte Protokolle, vergessene Sicherungen und ähnliche Dateien.
Nachdem ein geeigneter Speicherplatz gelöscht wurde, richten Sie sich auf rund 10 % freie Festplatte, und starten Sie das System neu.
Auflösung 2: Erweitern des Betriebssystemdateisystems
Wenn keine Daten aus dem Betriebssystemdateisystem gelöscht werden können, empfiehlt es sich, den Datenträger mit den kritischen Betriebssystemvolumes zu erweitern. Weitere Informationen finden Sie unter Erweitern virtueller Festplatten auf einem virtuellen Linux-Computer.
Nächste Schritte
Falls der spezifische Startfehler aufgrund eines vollständigen Betriebssystemdatenträgers kein Linux-Startproblem ist, finden Sie unter "Problembehandlung bei Virtuellen Azure Linux-Computerstartfehlern " zur weiteren Problembehandlung.
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.