5min不停机扩容EBS卷大小
对于已经挂载过 EBS 的实例,我们要做仅仅的是扩容,在这个过程中,不影响已有的数据,不会对已有的磁盘做格式化,只单纯增加容量
分为以下三个步骤:
1、扩容使用中的 EBS 卷;
2、扩容分区;
3、扩容文件系统;
1. 在ec2实例界面选择相应需要扩容磁盘的实例,选择要扩容的磁盘
2. 修改卷大小
进入控制台,选择 EBS - Volumes -Action - Modify Volume
3. 确认
0x01 扩容磁盘
安装扩容工具
yum install cloud-init cloud-utils-growpart gdisk
等待ebs卷大小调整完成后,在扩容的实例中执行lsblk列出连接到实例的EBS设备
[root@ttt] #: lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 6000G 0 disk
└─xvda1 202:1 0 20G 0 part /
[root@ttt] #: lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 6000G 0 disk
└─xvda1 202:1 0 20G 0 part /
使用 df -h 查看,/dev/xvda1 设备已扩展为 6000 GiB,但操作系统仍只能看到原来的 20 GiB ext4 文件系统
[root@ttt] #: df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 3.9G 64K 3.9G 1% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/xvda1 20G 12G 8.2G 59% /
[root@ttt] #: df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 3.9G 64K 3.9G 1% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/xvda1 20G 12G 8.2G 59% /
接下来使用growpart
展开修改后的分区**(注意将设备名称与分区名称分隔开)
格式:growpart diskname part
[root@ttt] #: growpart /dev/xvda 1
CHANGED: disk=/dev/xvda partition=1: start=4096 old: size=41938910,end=41943006 new: size=104853470,end=104857566
格式:growpart diskname part
[root@ttt] #: growpart /dev/xvda 1
CHANGED: disk=/dev/xvda partition=1: start=4096 old: size=41938910,end=41943006 new: size=104853470,end=104857566
通过查看lsblk
可以确认分区/dev/xvda1
现已填充卷/dev/xvda
上的可用空间:
[root@ttt] #: lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 6000G 0 disk
└─xvda1 202:1 0 6000G 0 part /
[root@online-code ~]# file -s /dev/vda*
[root@ttt] #: lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 6000G 0 disk
└─xvda1 202:1 0 6000G 0 part /
[root@online-code ~]# file -s /dev/vda*
对于 Linux ext2、ext3 或 ext4 文件系统,使用以下命令并替换要扩展的设备名称:
[root@ttt] #: resize2fs /dev/xvda1
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/xvda1 is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 4
The filesystem on /dev/xvda1 is now 13106683 (4k) blocks long.
[root@ttt] #: resize2fs /dev/xvda1
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/xvda1 is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 4
The filesystem on /dev/xvda1 is now 13106683 (4k) blocks long.
对于xfs文件系统
# yum install xfsprogs
#第一步
# growpart /dev/nvme0n1 1
#第二步
# xfs_growfs /dev/nvme0n1p1
或者:
xfs_growfs -d /data 增大扩展存储卷文件系统
说明:nvme0n1是设备名,nvme0n1p1是对应的一个分区,p1表示主分区1
# yum install xfsprogs
#第一步
# growpart /dev/nvme0n1 1
#第二步
# xfs_growfs /dev/nvme0n1p1
或者:
xfs_growfs -d /data 增大扩展存储卷文件系统
说明:nvme0n1是设备名,nvme0n1p1是对应的一个分区,p1表示主分区1
0x02 完成扩容
至此,磁盘已完成扩容,查看磁盘可用空间:
[root@ttt]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 3.9G 64K 3.9G 1% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/xvda1 6000G 12G 5988.2G 0.002% /
[root@ttt]# df -h
文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 3.9G 64K 3.9G 1% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/xvda1 6000G 12G 5988.2G 0.002% /
如果扩容的是系统盘则需要重启
一天只能调整一次
如果没有分区号,直接对整个磁盘进行文件系统扩容
参考文档:
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-volumes-multi.html
https://docs.aws.amazon.com/zh_cn/AWSEC2/latest/UserGuide/ebs-restoring-volume.html