言成言成啊 | Kit Chen's Blog

CentOS7硬盘动态扩容

发布于2023-01-06 23:19:53,更新于2024-09-30 15:32:55,标签:devops  文章会持续修订,转载请注明来源地址:https://meethigher.top/blog

针对硬盘扩容,我总结了两种情况。

  1. 新增硬盘扩容。
  2. 拆东补西扩容。即不新增硬盘扩容

第一种情况,可以无感扩容。

第二种情况,需要关闭正在使用中的,还要涉及到数据迁移。

一、新增硬盘扩容

1.1 硬盘命名规则

Linux对硬盘分区命名的规则

  1. 如果有多块硬盘,如IDE硬盘,则它们的名称都是HD开头。第一块硬盘就叫做HDA,第二块就是HDB…以此类推。
  2. 如果有多块SATA或者SCSI硬盘,则都是SD开头。同样第一块硬盘叫SDA,第二块硬盘叫SDB…以此类推。
  3. 如果用到了虚拟化的模拟设备,则是以VD开头。同样第一块硬盘叫VDA,第二块硬盘叫VDB…以此类推。
  4. 如果每一块硬盘要分区,则直接在名称后加上数字1、2、3…即可。所以我们在前面看到了sda1、sda2、sda3。
  5. 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
2
# m参数表示帮助。w表示保存操作、q表示不保存操作
fdisk /dev/sdb

此时硬盘已经创建了分区,可以再次还行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
2
3
4
# 获取要挂载逻辑卷组VG Name
vgdisplay
# 找到对应卷组的逻辑卷路径LV Path
vgdisplay -v

vgdisplay可以获取当前有哪些逻辑卷组。通过使用-v这个选项,你可以获得卷组(Volume Group)及其包含的物理卷(Physical Volume)和逻辑卷(Logical Volume)的详细信息。

2.) 创建物理卷

1
2
3
4
# 创建物理卷
pvcreate /dev/sdb1
# 查看物理卷
pvdisplay

3.) 扩展卷组CentOS,并扩展逻辑卷

1
2
3
vgextend CentOS /dev/sdb1
lvextend -L +2G /dev/CentOS/root
xfs_growfs /dev/CentOS/root

在某些国产系统上,xfs_growfs 会提示is not a mounted XFS filesystem

这就需要df -h查看/dev/CentOS/root对应的挂载点,然后将/dev/CentOS/root改为挂载点即可。

4.) 运行df -Th,可查看最终挂载效果

1.5.2 扩容至新建挂载点

分为两种方式

  • 分区直接挂载
  • 分区通过逻辑卷间接挂载

分区直接挂载

1.) 创建需要挂载的目录,进行挂载

1
2
3
4
5
mkdir /test
# 将echo后面的字符串,追加到/etc/fstable
echo "/dev/sdb1 /test xfs defaults 0 0" >> /etc/fstab
# 重载fstable
mount -a

2.) 运行df -Th,可查看最终挂载效果

直接将物理分区挂载了,后续新增盘不可再对该目录进行直接扩容。

分区通过逻辑卷间接挂载

1.) 创建物理卷

1
2
3
4
# 创建物理卷
pvcreate /dev/sdb1
# 查看物理卷
pvdisplay

2.) 创建逻辑卷组

1
2
3
4
# 创建逻辑卷组vg0
vgcreate vg0 /dev/sdb1
# 查看逻辑卷组
vgdisplay

3.) 创建逻辑卷

1
2
3
4
# 在卷组 `vg0` 中创建一个新的逻辑卷,例如 `lv_data`,大小是卷组的全部空间。
lvcreate -n lv_data -l 100%FREE vg0
# 查看逻辑卷
lvdisplay

4.) 格式化逻辑卷

1
2
# 将逻辑卷格式化为XFS文件系统。
mkfs.xfs /dev/vg0/lv_data

5.) 挂载逻辑卷

1
2
3
4
5
6
# 创建挂载点
mkdir /test1
# 挂载逻辑卷,挂载后就可执行df -Th查看空间了
mount /dev/vg0/lv_data /test1
# 追加至 /etc/fstab, 每次系统启动后逻辑卷都会自动挂载到指定点, 否则则需要手动挂载
echo "/dev/vg0/lv_data /test1 xfs defaults 0 0" >> /etc/fstab

二、拆东补西扩容

存储数据时,发现硬盘满了,但是有个硬盘/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

三、参考致谢

动态扩容Linux根目录:/dev/mapper/CentOS-home分配部分空间给/dev/mapper/CentOS-root(/dev/mapper/CentOS-root经常会满,可是/dev/mapper/CentOS-home很空) - 金龟子大战猕猴桃 - 博客园

阿里云/dev/vdb硬盘挂载 - 简书

fdisk 命令实现硬盘分区详细教程_Stars.Sky的博客-CSDN博客

Linux LVM详解_大数据老司机的博客-CSDN博客_linux lvm

Linux入门教程:P13->硬盘管理类_爱你哦小猪猪的博客-CSDN博客

Linux挂载新硬盘到根目录/_hcd1129的博客-CSDN博客_linux根目录挂载在哪

linux下数据盘挂载,包含直接挂载和 逻辑卷挂载-CSDN博客

扩容 /data 分区

发布:2023-01-06 23:19:53
修改:2024-09-30 15:32:55
链接:https://meethigher.top/blog/2023/centos-dynamic-expansion/
标签:devops 
付款码 打赏 分享
Shift+Ctrl+1 可控制工具栏