云盘是用户高频使用的云产品,同时也是新用户在真正使用过程中存在较多问题的云产品。本文介绍了Linux系统下云盘的基础概念,同时对常见的两个使用场景,给出了详细的操作指引及对应正确的输出结果,便于用户参考,实现使用体验优化及服务质量。
1. 背景
1.1 云盘扩容概述
随着业务发展和应用数据增长,当云盘使用空间不足时,可以扩容云盘的存储容量,即云盘扩容。
目前支持多种方式进行云盘扩容,包括:
-
更新系统盘时,指定更高的系统盘容量
不管采用哪一种方式,避免不了对云盘进行分区格式化等操作,这也是当前用户在使用云盘产品过程中的出现问题最多的环节。
1.2 云盘容量限制
目前系统盘及数据盘存在容量上限,扩容操作的新盘容量必须大于原容量,且小于容量限制。
-
系统盘扩容上限
-
数据盘扩容上限
1.3 云盘基础概念
1.3.1 云盘全生命周期流程
云盘的生命周期大概包括创建、挂载ECS、分区格式化、创建文件系统并挂载、卸载释放等环节,根据用户场景不同,会有不同的操作流程,但大概可分为如图几种。
需要注意的是,系统盘随ECS实例创建时,是自行分区格式化的,采用XFS文件系。数据盘随ECS实例创建时,不会自行分区格式化,需要用户自行操作。手动创建云盘,也不会自行分区格式化及文件系统挂载,需要用户自行操作。
在云盘使用过程中,系统盘和数据盘会遇到容量不足的情况,此时可以通过离线、在线扩容增加容量,完成后还需要进行分区和格式化。
1.3.2 磁盘、分区及文件系统的关系
-
磁盘:是存储数据的物理介质
-
分区:在磁盘上人为设置的结构,分区有两种类型,GPT分区和MBR分区
-
文件系统:建立在分区上的一个系统,具备特定的格式
1.3.3 分区格式及对应工具
磁盘的分区类型包括GPT及MBR两类分区类型,关于分区类型的科普可以参考链接:硬盘的分区方式
1.3.4 文件系统格式
文件系统是指文件存在的空间,在Linux系统中,每个分区都是一个文件系统,都有自己的目录层次结构。Linux最重要的特征之一就是支持多种文件系统,更加灵活,并可以和其它许多操作系统共存。
随着Linux的不断发展,所支持的文件格式也在不断增加。目前,Linux系统可支持十多种文件系统类型,包括:ext*、XFS、NFS、SMB、JFS、ReiserFS等。
具体不同文件系统具备哪些特征,可以参考链接:linux的常用文件系统格式
目前阿里云linux系统支持ext*、xfs、btrfs。
介绍完Linux系统中磁盘、分区、文件系统相关基础概念,下面将针对用户使用过程中遇到的系统盘扩容、新购数据盘分区挂载两个热门场景进行详细的操作指引,帮助广大用户们解决实际操作遇到的困难。
我们准备了如下的ECS及云盘,其中系统盘随ECS实例创建,数据盘在ECS创建后,再购买挂载至ECS。
-
ECS实例:华东1(杭州),ecs.g7.large,1台,CentOS 8.0
-
系统盘:ESSD PL0 40GB,1块
-
数据盘:ESSD PL0 20GB,1块
准备好ECS及云盘资源后,我们先执行fdisk命令检查下系统盘、数据盘的状态,其中系统盘有1个分区,数据盘没有分区。
####查看磁盘信息,返回已挂载的磁盘数量及磁盘上的分区信息
fdisk -l
3. 场景一:系统盘扩容系列操作
注意:云盘扩容前,建议先创建快照备份,便于回滚。
系统盘扩容的系列操作可用下图表示。
3.1 系统盘扩容
控制台进行系统盘扩容,扩容至60GB
系统盘扩容后,控制台可见系统盘变为60GB,在ECS内部查看磁盘信息
进入ECS内部,执行命令,查看扩容后的磁盘、分区、文件系统信息,发现磁盘已经扩容,但分区和文件系统并未扩容,下一步扩容分区。
#####查看磁盘及分区信息
fdisk -lu
#####查看文件系统
df -Th
3.2 系统盘扩容分区
根据分区类型,安装gdisk与growpart等分区工具
注:如果待扩容分区为GPT格式,必须安装gdisk,如果为MBR格式,可以跳过安装gdisk
#####安装gdisk
yum install gdisk -y
#####安装growpart
########Alibaba Cloud Linux 2/3版本、CentOS 7及以上版本运行以下命令
yum install -y cloud-utils-growpart
########Debian 8及以上版本、Ubuntu14及以上版本运行以下命令
apt-get update###更新软件源
apt-get install -y cloud-guest-utils
安装完工具后,执行扩容分区命令
growpart <待扩容系统盘名称> <待扩容分区编号>
根据图中信息,待扩容系统盘名称为 /dev/vda,待扩容分区编号为1.
执行命令后,可以查看分区信息已经更新,系统盘/dev/vda1分区已经扩容
3.3 系统盘扩容文件系统
根据分区的文件系统格式,执行扩容文件系统命令
####扩容ext*文件系统
resize2fs <待扩容文件系统分区名称>
####扩容xfs文件系统
xfs_growfs <待扩容文件系统挂载点>
####扩容btfs文件系统
btrfs filesystem resize max <待扩容分区挂载点>
根据图中信息,系统盘/dev/vda1分区文件系统的格式为xfs,挂载点为 /,执行如下命令扩容。
xfs_growfs /
扩容文件系统后,查询ECS文件系统信息,显示扩容成功
4. 场景二:数据盘分区格式化
用户购买数据盘之后,阿里云不会默认分区格式化,需要用户自行操作。
4.1 数据盘分区
检查数据盘信息,发现并未分区格式化,需要用户自行操作
我们选择对数据盘/dev/vdb做MBR分区,分区数量为1,执行如下命令,进入分区界面
#####数据盘分区
fdisk -u <待分区数据盘名称>
根据界面提示,依次执行相应命令
-
输 入p查 看数据盘的分区情况。
-
输入n创建一个新分区
-
输入p选择分区类型为主分区
-
输入分区编号
-
输入第一个可用扇区编号
-
输入最后一个扇区编号
-
输入p查看分区规划情况
-
输入w开始分区
4.2 数据盘文件系统格式化
分区创建后,在分区创建文件系统,执行如下命令
####文件系统格式化命令
mkfs -t <文件系统格式> <待格式化分区名称>
创建文件系统后,执行df命令查看文件系统,发现文件系统还未挂载成功
4.2 数据盘文件系统挂载
执行如下命令,创建挂载点,并把分区挂载至挂载点
#####查看文件系统挂载信息
df -Th
#####创建分区挂载点
mkdir <挂载点路径>
#####挂载分区
mount -t <待挂载分区名称> <分区挂载点>