Zum Inhalt springen
TURNKEYGNU / LINUX
AnwendungenDokumentationBlogBildschirmfotosGitHubTurnKey Hub
文Deutsch
EnglishEspañol中文日本語PortuguêsDeutsch
Haus/Amazon EC2: So erweitern Sie die Größe eines vorhandenen Root-Volumes

Dokumentation

Amazon EC2: So erweitern Sie die Größe eines vorhandenen Root-Volumes

Anmerkungen:

  • Ab 2019 ist dies der empfohlene Pfad, wenn Sie die Größe Ihres Wurzelvolumens erhöhen möchten. Best practice ist, ihren server für den ersten snapshot zu stoppen, aber streng genommen ist es nicht erforderlich.
  • Alternativ sehen Sie bitte die Altdokumentation bei der Migration von Daten zu einer neuen Instanz (mit größerem Volumen), sollte sie dennoch relevant sein.
  • Diese Seite ist nur für EBS-gestützte AWS EC2-Instanzen relevant. Verschieben von Dateien in Ihren Instanzspeicher.

* - "Instance Storage" ist nur für ältere AWS-Instanzgrößen verfügbar, d.h. ältere Versionen von TurnKey und/oder älteren AWS-Instanzgrößen. Wenn Sie einen v14.2+ TurnKey-Server haben, wird er mit ziemlicher Sicherheit EBS unterstützt. Versionen, die so weit zurück wie v13.0 sind, werden wahrscheinlich auch EBS unterstützt, aber überprüfen Sie dies in der AWS-Konsole, um sicher zu sein, oder posten Sie bitte auf der Seite. Foren Angabe der TurnKey-Version und AWS Instance size/type.

Das Problem: Dem Root-Dateisystem geht der Platz aus

Hier ist ein Beispiel, um das Problem zu veranschaulichen. Alon startet einen Micro-Server über den TurnKey Hub. Nach ein paar Monaten bemerkt Alon, dass der Speicherplatz auf seinem 10 GB Root-Dateisystem fast erschöpft ist.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            486M     0  486M   0% /dev
tmpfs           100M  4.1M   96M   5% /run
/dev/xvda2       9.8G  9.8G   19M   100% /
tmpfs           498M     0  498M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           498M     0  498M   0% /sys/fs/cgroup

Das Problem ist, dass es nur 10 GB im Root-Dateisystem des Servers gibt.

Wie erhöht Alon die Speichergröße?

Erhöhen Sie die Größe des Root-Volumes mithilfe der AWS Console

Erwartete Zeit bis zum Abschluss: 40 Minuten bis eine Stunde.

Diese Anweisungen gehen davon aus, dass Ihr Server von der TurnKey HubSie erfordern aber auch die Nutzung der AWS KonsoleWenn Sie den Hub (oder TurnKey) nicht verwenden, sollten sie immer noch allgemein relevant sein, obwohl Sie möglicherweise die AWS-Dokumente für mehr Details, die sich ausschließlich auf die AWS Console beziehen.

Solange Sie sich eine kleine Menge an Server-Ausfallzeiten leisten können, ist es wohl der beste Weg, dies zu beheben, das Root-Volume über die AWS-Konsole zu vergrößern. Wenn Sie sich keine Ausfallzeiten leisten können, dann kann dies live gemacht werden, aber ich würde argumentieren, dass die wenigen Minuten Ausfallzeiten das Stück des Geistes wert sind.

Bereitmachen

Als erstes müssen Sie ein Backup erstellen. Sie können TKLBAM für diesen Zweck verwenden, obwohl ich in diesem Fall empfehlen würde, einen "Schnappschuss" zu machen (auch?). Wenn Sie extrem wenig Platz haben, ist TKLBAM möglicherweise keine Option. Ein Snapshot ermöglicht es Ihnen, schneller und mit weniger Aufwand dorthin zurückzukehren, wo Sie sich gerade befinden (keine Notwendigkeit, einen neuen Server zu starten, usw.).

Während Sie Snapshots von laufenden Servern aufnehmen können, empfiehlt Amazon für die Zwecke des Backups, Snapshots von gestoppten Servern zu erstellen. Dies liegt daran, dass es eine (sehr geringe) Wahrscheinlichkeit für Datenkorruption gibt, wenn Sie einen Snapshot eines laufenden Servers machen. Es sei denn, ein paar Minuten Ausfallzeit werden ein Problem sein (und selbst dann), es scheint ein No-Brainer zu sein, diesen Rat zu befolgen.

Wenn Sie den Server anhalten, vom Hub aus Seite ServerWählen Sie Ihren Server so aus, dass die vollständigen Informationen heruntergefahren werden, und klicken Sie auf Stoppen.

Sobald Sie bereit sind, einen Snapshot zu machen, der sich immer noch auf der Hub Server-Seite befindet, suchen Sie nach dem Textlink mit der Aufschrift "x Snapshots" (wobei "x" die Anzahl der Snapshots ist, die Sie bereits gemacht haben -). Wenn du noch keine gemacht hast, ist das '0'. Klicken Sie darauf und auf der Seite, die sich öffnet, klicken Sie auf die Schaltfläche "Schnappschuss erstellen". Zunächst wird "0%" angezeigt und dauert eine Minute oder 2. Wenn Sie keinen Fortschritt sehen, versuchen Sie, die Seite zu aktualisieren. Sobald sie vollständig ist, sollten Sie einen grünen Kreis sehen.

