0%

AWS EC2 不停机磁盘扩容

随着数据的累积,服务器的磁盘空间不够用了,需要对AWS实例进行不停机磁盘扩容,本文记录了扩容详细过程。

修改卷大小

在EC2实例界面选择相应需要扩容磁盘的实例,选择要扩容的磁盘

选择磁盘

修改卷的大小

修改卷

修改卷

确认

显示进度,等待应用配置完成,需要几分钟耐心等待….
等待修改完成

扩展分区

假设已将实例卷的大小从 20 GB 调整为 25 GB
使用 lsblk 命令显示有关附加到实例的块储存设备的信息。

1
2
3
4
[root@segon]# lsblk -p
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
/dev/xvda 202:0 0 25G 0 disk
└─/dev/xvda1 202:1 0 20G 0 part /

可以看到卷(TYPEdisk) /dev/xvda 具有一个分区 /dev/xvda1,当卷的大小为 25 GB 时,分区的大小仍为 20 GB 。

使用growpart展开修改后的分区。请注意,设备名称和分区编号之间有空格,分区编号是MIN对应的数字。

1
[root@segon]# growpart /dev/xvda 1

通过查看lsblk可以确认分区/dev/xvda1现已填充卷/dev/xvda上的可用空间:

1
2
3
4
[root@segon]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 25G 0 disk
└─xvda1 202:1 0 25G 0 part /

如果lsblk看到的卷名类似nvme0n1,扩展方法和上面是基本一样的:

1
2
3
4
5
6
[root@ip-172-31-20-155 ~]# lsblk -p
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
/dev/nvme0n1 259:0 0 300G 0 disk
└─/dev/nvme0n1p1 259:1 0 200G 0 part /
[root@ip-172-31-20-155 ~]#
[root@ip-172-31-20-155 ~]# growpart /dev/nvme0n1 1

扩展文件系统

扩展 ext2、ext3 或 ext4 文件系统

通过df -Th命令查看文件系统的类型以及大小

1
2
3
[root@segon]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/xvda1 ext4 20G 4.5G 16G 23% /

可以看到/dev/xvda1的文件系统是ext4,大小是20G
使用 resize2fs 命令扩展每个卷上的文件系统。

1
[root@segon]# resize2fs /dev/xvda1

再次使用 df -h 命令来验证每个文件系统是否反映增加的卷大小。

1
2
3
[root@segon]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 25G 4.5G 21G 18% /

扩展 XFS 文件系统

通过df -Th命令查看文件系统的类型以及大小

1
2
3
[root@segon]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/xvda1 xfs 20G 4.5G 16G 23% /

可以看到/dev/xvda1的文件系统是xfs,大小是20G
要扩展 XFS 文件系统,请按以下方式安装 XFS 工具(如果尚未安装)。

1
[root@segon]# yum install xfsprogs

使用 xfs_growfs 命令扩展每个卷上的文件系统,注意/df -Th 的输出中显示的卷挂载点。

1
[root@segon]# xfs_growfs -d /

再次使用 df -h 命令来验证每个文件系统是否反映增加的卷大小。

1
2
3
[root@segon]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 25G 4.5G 21G 18% /

参考连接

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