AWS扩展文件系统,目前主要是根据基于不同的实例类型:Nitro和非Nitro系统,扩展卷的方式也不一样。
我的EC2是不是基于Nitro构建的?
简单解释一下Nitro,Nitro 系统是 AWS 构建的硬件和软件组件的集合,可实现高性能、高可用性和高安全性。此外,Nitro 系统还提供了裸机功能,从而消除了所有虚拟化开销并支持需要完全访问主机硬件的工作负载。有关更多信息,请参阅 AWS Nitro 系统。
以下实例基于 Nitro 系统而构建:
虚拟机:A1、C5、C5d、C5n、G4、I3en、M5、M5a、M5ad、M5d、M5dn、M5n、p3dn.24xlargeR5、R5a、R5ad、R5d、R5dn、R5n、T3、T3a 和 z1d
裸机:c5.metal, c5d.metal, c5n.metal, i3.metal, i3en.metal, m5.metal, m5d.metal, r5.metal, r5d.metal, u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, u-18tb1.metal, u-24tb1.metal, and z1d.metal
简单理解是,我的EC2虚拟机是5系列或T3,A1等最新机型,都是基于Nitro构建的。
另外一些实例类型支持 EBS 卷和实例存储卷,而另一些实例类型仅支持 EBS 卷。一些实例类型支持 NVMe 实例存储卷。一些实例类型支持 NVMe EBS 卷。我使用的T3和Amazon Linux2,所以不需要安装NVMe驱动。哪儿些支持,哪儿些不支持NVMe请参考。https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances 中的联网和存储功能摘要。
这次实验主要以Nitro为主,分为3大步骤:
1.在console中扩展EBS
2.识别EBS卷的文件系统。
3.扩展分区
4.扩展文件系统
1.在console中扩展EBS
找到你要扩展的EC2实例,然后在Root device找到它所对应的EBS。
然后修改Volume大小,如下图:
由原先的8G修改到16G,如下图:
刷新一下扩展job的状态:卷将依次进入 modifying 状态、optimizing 状态和 completed(in-use) 状态。我好像等了大概7分钟左右...
到in-use的时候SSH登录到这台虚拟机上:
2.识别EBS卷的文件系统。
以下是T3,基于Nitro构建的实例,该实例具有带 XFS 文件系统的引导卷。
3.扩展分区
基于 Nitro 的实例上的卷lsblk一下,刚才已经将卷从8GiB扩展到16GiB了。
在根卷上扩展分区,使用以下 growpart 命令。请注意,设备名称和分区编号之间有空格。
执行命令:sudo growpart /dev/nvme0n1 1
然后再lsblk一下,看一下效果
4.扩展文件系统
这里我们直接扩展XFS文件系统,先df -h一下:
安装XFS工具(如果没有安装的话)sudo yum install xfsprogs
使用 xfs_growfs 命令扩展每个卷上的文件系统。为了别搞错挂载MOUNTPOINT,最好再lsblk看一下。
执行命令:sudo xfs_growfs -d /
执行成功后返回如下:
最后df -h一下: