LVM(Logical Volume Manager),即逻辑卷管理,是一种在Linux环境下用于管理磁盘分区的机制。它建立在硬盘和分区之上,提高了磁盘分区管理的灵活性。通过使用LVM,系统管理员可以更轻松地管理磁盘分区,例如将多个磁盘分区连接成一个整块的卷组(volume group),形成一个存储池。
一些LVM的关键术语包括:
PV(Physical Volume,物理卷): 在逻辑卷管理系统的最底层,可以是整个物理硬盘或实际物理硬盘上的分区。它划分出一个特殊的区域,用于构建逻辑卷。
VG(Volume Group,卷组): 由一个或多个物理卷组成,形成一个逻辑存储池。文件系统可以跨越这个卷组,使文件系统的大小不再受物理磁盘的限制。
LV(Logical Volume,逻辑卷): 从卷组中划分出的逻辑分区,类似于传统的硬盘分区,但具有更大的灵活性。
LVM的工作原理是在每个物理卷的头部维护一个元数据,其中包含整个卷组的信息,包括卷组的布局配置、物理卷的位置等。这使得管理员能够在系统运行的状态下动态地扩展文件系统的大小,而无需关机。
lvm管理命令及基本格式
使用命令及基本格式:
①pvcreate:创建物理卷
基本格式:pvcreate 设备名1 设备名2... (如果是分区格式必须是8e,磁盘无要求)
②vgcreate:创建卷组
基本格式:vgcreate 卷组名 物理卷名1 物理卷2...
③lvcreate:创建逻辑卷
基本格式:lvcreate -L 容量大小10G等.. -n 逻辑卷名 卷组名,从卷组取PE
④vgextend:扩展卷组
基本格式:vgextend /要扩容的卷组 /dev/新建的物理卷
⑤lvextend:扩展逻辑卷
基本格式:lvextend -L[扩展大小选项] +20G(扩展具体大小)或者写扩展后的总容量,不写代表把此逻辑卷组变为20G 逻辑卷组名 -r(表示添加完毕直接刷新显示) 注意+号。
⑥pvscan:查看物理卷信息 pvdisplay:查看详细的物理卷信息
vgscan: 查看卷组信息 vgdisplay:查看卷组的具体信息
lvscan:查看逻辑卷信息 lvdisplay:查看逻辑卷具体信息lvm逻辑卷扩容步骤(以home文件系统举例):
1.添加硬盘设备

2. 检测新增硬盘
添加硬盘后,硬盘如果不会直接显示,可以选择重启来刷新硬盘,也可以通过手动刷新硬盘接口:
# 列出块设备信息
# 观察 sdd 是新增的硬盘
[root@u1abomwp01 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 100G 0 disk
├─sda1 8:1 0 500M 0 part /boot
└─sda2 8:2 0 99.5G 0 part
├─VolGroup-lv_root (dm-0) 253:0 0 50G 0 lvm /
├─VolGroup-lv_swap (dm-1) 253:1 0 7.8G 0 lvm [SWAP]
└─VolGroup-lv_home (dm-3) 253:3 0 41.7G 0 lvm /home
sdb 8:16 0 50G 0 disk
└─vg01-lvusers (dm-2) 253:2 0 70G 0 lvm
sdc 8:32 0 20G 0 disk
└─vg01-lvusers (dm-2) 253:2 0 70G 0 lvm
sr0 11:0 1 1024M 0 rom
sdd 8:48 0 100G 0 disk
# 硬盘如果不会直接显示,可以选择重启来刷新硬盘,也可以通过手动刷新硬盘接口
[root@u1abomwp01 ~]# cd /sys/class/scsi_host/
[root@u1abomwp01 scsi_host]# ls
host0 host10 host12 host14 host16 host18 host2 host21 host23 host25 host27 host29 host30 host32 host5 host7 host9
host1 host11 host13 host15 host17 host19 host20 host22 host24 host26 host28 host3 host31 host4 host6 host8
[root@u1abomwp01 scsi_host]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@u1abomwp01 scsi_host]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@u1abomwp01 scsi_host]# echo "- - -" > /sys/class/scsi_host/host2/scan
...
#或者更简单的方法,刷新磁盘
[root@u1abomwp01 ~]# scsi-rescan -s
> 磁盘扩容后:比如在VMware等虚拟化环境中对Linux系统的磁盘进行了扩容,但系统没有自动识别新容量。使用scsi-rescan -s可以"通知内核重新刷新,获取正确的容量数据"3.添加新的物理卷(Physical Volume,PV)
使用pvcreate命令来创建一个新的物理卷,例如,将新的物理卷添加到/dev/sdd上

