背景
随着云计算的发展, 云上资源使用愈加灵活。 在日常使用ECS中,时常会遇到有状态服务随着运行时间越来越长,导致数据日积月累越来越多, 磁盘空间也随之紧张,这种情况下对于磁盘容量的动态扩容就显得尤为重要了,尤其来有状态服务运行的情况下。
因此本篇讨论如何对磁盘进行平滑扩容。
磁盘扩容
使用growpart和resize2fs工具完成Linux系统盘分区扩容及文件系统扩展的操作指导。
本文的操作步骤适用于以下分区和文件系统格式的云盘:
- 分区格式支持:mbr、gpt
- 文件系统支持:ext*、xfs、btrfs
- 磁盘限制:非系统盘
CentOS 7、Aliyun Linux:
这里以Centos7系统、ext4文件系统为例进行无损扩容掩饰,
其他类型操作系统及文件系统参考:https://help.aliyun.com/zh/ecs/user-guide/extend-the-partitions-and-file-systems-of-disks-on-a-linux-instance
# 以磁盘vdb为例,扩容步骤如下
yum install cloud-utils-growpart -y
LANG=en_US.UTF-8
growpart /dev/vdb 1
# ext4采用如下方式进行扩容
resize2fs /dev/vdb1
# xfs 系统使用如下命令进行扩容
type xfs_growfs || sudo yum install -y xfsprogs
sudo xfs_growfs / # / 为磁盘挂载路径
MBR分区无损切换为GPT分区
MBR分区方案支持2TB或更小的磁盘,当磁盘容量超过2T就需要切换为GPT分区表来支持。
所以当磁盘分区方案为MBR,且磁盘大小需要升级到2TB以上时,就需要先对分区格式进行切换后,对磁盘大小进行无损扩容。
fdisk: MBR分区工具
gdisk: GPT分区工具
parted: GPT和MBR都支持
切换步骤如下:
# 安装gdisk工具
type sgdisk || sudo yum install -y gdisk
# 以云盘设备名称/dev/vdb为例
sgdisk -g /dev/vdb
# 查看磁盘分区情况
fdisk -lu /dev/vdb