it-swarm.com.de

Wachsende Amazon EBS-Volumengrößen

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 Volumen von 50 GB habe und der Speicherplatz knapp wird, kann ich ihn bei Bedarf auf 100 GB erhöhen?

153
Nikhil Gupte

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 CLI nicht vertraut sind, erleichtert dies das 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.

9
Pat McCarten

Sie können den Speicher erweitern, 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.

Es gibt eine einfache exemplarische Vorgehensweise hier basierend auf Amazon EC2-Befehlszeilentools

103
ConroyP

Sie können nicht einfach mehr Speicherplatz im Handumdrehen "anstoßen", wenn Sie ihn benötigen, aber Sie können die Größe der Partition mit einem Schnappschuss ändern.

Schritte dazu:

  1. ebs volumen aushängen
  2. erstellen Sie einen ebs-Schnappschuss
  3. füge ein neues Volume mit mehr Platz hinzu
  4. partitionstabelle neu erstellen und Dateisystemgröße ändern
  5. montieren Sie das neue EBS-Volume

Schauen Sie sich http://aws.Amazon.com/ebs/ - EBS Snapshot an:

Snapshots können auch verwendet werden, um mehrere neue Volumes zu instanziieren, die Größe eines Volumes zu erweitern oder Volumes über Availability Zones 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 Kopie des ursprünglichen Volumes. Indem Sie optional eine andere Volume-Größe oder eine andere Availability Zone angeben, können Sie mit dieser Funktion die Größe eines vorhandenen Volumes erhöhen oder doppelte Volumes in neuen Availability Zones 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.

44
echox

Ich bin der ganzen Antwort gefolgt, allen hat bei allem Respekt etwas gefehlt.

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 für einige Minuten)
  2. Lösen Sie das Volumen, das Sie vergrößern möchten (z. B./dev/xvdf).
  3. Erstellen Sie einen Schnappschuss des Volumes.
  4. Erstellen Sie mit dem soeben erstellten Schnappschuss 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 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 ausgeht (2048). Wir geben ihm die gleiche ID (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 ausführlich 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:

Mounte das ebs Volume: (meins ist bei/mnt/ebs1)

$ Sudo mount /dev/xvdf1 /mnt/ebs1

und verkleinere es:

$ 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.

[email protected]:~$ 

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

22
Seeker

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-root

19
Jeff Bauer

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.

5
Boggin

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 Schnappschuss ein neues Volume mit größerem Speicherplatz. Leider ist die Benutzeroberfläche auf der aws-Konsole zum Erstellen eines Snapshots fast unbrauchbar, da sie alle Snapshots auf aws auflistet. Die Verwendung des Befehlszeilentools ist viel einfacher:

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

  5. hänge das neue (größere) Volume an die Instanz an und stelle sicher, dass es an dasselbe Gerät angehängt wird, 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 erledigen.

Beachten Sie auch, wie hier erwähnt:

https://serverfault.com/questions/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 angibt, dass es sich um/dev/s * handelt.

4
Dexin Wang

Übrigens: Wie bei physischen Datenträgern 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: Ermöglicht das dynamische Hinzufügen (oder Entfernen) von Speicherplatz.

Es kann auch leicht zwischen/zwischen Instanzen verschoben werden.

Vorsichtsmaßnahmen:

  • es muss vorab konfiguriert werden
  • ein einfaches JBOD-Setup bedeutet, dass Sie alles verlieren, wenn Sie eine "Festplatte" verlieren.
4
mvgfr

Verwenden Sie den Befehl "diskpart" für Windows-Betriebssysteme. Schauen Sie hier nach: Use http://support.Microsoft.com/kb/300415 Im Folgenden sind die Schritte aufgeführt, die ich für eine Nicht-Root-Festplatte ausgeführt habe (im Allgemeinen nicht) dynamischer Datenträger)

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

diskpart.exe

wählen Sie disk = 9

volumen wählen = Z

erweitern

[Mein Datenträger 9 mit der Bezeichnung Z war ein Datenträger mit einer Größe von 1 TB, der aus einem Ec2-Snapshot mit einer Größe von 600 GB erstellt wurde.

3
dinn11

wenn Ihr Root-Volume das Dateisystem xfs ist, führen Sie den folgenden Befehl aus: xfs_growfs /

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

  1. Das Ändern der Größe und Verschieben von logischen Volumes kann live erfolgen. Statt des gesamten Offline-Snapshots, für den Ausfallzeiten erforderlich sind, können Sie einfach ein weiteres größeres EBS-Volume hinzufügen und es als physisches Volume (PV) in den LVM-Pool verschieben 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 das Dateisystem darauf. 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 möglich machen würde, die Größe von EBS-Volumes im laufenden Betrieb zu ändern, aber mit LVM ist dies nicht erforderlich.

0
Martijn Heemels