实例上未列出增加的 ec2 卷

Posted

技术标签:

【中文标题】实例上未列出增加的 ec2 卷【英文标题】:Increased ec2 volume is not listed on the instance 【发布时间】:2021-05-07 16:52:11 【问题描述】:

我想将我的 ec2 实例的根分区的大小从 50 增加到 80Go

我使用以下方法增加了卷的大小:

aws ec2 modify-volume --volume-id vol-xxxxxxx --size 80

根据 aws,卷的大小已正确调整:从控制台或使用 cli,我正确地看到大小为 80Go:

但是,当我 ssh 进入 ec2 实例时,磁盘的大小仍然是 50Go:

# lsblk -e7
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
nvme0n1         259:0    0   50G  0 disk 
└─nvme0n1p1     259:1    0   50G  0 part /

因此,我无法调整分区大小。

我应该看到类似nvme0n1 259:0 0 80G 0 disk

为什么实例没有看到正确的磁盘大小?我该如何解决这个问题?

另外,这是一个 prod 实例,我无法重新启动它。它应该可以在没有停机的情况下工作。

谢谢

编辑

这是fdisk -l的输出:(我删除了所有/dev/loopX

# fdisk -l
Disk /dev/nvme0n1: 50 GiB, 53687091200 bytes, 104857600 sectors
Disk model: Amazon Elastic Block Store              
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x093eb684

Device         Boot Start       End   Sectors Size Id Type
/dev/nvme0n1p1 *     2048 104857566 104855519  50G 83 Linux

【问题讨论】:

【参考方案1】:

Extend a Linux file system after resizing a volume

对于具有分区的卷,例如上一步中显示的根卷,使用 growpart 命令扩展分区。请注意,设备名称和分区号之间有一个空格。

sudo growpart /dev/nvme0n1 1

要扩展每个卷上的文件系统,请使用 resize2fs 命令。

sudo resize2fs /dev/nvme0n1p1

【讨论】:

我的问题是磁盘的大小与 aws 在控制台中显示的大小不同。磁盘大小应该是 80Go,而 lsblk 只显示 50Go。我说的是磁盘大小,而不是分区 @iAmoric 我不确定您是否在增加音量时遵循了上述命令。因为那些不包括在OP中。所以只是想确认您是否按照上述程序来增加卷大小? 我将在设法增加磁盘大小后立即执行此操作。您的命令是增加分区大小。如果不先增加磁盘大小本身,我就不能这样做 -> docs.aws.amazon.com/AWSEC2/latest/UserGuide/… @iAmoric 你能运行fdisk -ldmesg -T 并分享输出吗?并尝试查看没有exclusionlsblk 列表,即-e 选项。并仔细检查是否调整了正确的卷大小。 让我们continue this discussion in chat.

以上是关于实例上未列出增加的 ec2 卷的主要内容,如果未能解决你的问题,请参考以下文章

AWS ec2 根卷增加:在 aws ubuntu 实例上扩展弹性根卷不起作用

列出 Boto 中的 EC2 卷

如何减少 EC2 实例的根 EBS 卷大小?

将多个 ebs 卷附加到每个 ec2 实例

查找 EC2 实例的所有附加卷

在将带有 AWS 市场代码的 CentOS 根卷附加到其他 CentOS EC2 实例时,另一个实例使用附加的根卷启动