Wie kann ich den Fehler „Volumen Vol-xxxxxxxxxx kann im Modifikationsstatus WIRD OPTIMIERT nicht geändert werden“ in CloudFormation beheben, wenn ich versuche, meinen Amazon EBS-Volumentyp (AWS::EC2::Volume) zu aktualisieren?

Lesedauer: 4 Minute
0

Ich erhalte den Fehler „Volumen Vol-xxxxxxxxxx kann im Modifikationsstatus WIRD OPTIMIERT nicht geändert werden“ oder einen ähnlichen Fehler in AWS CloudFormation. Dieser Fehler tritt auf, wenn ich versuche, meinen Amazon Elastic Block Store (Amazon EBS)-Volumentyp zu aktualisieren. Mein EBS-Volumen (AWS::EC2::Volume) bleibt lange Zeit im Status UPDATE_IN_PROGRESS hängen und kann den Volumentyp schließlich nicht aktualisieren. Mein Stack kann nicht aktualisiert werden und der nachfolgende Update-Rollback schlägt ebenfalls fehl. Dann landet der Stack im Status UPDATE_ROLLBACK_FAILED.

Kurzbeschreibung

Wenn Sie Anmeldeinformationen verwenden, wenn Ihr CloudFormation-Stack ein EBS-Volume ändert, beträgt der Timeout-Zeitraum für das Volume ungefähr sieben Stunden. Wenn Sie den Stack stattdessen mit einer AWS Identity and Access Management (IAM)-Servicerolle ausführen, erhöht CloudFormation den Timeout-Zeitraum auf 36 Stunden.

Hinweis: Der Timeout-Zeitraum für das Volume gilt nur für Volumenänderungen mithilfe von CloudFormation. Der Timeout-Zeitraum variiert je nach Art von Ressourcen und Aktionen.

In der Regel dauert es etwa sechs Stunden, bis ein voll ausgelastetes 1-Tebibyte (TiB) EBS-Volume auf eine neue Leistungskonfiguration migriert wird. Weitere Informationen finden Sie unter Überwachen des Fortschritts von Volumenänderungen.

Wichtig: Wenn Sie bereits ein Stack-Update mit CloudFormation initiiert haben, müssen Sie etwa sieben Stunden warten, bis sich der Stack stabilisiert hat, bevor Sie die folgenden Schritte ausführen. Ihr Stack wird stabilisiert, wenn er in den Status UPDATE\ _ROLLBACK\ _FAILED wechselt.

Behebung

Hinweis: Wenn Sie beim Ausführen von AWS Command Line Interface (AWS CLI)-Befehlen Fehler erhalten, vergewissern Sie sich, dass Sie die neueste AWS CLI-Version verwenden.

Stellen Sie Ihren Stapel wieder her, nachdem Sie darauf gewartet haben, dass sich der Stapel stabilisiert hat

Sehen Sie sich das folgende Beispiel an. Wenn Sie Ihren EBS-Volumetyp von st1 auf gp3,ändern, kann es sein, dass Ihr Stack den Volumetyp aufgrund der Volumegröße nicht aktualisiert. In diesem Szenario können Sie Ihren Stack wiederherstellen, indem Sie den continue-update-rollback-Vorgang auf Ihrem Stack ausführen. Für den Wiederherstellungsvorgang müssen Sie die logische ID der Ressource überspringen, die nicht aktualisiert werden konnte. Ihr Stack landet im Status UPDATE\ _ROLLBACK\ _COMPLETE.

Stellen Sie Ihren Stack entweder mithilfe der AWS CLI oder der CloudFormation-Konsole wieder her.

AWS CLI:

aws cloudformation continue-update-rollback --stack-name your-stack-name --resources-to-skip logical-ID-of-EBS-volume

CloudFormation-Konsole:

  1. Öffnen Sie die CloudFormation-Konsole.

  2. Wählen Sie im Navigationsbereich Stacks aus.

  3. Wählen Sie in der Spalte Stack name den Stack aus, der im Status UPDATE\ _ROLLBACK\ _FAILED hängen bleibt.

4.Wählen Sie Stack-Aktionen und dann Update-Rollback fortsetzen aus.

5.Erweitern Sie im Dialogfeld Update-Rollback fortsetzen die Option Erweiterte Problembehandlung.

6.Wählen Sie im Abschnitt Zu überspringende Ressourcen – optional die Ressourcen aus, die Sie überspringen möchten.

Hinweis: Achten Sie darauf, die logische ID des Volumes auszuwählen, das nicht aktualisiert werden konnte.

7.Wählen Sie Update-Rollback fortsetzen aus.

Aktualisieren Sie Ihren Stack so, dass er dem aktuellen Status Ihres EBS-Volumes entspricht

Sie müssen Ihren Stack aktualisieren, damit er dem aktuellen Status Ihres EBS-Volumes entspricht. Ihre CloudFormation-Vorlage wird durch Ihr Stack-Update aktualisiert, und Ihr Stack wechselt in den Status UPDATE_COMPLETE.

Sie können beispielsweise den Volumetyp (AWS::EC2::Volume) von st1 in gp3 ändern. Der Volume-Typ in CloudFormation bleibt jedoch aufgrund des Rollback-Vorgangs st1, auch wenn das Update auf gp3 in Amazon EBS korrekt wiedergegeben wird.

  1. Um den Status Ihres EBS-Volumes zu überwachen, verwenden Sie die Amazon EC2-Konsole oder führen Sie den folgenden Befehl aus:
aws ec2 describe-volumes-modifications --volume-ids your-volume-ID
  1. Nachdem der Volumetyp in Amazon EBS auf gp3 geändert wurde, aktualisieren Sie den CloudFormation-Stack mit dem Volumetyp (AWS::EC2::Volume) als gp3.

Hinweis: Sie können Ihre CloudFormation-Vorlage ändern, indem Sie den Volume-Typ in gp3 ändern. Führen Sie dann den Aktualisierungsvorgang aus.

  1. Verwenden Sie die Drifterkennung, um zu überprüfen, ob Ihre EBS-Volume-Ressource (AWS::EC2::Volume) mit Ihrem Stack synchronisiert ist.

Wichtig: Ihr Stack-Update kann länger als 36 Stunden dauern, wenn Sie keine Servicerolle verwenden oder wenn die Volumegröße hoch ist (~8 TiB). In solchen Fällen kann Ihr Stack-Update auch dann fehlschlagen, wenn Sie eine Servicerolle mit 36-stündiger Stabilisierung verwendet haben. Dann müssen Sie warten, bis sich Ihr Stack stabilisiert hat. Während dieses Zeitraums können Sie keinen anderen Ressourcentyp ändern. Gehen Sie wie folgt vor, um dieses Problem zu beheben:

  1. Verwenden Sie eine Retain-Löschrichtlinie, um das EBS-Volume aus Ihrem Stack zu entfernen, ohne das Volume zu löschen.

  2. Aktualisieren Sie Ihr EBS-Volume außerhalb von CloudFormation, indem Sie stattdessen die Amazon EBS-Konsole verwenden.

  3. Importieren Sie Ihr EBS-Volume wieder in Ihren Stack.

Wenn Sie das Volumen jederzeit im Stack behalten möchten, müssen Sie die Volumegröße unter einem Schwellenwert halten. Wenn beispielsweise 8 TiB an Daten 64 Stunden benötigen, können Sie die maximale Größe für 36 Stunden schätzen und die Datengröße auf 4 TiB reduzieren. Durch diese Anpassung des Schwellenwerts kann Ihr Update abgeschlossen werden.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Jahren