Finden Sie Ihren TurnKey-Server in der AWS Console

Zurück auf der Seite Server des Hubs (rollen Sie Ihre Serverinformationen bei Bedarf erneut herunter), suchen Sie nach der Stelle, auf der Region steht, und notieren Sie sich das. Jetzt in einem neuen Browser-Tab / Fenster öffnen Sie Ihre Amazon Console auf die EC2 - Instanzenseite. In der AWS-Konsole, in der oberen Leiste, oben rechts (zwischen dem Sie Ihren Benutzernamen und "Support" anzeigt), klicken Sie auf die Dropdown-Anzeige und stellen Sie sicher, dass die Region mit der Region übereinstimmt, die Ihr Hub-Server ist in (wenn dies bereits der Fall ist, überspringen Sie diesen Schritt).

Wenn Sie nur einen Server/eine Instanz angehalten haben (oder sich ansonsten sicher sind, mit welchem Server Sie arbeiten müssen), können Sie diesen nächsten Schritt überspringen. Obwohl, wenn Sie 2 oder mehr Instanzen haben, um absolut sicher zu sein, dass Sie an der richtigen arbeiten, empfehle ich eine "Suche" zu machen.

Um dies zu tun, gehen Sie zurück zur Serverseite des Hubs und kopieren Sie die EC2-Instanz-ID (in meinem Fall ist es "i-0c04e369a3d987199"). Fügen Sie das in die Suchleiste oben auf der AWS Konsolen-Tab / Seite ein (standardmäßig enthält die Suchleiste den Text "Filtern nach Tags und Attributen oder Suchen nach Schlüsselwort"). Fügen Sie Ihre Server-/Instanz-ID dort ein und drücken Sie Enter.

Erhöhung der Volumengröße

Nur eine Instanz sollte nun in Ihrer AWS-Konsole angezeigt werden. Wenn Sie kein Ergebnis erhalten, überprüfen Sie erneut, ob Sie die richtige Region ausgewählt haben und ob Sie im richtigen AWS-Konto angemeldet sind (wenn Sie mehrere Konten verwenden). Weitere Informationen über Ihren Server sollten nun im unteren Bereich tragfähig sein.Scrollen Sie durch diesen, bis Sie "Root-Gerät" sehen, wird es wahrscheinlich "/dev/xvda" sein.

Klicken Sie auf das Gerät (z. B. /dev/xvda in meinem Fall) und ein kleines schwarzes Pop-Over sollte mit einigen Informationen zum EBS-Volume erscheinen. Klicken Sie auf die EBS ID (in meinem Fall "vol-02110c92a873ad915") und Sie sollten auf die Seite AWS Console - Volumes umgeleitet werden, wobei nur das gewünschte Volume angezeigt wird.

Klicken Sie mit der rechten Maustaste auf die Lautstärke und wählen Sie "Volume ändern". Ein Pop-Over sollte geöffnet werden. Suchen Sie nach der Stelle, an der "Größe" steht. Meines ist derzeit "10" (GB). Erhöhen Sie diese Zahl auf die gewünschte Lautstärke (in GB). Ich mache meine 20 GB. Klicken Sie dann auf die Schaltfläche "Ändern" und klicken Sie auf den nächsten Bildschirm auf "Ja". Sie sollten mit einer grünen Nachricht begrüßt werden: "Modify Volume Request Succeeded". Das sollte fast sofort passieren, aber Sie müssen möglicherweise die AWS-Konsole aktualisieren, um Ihre Lautstärkeanzeige mit der gewünschten Größe zu sehen (z. B. 20 GiB in meinem Fall). Wenn nicht, versuchen Sie es erneut zu erfrischen.

Zurück zum Hub: Starten Sie Ihren Server neu (falls angehalten) und bestätigen Sie das größere Volumen

Das ist alles, wofür wir die AWS-Konsole brauchen, also können Sie sich jetzt abmelden und schließen. Klicken Sie auf Ihrem Server auf "Start", um es wieder zum Leben zu erwecken. Wie üblich dauert es eine Weile, bis es verfügbar ist. Für die meisten Server sollte dies nur ein paar Minuten dauern (höchstens 5 Minuten).

Sobald Ihr Server läuft (oder sofort, wenn er nicht gestoppt wurde), melden Sie sich über SSH an. Wenn Sie den df-Befehl erneut ausführen würden, würden Sie feststellen, dass sich nichts geändert hat. Das liegt daran, dass wir nur die Lautstärke vergrößert haben. Wenn Sie möchten, können Sie überprüfen, ob die Lautstärke tatsächlich größer ist, mit gdisk:

