AWS无法在启动时调整RHEL64实例的大小

我正在使用AWS启动一个RHEL64实例,但磁盘无法resize以适合我select的卷。

以下是这种情况:我从市场AMI ami-517eec6b(这是RedHat批准的RHEL64映像)启动正在运行的实例,然后select卷大小为30GB。 实例成功启动但是fdisk和df输出不匹配。

即df显示文件系统报告只有8GB(默认大小)

 $ df -h 
使用的文件系统大小可用使用%
 / dev / xvda1 5.7G 2.3G 3.4G 41%/
无1.8G 0 1.8G 0%/ dev / shm

fdisk显示的音量是正确的30GB。

 $ sudo fdisk -l 

磁盘/ dev / xvda:32.2 GB,32212254720字节
 4个磁头,32个扇区/磁道,491520个磁道
单位= 128 * 512 = 65536字节的柱面
扇区大小(逻辑/物理):512字节/ 512字节
 I / O大小(最小/最佳):512字节/ 512字节
磁盘标识符:0x00072e87
    设备引导启动结束块Id系统
 / dev / xvda1 1 93750 5999984 83 Linux

我以为我可以调整这个文件系统(基于我从其他文章中发现的评论),但是这似乎不起作用。

 $ sudo resize2fs / dev / xvda1
 resize2fs 1.41.12(2010年5月17日)
该文件系统已经是1499996块长。 没事做!

这是O / S版本

 $ 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

我猜我可以将其附加到另一个实例,并调整文件系统的大小,但我更关心的是AMI无法检测呈现给它的卷。

我认为这很可能是操作系统内核不能提取潜在的音量变化,但需要一些帮助来解决这个问题。

发生了什么事情,如何在启动时纠正这个问题?

提前致谢!

您无法调整文件系统的原因是,它已占用分区中的所有空间。 增长磁盘并没有改变分区表,所以你仍然有一个相同大小的分区和磁盘剩余空间上的未分区空间。

必要的步骤是:

  • 增长虚拟磁盘(你已经这样做了)
  • 增长分区(这是你忘了)
  • 重新启动(重新加载分区表,只在磁盘忙时才需要)
  • 扩大文件系统

所以在挖掘中发现这个,

不幸的是,这是RHEL / CentOS 6.5 AMI上的一个已知错误,但是有两种解决方法可以按照您的要求扩展文件系统:

您可以将该卷装载到另一个实例,并使用parted来扩展根FS所在的卷的分区边界,如以下链接所述: http : //docs.aws.amazon.com/AWSEC2/latest/UserGuide/ storage_expand_partition.html

您可以使用dracut growroot模块,它将生成一个新的initramfs并将该分区增大到卷的大小。 这可以使用以下来执行:

  1. 确保EPEL回购已启用,如果没有,则使用以下命令启用回购:wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -我epel-release-6-8.noarch.rpm

  2. 指示dracut使用growroot dracut模块重buildinitramfs:

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

  3. 重新启动实例并确认使用lsblk和df扩展了分区大小您还在询问为什么新的T2实例types不支持PV。 这是因为PV提供了实例和硬件层之间的抽象,从而阻止了T2实例types的CPU信用工作。 一般来说,由于PV不支持的Intel CPU上的新指令集,HVM现在是我们正在使用的更常见的虚拟化技术。

这样做后,它确实重新启动时,我想要的大小。