# 将物理硬盘分区初始化为物理卷
[root@u1abomwp01 scsi_host]# pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created
# 输出物理卷信息报表,观察sdd已添加到物理卷
[root@u1abomwp01 scsi_host]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 VolGroup lvm2 a-- 99.51g 0
/dev/sdb vg01 lvm2 a-- 50.00g 0
/dev/sdc vg01 lvm2 a-- 20.00g 0
/dev/sdd lvm2 a-- 100.00g 100.00g4.扩展卷组(Volume Group,VG)
# 观察/home目录挂载的是VolGroup目录
[root@u1abomwp01 scsi_host]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
50G 12G 35G 26% /
tmpfs 16G 156K 16G 1% /dev/shm
/dev/sda1 485M 37M 423M 9% /boot
/dev/mapper/VolGroup-lv_home
42G 6.3G 33G 17% /home
# 输出物理卷信息报表
[root@u1abomwp01 scsi_host]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 VolGroup lvm2 a-- 99.51g 0
/dev/sdb vg01 lvm2 a-- 50.00g 0
/dev/sdc vg01 lvm2 a-- 20.00g 0
/dev/sdd lvm2 a-- 100.00g 100.00g
# 向卷组中添加物理卷
[root@u1abomwp01 scsi_host]# vgextend VolGroup /dev/sdd
Volume group "VolGroup" successfully extended
# 确定是否添加至物理卷
[root@u1abomwp01 scsi_host]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 VolGroup lvm2 a-- 99.51g 0
/dev/sdb vg01 lvm2 a-- 50.00g 0
/dev/sdc vg01 lvm2 a-- 20.00g 0
/dev/sdd VolGroup lvm2 a-- 100.00g 100.00g5.扩展逻辑卷(Logical Volume,LV)
[root@u1abomwp01 scsi_host]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
50G 12G 35G 26% /
tmpfs 16G 156K 16G 1% /dev/shm
/dev/sda1 485M 37M 423M 9% /boot
/dev/mapper/VolGroup-lv_home
42G 6.3G 33G 17% /home使用lvextend命令来扩展您的逻辑卷。可以选择按照需要指定增加的大小,或者使用百分比。
[root@u1abomwp01 scsi_host]# lvextend -L +50G /dev/VolGroup/lv_home
Extending logical volume lv_home to 91.68 GiB
Logical volume lv_home successfully resized或者使用百分比扩展
[root@u1abomwp01 scsi_host]# lvextend -l +100%FREE /dev/VolGroup/lv_home
Extending logical volume lv_home to 141.68 GiB
Logical volume lv_home successfully resized6.文件系统调整
# 观察文件系统
[root@u1abomwp01 scsi_host]# df -T
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/mapper/VolGroup-lv_root
ext4 51606140 12339344 36645356 26% /
tmpfs tmpfs 16433848 156 16433692 1% /dev/shm
/dev/sda1 ext4 495844 37874 432370 9% /boot
/dev/mapper/VolGroup-lv_home
ext4 43017424 6598624 34233584 17% /home
对于XFS文件系统
[root@u1aoappdq01 scsi_host]# xfs_growfs /dev/VolGroup/lv_home
meta-data=/dev/mapper/vg02-lvmysqldata isize=512 agcount=30, agsize=1245184 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0 spinodes=0
data = bsize=4096 blocks=36438016, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 36438016 to 49545216对于对于ext2/3/4文件系统
[root@u1abomwp01 scsi_host]# resize2fs /dev/VolGroup/lv_home
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/VolGroup/lv_home is mounted on /home; on-line resizing required
old desc_blocks = 3, new_desc_blocks = 9
Performing an on-line resize of /dev/VolGroup/lv_home to 37139456 (4k) blocks.
The filesystem on /dev/VolGroup/lv_home is now 37139456 blocks long.7.查看是否扩容成功
[root@u1abomwp01 scsi_host]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
50G 12G 35G 26% /
tmpfs 16G 156K 16G 1% /dev/shm
/dev/sda1 485M 37M 423M 9% /boot
/dev/mapper/VolGroup-lv_home
140G 6.4G 127G 5% /home
评论区