Wie erhöhe ich die EBS-Volume-Größe einer laufenden Instanz? [geschlossen]


72

Ich habe einen Server, auf dem die neuesten Ubuntu-AMIs von Canonical ausgeführt werden. Die Größe des EBS-Startvolumes beträgt 8 GB. Ich weiß, dass ich die Größe von EBS-Volumes ändern kann, indem ich einen Snapshot mache, ein neues Volume erstelle und die Partition darauf erweitere. Wie kann ich das Volume bei laufendem Computer vergrößern? Wenn dies nicht möglich ist, welche Methode wird bevorzugt, um das Startvolumen bei minimalen Ausfallzeiten zu erhöhen?


Ich weiß, dass dies beantwortet wurde, aber ich habe neulich dieses fantastische einfache Tutorial gefunden. Und es ist das, was ich am Wochenende verfolgen / verwenden werde. tekgoblin.com/2012/08/27/…
leen3o

Und die Linux-Version, die für mich funktionierte und leicht zu folgen war: cloud.tekgoblin.com/2013/04/29/…
Carasel

Hier ist ein Link zu einer neueren (2015) Beschreibung des Prozesses.
Ville

Wenn jemand nach 2019 hierher gekommen ist, sollte dies ohne Ausfallzeiten geschehen
Atul

Antworten:


40

Leider ist es nicht möglich, die Größe eines Amazon EBS- Root-Gerätespeichervolumens zu erhöhen, während die Amazon EC2- Instanz ausgeführt wird. Eric Hammond hat einen ausführlichen Artikel über die Größenänderung der Root-Festplatte geschrieben auf einer laufenden EBS Boot EC2-Instanz :

Solange Sie mit einer kleinen Ausfallzeit auf der EC2-Instanz (einige Minuten) einverstanden sind, können Sie das Root-EBS-Volume durch eine größere Kopie ersetzen, ohne eine neue Instanz starten zu müssen.

Wenn Sie die von ihm beschriebenen Schritte richtig vorbereiten (ich empfehle dringend, sie zuerst mit einer wegwerfbaren EC2-Instanz zu testen, um sich mit dem Verfahren vertraut zu machen), sollten Sie in der Lage sein, den Vorgang nur mit einigen Minuten Ausfallzeit abzuschließen.

Viel Glück!


2
Noch besser ist es, wenn Sie ein Skript schreiben, um die Aktion auszuführen. Testen Sie es mit einer Testinstanz und führen Sie den Test dann auf dem Produktionsserver aus, um das Risiko zu verringern, einen Schritt zu vergessen.
Bwight

16
DIESE ANTWORT IST NICHT MEHR WAHR. docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
Cohadar

69

Wir können die Volume-Größe mit den neuen EBS Feature Elastic-Volumes erhöhen. Nachdem Sie die folgenden Schritte ausgeführt haben, müssen Sie die folgenden Schritte ausführen

Angenommen, Ihr Volumen war 16 GB und Sie haben es auf 32 GB erhöht.

    $lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  32G  0 disk
└─xvda1 202:1    0  16G  0 part /

Um xvda1 von 16 GB auf 32 GB zu erweitern, benötigen wir growpart. Growpart ist als Teil von Cloudutils erhältlich

sudo apt install cloud-utils

Führen Sie nach der Installation der Cloud-Utils den Befehl growpart aus

sudo growpart /dev/xvda 1

Jetzt wird lsblk zeigen

    $ lsblk
NAME    MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  32G  0 disk
└─xvda1 202:1    0  32G  0 part /

aber df -h zeigt nur 16GB

Der letzte Befehl zum Erweitern von xvda1 auf 32 GB lautet

sudo resize2fs /dev/xvda1

Im Falle eines XFS-Dateisystems

sudo xfs_growfs /dev/xvda1 Danke Ei


Es funktioniert. Danke.
Murali

Das ist wirklich erstaunlich, funktioniert wie ein Charme - vielen Dank :-)
Peter T.

hat großartig funktioniert, um den zugewiesenen Speicherplatz von der aws-Konsole
anzuwenden

