生产环境下,Linux(CentOS 7)磁盘空间扩容(数据盘)

文章目录

  • 前言
    • 过程
      • 阶段一
        • 第一步:创建快照
        • 第二步:扩容
      • 阶段二
        • 第一步:查看服务器相关信息
          • 1.确认分区表格式和文件系统
          • 2.选择扩容分区或文件系统的方式
          • 3.根据分区类型,这里进行扩展MBR分区
        • 第二步: 新增MBR分区

前言

这次进行的是数据盘空间扩容

这次操作在官方文档的基础上,结合一些案例进行

一、官方的文档

  1. 扩展分区和文件系统_Linux数据盘_扩容云盘_云盘_块存储_云服务器 ECS-阿里云

  2. 阿里云 ECS 云盘扩容操作指南(图文详解) - 独特优惠码

二、案例:

  1. 【实操】云服务器ECS扩充磁盘、磁盘扩容-云栖社区-阿里云

过程

阶段一

第一步:创建快照

1.登录阿里云服务器管理控制台 → \to 实例列表 → \to 本实例云盘
在要扩容的云盘ID右侧,点击“创建快照”。
2.在本实例快照内查看快照生成进度

第二步:扩容

1.在本实例云盘页内,在要扩容的云盘ID右侧,点击“更多” → \to 选择“磁盘扩容”
生产环境下,Linux(CentOS 7)磁盘空间扩容(数据盘)_第1张图片
2.扩容方式选择“在线扩容”,扩容后容量根据需求进行设置。
3.阅读磁盘扩容须知后点击“已阅读,继续扩容”
生产环境下,Linux(CentOS 7)磁盘空间扩容(数据盘)_第2张图片
4.付款,成功后,云盘状态显示“使用中”
在这里插入图片描述
5. 远程连接ECS实例。

阶段二

第一步:查看服务器相关信息

1.确认分区表格式和文件系统
  1. 运行以下命令确认数据盘的分区表格式。
    fdisk -lu <数据盘设备名>
    生产环境下,Linux(CentOS 7)磁盘空间扩容(数据盘)_第3张图片
    这次扩容过程中,原有的数据盘已做分区/dev/vdb1和/dev/vdb2
  • 如果"System"="Linux",说明数据盘使用的是MBR分区表格式。
  • 如果"System"="GPT",说明数据盘使用的是GPT分区表格式。
    这里我的分区表信息显示,"System"="Linux",为MBR分区
  1. 运行以下命令确认已有分区的文件系统类型。
    blkid <数据盘已有分区的名称>
    在这里插入图片描述

说明 未分区并且未创建文件系统的数据盘,以及已分区但未创建文件系统的数据盘,不会返回结果。

  1. 运行以下命令确认文件系统的状态。
    ext*文件系统:e2fsck -n <数据盘已有分区的名称>
    xfs文件系统:xfs_repair -n <数据盘已有分区的名称>

注意 本示例中,文件系统状态为clean,表示文件系统状态正常。如果状态不是clean,请排查并修复

# e2fsck -n /dev/vdb1

e2fsck 1.42.9 (28-Dec-2013)
Warning! /dev/vdb1 is mounted.
Warning: skipping journal recovery because doing a read-only filesystem check.
/dev/vdb1: clean, 11/1310720 files, 126322/5242624 blocks

在这里插入图片描述

2.选择扩容分区或文件系统的方式

这一部分可以在官方文档中查看,传送门

生产环境下,Linux(CentOS 7)磁盘空间扩容(数据盘)_第4张图片

3.根据分区类型,这里进行扩展MBR分区

注意!!!
根据内核版本进行这个操作
使用命令uname -r查看内核版本
在这里插入图片描述

说明 为了防止数据丢失,不建议扩容已挂载的分区和文件系统。请先取消挂载(umount)分区,完成扩容并正常使用后,重新挂载(mount)。针对不同的Linux内核版本,推荐以下操作方式:
实例内核版本小于3.6:先取消挂载该分区,再修改分区表,最后扩容文件系统。
实例内核版本大于等于3.6:先修改对应分区表,再通知内核更新分区表,最后扩容文件系统。

  1. 查看分区表
    运行以下命令查看分区信息,并记录旧分区的起始和结束的扇区位置
    fdisk -lu /dev/vdb
    生产环境下,Linux(CentOS 7)磁盘空间扩容(数据盘)_第5张图片
    查看数据盘的挂载路径,根据返回的文件路径卸载分区,直至完全卸载已挂载的分区。
[root@ecshost ~]# mount | grep "/dev/vdb"
/dev/vdb1 on /mnt type ext4 (rw,relatime,data=ordered)
[root@ecshost ~]# umount /dev/vdb1
[root@ecshost ~]# mount | grep "/dev/vdb"

生产环境下,Linux(CentOS 7)磁盘空间扩容(数据盘)_第6张图片
在这里插入图片描述
这一步遇到了一个问题:无法卸载分区
提示

umount: /home: target is busy.
		(In some cases useful info about processes that use
		the device is found by lsof(8) or fuser(1))

原因:该分区上有进程正在运行
参考资料1
方法1:使用命令fuser -m /dev/vdb1查看分区上的进程
在这里插入图片描述
使用kill -9 <进程ID>结束进程

发现进程较多,无法手动结束完,有的进程关闭后还会自启,十分麻烦,如下图。
生产环境下,Linux(CentOS 7)磁盘空间扩容(数据盘)_第7张图片

方法2:使用命令umount -l /dev/vdb1强制卸载分区
参考资料2
使用命令mount | grep "/dev/vdb"查看分区,发现/dev/vdb1分区已被卸载
在这里插入图片描述
查看数据盘的挂载路径,根据返回的文件路径卸载分区,直至完全卸载已挂载的分区。

[root@ecshost ~]# mount | grep "/dev/vdb"
/dev/vdb1 on /mnt type ext4 (rw,relatime,data=ordered)
[root@ecshost ~]# umount /dev/vdb1
[root@ecshost ~]# mount | grep "/dev/vdb"

接下来的操作和官方文档上的操作基本一致,一个不同的地方在于,这次扩容,服务器上已有两个分区vdb1和vdb2就无法直接将容量加到vdb1上,因为这样会导致vdb2分区的内存地址发生改变,所以选择在vdb2后建立新分区vdb3

第二步: 新增MBR分区

选择文档中的选项二进行操作
生产环境下,Linux(CentOS 7)磁盘空间扩容(数据盘)_第8张图片

  1. 运行fdisk -u /dev/vdb命令新建分区。
    生产环境下,Linux(CentOS 7)磁盘空间扩容(数据盘)_第9张图片
    生产环境下,Linux(CentOS 7)磁盘空间扩容(数据盘)_第10张图片
    生产环境下,Linux(CentOS 7)磁盘空间扩容(数据盘)_第11张图片
  2. 运行命令lsblk /dev/vdb查看分区。
    生产环境下,Linux(CentOS 7)磁盘空间扩容(数据盘)_第12张图片
  3. 格式化新的分区,创建ext4文件系统:mkfs.ext4 /dev/vdb2
    生产环境下,Linux(CentOS 7)磁盘空间扩容(数据盘)_第13张图片
    在这里插入图片描述
    生产环境下,Linux(CentOS 7)磁盘空间扩容(数据盘)_第14张图片

你可能感兴趣的:(CentOS)