Linux LVM分区动态扩容
说明
本教程仅针对LVM分区扩容,普通分区无法做到LVM那样随意扩容,并且不在本教程的范围内
扩容方式有两种:
- 直接在原有磁盘上加空间
- 原有磁盘不动,新挂载一块磁盘
后面都会详细介绍,本教程的操作均无需重启服务器且不影响业务
环境
Centos8 Stream
lvm2工具(如果命令不存在的话执行yum install lvm2
安装即可)
教程
在增加或扩容物理磁盘之后,Linux有可能会无法立即识别新的空间或磁盘,此时最简单的办法为重启,如果不想重启或者无法重启,可以执行以下指令立即刷新磁盘信息
echo '1' > /sys/class/scsi_disk/0\:0\:0\:0/device/rescan
方式一:直接在原有磁盘上加空间
说明
如下图所示,原来的硬盘1空间为20G,现直接改为25G,扩容5G
附上一张一开始系统里磁盘信息的截图
扩容LVM分区
进入分区指令
parted
查看所有空间使用情况
print all free
像这种一个磁盘上直接加空间,会在末尾多出一段Free Space
的,然后我们需要确认Free Space
的大小(Size)是否和我们加的空间差不多,如果确认无误之后就可以进入下一步操作了
增加需要扩容的LVM分区大小
# resizepart [编号(Number)] [容量]
resizepart 2 100%
我这边就将编号为2的LVM分区,将空余容量都分配给它
查看当前的分区状态
print
此时可以看到,空闲的容量已经被分配给了Number为2的分区,增加了5G
退出
quit
扩容lvm物理卷
扩容
# pvresize -v [LVM物理卷路径(pvdisplay命令展示的PV Name)]
pvresize -v /dev/sda2
出现如下图所示的的Resizing physical volume [xxx] from [xxx] to [xxx] extents即为扩容成功
验证
vgdisplay
可以看到LVM卷组的空闲容量已经多出来了5G
扩容LVM逻辑卷
查看需要扩容的逻辑卷
lvdisplay
取LV Path作为下一步的逻辑卷路径,下图中第一个为swap交换分区,第二个为我们需要扩容的root分区
其实,取df -h
得到的文件系统路径也是可以的,比如我这里第二个逻辑卷df -h
拿到的就是/dev/mapper/cs-root
,不过还是推荐前面一种方式来获取
扩容逻辑卷
# lvextend -l [需要扩容的空间大小] [逻辑卷路径]
# 这里我们将所有空余空间都分配给/dev/cs/root这个逻辑卷
lvextend -l +100%FREE /dev/cs/root
出现successfully字样即为扩容成功
刷新文件系统大小
查看文件系统类型
df -hT
找到你刚刚扩容的逻辑卷 并查看第二列的类型
我这边为xfs文件系统,也有ext4的,两种文件系统刷新指令不一样,这里都给出
xfs
# xfs_growfs [逻辑卷路径] xfs_growfs /dev/cs/root
ext4
# resize2fs [逻辑卷路径] resize2fs /dev/cs/root
出现如下图data blocks changed from [xxx] to [xxx]即为扩容成功
确认扩容结果
输入df -h
确认扩容结果,可以看到根目录已经多了5个G
方式二:原有磁盘不动,新挂载一块磁盘
说明
如下图所示,我们往虚拟机中增加了一块5GB的硬盘,原来的25G硬盘不变,这种方式一般是物理机扩容最常见的方式,因为物理机往往都是再插一块硬盘这样的扩容方式
下图是挂载之后的截图,可以看到我们什么操作都没有做,系统就已经识别了这块5G的新磁盘
查询新挂载的磁盘信息
fdisk -l
lsblk
通过上面两个命令可以看到,新挂载的磁盘大小为5G,并且磁盘路径为/dev/sdb
将新盘标记为物理卷
# pvcreate [磁盘路径]
pvcreate /dev/sdb
此时/dev/sdb
已经成为了物理卷
添加新物理卷到需要扩容的LVM卷组
查看LVM卷组
vgdisplay
拿到需要扩容的VG Name
卷组名称
添加物理卷至卷组
# vgextend [卷组名称] [物理卷路径]
vgextend cs /dev/sdb
再次执行vgdisplay
可以看到LVM卷组的空闲容量已经多了5G
扩容LVM逻辑卷
查看需要扩容的逻辑卷
lvdisplay
取LV Path作为下一步的逻辑卷路径,下图中第一个为swap交换分区,第二个为我们需要扩容的root根目录分区
扩容逻辑卷
# lvextend -l [需要扩容的空间大小] [逻辑卷路径]
# 这里我们将所有空余空间都分配给/dev/cs/root这个逻辑卷
lvextend -l +100%FREE /dev/cs/root
刷新文件系统大小
查看文件系统类型
df -hT
找到你刚刚扩容的逻辑卷 并查看第二列的类型
我这边为xfs文件系统,也有ext4的,两种文件系统刷新指令不一样,这里都给出
xfs
# xfs_growfs [逻辑卷路径] xfs_growfs /dev/cs/root
ext4
# resize2fs [逻辑卷路径] resize2fs /dev/cs/root
出现如下图data blocks changed from [xxx] to [xxx]即为扩容成功
确认扩容结果
输入df -h
确认扩容结果,可以看到根目录已经多了5个G
附录 指令大全
df -hT
查看文件系统类型、容量、挂载点等,也是日常查看磁盘信息最常用的一个命令
fdisk -l
查看磁盘分区表
lsblk
查看设备挂载点信息
lvscan
扫描系统中存在的所有的LVM逻辑卷
vgdisplay
查看物理卷组信息
pvdisplay
查看物理卷信息
pvcreate [磁盘路径]
将磁盘标记为物理卷
pvresize -v [LVM物理卷路径]
扩容LVM物理卷
vgextend [卷组名称] [物理卷路径]
向LVM卷组添加物理卷
xfs_growfs [逻辑卷路径]
刷新xfs分区
resize2fs [逻辑卷路径]
刷新ext4分区
parted
进入分区指令(更多用法自行百度)
分别是哔哩哔哩序号35,小米运动序号2,米友社序号13,这个是同一个账号下运行的任务