lvm知识点(带部分实验)

什么是lvm:

你看哇这个例子,可能就懂了

假如我们生活中需要磁盘空间,但是你所在的挂载目录空间又恰好满了,那么我们如何增加磁盘去给挂载目录空间呢?一般正常情况下,是要停掉业务,增加磁盘 如果说停掉业务,会浪费大量资源和人力,最重要的是客户流量会流失。那我们就会出现 LVM,不会在停止业务的情况下增加磁盘空间。

表格

创建3个分区

复制代码
命令(输入 m 获取帮助):n
分区类型
   p   主分区 (1 primary, 0 extended, 3 free)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p):

将使用默认回应 p。
分区号 (2-4, 默认  2):
第一个扇区 (10487808-41943039, 默认 10487808):
最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (10487808-41943039, 默认 41943039): +3G

创建了一个新分区 2,类型为"Linux",大小为 3 GiB。

创建物理卷

复制代码
[root@client ~]# lsblk
NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0                11:0    1 11.9G  0 rom
nvme0n1           259:0    0  100G  0 disk
├─nvme0n1p1       259:1    0    1G  0 part /boot
└─nvme0n1p2       259:2    0   99G  0 part
  ├─rhel_172-root 253:0    0 95.1G  0 lvm  /
  └─rhel_172-swap 253:1    0  3.9G  0 lvm  [SWAP]
nvme0n2           259:3    0   20G  0 disk
├─nvme0n2p1       259:4    0    5G  0 part
├─nvme0n2p2       259:5    0    3G  0 part
└─nvme0n2p3       259:6    0   12G  0 part
[root@client ~]# pvcreate /dev/nvme0n2p1 /dev/nvme0n2p2 /dev/nvme0n2p3
WARNING: xfs signature detected on /dev/nvme0n2p1 at offset 0. Wipe it? [y/n]: y
  Wiping xfs signature on /dev/nvme0n2p1.
  Physical volume "/dev/nvme0n2p1" successfully created.
  Physical volume "/dev/nvme0n2p2" successfully created.
  Physical volume "/dev/nvme0n2p3" successfully created.
[root@client ~]# pvscan
  PV /dev/nvme0n1p2   VG rhel_172   lvm2 [<99.00 GiB / 0    free]
  PV /dev/nvme0n2p1                 lvm2 [5.00 GiB]
  PV /dev/nvme0n2p2                 lvm2 [3.00 GiB]
  PV /dev/nvme0n2p3                 lvm2 [<12.00 GiB]
  Total: 4 [<119.00 GiB] / in use: 1 [<99.00 GiB] / in no VG: 3 [<20.00 GiB]
[root@client ~]#  pvdisplay /dev/nvme0n2p1
  "/dev/nvme0n2p1" is a new physical volume of "5.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/nvme0n2p1
  VG Name
  PV Size               5.00 GiB
  Allocatable           NO
  PE Size               0
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               qrchLX-QbE0-K9Nh-fWrT-5sQS-icfk-hLnLHI

卷组

复制代码
[root@client ~]#  vgcreate vg1 /dev/nvme0n2p1 /dev/nvme0n2p2 /dev/nvme0n2p3
#创建卷组
  Volume group "vg1" successfully created
[root@client ~]# vgscan
  Found volume group "vg1" using metadata type lvm2
  Found volume group "rhel_172" using metadata type lvm2
# 查看卷组详细信息
[root@client ~]# vgdisplay vg1
  --- Volume group ---
  VG Name               vg1
  System ID
  Format                lvm2
  Metadata Areas        4
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               0
  Max PV                0
  Cur PV                4
  Act PV                4
  VG Size               20GiB
  PE Size               4.00 MiB
  Total PE              6396
  Alloc PE / Size       756 / 2.95 GiB
  Free  PE / Size       5640 / 22.03 GiB
  VG UUID               dN6BZh-qqCA-2Zil-bjkD-JXk6-FUcn-CdcR3l

逻辑卷

复制代码
[root@client ~]# lvcreate -n lv1 -L 1G vg1     #创建一个vg1逻辑卷
  Logical volume "lv1" created.
