oldwu's Blog - lvm
type: channel
link: https://blog.oldwu.top/index.php/tag/lvm/
items: Linux LVM分区动态扩容

Linux LVM分区动态扩容
type: item
date: 2023-11-28T21:00:37+08:00
description: Linux LVM分区动态扩容说明本教程仅针对LVM分区扩容，普通分区无法做到LVM那样随意扩容，并且不在本教程的范围内扩容方式有两种：直接在原有磁盘上加空间原有磁盘不动，新挂载一块磁盘后面都会详细介绍，本教程的操作均无需重启服务器且不影响业务环境Centos8 Streamlvm2工具（如果命令不存在的话执行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/rootext4# 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刷新文件系统大小查看文件…