AWS EC2 不重启的状态下扩容

990 阅读4分钟
  • 登录控制台扩展卷的大小

    • 打开 Amazon EC2 控制台 console.amazonaws.cn/ec2/
    • 选择Volumes,选择要修改的卷,然后依次选择ActionsModify Volume
    • Modify Volume窗口显示卷 ID 和卷的当前配置,包括类型、大小和 IOPS
    • 完成更改卷设置后,请选择Modify
  • 将实例类型更改为所需的更高规格

    • AWS EC2 Free Tier 的最大存储限制为30GB, 所以调节的时候注意一些
  • 使用 df -lh 命令查看实例磁盘空间的使用情况

Filesystem      Size  Used Avail Use% Mounted on
/dev/root       7.6G  6.8G  834M  90% /          # 显然空间不足了
devtmpfs        476M     0  476M   0% /dev
tmpfs           484M     0  484M   0% /dev/shm
tmpfs            97M  872K   96M   1% /run
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           484M     0  484M   0% /sys/fs/cgroup
/dev/loop0       26M   26M     0 100% /snap/amazon-ssm-agent/5656
/dev/loop1       25M   25M     0 100% /snap/amazon-ssm-agent/6312
/dev/loop2       56M   56M     0 100% /snap/core18/2697
/dev/loop3       56M   56M     0 100% /snap/core18/2708
/dev/loop4       64M   64M     0 100% /snap/core20/1822
/dev/loop5       64M   64M     0 100% /snap/core20/1828
/dev/loop6       92M   92M     0 100% /snap/lxd/23991
/dev/loop7       92M   92M     0 100% /snap/lxd/24061
/dev/loop8       50M   50M     0 100% /snap/snapd/17950
/dev/loop9       50M   50M     0 100% /snap/snapd/18357
/dev/xvda15     105M  5.2M  100M   5% /boot/efi
tmpfs            97M     0   97M   0% /run/user/1000
  • 使用 lsblk 命令来查看实例磁盘和分区的信息。该命令会列出所有的块设备及其相关信息,包括设备名称、大小、挂载点等等。
NAME     MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0      7:0    0 25.1M  1 loop /snap/amazon-ssm-agent/5656
loop1      7:1    0 24.4M  1 loop /snap/amazon-ssm-agent/6312
loop2      7:2    0 55.6M  1 loop /snap/core18/2697
loop3      7:3    0 55.6M  1 loop /snap/core18/2708
loop4      7:4    0 63.3M  1 loop /snap/core20/1822
loop5      7:5    0 63.3M  1 loop /snap/core20/1828
loop6      7:6    0 91.8M  1 loop /snap/lxd/23991
loop7      7:7    0 91.9M  1 loop /snap/lxd/24061
loop8      7:8    0 49.8M  1 loop /snap/snapd/17950
loop9      7:9    0 49.9M  1 loop /snap/snapd/18357
xvda     202:0    0   16G  0 disk
├─xvda1  202:1    0 15.9G  0 part /
├─xvda14 202:14   0    4M  0 part
└─xvda15 202:15   0  106M  0 part /boot/efi

通常情况下,AWS EC2实例的根卷的设备名称为/dev/xvda1。因此,xvda1是指该实例的根卷设备名称。

  • 调整卷大小后扩展 Linux 文件系统

    在增加EBS 卷的大小后,您必须使用特定于文件系统的命令来将文件系统扩展到较大大小。一旦卷进入 optimizing 状态,您即可调整文件系统的大小。

    • 在每个卷上扩展分区,请使用以下 growpart 命令。请注意,设备名称和分区编号之间有空格:比如 sudo growpart /dev/xvda 1
    • 使用 resize2fs 命令扩展每个卷上的文件系统:sudo resize2fs /dev/xvda1

全部执行完毕后, 再次运行 df -lh 就可以看到变化

df 命令参考

参数描述
-a显示所有的文件系统,包括系统保留的文件系统。
-B <单位>指定块大小,单位可以是 KB、MB、GB。
-h以可读性较好的方式显示磁盘空间占用情况。
-H以 1000 为基数而非 1024。
-i显示 inode 信息而非磁盘空间占用情况。
-l只显示本地文件系统。
-T显示文件系统类型。
-t <文件系统类型>只显示指定类型的文件系统。
-x <文件系统类型>不显示指定类型的文件系统。

growpart 命令参考

参数描述
-v显示详细的输出信息。
-u使用指定单位扩展分区,单位可以是 B、K、M、G、T、P。
-N指定分区编号。默认情况下,growpart 将查找下一个可用分区编号。
-S指定分区大小。如果没有指定,则使用整个磁盘,或者如果使用了 -N 选项,则使用默认大小。
-Z将新分区的空间填充为零。
-h显示帮助信息。

参考

AWS EC2硬盘扩容(无需重启EC2实例)