fragen stichworte

AWS kann die Größe einer RHEL64-Instanz beim Start nicht ändern

Ich benutze AWS, um eine RHEL64-Instanz zu starten, aber die Größe des Datenträgers kann nicht an das von mir ausgewählte Volume angepasst werden.

Hier ist das Szenario: I Starten Sie eine laufende Instanz aus dem Marketplace AMI ami-517eec6b (das von RedHat genehmigte RHEL64-Image ist), und wählen Sie eine Volumengröße von beispielsweise 30 GB aus. Die Instanz wird erfolgreich gestartet. Die Ausgaben fdisk und df stimmen jedoch nicht überein.

dh df zeigt das Dateisystem an, das nur für 8 GB (die Standardgröße)

gemeldet wurde
$ df -h 
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      5.7G  2.3G  3.4G  41%/
none            1.8G     0  1.8G   0%/dev/shm

fdisk zeigt an, dass das Volumen die korrekten 30 GB ist.

$ sudo fdisk -l 

Disk/dev/xvda: 32.2 GB, 32212254720 bytes
4 heads, 32 sectors/track, 491520 cylinders
Units = cylinders of 128 * 512 = 65536 bytes
Sector size (logical/physical): 512 bytes/512 bytes
I/O size (minimum/optimal): 512 bytes/512 bytes
Disk identifier: 0x00072e87
    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1               1       93750     5999984   83  Linux

Ich dachte, ich könnte dieses Dateisystem (basierend auf den Kommentaren, die ich in anderen Artikeln gefunden habe) nur in der Größe verändern. Dies scheint jedoch nicht zu funktionieren.

$ sudo resize2fs/dev/xvda1
resize2fs 1.41.12 (17-May-2010)
The filesystem is already 1499996 blocks long.  Nothing to do!

Hier ist die O/S-Version

$ uname -a 
Linux ip-10-100-155-254 2.6.32-431.el6.x86_64 #1 SMP Sun Nov 10 22:19:54 EST 2013 x86_64 x86_64 x86_64 GNU/Linux

Ich vermute, ich kann dies wahrscheinlich an eine andere Instanz anhängen und die Größe des Dateisystems ändern. Ich bin jedoch mehr besorgt darüber, dass das AMI das ihm präsentierte Volume nicht erkennen kann.

Ich denke, dies ist mehr als wahrscheinlich, dass der OS-Kernel die zugrunde liegenden Volumenänderungen nicht aufgreift, aber etwas Hilfe braucht, um das Problem zu beheben.

Was ist los und wie kann ich das beim Booten korrigieren?

Vielen Dank im Voraus!

antworten

Der Grund, warum Sie das Dateisystem nicht skalieren können, ist, dass es bereits den gesamten Speicherplatz in der Partition belegt. Durch das Anwachsen der Festplatte wurde die Partitionstabelle nicht geändert, sodass Sie immer noch eine Partition derselben Größe haben und nicht partitionierten Speicherplatz auf dem Rest der Festplatte freigeben können.

Die notwendigen Schritte sind:

  • Vergrößern Sie die virtuelle Festplatte (Sie haben dies bereits getan)
  • Vergrößern Sie die Partition (das haben Sie vergessen)
  • Neustart (zum erneuten Laden der Partitionstabelle, nur erforderlich, wenn die Festplatte ausgelastet ist)
  • Erweitern Sie das Dateisystem

So habe ich das bei meinen Grabungen gefunden,

Leider ist dies ein bekannter Fehler auf RHEL/CentOS 6.5 AMIs, es gibt jedoch zwei Problemumgehungen, um das Dateisystem wie gewünscht zu erweitern:

Sie können das Volume zu einer anderen Instanz mounten und mit partied die Partitionsgrenze für das Volume erweitern, auf dem sich der Root-FS befindet, wie im folgenden Link erwähnt:  http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/storage_expand_partition.html

Sie können das Dracut-Growroot-Modul verwenden, das ein neues initramfs generiert und die Partition auf die Größe des Volumes vergrößert. Dies kann folgendermaßen durchgeführt werden:

  1. Stellen Sie sicher, dass der EPEL-Repo aktiviert ist. Wenn nicht, aktivieren Sie den Repo mit folgenden Optionen: wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -i epel-release-6-8.noarch.rpm

  2. Instruct dracut, um die initramfs mit dem growroot dracut-Modul neu zu erstellen:

    dracut --force --add growroot/boot/initramfs-$(uname -r).img

  3. Starten Sie die Instanz neu und überprüfen Sie, ob die Partitionsgröße mit lsblk und df erweitert wurde Sie haben auch nachgefragt, warum PV auf den neuen T2-Instance-Typen nicht unterstützt wird. Dies liegt daran, dass PV eine Abstraktion zwischen der Instanz und der Hardwareebene ermöglicht, wodurch verhindert wird, dass CPU-Credits auf T2-Instanztypen funktionieren. Im Allgemeinen ist HVM heute die gängigere Virtualisierungstechnologie, die wir aufgrund der neuen Befehlssätze auf Intel-CPUs verwenden, die PV nicht unterstützt.

Nachdem ich das gemacht habe, skaliert es tatsächlich beim Booten, wie ich es wollte.