Erweitern eines Linux-Dateisystems nach Anpassung der Volume-Größe - Amazon Elastic Compute Cloud

Erweitern eines Linux-Dateisystems nach Anpassung der Volume-Größe

Anmerkung

Das folgende Thema führt Sie durch den Prozess der Erweiterung von XFS- und Ext4-Dateisystemen für Linux. Informationen zu anderen Dateisystemen finden Sie in der zugehörigen Dokumentation.

Nachdem Sie die Größe eines EBS-Volumes erhöht haben, müssen Sie die dateisystemspezifischen Befehle verwenden, um das Dateisystem auf die neue, erweiterte Größe anzupassen. Sie können dies tun, sobald der Datenträger in den optimizing-Status übergeht.

So erweitern Sie ein Dateisystem unter Linux:

  1. Erweitern Sie die Partition, falls Ihr Volume über eine verfügt.

  2. Erweitern Sie das Dateisystem.

Bevor Sie beginnen

Erweitern des Dateisystems von EBS-Volumes

Verwenden Sie das folgende Verfahren, um das Dateisystem für ein größenverändertes Volume zu erweitern. Beachten Sie, dass sich die Benennung von Geräten und Partitionen für Xen-Instances und Nitro-Instances unterscheidet. Verwenden Sie den folgenden Befehl, um festzustellen, ob Ihre Instance XEN- oder Nitro-basiert ist:

[ec2-user ~]$ aws ec2 describe-instance-types --instance-type instance_type --query "InstanceTypes[].Hypervisor"
So erweitern Sie das Dateisystem von EBS-Volumes
  1. Verbinden Sie sich mit der Instance.

  2. Passen Sie bei Bedarf die Größe der Partition an. Gehen Sie hierzu wie folgt vor:

    1. Prüfen Sie, ob das Volume über eine Partition verfügt. Verwenden Sie den lsblk-Befehl.

      Nitro instance example

      In der folgenden Beispielausgabe hat das Root-Volume (nvme0n1) zwei Partitionen (nvme0n1p1 und nvme0n1p128), während das zusätzliche Volume (nvme1n1) keine Partitionen hat.

      [ec2-user ~]$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:0 0 30G 0 disk /data nvme0n1 259:1 0 16G 0 disk └─nvme0n1p1 259:2 0 8G 0 part / └─nvme0n1p128 259:3 0 1M 0 part
      Xen instance example

      In der folgenden Beispielausgabe hat das Stamm-Volume (xvda) eine Partition (xvda1), während das zusätzliche Volume (xvdf) keine Partition hat.

      [ec2-user ~]$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 16G 0 disk └─xvda1 202:1 0 8G 0 part / xvdf 202:80 0 24G 0 disk

      Wenn das Volume über eine Partition verfügt, fahren Sie mit dem Verfahren ab dem folgenden Schritt fort (2b). Wenn das Volume keine Partitionen hat, überspringen Sie die Schritte 2b, 2c und 2d und fahren Sie mit dem Verfahren ab Schritt 3 fort.

      Tipp zur Problembehebung

      Wenn Sie das Volume nicht in der Befehlsausgabe sehen, stellen Sie sicher, dass das Volume an die Instance angefügt ist und dass es formatiert und gemountet ist.

    2. Prüfen Sie, ob die Partition erweitert werden muss. In der lsblk-Befehlsausgabe aus dem vorherigen Schritt, vergleichen Sie die Partitionsgröße und die Volume-Größe.

      Wenn die Partitionsgröße kleiner als die Volume-Größe ist, fahren Sie mit dem nächsten Schritt fort. Wenn die Partitionsgröße der Volume-Größe entspricht, kann die Partition nicht erweitert werden.

      Tipp zur Problembehebung

      Wenn das Volume immer noch die ursprüngliche Größe aufweist, bestätigen Sie, dass die Volume-Änderung erfolgreich war.

    3. Erweitern Sie die Partition. Verwenden Sie den growpart-Befehl und geben Sie die zu erweiternde Partition an.

      Nitro instance example

      Um beispielsweise eine Partition mit dem Namen nvme0n1p1 zu erweitern, verwenden Sie den folgenden Befehl.

      Wichtig

      Beachten Sie das Leerzeichen zwischen dem Gerätenamen (nvme0n1) und der Partitionsnummer (1).

      [ec2-user ~]$ sudo growpart /dev/nvme0n1 1
      Xen instance example

      Um beispielsweise eine Partition mit dem Namen xvda1 zu erweitern, verwenden Sie den folgenden Befehl.

      Wichtig

      Beachten Sie das Leerzeichen zwischen dem Gerätenamen (xvda) und der Partitionsnummer (1).

      [ec2-user ~]$ sudo growpart /dev/xvda 1
      Tipps zur Problembehebung
      • mkdir: cannot create directory ‘/tmp/growpart.31171’: No space left on device FAILED: failed to make temp dir: Zeigt an, dass auf dem Volume nicht genügend freier Speicherplatz vorhanden ist, damit Growpart das temporäre Verzeichnis erstellen kann, das für die Größenänderung benötigt wird. Geben Sie etwas Speicherplatz frei und versuchen Sie es dann erneut.

      • must supply partition-number: Zeigt an, dass Sie eine falsche Partition angegeben haben. Verwenden Sie den lsblk-Befehl, um den Partitionsnamen zu bestätigen, und achten Sie darauf, dass Sie ein Leerzeichen zwischen dem Gerätenamen und der Partitionsnummer eingeben.

      • NOCHANGE: partition 1 is size 16773087. it cannot be grown: Zeigt an, dass die Partition bereits das gesamte Volume erweitert und nicht erweitert werden kann. Bestätigen Sie, dass die Volume-Änderung erfolgreich war.

    4. Stellen Sie sicher, dass die Partition erweitert wurde. Verwenden Sie den lsblk-Befehl. Die Partitionsgröße sollte jetzt der Volume-Größe entsprechen.

      Nitro instance example

      Die folgende Beispielausgabe zeigt, dass sowohl die Volumes (nvme0n1) als auch die Partition (nvme0n1p1) die gleiche Größe (16 GB) haben.

      [ec2-user ~]$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT nvme1n1 259:0 0 30G 0 disk /data nvme0n1 259:1 0 16G 0 disk └─nvme0n1p1 259:2 0 16G 0 part / └─nvme0n1p128 259:3 0 1M 0 part
      Xen instance example

      Die folgende Beispielausgabe zeigt, dass sowohl die Volumes (xvda) als auch die Partition (xvda1) die gleiche Größe (16 GB) haben.

      [ec2-user ~]$ sudo lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT xvda 202:0 0 16G 0 disk └─xvda1 202:1 0 16G 0 part / xvdf 202:80 0 24G 0 disk
  3. Erweitern Sie das Dateisystem.

    1. Ermitteln Sie den Namen, die Größe, den Typ und den Mount-Punkt für das Dateisystem, das Sie erweitern müssen. Verwenden Sie den df -hT-Befehl.

      Nitro instance example

      Die folgende Beispielausgabe zeigt, dass das /dev/nvme0n1p1-Dateisystem 8 GB groß ist, sein Typ xfs ist und sein Mount-Punkt / ist.

      [ec2-user ~]$ df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/nvme0n1p1 xfs 8.0G 1.6G 6.5G 20% / /dev/nvme1n1 xfs 8.0G 33M 8.0G 1% /data ...
      Xen instance example

      Die folgende Beispielausgabe zeigt, dass das /dev/xvda1-Dateisystem 8 GB groß ist, sein Typ ext4 ist und sein Mount-Punkt / ist.

      [ec2-user ~]$ df -hT Filesystem Type Size Used Avail Use% Mounted on /dev/xvda1 ext4 8.0G 1.9G 6.2G 24% / /dev/xvdf1 xfs 24.0G 45M 8.0G 1% /data ...
    2. Die Befehle zum Erweitern des Dateisystems unterscheiden sich je nach Dateisystemtyp. Wählen Sie den folgenden richtigen Befehl basierend auf dem Dateisystemtyp, den Sie sich im vorherigen Schritt notiert haben.

      • [XFS-Dateisystem] Verwenden Sie den xfs_growfs-Befehl und geben Sie den Mount-Punkt des Dateisystems an, den Sie im vorherigen Schritt notiert haben.

        Nitro and Xen instance example

        Um beispielsweise ein auf / gemountetes Dateisystem zu erweitern, verwenden Sie den folgenden Befehl.

        [ec2-user ~]$ sudo xfs_growfs -d /
        Tipps zur Problembehebung
        • xfs_growfs: /data is not a mounted XFS filesystem: Zeigt an, dass Sie den falschen Mount-Punkt angegeben haben oder dass das Dateisystem nicht XFS ist. Verwenden Sie den df -hT-Befehl, um den Mount-Punkt und den Dateisystemtyp zu überprüfen.

        • data size unchanged, skipping: Zeigt an, dass das Dateisystem bereits das gesamte Volume erweitert. Wenn das Volume keine Partitionen hat, bestätigen Sie, dass die Volume-Änderung erfolgreich war. Wenn das Volume über Partitionen verfügt, stellen Sie sicher, dass die Partition wie in Schritt 2 beschrieben erweitert wurde.

      • [Ext4-Dateisystem] Verwenden Sie den resize2fs-Befehl und geben Sie den Namen des Dateisystems ein, das Sie sich im vorherigen Schritt notiert haben.

        Nitro instance example

        Um beispielsweise ein gemountetes Dateisystem mit dem Namen /dev/nvme0n1p1 zu erweitern, verwenden Sie den folgenden Befehl.

        [ec2-user ~]$ sudo resize2fs /dev/nvme0n1p1
        Xen instance example

        Um beispielsweise ein gemountetes Dateisystem mit dem Namen /dev/xvda1 zu erweitern, verwenden Sie den folgenden Befehl.

        [ec2-user ~]$ sudo resize2fs /dev/xvda1
        Tipps zur Problembehebung
        • resize2fs: Bad magic number in super-block while trying to open /dev/xvda1: Zeigt an, dass das Dateisystem nicht Ext4 ist. Verwenden Sie den df -hT-Befehl, um den Systemtyp der Datei zu überprüfen.

        • open: No such file or directory while opening /dev/xvdb1: Zeigt an, dass Sie eine falsche Partition angegeben haben. Verwenden Sie den df -hT-Befehl, um die Partition zu überprüfen.

        • The filesystem is already 3932160 blocks long. Nothing to do!: Zeigt an, dass das Dateisystem bereits das gesamte Volume erweitert. Wenn das Volume keine Partitionen hat, bestätigen Sie, dass die Volume-Änderung erfolgreich war. Wenn das Volume über Partitionen verfügt, stellen Sie sicher, dass die Partition wie in Schritt 2 beschrieben erweitert wurde.

      • [Anderes Dateisystem] Weitere Anweisungen finden Sie in der Dokumentation zu Ihrem Dateisystems.

    3. Stellen Sie sicher, dass das Dateisystem erweitert wurde. Verwenden Sie den df -hT-Befehl und bestätigen Sie, dass die Größe des Dateisystems der Volume-Größe entspricht.