# gdisk -l /dev/xvda
GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.
Disk /dev/xvda: 41943040 sectors, 20.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): 8A333A04-DB02-4249-870C-EC5665D405BF
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 20971486
Partitions will be aligned on 2048-sector boundaries
Total free space is 4029 sectors (2.0 MiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048            6143   2.0 MiB     EF02  grub
   2            6144        20969471   10.0 GiB    8300  rootfs

Beachten Sie die "Disk /dev/xvda: 41943040 Sektoren, 20.0 GiB".

Beheben Sie die Partitionstabelle und ändern Sie die Größe der Partition

Als nächstes müssen wir die Partitionstabelle (GPT) beheben, dann können wir die Partition erweitern, um den neuen freien Speicherplatz zu verwenden. Um das Dateisystem zu erweitern (und das GPT zu beheben), verwenden wir Parted (sollte standardmäßig auf allen v15.x-Servern installiert werden).

# parted
GNU Parted 3.2
Using /dev/xvda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)

Zuerst überprüfen Sie die vorhandenen Informationen (wieder) mit dem Befehl "Drucken" Es sollte eine Warnung auslösen, dass nicht der gesamte Speicherplatz verwendet wird, mit einer Option, um es zu beheben.

(parted) print
Warning: Not all of the space available to /dev/xvda appears to be used, you can fix the GPT to use all of the
    space (an extra 20971520 blocks) or continue with the current setting?
Fix/Ignore?

Lassen Sie es die Korrektur (durch Eingabe 'f' gefolgt von Enter) zu tun. Es sollte jetzt ähnliche Informationen wie die df-Prüfung, die wir zuvor ausgeführt angezeigt. Obwohl beachten Sie, dass dies GigaBytes (1Byte x 1000 x 1000) im Gegensatz zu GigiBytes (1Byte x 1024 x 1024) anzeigt, sollten Sie nicht alarmiert sein, wenn die Zahlen nicht ganz übereinstimmen. In meinem Fall zeigt es 21,5 GB an (was 20 GiB ist).

Fix/Ignore? f
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name    Flags
 1      1049kB  3146kB  2097kB               grub    bios_grub
 2      3146kB  10.7GB  10.7GB  ext4         rootfs

(parted)

Um die Partition zu vergrößern, verwenden Sie den Befehl 'resizepart'. Bei einer standardmäßig eingerichteten Partition möchten Sie die Größe der Partition 2 ändern, aber überprüfen Sie Ihre Ausgabe (von "Druck"), um sicherzustellen, dass Ihre Übereinstimmungen vorliegen. Beachten Sie, dass ich die Warnung vor dem Ändern einer verwendeten Partition ignoriert habe.

(parted) resizepart
Partition number? 2
Warning: Partition /dev/xvda2 is being used. Are you sure you want to continue?
Yes/No? y
End?  [10.7GB]? 21.5GB
(parted)

Wenn etwas nicht richtig aussieht, können Sie den Befehl 'resizepart' erneut ausführen.

(parted) print
Model: Xen Virtual Block Device (xvd)
Disk /dev/xvda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name    Flags
 1      1049kB  3146kB  2097kB               grub    bios_grub
 2      3146kB  21.5GB  21.5GB  ext4         rootfs

(parted)

Fast fertig; erweitern Sie das Dateisystem und beenden

Selbst jetzt, wenn Sie getrennt verlassen und die Ausgabe von df erneut überprüfen würden, konnten Sie den zusätzlichen neuen Speicherplatz immer noch nicht sehen. Das liegt daran, dass der letzte Schritt darin besteht, das Dateisystem zu erweitern, um die Partition zu füllen. Einige Versionen von Parted können das auch tun (IIRC der Befehl ist 'resizefs'), aber der, den ich nicht habe, scheint diese Fähigkeit nicht zu haben, also verlassen Sie Parted ('quit'). Sie können die Informationen über /etc/fstab sicher ignorieren

(parted) quit
Information: You may need to update /etc/fstab.

Führen Sie dann 'resize2fs' auf der Partition aus:

# resize2fs  /dev/xvda2

Wenn wir jetzt df überprüfen, sehen wir, dass der freie Speicherplatz jetzt verfügbar ist.

# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            486M     0  486M   0% /dev
tmpfs           100M  4.1M   96M   5% /run
/dev/xvda2       20G  9.8G   10.2G   48% /
tmpfs           498M     0  498M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           498M     0  498M   0% /sys/fs/cgroup

YAY! Alles fertig! :

Endgültige Bereinigung

Ich persönlich gebe ihm gerne ein paar Tage Zeit, um sich einzuleben, bevor ich den Schnappschuss entferne. Das ist nur für den Fall, dass etwas nicht ganz stimmt, aber nicht sofort angezeigt wird. Trotzdem würde ich AWS lieber noch ein paar Cent mehr für den Verstand geben. Wenn Sie sich sicher fühlen, können Sie den Snapshot löschen, wenn Sie möchten, indem Sie die Snapshots gemäß dem ersten Teil finden und dieses Mal löschen, anstatt zu erstellen.

TURNKEYGNU / LINUX

Eigene Infrastruktur betreiben, ohne bei null anzufangen.

TurnKey erkunden
Über TurnKeyDokumentationHäufige FragenBlogGitHub
Frei und quelloffenStandardmäßig sicherSofort einsatzbereit