1.LVM概念
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。它由ibm公司提出,目的是:在原始设备不变的情况下,容量可以拉伸或者缩减。
有关LVM的几个名词:物理分区;物理卷(pv);物理扩展(pe);卷组(vg);逻辑卷(lv)
形象理解有关这几个名词,可以从橘子炸成果汁的过程来说明。
物理分区:橘子;
物理卷(pv):每个橘子炸成的汁;
物理扩展(pe):组成pv的元素;
卷组(vg):将每个橘子炸成的汁合在一个大杯子里;
逻辑卷(lv):从大杯子里倒出来的果汁
2.LVM的建立
步骤:
1)监控窗口
watch -n 1 “pvs;echo ========;vgs;echo ==========;lvs;df -h /weixindata”
2)创建物理分区,修改id为8e
fdisk /dev/vdb----->n +500M------>t 8e----->wq
3)创建物理卷
pvcreate /dev/vdb1
4)创建物理卷组vg0
vgcreate vg0 /dev/vdb1
5)创建逻辑卷lv0
lvcreate -L 100M -n lv0 vg0
6)格式化
mkfs.xfs /dev/vg0/lv0
7)挂载
mount /dev/vg0/lv0 /weixindata
3.LVM设备的拉伸和缩减
(1)xfs格式的拉伸
逻辑卷的拉伸
lvextend -L 400M /dev/vg0/lv0
文件系统的拉伸
xfs_growfs /dev/vg0/lv0
应用:当想要拉伸的大小在vg中不够时:
步骤:(1)添加分区,(2)改变id,(3)同步分区表,(4)创建pv,(5)扩展vg,(6)拉伸lv,(7)拉伸文件系统
(1)fdisk /dev/vdb -----> n +500M
(2)t 8e
(3)partprobe
(4)pvcreate /dev/vdb2
(5)vgextend vg0 /dev/vdb2
(6)lvextend -L 800M /dev/vg0/lv0
(7)xfs_growfs /dev/vg0/lv0
注意:xfs文件系统是不支持缩减的。
(2)ext文件系统的拉伸和缩减
umount /weixindata #卸载设备
mkfs.ext4 /dev/vg0/lv0 #格式化为ext4文件系统
注意:缩减不支持在线缩减,必须卸载之后再缩减。
a . 拉伸
逻辑卷的拉伸
lvextend -L 900M /dev/vg0/lv0
文件系统的拉伸
resize2fs /dev/vg0/lv0
b. 缩减
#####扫描文件系统进行校验
e2fsck -f /dev/vg0/lv0
#####缩减文件系统到300M
resize2fs /dev/vg0/lv0
######缩减逻辑卷
lvreduce -L 300M /dev/vg0/lv0
(3)物理卷的移除
当vdb2完全闲置的时候可以直接移除:
vgreduce vg0 /dev/vdb2
当vdb1上有数据时,还想要移除vdb1:
####将vdb1上的数据移除到vdb2上面
pvmove /dev/vdb1 /dev/vdb2
####从vg0中移除vdb1
vgreduce vg0 /dev/vdb1
####删除vdb1设备
pvremove /dev/vdb1
4.LVM快照
创建LVM快照l名称为v0backup,大小为20M
lvcreate -L 20M -n lv0backup -s /dev/vg0/lv0
当挂载快照到目录时:读取的是母盘,写入的时候是往快照里面写,如果写入的大小大于20M,快照会损坏。
快照上的数据是可以恢复的。
测试快照的生命周期:
5.LVM设备的删除
####逻辑卷的删除
lvremove /dev/vg0/lv0
#####卷组的删除
vgremove vg0
#####物理卷的删除
pvremove /dev/vdb2
注意:(1)删除设备之前因该先取消挂载;
(2)当设备被误删除以后(比如先在fdisk /dev/vdb中删除vdb1),可以使用下面命令来删除错误的设备。
vgreduce --removemissing vg0
设备被误删后发生的错误信息,在监控窗口中,可以看到:
修复: