Wachsende Amazon EBS-Volumengrößen [geschlossen]

154

Ich bin ziemlich beeindruckt von den EC2- und EBS-Diensten von Amazon. Ich wollte wissen, ob es möglich ist, ein EBS-Volumen zu vergrößern.

Beispiel: Wenn ich ein 50-GB-Volume habe und nicht mehr genügend Speicherplatz zur Verfügung steht, kann ich es bei Bedarf auf 100 GB erhöhen?

Nikhil Gupte
quelle
2
Ich habe ein Tutorial geschrieben, um die Größe Ihres EBS-Volumens zu erhöhen
aws-musings.com/how-to-expand-your-ebs-volume
8
Gute Frage (+1). Besser für Serverfehler geeignet?
Jonik
1
Bitte stimmen Sie dieser Antwort zu, da sie viel aktueller ist: stackoverflow.com/a/15229477/163461
David
1
@ Jonik Ich stimme vollkommen zu. Für diejenigen, die dies können (und auch zustimmen), stimmen Sie bitte ab, diese Frage erneut zu öffnen, damit sie migriert werden kann. Es sei denn, ein Mod, der dies liest, kann dasselbe tun?
Yuck
Dies sollte auf Server Fault migriert werden, wenn nicht aus anderen Gründen als um aktuellere Antworten zuzulassen (z. B. eine, die auf die Dokumentation von AWS zu diesem Thema unter docs.aws.amazon.com/AWSEC2/latest/UserGuide/… verweist )
Jeromy French

Antworten:

9

Alles gute Empfehlungen, und ich dachte, ich würde diesen Artikel hinzufügen, der sich auf das Erweitern einer Windows Amazon EC2 EBS-Instanz mit den Amazon Web UI-Tools bezieht, um die erforderlichen Änderungen vorzunehmen. Wenn Sie mit der Verwendung von CLI nicht vertraut sind, erleichtert dies Ihr Upgrade erheblich.

http://www.tekgoblin.com/2012/08/27/aws-guides-how-to-resize-a-ec2-windows-ebs-volume/

Vielen Dank an TekGoblin für die Veröffentlichung dieses Artikels.

Pat McCarten
quelle
103

Sie können den Speicher vergrößern, dies ist jedoch nicht im laufenden Betrieb möglich. Sie müssen einen Schnappschuss des aktuellen Blocks erstellen, einen neuen, größeren Block hinzufügen und Ihren Schnappschuss erneut anhängen.

Hier finden Sie eine einfache Anleitung , die auf der Verwendung der EC2-Befehlszeilentools von Amazon basiert

ConroyP
quelle
2
Sie müssen auch die Größe des Dateisystems ändern. Sie suchen wahrscheinlich nach "resize2fs - ext2 / ext3 / ext4 Dateisystem Resizer".
James Moore
8
Ich musste das nur googeln. Ich habe diese Frage und dieses Video gleichzeitig getroffen. Dies ist ein wirklich großartiger Walkthough, vielen Dank an den Ersteller: youtube.com/watch?v=ouYjQ3_I3BA (Ich habe alles selbst herausgefunden, bis auf das Resizer-Bit, wie James Moore erwähnt hat.)
Chris Allen Lane
Es gibt auch eine Möglichkeit, die Größe des EBS- Volumes mithilfe des AWS-SDK festzulegen, indem Sie zuerst die Volume-Größe des Snapshots als eine der Flexibilitäten für The Benefit mithilfe des EBS abfragen .
Chetabahana
Sie können die Größe eines Live-Volumes jetzt über die AWS-Konsole ändern . Scheint nur auf SSD-Instanzen (gp2, io1) zu funktionieren, und Sie können sogar von einem Typ zum anderen wechseln. Ich bin nicht sicher, wann es hinzugefügt wurde, aber dies löst einen Hauptschmerzpunkt.
STRML
44

Sie können nicht einfach mehr Speicherplatz im laufenden Betrieb "einbauen", wenn Sie ihn benötigen, aber Sie können die Größe der Partition mit einem Snapshot ändern.

Schritte dazu:

  1. ebs volumen aushängen
  2. Erstellen Sie einen EBS-Snapshot
  3. Fügen Sie neues Volumen mit mehr Platz hinzu
  4. Erstellen Sie die Partitionstabelle neu und ändern Sie die Größe des Dateisystems
  5. Hängen Sie das neue EBS-Volume ein

Ansehen http://aws.amazon.com/ebs/ an - EBS Snapshot:

Snapshots können auch verwendet werden, um mehrere neue Volumes zu instanziieren, die Größe eines Volumes zu erweitern oder Volumes über Verfügbarkeitszonen zu verschieben. Wenn ein neues Volume erstellt wird, besteht die Möglichkeit, es basierend auf einem vorhandenen Amazon S3-Snapshot zu erstellen. In diesem Szenario beginnt das neue Volume als exakte Nachbildung des ursprünglichen Volumes. Durch optionales Angeben einer anderen Volume-Größe oder einer anderen Verfügbarkeitszone kann diese Funktionalität verwendet werden, um die Größe eines vorhandenen Volumes zu erhöhen oder doppelte Volumes in neuen Verfügbarkeitszonen zu erstellen. Wenn Sie Snapshots verwenden, um die Größe Ihres Volumes zu ändern, müssen Sie sicherstellen, dass Ihr Dateisystem oder Ihre Anwendung die Größenänderung eines Geräts unterstützt.

