LVM使用指南
磁盘的使用是以volume的形式存在,物理卷或者逻辑卷 (在lvm中被成为逻辑卷LV)
lvm中的概念
PV(Physical Volume)- 物理卷
物理卷在逻辑卷管理中处于最底层,它可以是实际块存储上的分区,也可以是整个块存储。
VG(Volumne Group)- 卷组
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。
LV(Logical Volume)- 逻辑卷
逻辑卷建立在卷组之上,逻辑卷建立后可以动态地扩展和缩小空间。
lvm的原理
1.在物理磁盘上建立分区PV(类型8e),
2.使用1个或者多个PV组成一个卷组VG, VG是可以扩展其他的PV进来
3.在VG上建立逻辑卷 (LV)
lvm对象命名
PV Name /dev/nvme0n1p2
VG Name cl_fedora
LV Path /dev/cl_fedora/root
物理卷pv管理
# 显示当前的pv列表
pvscan # 扫描并列出pv
pvs # 列出pv
pvdisplay # 输出更友好. pvname 所属vg 所剩空间等信息
# pvcreate /dev/sdb1 /dev/sdb2 #将分区设置为pv
pvcreate可以批量操作多个分区,
pvremove /dev/sda1 #移除lvm的label,是pvcreate的反操作
需要被删除的物理卷必须是已经不属于任何卷组的,否则删除会失败
卷组VG管理
vgdisplay #输出详细
vgdisplay -v
vgscan # 用于查看当前系统上有哪些vg和类型
===>
Reading volume groups from cache.
Found volume group "cl_fedora" using metadata type lvm2 # name:cl_fedora , type: lvm2
# vg创建
vgcreate vg01 /dev/sdb1 /dev/sdb2 # vg name : vg01
vgcreate可以一次添加1个或多个pv进来
vgextend vg_data /dev/sda2 # 扩展vg,添加额外的pv # vg已存在的情况
vgrename 修改vg的名字
vgremove 是vgcreate的反操作,删除vg
vgreduce vg_data /dev/sda2 #移除vg中的一个或多个pv
逻辑卷LV管理
lvdisplay -v
# 创建logical volumn
lvcreate -L <size> -n <lv_name> <vg_name>
lvcreate -L 100M -n lvm01 vg01 (从vg01创建100M的名为lvm01的lvm)
lvremove /dev/vg_data/lv_data2 # lvcreate的反操作,移除lv
lvrename 修改lv名字
lvresize -L 1500m /dev/vg_data/lv_data1 # 更改逻辑卷的大小,适用于新建lv后调整大小(应该会清理掉已存在的数据,未测试)
扩展lvm的容量
lvextend -L <size> <lv_path> --resizefs # 扩展多少空间,无损
lvextend <lv_path> <pv_path> --resizefs
#lvextend resizefs开关: lvextend后,df看到的空间并不会更新,resizefs会刷新卷大小的显示
lvextend -L +100M /dev/vg01/lvm01
lvextend /dev/cl_fedora/root /dev/nvme0n1p4 #将整个pv扩展进来
# lv激活
lvscan后若显示lv为inactive,则用lvchange -ay vg_name
去激活:vgchange -an vg_name
# 扩展空间后,刷新空间大小使立即生效
resize2fs /dev/vg01/lvm01 # 应该等效于 lvextend --resizefs
xfs_growfs /dev/centos/root # 适用于xfs
# 无需umount分区, 可以用于扩展/分区
lv扩展步骤
1. 准备一个新的分区(8e), 可使用fdisk / gdisk等工具
2. pvcreate /dev/sdb1 /dev/sdb2 # 测试发现,gdisk分区后需要重启生效,否则pvcreate找不到分区
3. 查看当前分区所在的vg vgdisplay
4. vgextend vg_data /dev/sda2 加入新的pv到vg中
5. lvextend -L +100M /dev/vg01/lvm01 --resizefs
lvextend /dev/cl_fedora/root /dev/nvme0n1p4 --resizefs #将整个pv扩展进来
6. resize2fs /dev/vg01/lvm01 # lvextend带上--resizefs后,可以跳过这个步骤
7. df -h 确认是否成功
新建lv后的操作
# 只适用于新建的pv, lv扩展操作无需下面处理
# 格式化lv
mkfs -t ext3 /dev/vg01/lvm01
#挂载lv
mount -t ext3 /dev/vg01/lvm01 /mnt
网友评论