1
Dieser sollte als Antwort akzeptiert werden!
Abweichend

2
Wenn Sie ein XFS-Dateisystem verwenden, sollte der letzte Befehl sudo xfs_growfs /dev/xvdalanstelle von lauten resize2fs.
Ei

22

Eine späte Antwort auf diese 5-jährige Frage

AWS hat gerade eine neue EBS-Funktion namens Elastic Volumes angekündigt , mit der Sie die Volume-Größe erhöhen, die Leistung anpassen oder den Volume-Typ ändern können, während das Volume verwendet wird.

Weitere Informationen finden Sie im AWS-Blog hier .


1
Dies ist fantastisch, aber beachten Sie, dass einige ältere Volumes möglicherweise nicht unterstützt werden. Ich lief aws ec2 modify-volume --region us-west-2 --volume-id vol-0123456789 --size 20und bekam diesen Fehler:An error occurred (InvalidParameterValue) when calling the ModifyVolume operation: Volume type EBS Magnetic is not supported.
Runamok

@ Runamok: Das stimmt. Wie hier angegeben , werden magnetische Volumentypen der vorherigen Generation von der oben beschriebenen Methode nicht unterstützt. In diesem Fall wäre es die Lösung, einen Snapshot auf einem anders konfigurierten EBS-Volume wiederherzustellen.
Khalid T.

8

Sie müssen nur zuerst den Snapshot erstellen und aus diesem Snapshot ein anderes Volume erstellen. Sobald das neue Volume fertig ist, trennen Sie das alte Volume von der Instanz und hängen Sie das neue Volume an. Stellen Sie sicher, dass Sie die Instanz stoppen, bevor Sie diesen Prozess starten, und starten Sie die Instanz neu, sobald sie abgeschlossen ist.

Siehe http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html


-1

Dies funktioniert für das xfs-Dateisystem. Führen Sie einfach diesen Befehl aus xfs_growfs /


Es funktioniert für AWS unubtu 12.X. und es ist möglich, dass zur Laufzeit kein Neustart erforderlich ist.
Saurabh Chandra Patel

-1

Ich habe festgestellt, dass ich beim Versuch, die Root-Partition / dev / sda1 zu erhöhen, die auf centos6 als / dev / xvda1 gemeldet wurde, das Volume nicht aushängen konnte, um die Partition zu erweitern.

Ich habe dies umgangen, indem ich mein ursprüngliches Volume als / dev / sda1 und meinen Snapshot als / dev / sdb gemountet habe. Ich habe dann das Image neu gestartet und die Größe der Partition / dev / sdb1 mithilfe von parted geändert.

Nachdem die Größe der Partition / dev / sdb1 geändert wurde, habe ich beide Volumes getrennt und das neue Volume erneut an / dev / sda1 angehängt und resize2fs / dev / xvda1 ausgeführt.


-2

Du kannst das nicht machen. Wenn Sie sich jedoch mehr auf Ausfallzeiten als auf Kosten konzentrieren, können Sie möglicherweise Ihre Hauptinstanz klonen, ein größeres EBS-Speichergerät auf Ihrem System bereitstellen, die Daten kopieren und dann den Datenverkehr auf Ihre neue Instanz umleiten.

Wenn Sie möchten, verfügt eine Methode, die ich in letzter Zeit mit S3 verwende, über ein Medium zur Sicherung und Bereitstellung auf anderen Systemen. So läuft beispielsweise Ihr vorhandenes System. Legen Sie ein Skript fest, um Ihre Daten alle N Minuten / Stunden / Tage auf s3 hochzuladen. Schreiben Sie dann ein Skript, das beim Starten neuer Instanzen zum Herunterladen dieser Daten verwendet werden soll. Wenn Ihre Daten nicht ständig aktualisiert werden, sollte dies gut funktionieren (für mich verwende ich dies, um die aktualisierte Version meiner Codebasis zu verteilen, während die Daten selbst auf einem ec2-Datenbankserver verwaltet werden).

Hoffentlich hilft das.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.