前言注释:LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
lvm管理
1.lvm名词
lvm 逻辑卷,可以让设备自由伸缩的一个设备管理软件
pv 物理卷
vg 物理卷组
pe 物理拓展,lvm最小的存储单元
lvm 逻辑卷,时最终我们使用的可以伸缩的设备
2.lvm的制作
首先划分lvm所用到的设备,这些设备的功能id必须是linux LVM
1)lvm建立
pvcreate /dev/vdb1 ##把物理分区做成物理卷
pvs|pvdisplay ##查看物理卷
vgcreate vg0 /dev/vdb1 ##用制作好的/dev/vdb1这个物理卷制作一个物理卷组vg0
vgs|vgdisplay ##查看物理卷组
lvcreate -L 200M -n lv0 vg0 ##在vg0这个组中建立出lv0设备 -L 指定设备大小 -n 指定设备名字
lvs|lvdisplay ##对逻辑卷设备进行查看
格式化分区并挂载到/mnt
两个文件的软连接相同
3.lvm设备的扩大
针对xfs文件系统
xfs文件系统只能扩大不能缩减
创建pv卷2,并把容量添加到vg0里
1)lvm扩大
lvextend —L 500M /dev/vg0/lv0 ##扩大lvm设备到500M
xfs_growfs /dev/vg0/lv0 ##扩大xfs文件系统到设备大小
扩大lvm设备到300M
扩建xfs文件系统到设备大小
2)vg扩大
pvcreate /dev/vdb2 ##在pv中增加一块设备/dev/vdb2
vgextend vg0 /dev/vdb2 ##把新建立的/dev/vdb2添加到vg0中
针对ext文件系统
ext文件系统可以扩大也可以缩减
先卸载设备,然后更改文件系统为ext4,再进行挂载
1)lvm扩大
lvextend —L 2G /dev/vg0/lv0 ##扩大lvm设备到2G
扩大lvm设备到400M
resize2fs /dev/vg0/lv0 ##设定文件系统大小和设备同步
使文件系统大小和设备同步
2)vg扩大
pvcreate /dev/vdb3 ##在pv中增加一块设备/dev/vdb3
vgextend vg0 /dev/vdb3 ##把新建立的/dev/vdb2添加到vg0中
3)lvm缩减
umount /dev/vg0/lv0 ##卸载设备,因为文件系统缩减不支持在线操作e2fsck -f /dev/vg0/lv0 ##检测文件系统,确定文件系统中已有数据大小防止过度缩减
resize2fs /dev/vg0/lv0 1G ##把文件系统缩减到1G
lvreduce -L 1G /dev/vg0/lv0 ##设备缩减到1G
4)vg缩减
#在vg缩减时只能缩减没有被占用的设备
pvmove 设备1 设备2 ##把设备1上的所有数据移动到设备2上
vgreduce vg0 /dev/vdb1 ##把vg0中的/dev/vdb1删除
pvremove /dev/vdb1 ##把/dev/vdb1上的lvm管理信息删除
5)lvm丢失设备的删除
[[email protected] ~]# pvs
PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?
PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?
PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?
PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?
PV VG Fmt Attr PSize PFree
/dev/vdb1 vg0 lvm2 a-- 1020.00m 820.00m
/dev/vdb2 vg0 lvm2 a-- 1020.00m 1020.00m
unknown device vg0 lvm2 a-m 996.00m 996.00m ##设备丢失
[[email protected] ~]# vgreduce --removemissing vg0 ##删除vg0中丢失的设备
PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?
PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?
Wrote out consistent volume group vg0
[[email protected] ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdb1 vg0 lvm2 a-- 1020.00m 820.00m
/dev/vdb2 vg0 lvm2 a-- 1020.00m 1020.00m
6.lvm快照
lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0 ##给/dev/vg0/lv0建立快照,-L 指定快照大小,-n指定快照名字 -s指定快照模板设备
mount /dev/vg0/lv0-backup /userdate
当快照设备里的数据被更改,如果想还原,删除快照设备,在重新建立快照即可
创建1到100个文件,然后卸载/mnt,会发现/mnt中的文件消失不见,用快照命令生成lvm快照,再把快照挂载到/mnt
实验结果:所有文件重新出现在/mnt中
删除快照设备
7.lvm删除
lvremove---->vgremove----->pvremove