概念:
LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制。
PV:硬盘和分区都可以标记为PV,PV无法直接存储数据。
VG:卷组,可包含多个PV。
LV:逻辑卷,在VG之上划分多个LV,可以使用,LV大小不能超过VG大小。
PE:最小分配空间单位,默认4M,一个VG中最多可以有65536个PE,PE大小可以从1MB-1EB。
可以通过将新的PV加入VG,实现扩容。
LVM常用操作:
- 创建PV:
pvcreate /dev/sdb
pvcreate /dev/sdc
- 查看PV:
pvdisplay
- 创建vg:
名为vg0,pe=8M,使用sdb、sdc创建
vgcreate vg0 -s 8M /dev/sdb /dev/sdc
- 查看vg:
vgdisplay
- 划分LV:
名为vol0,大小为512M,使用vg0空间创建
lvcreate -n vol0 -L 512M vg0
-L 指定容量
-l 指定pe数量
- 查看LV:
lvdisplay
- 格式化:
ext4:mkfs.ext4 /dev/vg0/vol0
xfs:mkfs.xfs /dev/vg0/vol0
- 挂载:
mount /dev/vg0/vol0 /data
- 删除:
umount /data //解除挂载
lvremove /dev/vg0/vol0 //移除lv
vgremove vg0 //移除vg
pvremove /dev/sdb /dev/sdc //移除pv
实验1:扩展lv:
一. lv空间来自于vg,查看vg中是否有足够的空间
vgdisplay
二. 扩展lv
将vol0扩展至1500M
lvextend /dev/vg0/vol0 -L 1500M
三. 扩展文件系统
刷新文件系统,使文件系统感知空间变化
ext4:resize2fs /dev/vg0/vol0 ///dev/vg0/vol0为lv所在位置
xfs:xfs_growfs /data // /data为挂载的目录,可以通过df -Th命令查看
实验2:缩减lv:
*xfs不支持缩减,以下为ext文件系统操作方法。
一. 离线lv
umount /data
二. 文件系统检查
e2fsck -f /dev/vg0/vol0
三. 缩减文件系统至200M
resize2fs /dev/vg0/vol0 200M
四. 缩减lv
缩减至200M,将vol0
lvreduce -L 200M /dev/vg0/vol0
五. 挂载:
mount /dev/vg0/vol0 /data
实验3:扩展vg:
当所有vg中空间都被用完,还需要扩容lv时,需要先扩容vg容量。
一. 创建新的pv
pvcreate /dev/sdd
二. 将新的pv加入vg0
将sdd加入vg0
vgextend vg0 /dev/sdd
实验4:缩减vg
缩减vg需要将pv移除vg
一. 查看vg信息,确定pv中是否有数据
vgdisplay -v vg0
二. 如果pv中有数据,需要提前迁移
将数据从sdb复制至sdd
pvmove /dev/sdb /dev/sdd
三. 移除pv
将sdb1从vg0中移除
vgreduce vg0 /dev/sdb
四. 删除pv
将sdb的pv标签移除
pvremove /dev/sdb
五. 查看vg信息
vgdisplay -v vg0