In EC2 ist die Festplatte nicht an die Größe der Maschine gebunden: Sie lässt sich jederzeit vergrößern, sogar bei eingeschalteter Maschine, ohne Neuinstallation und ohne etwas zu verschieben. Es sind zwei Teile: AWS sagen, dass die Festplatte größer ist, und dem Betriebssystem darin sagen, dass es den Platz nutzen soll. Der erste ist ein Klick; der zweite sind zwei Befehle, die beim ersten Mal Respekt einflößen und danach aus dem Gedächtnis gehen.
Das Einzige, was nicht geht, ist Verkleinern: Eine Festplatte wächst nur. Vergrößern Sie also mit Bedacht.
Bevor Sie anfangen: was die Begriffe bedeuten
- EBS
- Der Festplattendienst von EC2. Jede Festplatte heißt Volume.
- Root-Volume
- Die Festplatte, auf der das System installiert ist. Sie ist es, die sich meist füllt.
- Partition
- Eine Unterteilung innerhalb der Festplatte. Beim Vergrößern der Festplatte behält die Partition die alte Größe, bis Sie sie erweitern.
- Dateisystem
- Die Art, wie das System die Daten innerhalb der Partition organisiert (ext4 oder xfs unter Linux). Auch das muss erweitert werden.
- gp3
- Der normale Festplattentyp von EBS. Ist Ihre Festplatte vom alten Typ (gp2), können Sie sie im selben Schritt auf gp3 umstellen, was meist günstiger ist.
- Snapshot
- Eine Kopie der Festplatte. Es empfiehlt sich, vor dem Eingriff an der Festplatte einen zu erstellen, für alle Fälle.
Schritt für Schritt
Erstellen Sie vorher einen Snapshot
EC2-Konsole, Menü Volumes, wählen Sie die Festplatte der Maschine (die Spalte „Angefügt an" zeigt, welche es ist), Aktionen, Snapshot erstellen. Das ist das Sicherheitsnetz; in der Praxis ist der Vorgang sicher, aber es kostet ja nichts... na gut, ein paar Cent Speicher.
Vergrößern Sie das Volume über die Konsole
Mit ausgewähltem Volume: Aktionen, Volume ändern. Tragen Sie die neue Größe in GB ein (zum Beispiel von 20 auf 40) und, wenn der Typ gp2 ist, nutzen Sie die Gelegenheit, ihn auf gp3 umzustellen. Ändern. Der Status des Volumes wechselt zu „modifying" und dann zu „optimizing"; Sie müssen nicht warten, bis die Optimierung abgeschlossen ist. Sobald die neue Größe in der Liste erscheint, können Sie weitermachen. Beachten Sie, dass AWS ein Volume nur einmal alle sechs Stunden ändern lässt.
Sehen Sie nach, wie die Festplatte von innen aussieht
Verbinden Sie sich per SSH mit der Maschine und geben Sie ein:
lsblk df -h /Der erste Befehl zeigt die Festplatte (
xvdaodernvme0n1) bereits mit der neuen Größe und darunter ihre Partition (xvda1odernvme0n1p1) noch mit der alten. Der zweite zeigt, wie viel Platz das System sieht: den alten. Notieren Sie die genauen Namen von Festplatte und Partition.Erweitern Sie die Partition
sudo growpart /dev/xvda 1Achten Sie auf die Syntax: die Festplatte, ein Leerzeichen und die Partitionsnummer. Bei NVMe-Festplatten wäre es
sudo growpart /dev/nvme0n1 1. Wenn es heißt,growpartexistiere nicht, installieren Sie es (sudo apt install cloud-guest-utilsunter Ubuntu/Debian). Führen Sielsblkerneut aus: Die Partition belegt jetzt die ganze Festplatte.Erweitern Sie das Dateisystem
Das hängt vom Typ ab, den Ihnen
df -T /verrät. Bei ext4 (Ubuntu, Debian):sudo resize2fs /dev/xvda1Bei xfs (Amazon Linux, Red Hat):
sudo xfs_growfs -d /Beide funktionieren bei benutzter Festplatte, ohne Neustart. Prüfen Sie mit
df -h /: Jetzt sieht das System die neue Größe.Wenn es nicht die Root-Festplatte ist
Für eine zusätzliche Datenfestplatte sind die Schritte 4 und 5 dieselben, nur mit anderem Gerätenamen. Hat die Festplatte keine Partition (Sie haben direkt
/dev/xvdfformatiert), überspringen Siegrowpartund führen direktresize2fs /dev/xvdfoderxfs_growfsauf ihrem Einhängepunkt aus.
Was schiefgehen kann
growpart meldet „NOCHANGE"
Entweder belegt die Partition bereits die ganze Festplatte (weiter mit Schritt 5), oder das System hat die neue Größe der Festplatte noch nicht gesehen. Warten Sie eine Minute, wiederholen Sie lsblk, und wenn es sie weiterhin nicht sieht, starten Sie die Maschine neu.
Ich habe nicht einmal Platz, um die Befehle auszuführen
Bei einer zu 100 % vollen Festplatte schlagen manche Befehle fehl. Schaffen Sie ein paar Megabyte Platz, indem Sie alte Protokolle löschen (sudo journalctl --vacuum-size=50M) oder den Paketcache (sudo apt clean), und versuchen Sie es erneut.
Ich habe mich vertan und eine riesige Größe eingetragen
Verkleinern geht nicht. Der einzige Ausweg ist, eine neue Maschine mit kleinerer Festplatte zu erstellen und die Daten zu migrieren. Ist der Überschuss tragbar, lassen Sie es und lernen Sie fürs nächste Mal: Tragen Sie ein, was Sie für ein Jahr brauchen.
Ich möchte erneut vergrößern und es geht nicht
Seit der letzten Änderung des Volumes müssen sechs Stunden vergehen. Das ist eine Einschränkung von AWS.
In Simplio
In Simplio zeigt jede Maschine die Belegung ihrer Festplatte und benachrichtigt Sie per E-Mail, wenn sie 85 % überschreitet, bevor die Website ausfällt. Vergrößern ist ein Knopf: Sie wählen die neue Größe, Simplio erstellt vorher einen Snapshot, ändert das Volume in AWS, führt auf der Maschine die Befehle aus, damit das System den Platz nutzt, und zeigt Ihnen das Ergebnis. Ohne Terminal.
Dasselbe, in AWS und in Simplio
| In der AWS-Konsole | In Simplio | |
|---|---|---|
| Die Festplatte vergrößern | EC2-Konsole, Volumes, Ändern, SSH, lsblk, growpart, resize2fs: 7 Schritte und ein Terminal | Knopf „Festplatte vergrößern" an der Maschine: Sie wählen die Größe und Simplio erledigt den AWS-Teil und den im Inneren |
| Erfahren, dass sie sich füllt | Nichts meldet es, bis etwas ausfällt | E-Mail-Benachrichtigung bei 85 % Belegung |
| Vorheriger Snapshot | Daran denken | Wird vor dem Vergrößern automatisch erstellt |