[root@client ~]# lvdisplay /dev/vg1/lv1
  --- Logical volume ---
  LV Path                /dev/vg1/lv1
  LV Name                lv1
  VG Name                vg1
  LV UUID                EdQczW-3DVp-NH6h-iK0M-UMQj-2TKp-urWJTp
  LV Write Access        read/write
  LV Creation host, time client, 2026-04-01 20:20:24 +0800
  LV Status              available
  # open                 0
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

[root@client ~]# lvscan
  ACTIVE            '/dev/vg1/lv1' [1.00 GiB] inherit
  ACTIVE            '/dev/rhel_172/root' [95.08 GiB] inherit
  ACTIVE            '/dev/rhel_172/swap' [3.91 GiB] inherit
[root@client ~]# lvcreate -n lv2 -l 500 vg1    #不常用这种格式
  Logical volume "lv2" created.
[root@client ~]# lvscan
  ACTIVE            '/dev/vg1/lv1' [1.00 GiB] inherit
  ACTIVE            '/dev/vg1/lv2' [1.95 GiB] inherit
  ACTIVE            '/dev/rhel_172/root' [95.08 GiB] inherit
  ACTIVE            '/dev/rhel_172/swap' [3.91 GiB] inherit

挂载

复制代码
[root@client ~]# mkdir /mnt/first_disk
[root@client ~]# mount /dev/vg1/lv1 /mnt/first_disk/
[root@client ~]# lsblk
NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0                11:0    1 11.9G  0 rom
nvme0n1           259:0    0  100G  0 disk
├─nvme0n1p1       259:1    0    1G  0 part /boot
└─nvme0n1p2       259:2    0   99G  0 part
  ├─rhel_172-root 253:0    0 95.1G  0 lvm  /
  └─rhel_172-swap 253:1    0  3.9G  0 lvm  [SWAP]
nvme0n2           259:3    0   20G  0 disk
├─nvme0n2p1       259:4    0    5G  0 part
│ ├─vg1-lv1       253:2    0    1G  0 lvm  /mnt/first_disk
│ └─vg1-lv2       253:3    0    2G  0 lvm
├─nvme0n2p2       259:5    0    3G  0 part
└─nvme0n2p3       259:6    0   12G  0 part
[root@client ~]# cd /mnt/first_disk/
[root@client first_disk]# echo hello world > 123.txt
[root@client first_disk]# ls
123.txt

增容

增容

复制代码
假如这里挂载点没有空间,卷组也没有空间,这时添加一块硬盘nvme0n3  
[root@client ~]# lsblk
NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0                11:0    1 11.9G  0 rom
nvme0n1           259:0    0  100G  0 disk
├─nvme0n1p1       259:1    0    1G  0 part /boot
└─nvme0n1p2       259:2    0   99G  0 part
  ├─rhel_172-root 253:0    0 95.1G  0 lvm  /
  └─rhel_172-swap 253:1    0  3.9G  0 lvm  [SWAP]
nvme0n2           259:3    0   20G  0 disk
├─nvme0n2p1       259:4    0    5G  0 part
│ ├─vg1-lv1       253:2    0    1G  0 lvm
│ └─vg1-lv2       253:3    0    2G  0 lvm
├─nvme0n2p2       259:5    0    3G  0 part
└─nvme0n2p3       259:6    0   12G  0 part
nvme0n3           259:7    0    5G  0 disk
[root@client ~]#

[root@client ~]# pvcreate /dev/nvme0n3         #创建物理卷
  Physical volume "/dev/nvme0n3" successfully created.
[root@client ~]# vgextend vg1 /dev/nvme0n3     #加入卷组
  Volume group "vg1" successfully extended
[root@client ~]# lvextend -L +1G /dev/vg1/lv1  #加入到逻辑卷中 
  Size of logical volume vg1/lv1 changed from 1.00 GiB (256 extents) to 2.00 GiB (512 extents).
  Logical volume vg1/lv1 successfully resized.
[root@client ~]# vgdisplay vg1        
  --- Volume group ---
  VG Name               vg1
  System ID
  Format                lvm2
  Metadata Areas        4
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               0
  Max PV                0
  Cur PV                4
  Act PV                4
  VG Size               24.98 GiB
  PE Size               4.00 MiB
  Total PE              6396
  Alloc PE / Size       756 / 2.95 GiB
  Free  PE / Size       5640 / 22.03 GiB
  VG UUID               dN6BZh-qqCA-2Zil-bjkD-JXk6-FUcn-CdcR3l


