CentOS7硬盘动态扩容
发布于2023-01-06 23:19:53,更新于2024-09-30 15:32:55,标签:devops 文章会持续修订,转载请注明来源地址:https://meethigher.top/blog针对硬盘扩容,我总结了两种情况。
- 新增硬盘扩容。
- 拆东补西扩容。即不新增硬盘扩容
第一种情况,可以无感扩容。
第二种情况,需要关闭正在使用中的,还要涉及到数据迁移。
一、新增硬盘扩容
1.1 硬盘命名规则
Linux对硬盘分区命名的规则
- 如果有多块硬盘,如IDE硬盘,则它们的名称都是
HD
开头。第一块硬盘就叫做HDA,第二块就是HDB…以此类推。 - 如果有多块SATA或者SCSI硬盘,则都是
SD
开头。同样第一块硬盘叫SDA,第二块硬盘叫SDB…以此类推。 - 如果用到了虚拟化的模拟设备,则是以
VD
开头。同样第一块硬盘叫VDA,第二块硬盘叫VDB…以此类推。 - 如果每一块硬盘要分区,则直接在名称后加上数字1、2、3…即可。所以我们在前面看到了sda1、sda2、sda3。
LVM
(Logical Volume Manager)表示逻辑卷管理,是在硬盘分区和文件系统之间添加的一个逻辑层,LVM使多个硬盘空间看起来像是一个大硬盘
配置了逻辑卷之后,就可以将多个物理硬盘往该卷上进行扩容。
1.2 新增硬盘
用VMWare模拟新增一块硬盘。
1.3 创建分区
先简单介绍两个硬盘相关工具
lsblk
:用于查看硬盘和分区信息,如精确的大小、类型(物理盘、逻辑卷、分区等)、挂载点等。查看用fdisk
:用于创建和修改分区的工具。查看的硬盘大小不够准确。创建修改时用
挂载硬盘后,执行命令fdisk -l
,可以查看硬盘信息
执行命令lsblk
,也可查看硬盘信息,部分参数说明
- RM:是否为可移动设备(Removable)。
0
表示不可移动,1
表示可移动。 - RO:是否为只读设备(Read-Only)。
0
表示可读写,1
表示只读。 - TYPE:常见值包括
disk
(硬盘),part
(分区),lvm
(逻辑卷),rom
(只读内存)等。
由图可知,硬盘/dev/sdb未分配空间,所以需创建分区、格式化、挂载分区。
创建分区
1 | # m参数表示帮助。w表示保存操作、q表示不保存操作 |
此时硬盘已经创建了分区,可以再次还行fdisk -l
查看,可以看到新增的分区sdb1
1.4 格式化分区类型
如果分区没有进行格式化,则Linux系统无法得知怎么在其上写入数据。
因此,在对存储设备进行分区后还需要进行格式化操作。在Linux系统中用于格式化操作的命令是 mkfs
。这个mkfs
命令支持多个文件系统,用起来也非常简单——mkfs.文件类型名称
。
查看支持的文件类型
1 | ls /usr/sbin/|grep mkfs |
查看当前硬盘主要的文件类型
1 | df -Th |
可知文件类型主要为xfs
,那就直接将文件系统/dev/sdb1
进行格式化为xfs
1 | mkfs.xfs /dev/sdb1 |
1.5 两种扩容方式
新增硬盘扩容,两种方式
- 扩容至已有挂载点。要求当前挂载点所属卷是逻辑卷。
- 扩容至新建挂载点。
1.5.1 扩容至已有挂载点
该操作要求目标挂载点所属空间是个逻辑卷。
1.) 查看逻辑卷组
1 | # 获取要挂载逻辑卷组VG Name |
vgdisplay
可以获取当前有哪些逻辑卷组。通过使用-v
这个选项,你可以获得卷组(Volume Group)及其包含的物理卷(Physical Volume)和逻辑卷(Logical Volume)的详细信息。
2.) 创建物理卷
1 | # 创建物理卷 |
3.) 扩展卷组CentOS,并扩展逻辑卷
1 | vgextend CentOS /dev/sdb1 |
在某些国产系统上,xfs_growfs 会提示is not a mounted XFS filesystem
这就需要
df -h
查看/dev/CentOS/root
对应的挂载点,然后将/dev/CentOS/root
改为挂载点即可。
4.) 运行df -Th
,可查看最终挂载效果
1.5.2 扩容至新建挂载点
分为两种方式
- 分区直接挂载
- 分区通过逻辑卷间接挂载
分区直接挂载
1.) 创建需要挂载的目录,进行挂载
1 | mkdir /test |
2.) 运行df -Th
,可查看最终挂载效果
直接将物理分区挂载了,后续新增盘不可再对该目录进行直接扩容。
分区通过逻辑卷间接挂载
1.) 创建物理卷
1 | # 创建物理卷 |
2.) 创建逻辑卷组
1 | # 创建逻辑卷组vg0 |
3.) 创建逻辑卷
1 | # 在卷组 `vg0` 中创建一个新的逻辑卷,例如 `lv_data`,大小是卷组的全部空间。 |
4.) 格式化逻辑卷
1 | # 将逻辑卷格式化为XFS文件系统。 |
5.) 挂载逻辑卷
1 | # 创建挂载点 |
二、拆东补西扩容
存储数据时,发现硬盘满了,但是有个硬盘/dev/mapper/CentOS-home是空闲的,所以打算将/dev/mapper/CentOS-home
扩容到/dev/mapper/CentOS-root
注意这两个盘,都是逻辑卷,可以通过
lsblk
命令查看其类型。以下步骤仅适用于逻辑卷间拆东补西。``
2.1 删除空闲卷
首先安装工具
1 | yum -y install psmisc |
终止使用用户。终止所有使用/home文件系统的进程,这里要注意不要在/home目录下执行下面的操作
1 | sudo fuser -km /home |
卸载
1 | sudo umount /home |
删除/home所在的逻辑卷lv
1 | sudo lvremove /dev/mapper/CentOS-home |
2.2 扩大目标卷
扩大逻辑卷
1 | sudo lvextend -L +100G /dev/mapper/CentOS-root |
扩大文件系统
1 | sudo xfs_growfs /dev/mapper/CentOS-root |
xfs_growfs
是适用于xfs
文件系统的。
resize2fs
是适用于ext4
文件系统的。确定文件系统可以使用
df -Th
命令。
2.3 重建空闲卷
重建/home所需要的逻辑卷
1 | sudo lvcreate -L 1148M -n /dev/mapper/CentOS-home |
Volume group “CentOS” has insufficient free space (287 extents): 512 required.
1extent = 4M
创建文件系统
1 | sudo mkfs.xfs /dev/mapper/CentOS-home |
将文件系统挂载到/home
1 | sudo mount /dev/mapper/CentOS-home /home |
三、参考致谢
fdisk 命令实现硬盘分区详细教程_Stars.Sky的博客-CSDN博客
Linux LVM详解_大数据老司机的博客-CSDN博客_linux lvm
Linux入门教程:P13->硬盘管理类_爱你哦小猪猪的博客-CSDN博客
Linux挂载新硬盘到根目录/_hcd1129的博客-CSDN博客_linux根目录挂载在哪