本节主要介绍关于lvm的建立、拉伸、缩小、删除、即快照的建立还有一些基本问题的解决方法
LVM
1.关于lvm的基本了解
PV(physical volume):物理卷在逻辑卷管理系统最底层,可为整个物理硬盘或实际物理硬盘上的分区。
VG(volume group):卷组建立在物理卷上,一卷组中至少要包括一物理卷,卷组建立后可动态的添加卷到卷组中,一个逻辑卷管理系统工程中可有多个卷组。
LV(logical volume):逻辑卷建立在卷组基础上,卷组中未分配空间可用于建立新的逻辑卷,逻辑卷建立后可以动态扩展和缩小空间。
PE(physical extent):物理区域是物理卷中可用于分配的最小存储单元,物理区域大小在建立卷组时指定,一旦确定不能更改,同一卷组所有物理卷的物理区域大小需一致,新的pv加入到vg后,pe的大小自动更改为vg中定义的pe大小。
LE(logical extent):逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。
卷组描述区域:卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中逻辑卷、逻辑卷中物理区域的分配等所有信息,它是在使用pvcreate建立物理卷时建立的。
2. lvm建立
>>划分物理分区,并修改分区标签为1vm
8e
>>pvcreate /dev/vdb1 ##创建物理卷
>>vgcreate vg0 /dev/vdb1 ##创建物理卷组
>>lvcreate -L 100M -n lv0 vg0 ##创建逻辑卷
>>mkfs.xfs /dev/vg0/lv0 ##格式化设备
>>mount /dev/vg0/lv0 /westos ##设备挂载投入使用
#监控命令#
watch -n 1 ‘pvs;echo =======;vgs;echo========;lvs;echo========;df -h /westos'
3. lvm拉伸
##在xfs文件系统下##
1)当vg中剩余容量充足时,
>>lvextend -L 400M /dev/vg0/lv0 ##拉伸逻辑卷容量>>xfs_growfs /dev/vg0/lv0
2)当vg中的容量不足时
如下情况:
[root@localhost westos]# lvextend -L 700 /dev/vg0/lv0
Extending logical volume lv0 to 700.00 MiB
Insufficient free space: 51 extents needed, but only 0 available
>>pvcreate /dev/vdb2 ##创建新的物理卷>>vgextend vg0 /dev/vdb2 ##扩大物理卷组
>>lvextend -L 700M /dev/vg0/lv0 ##扩大逻辑卷容量
>>xfs_growfs /dev/vg0/lv0 ##拉伸设备文件容量
4. lvm缩减
##在ext文件系统下##
*更换文件系统为ext4
>>umount /westos>>mkfs.ext4 /dev/vg0/lv0
*拉伸
>>lvextend -L 800M /dev/vg0/lv0>>mount /westos
>>resize2fs /dev/vg0/lv0 ##更改文件设备容量(支持挂载同时热更改)
*缩减
1)对设备>>umount /westos
>>e2fsck -f /dev/vg0/lv0 #确定已有设备文件的大小
>>resize2fs /dev/vg0/lv0 200M
>>mount /dev/vg0/lv0 /westos
>>lvreduce -L 200 /dev/vg0/lv0
不支持在线操作,必须先取消挂载
2)对卷组>>pvmove /dev/vdb1 /dev/vdb2 #当我要移除的分区存在数据,那么需要把数据迁移到其他pv中
>>vgreduce vg0 /dev/vdb1
>>pvremove /dev/vdb1
5.lvm的快照
快照作用:保护原始数据不被破坏
>>lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0
实操:
1)在/westos下建立文件
注:此时/westos下挂载的是设备/dev/vg0/lv0touch /westos/file{1..4}
ls /westos
2)取消/westos挂载
umount /westos3)新建快照设备删除/westos下文件
lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0##同时亦快照了文件系统,故不用对快照的逻辑卷格式化就可以进行挂载mount /dev/vg0/lv0backup /westos
ls /westos
rm -rf file*
4)取消快照设备挂载
umount /westos5)移除快照设备
lvremove /dev/vg0/lv0backup
6)新建快照设备lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0
mount /dev/vg0/lv0backup /westos7)查看/westos下文件
ls /westos6. lvm的删除
lvremove /dev/vg0/lv0vgremove vg0
pvremove /dev/vdb2
fdisk /dev/vdb
#当lvm的分区被误删除时#
当出现以下错误时:
1)
删除分区 /dev/vdb1 后,同步结果如下:
[root@server ~]# partprobe
Error: Partition(s) 1 on /dev/vdb have been written, but we have been unable to inform the kernel of the change, probably because it/they are in use. As a result, the old partition(s) will remain in use. You should reboot now before making further changes.
[root@server ~]# fdisk -l
Device Boot Start End Blocks Id System
/dev/vdb2 1026048 2050047 512000 8e Linux LVM
[root@server ~]# blkid
/dev/vda1: UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" TYPE="xfs"
/dev/vdb1: UUID="1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH" TYPE="LVM2_member"
/dev/vdb2: UUID="8XOl5c-DuVJ-SCzS-NSND-Zf6h-Op0V-CIKcB7" TYPE="LVM2_member"
[root@server ~]# pvremove /dev/vdb1
PV /dev/vdb1 belongs to Volume Group vg0 so please use vgreduce first.
(If you are certain you need pvremove, then confirm by using --force twice.)
说明分区 /dev/vdb1 正在被使用时,被删除了。
解决办法:
[root@server ~]# pvmove /dev/vdb1 /dev/vdb2
/dev/vdb1: Moved: 6.0%
/dev/vdb1: Moved: 100.0%
2)
[root@server ~]# pvs
PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?
PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?
PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?
PV VG Fmt Attr PSize PFree
/dev/vdb2 vg0 lvm2 a-- 496.00m 296.00m
unknown device vg0 lvm2 a-m 496.00m 496.00m
[root@server ~]# vgs
PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?
PV 1vNDy0-kQyO-GMPX-OaQv-R5Ip-YPaG-kxdtUH not recognised. Is the device missing?
VG #PV #LV #SN Attr VSize VFree
vg0 2 1 0 wz-pn- 992.00m 792.00m
[root@server ~]# partprobe
解决办法:
[root@server ~]# vgreduce vg0 --removemissing