[root@client ~]# df -h /mnt/first_disk     #这里查看根本没有增加,就是要刷新
文件系统             容量  已用  可用 已用% 挂载点
/dev/mapper/vg1-lv1  960M   39M  922M    5% /mnt/first_disk
[root@client ~]# lsblk
NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0                11:0    1 11.9G  0 rom
nvme0n1           259:0    0  100G  0 disk
├─nvme0n1p1       259:1    0    1G  0 part /boot
└─nvme0n1p2       259:2    0   99G  0 part
  ├─rhel_172-root 253:0    0 95.1G  0 lvm  /
  └─rhel_172-swap 253:1    0  3.9G  0 lvm  [SWAP]
nvme0n2           259:3    0   20G  0 disk
├─nvme0n2p1       259:4    0    5G  0 part
│ ├─vg1-lv1       253:2    0    2G  0 lvm  /mnt/first_disk
│ └─vg1-lv2       253:3    0    2G  0 lvm
├─nvme0n2p2       259:5    0    3G  0 part
└─nvme0n2p3       259:6    0   12G  0 part
nvme0n3           259:7    0    5G  0 disk
[root@client ~]# xfs_growfs /mnt/first_disk  #刷新
[root@client ~]# df -h /mnt/first_disk
文件系统             容量  已用  可用 已用% 挂载点
/dev/mapper/vg1-lv1  2.0G   47M  1.9G    3% /mnt/first_disk
[root@client ~]#


+2G = 追加 2G
2G = 设定为 2G

减容

复制代码
如果说逻辑卷要减容不支持
ext4 可以缩小
xfs 只支持扩大,不支持缩小
[root@client ~]# df -h /mnt/first_disk    #本来是1G  不能简到1G
文件系统             容量  已用  可用 已用% 挂载点
/dev/mapper/vg1-lv1  2.0G   47M  1.9G    3% /mnt/first_disk

卷组减容

[root@client ~]# vgreduce vg1 /dev/nvme0n3   #把/nvme0n3 移出去
  Removed "/dev/nvme0n3" from volume group "vg1"

删除

复制代码
删掉逻辑卷
[root@client ~]# umount /mnt/first_disk/
[root@client ~]# lvremove /dev/vg1/lv1
Do you really want to remove active logical volume vg1/lv1? [y/n]: y
  Logical volume "lv1" successfully removed.
[root@client ~]# lvremove /dev/vg1/lv2
Do you really want to remove active logical volume vg1/lv2? [y/n]: y
  Logical volume "lv2" successfully removed.
[root@client ~]# lsblk
NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0                11:0    1 11.9G  0 rom
nvme0n1           259:0    0  100G  0 disk
├─nvme0n1p1       259:1    0    1G  0 part /boot
└─nvme0n1p2       259:2    0   99G  0 part
  ├─rhel_172-root 253:0    0 95.1G  0 lvm  /
  └─rhel_172-swap 253:1    0  3.9G  0 lvm  [SWAP]
nvme0n2           259:3    0   20G  0 disk
├─nvme0n2p1       259:4    0    5G  0 part
├─nvme0n2p2       259:5    0    3G  0 part
└─nvme0n2p3       259:6    0   12G  0 part
nvme0n3           259:7    0    5G  0 disk
[root@client ~]#


#删掉卷组
[root@client ~]# vgremove vg1
  Volume group "vg1" successfully removed



#删掉物理卷
[root@client ~]# pvremove /dev/nvme0n3
  Labels on physical volume "/dev/nvme0n3" successfully wiped.
[root@client ~]# pvremove /dev/nvme0n2p1
  Labels on physical volume "/dev/nvme0n2p1" successfully wiped.
[root@client ~]# pvremove /dev/nvme0n2p2
  Labels on physical volume "/dev/nvme0n2p2" successfully wiped.
[root@client ~]# pvremove /dev/nvme0n2p3
  Labels on physical volume "/dev/nvme0n2p3" successfully wiped.
[root@client ~]# lsblk
NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
sr0                11:0    1 11.9G  0 rom
nvme0n1           259:0    0  100G  0 disk
├─nvme0n1p1       259:1    0    1G  0 part /boot
└─nvme0n1p2       259:2    0   99G  0 part
  ├─rhel_172-root 253:0    0 95.1G  0 lvm  /
  └─rhel_172-swap 253:1    0  3.9G  0 lvm  [SWAP]
nvme0n2           259:3    0   20G  0 disk
├─nvme0n2p1       259:4    0    5G  0 part
├─nvme0n2p2       259:5    0    3G  0 part
└─nvme0n2p3       259:6    0   12G  0 part
nvme0n3           259:7    0    5G  0 disk
[root@client ~]#

查看

复制代码
[root@client ~]# pvdisplay  #物理卷
  --- Physical volume ---
  PV Name               /dev/nvme0n1p2
  VG Name               rhel_172
  PV Size               <99.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              25343
  Free PE               0
  Allocated PE          25343
  PV UUID               XOkJUa-0kqK-0vPO-cSDU-TXda-aP2Y-3a06Yy


[root@client ~]# vgdisplay  #卷组
  --- Volume group ---
  VG Name               rhel_172
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <99.00 GiB
  PE Size               4.00 MiB
  Total PE              25343
  Alloc PE / Size       25343 / <99.00 GiB
  Free  PE / Size       0 / 0
  VG UUID               qJpY3t-0cpf-Ho2z-6L1s-YVAm-8C6m-NSul1I

[root@client ~]# lvdisplay    #逻辑卷
  --- Logical volume ---
  LV Path                /dev/rhel_172/root
  LV Name                root
  VG Name                rhel_172
  LV UUID                tYrWhU-GYUH-akNI-cjKf-PMIc-a7dS-Cyii0Q
  LV Write Access        read/write
  LV Creation host, time 172.25.254.129, 2026-01-26 14:00:37 +0800
  LV Status              available
  # open                 1
  LV Size                95.08 GiB
  Current LE             24341
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/rhel_172/swap
  LV Name                swap
  VG Name                rhel_172
  LV UUID                IB7hs3-hg0s-TQEG-swPc-PtWy-Mhk3-Wqtg50
  LV Write Access        read/write
  LV Creation host, time 172.25.254.129, 2026-01-26 14:00:37 +0800
  LV Status              available
  # open                 2
  LV Size                3.91 GiB
  Current LE             1002
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

Found volume group "vg1" using metadata type lvm2
找到了卷组,名字叫 vg1
这个卷组的元数据类型是 lvm2(现在都用这个)
系统已经识别到这个卷组了

总结

复制代码
[root@client ~]# pvscan   #物理卷
[root@client ~]# lvscan   #

[root@client ~]#pvdisplay /dev/nvme0n2p1 #物理卷
[root@client ~]# vgdisplay vg1            #卷组
[root@client ~]# lvdisplay /dev/vg1/lv1  查看逻辑卷

[root@client ~]# pvcreate /dev/nvme0n2p1 /dev/nvme0n2p2 /dev/nvme0n2p3  
[root@client ~]#  vgcreate vg1 /dev/nvme0n2p1 /dev/nvme0n2p2 /dev/nvme0n2p3
[root@client ~]# lvcreate -n lv1 -L 1G vg1   #创建一个vg1逻辑卷 

[root@client ~]# vgextend vg1 /dev/nvme0n3     #加入卷组
[root@client ~]# lvextend -L +1G /dev/vg1/lv1  #扩容到逻辑卷中 

xfs逻辑卷不支持
[root@client ~]# vgreduce vg1 /dev/nvme0n3   #把/nvme0n3 移出去卷组


[root@client ~]# lvremove /dev/vg1/lv1  #删掉逻辑卷
[root@client ~]# vgremove vg1           #删掉卷组
[root@client ~]# pvremove /dev/nvme0n3   #删掉物理卷

[root@client ~]# mount /dev/vg1/lv1 /mnt/first_disk/
[root@client ~]# df -h /mnt/first_disk     #这里查看根本没有增加,就是要刷新
[root@client ~]# xfs_growfs /mnt/first_disk  #刷新
相关推荐
乘云数字DATABUFF1 天前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
荣--3 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森3 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜4 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
SelectDB5 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
XIAOHEZIcode6 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏
用户0328472220707 天前
如何搭建本地yum源(上)
运维
大树8810 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠10 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质10 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务