Echox
quelle
22

Ich folgte der ganzen Antwort, allen fehlt bei allem Respekt etwas.

Wenn Sie diese Schritte ausführen, können Sie Ihr EBS-Volume vergrößern und Ihre Daten behalten (dies gilt nicht für das Root-Volume). Der Einfachheit halber schlage ich vor, AWS Consule zum Erstellen von Snapshots zu verwenden. Sie können dies auch mit AWS-Befehlszeilentools tun.

Wir berühren hier nicht das Root-Volume.

Gehen Sie zu Ihrer AWS-Konsole:

  1. Fahren Sie Ihre Instanz herunter (nur einige Minuten)
  2. Trennen Sie das Volumen, das Sie vergrößern möchten (z. B. / dev / xvdf).
  3. Erstellen Sie eine Momentaufnahme des Volumes.
  4. Erstellen Sie mit dem soeben erstellten Snapshot ein neues Volume mit einer größeren Größe
  5. Hängen Sie das neue Volume an Ihre Instanz an
  6. Starten Sie Ihre Instanz

SSH zu Ihrer Instanz:

 $ sudo fdisk -l

Dies gibt Ihnen etwas wie:

Disk /dev/xvdf: 21.5 GB, 21474836480 bytes
12 heads, 7 sectors/track, 499321 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd3a8abe4

    Device Boot      Start         End      Blocks   Id  System
/dev/xvdf1            2048    41943039    20970496   83  Linux

Notieren Sie die Start- und ID- Werte. (in diesem Fall 2048 und 83)

Löschen Sie mit fdisk die Partition xvdf1 und erstellen Sie eine neue Partition, die genau vom selben Block (2048) ausgeht. Wir werden ihm den gleichen Ausweis geben (83):

$ sudo fdisk /dev/xvdf 

Command (m for help): d
Selected partition 1

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 
Using default value 1
First sector (2048-41943039, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): 
Using default value 41943039

Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 83

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Dieser Schritt wird hier gut erklärt: http://litwol.com/content/fdisk-resizegrow-physical-partition-without-losing-data-linodecom

Fast fertig, wir müssen nur das Volume mounten und resize2fs ausführen:

Hängen Sie das ebs-Volume ein: (meins ist bei / mnt / ebs1)

$ sudo mount /dev/xvdf1 /mnt/ebs1

und ändern Sie die Größe:

$ sudo resize2fs -p /dev/xvdf1

resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/xvdf1 is mounted on /mnt/ebs1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
Performing an on-line resize of /dev/xvdf1 to 5242624 (4k) blocks.
The filesystem on /dev/xvdf1 is now 5242624 blocks long.

ubuntu@ip-xxxxxxx:~$ 

Getan! Verwenden Sie df -hdiese Option, um die neue Größe zu überprüfen.

Sucher
quelle
19

Solange Sie mit ein paar Minuten Ausfallzeit einverstanden sind, hat Eric Hammond einen guten Artikel über die Größenänderung der Root-Festplatte auf einer laufenden EBS-Instanz geschrieben: http://alestic.com/2010/02/ec2-resize-running-ebs -Wurzel

Jeff Bauer
quelle
1
Davon inspiriert, begann ich „awscripts“ schreiben, @ github.com/moejay/awscripts es auch Erics Befehle enthält als solche zu ändern Instanztypen, in einem einfachen, ‚crontabbable‘ script
jay
5

Sie können dies jetzt über die AWS Management Console tun. Der Vorgang ist der gleiche wie in den anderen Antworten, Sie müssen jedoch nicht mehr zur Befehlszeile wechseln.

Boggin
quelle
7
Können Sie weitere Informationen dazu über die Webkonsole veröffentlichen? Die Konsole kann möglicherweise die Größe des Volumes ändern. Wie wird jedoch die Größe der Partition innerhalb des Volumes geändert, insbesondere wenn es sich um einen Typ wie XFS, BRTFS usw. handelt?
Riyad Kalla
Dies sollte ein Kommentar sein, da er nur vorhandene Antworten erweitert und an und für sich nichts Neues hinzufügt.
Yuck
1
Anweisungen zur Verwendung der Webkonsole
Dan Osipov
4

Übrigens: Wie bei physischen Festplatten kann es nützlich sein, LVM zu verwenden. Ex:

http://www.davelachapelle.ca/guides/ubuntu-lvm-guide/ http://www.centos.org/docs/5/html/Cluster_Logical_Volume_Manager/

Großer Vorteil: Es ermöglicht das dynamische Hinzufügen (oder Entfernen) von Speicherplatz.

Es kann auch leicht zwischen / zwischen Instanzen verschoben werden.

Vorsichtsmaßnahmen:

  • Es muss im Voraus konfiguriert werden
  • Ein einfaches JBOD-Setup bedeutet, dass Sie alles verlieren, wenn Sie eine "Festplatte" verlieren.
