在我们日常工作中,常常会遇到AWS EC2实例存储卷空间不够用,需要扩容存储卷、在线添加存储卷或由于工作负载变化,需要调整存储卷类型的情况。上述操作会对业务有影响吗?答案是不会的,AWS支持在线存储卷扩容,在线添加存储卷,在线修改存储卷类型且不需要重启EC2实例。
以下文章描述如何完成上述操作,参考AWS 官方文档。
https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/ebs-modify-volume.html
操作过程:
背景介绍:
环境中有一台AWS Linux EC2实例,根存储卷大小为默认8GB 通用型SSD存储IOPS为100,登录EC2实例,使用df –h命令,查看到存储使用情况,可看到默认8GB存储,已使用空间为16%
打开AWS 控制台,创建一个2GB 大小的通用型SSD存储卷
将新创建的EBS存储卷附加至测试的linux实例
可在控制台中,看到增加一块EBS存储卷
进入系统,格式化并挂载EBS存储卷,输入lsblk 查看存储卷设备。
创建文件系统,并挂载EBS存储卷,输入file –s /dev/xvda1,可看到xvda1根据的文件系统是XFS,而xvdf为data时,则表示设备上没有文件系统。
使用mkfs –t在空存储卷上创建文件系统,如果要装载已具有数据的存储卷(例如,通过快照还原的存储卷),请勿使用此命令。否则,会格式化存储卷并删除现有数据。
创建挂载点目录/data mkdir /data mount /dev/xvdf /data
重启验证挂载点,是否存在,执行reboot操作,重启之后,发现新挂载点不存在。
那么如何做到,重启后自动挂载附加存储卷,首先创建 /etc/fstab 文件的备份,以便在编辑时误损坏或删除此文件时使用。执行cp /etc/fstab /etc/fstab.orig,使用 blkid命令查找设备的 UUID。
打开sudo vim /etc/fstab文件,添加如下信息
挂载文件系统
对于弹性存储卷EBS,可以在不分离 Amazon EBS 存储卷的情况下动态修改存储卷的大小、性能和存储卷类型。在修改包含有用数据的存储卷之前,最佳实践是创建存储卷的快照。
首先修改在线根存储卷大小,从8GB调整为10GB。
在增加 EBS 存储卷的大小后,必须使用特定于文件系统的命令来将文件系统扩展到较大大小。一旦存储卷进入 optimizing 状态,即可调整文件系统的大小。
参考链接:https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/recognize-expanded-volume-linux.html
使用file –s /dev/xvd*查看分区文件系统,下图显示为XFS文件系统。
要在根存储卷上扩展分区,请使用以下 growpart 命令,使用growpart /dev/xvda 1 进行扩展分区。
扩展文件系统,XFS系统 xfs_growfs –d /
从通用型SSD 2GB修改为4GB预配置IO1
通过lsblk查看,扩展存储卷大小为4GB
增大扩展存储卷文件系统,执行以下命令,查看文件系统格式,格式为XFS
file -s /dev/xvdf
使用xfs_growfs -d /data 增大扩展存储卷文件系统,df –h 查看 从2GB增加到4GB
本文结论
在AWS EBS创建一台Linux EC2实例。
陈汉卿
云业务事业部 | 高级系统架构师
神州泰岳软件股份有限公司·AWS战略合作伙伴
AWS Solution Provider | Migration | DevOps | Cloud Management Tools(CMT) ISV Partner