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

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

我正在使用 AWS 启动 RHEL64 实例,但磁盘无法调整大小以适合我选择的卷。

场景如下:我从 Marketplace AMI ami-517eec6b(这是 RedHat 批准的 RHEL64 映像)启动一个正在运行的实例,并选择卷大小(例如 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 个块。无需执行任何操作!

这是操作系统版本

$ uname -a
Linux ip-10-100-155-254 2.6.32-431.el6.x86_64 #1 SMP 2013 年 11 月 10 日星期日 22:19:54 EST x86_64 x86_64 x86_64 GNU/Linux

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

我认为这很可能是操作系统内核没有接收到底层音量变化,但需要一些帮助来继续解决这个问题。

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

提前致谢!

答案1

您无法调整文件系统大小的原因是,它已经占用了分区中的所有空间。增加磁盘大小不会改变分区表,因此您仍然拥有相同大小的分区,并在磁盘的其余部分拥有未分区的可用空间。

必要步骤如下:

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

答案2

我在挖掘过程中发现了这个,

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

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

您可以使用 dracut growroot 模块,它将生成新的 initramfs 并将分区扩展到卷的大小。这可以使用以下命令执行:

  1. 确保 EPEL 存储库已启用,如果未启用,请使用以下命令启用存储库:wgethttp://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm rpm -i epel-release-6-8.noarch.rpm

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

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

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

经过这一步之后,它确实按照我想要的方式在启动时调整大小。

相关内容