mvgfr
quelle
4

Meine Schritte:

  1. Stoppen Sie die Instanz
  2. Suchen Sie das an die Instanz angehängte ebs-Volume und erstellen Sie einen Snapshot davon
  3. Erstellen Sie mit dem obigen Snapshot ein neues Volume mit größerem Speicherplatz. Leider ist die Benutzeroberfläche auf der aws-Konsole zum Erstellen eines Snapshots fast unbrauchbar, da alle Snapshots auf aws aufgelistet sind. Die Verwendung des Befehlszeilen-Tools ist viel einfacher:

    ec2-create-volume -s 100 --snapshot snap-a31fage -z us-east-1c
    
  4. Trennen Sie das vorhandene ebs-Volumen (kleiner) von der Instanz

  5. Hängen Sie das neue (größere) Volume an die Instanz an und stellen Sie sicher, dass Sie es an dasselbe Gerät anhängen, das die Instanz erwartet (in meinem Fall ist es / dev / sda1).
  6. Starten Sie die Instanz

Du bist fertig!

Mit Ausnahme von Schritt 3 oben können Sie alles über die aws-Verwaltungskonsole ausführen.

Beachten Sie auch wie hier erwähnt:

/server/365605/how-do-i-access-the-attached-volume-in-amazon-ec2

Das Gerät auf Ihrer ec2-Instanz ist möglicherweise / dev / xv *, während die aws-Webkonsole Ihnen mitteilt, dass es sich um / dev / s * handelt.

Dexin Wang
quelle
2
Ab November 2013 können Sie den neu erstellten Snapshot auswählen und dann oben auf der Seite auf "Volume erstellen" klicken. Dadurch wird aus dem Snapshot ein Volume erstellt, und Sie können Schritt 3 oben über die Befehlszeile vermeiden.
Matt C
1
Ein Hinweis ist, dass Sie sicherstellen sollten, dass Sie das Volume in derselben Verfügbarkeitszone wie die Instanz erstellen, da Sie es sonst nicht anhängen können.
Codecowboy
3

Verwenden Sie den Befehl "diskpart" für Windows-Betriebssysteme. Sehen Sie hier nach: Verwenden Sie http://support.microsoft.com/kb/300415. Im Folgenden sind die Schritte aufgeführt, die ich für eine Nicht-Root-Festplatte (einfache, nicht dynamische Festplatte) ausgeführt habe.

Nachdem Sie einen Snapshot erstellt, das alte EBS-Volume (z. B. 600 GB) abgemeldet und ein größeres EBS-Volume (z. B. 1 TB) erstellt und dieses neue EBS-Volume bereitgestellt haben, müssen Sie Windows über die Größenänderung (von 600 GB auf 1 TB) informieren an der Eingabeaufforderung (als Administrator ausführen)

diskpart.exe

Wählen Sie disk = 9

Volumen auswählen = Z.

erweitern

[Meine Festplatte 9 mit der Bezeichnung Z war ein Volume mit einer Größe von 1 TB, das aus einem ec2-Snapshot mit einer Größe von 600 GB erstellt wurde. Ich wollte die Größe von 600 GB auf 1 TB ändern und konnte daher die obigen Schritte ausführen, um dies zu tun.]

dinn11
quelle
Funktionierte hervorragend für mein Win Server 2003 R2 Datacenter-System. Danke für den Tipp!
Jeff Hay
Toller Beitrag, hat mir sehr geholfen!
user1326293
0

Ich empfehle Logical Volume Manager (LVM) für alle EBS-Volumes, sofern Ihr Betriebssystem dies unterstützt. Linux-Distributionen tun dies im Allgemeinen. Es ist aus mehreren Gründen großartig.

  1. Das Ändern und Verschieben logischer Volumes kann live erfolgen. Anstelle des gesamten Offline-Snapshots, für den Ausfallzeiten erforderlich sind, können Sie einfach ein weiteres größeres EBS-Volume erstellen und es als physisches Volume (PV) zum LVM-Pool hinzufügen logisches Volume (LV), entfernen Sie das alte physische Volume aus dem Pool und löschen Sie das alte EBS-Volume. Anschließend ändern Sie einfach die Größe des logischen Volumes und die Größe des darauf befindlichen Dateisystems. Dies erfordert überhaupt keine Ausfallzeiten!

  2. Es abstrahiert Ihren Speicher von Ihren "physischen" Geräten. Das Verschieben von Partitionen zwischen Geräten, ohne dass Ausfallzeiten oder Änderungen an Mountpoints / fstab erforderlich sind, ist sehr praktisch.

Es wäre schön, wenn Amazon es ermöglichen würde, die Größe von EBS-Volumes im laufenden Betrieb zu ändern, aber mit LVM ist dies nicht unbedingt erforderlich.

Martijn Heemels
quelle
0

Wenn Ihr Root-Volume das xfs-Dateisystem ist, führen Sie diesen Befehl xfs_growfs / aus

Saurabh Chandra Patel
quelle
Dies erfordert etwas mehr Details, um als vollständige und brauchbare Antwort zu gelten.
Yuck