前言注释: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 ##查看物理卷

运维学习之lvm(逻辑卷管理)_Linuxvgcreate vg0 /dev/vdb1 ##用制作好的/dev/vdb1这个物理卷制作一个物理卷组vg0

vgs|vgdisplay ##查看物理卷组

运维学习之lvm(逻辑卷管理)_Linux_02lvcreate -L 200M -n lv0 vg0 ##在vg0这个组中建立出lv0设备 -L 指定设备大小 -n 指定设备名字

lvs|lvdisplay ##对逻辑卷设备进行查看

运维学习之lvm(逻辑卷管理)_Linux_03格式化分区并挂载到/mnt 

两个文件的软连接相同

运维学习之lvm(逻辑卷管理)_Linux_043.lvm设备的扩大

针对xfs文件系统

xfs文件系统只能扩大不能缩减

创建pv卷2,并把容量添加到vg0里

运维学习之lvm(逻辑卷管理)_Linux_05

1)lvm扩大

lvextend —L 500M /dev/vg0/lv0 ##扩大lvm设备到500M

xfs_growfs /dev/vg0/lv0 ##扩大xfs文件系统到设备大小

扩大lvm设备到300M

运维学习之lvm(逻辑卷管理)_Linux_06

扩建xfs文件系统到设备大小

运维学习之lvm(逻辑卷管理)_Linux_072)vg扩大

pvcreate /dev/vdb2 ##在pv中增加一块设备/dev/vdb2

vgextend vg0 /dev/vdb2 ##把新建立的/dev/vdb2添加到vg0中


针对ext文件系统

ext文件系统可以扩大也可以缩减

先卸载设备,然后更改文件系统为ext4,再进行挂载

运维学习之lvm(逻辑卷管理)_Linux_081)lvm扩大

lvextend —L 2G /dev/vg0/lv0 ##扩大lvm设备到2G

扩大lvm设备到400M

运维学习之lvm(逻辑卷管理)_Linux_09resize2fs /dev/vg0/lv0 ##设定文件系统大小和设备同步

使文件系统大小和设备同步

运维学习之lvm(逻辑卷管理)_Linux_102)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 ##检测文件系统,确定文件系统中已有数据大小防止过度缩减

运维学习之lvm(逻辑卷管理)_Linux_11resize2fs  /dev/vg0/lv0  1G ##把文件系统缩减到1G

lvreduce  -L 1G /dev/vg0/lv0 ##设备缩减到1G

运维学习之lvm(逻辑卷管理)_Linux_124)vg缩减

#在vg缩减时只能缩减没有被占用的设备

pvmove 设备1 设备2 ##把设备1上的所有数据移动到设备2上

运维学习之lvm(逻辑卷管理)_Linux_13vgreduce vg0 /dev/vdb1 ##把vg0中的/dev/vdb1删除

运维学习之lvm(逻辑卷管理)_Linux_14pvremove /dev/vdb1 ##把/dev/vdb1上的lvm管理信息删除

运维学习之lvm(逻辑卷管理)_Linux_155)lvm丢失设备的删除

[root@westos ~]# 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 ##设备丢失


[root@westos ~]# 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



[root@westos ~]# 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

运维学习之lvm(逻辑卷管理)_Linux_16

实验结果:所有文件重新出现在/mnt中

运维学习之lvm(逻辑卷管理)_Linux_17

删除快照设备

运维学习之lvm(逻辑卷管理)_Linux_18


7.lvm删除

lvremove---->vgremove----->pvremove

运维学习之lvm(逻辑卷管理)_Linux_19