11.9lvm逻辑卷

  1.基本概念

     LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制,它由Heinz Mauelshagen在Linux 2.4内核上实现,目前最新版本为:稳定版1.0.5,开发版 1.1.0-rc2,以及LVM2开发版。Linux用户安装Linux操作系统时 遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当 一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。而遇到出现某个分区空间 耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。
    pv:物理卷,将磁盘的分区可以设定成物理卷,是vg的小单元

    vg:物理卷组,使用pv组成,是lvm的来源。

    pe:lvm设备的最小存储单元,lvm是pe整数倍。

    lvm:直接使用的设备,可以增大缩减并保持原有数据不变

    pv,vg,lvm的关系:pv相当于一小杯水果汁,vg一大盆水锅汁,我们从vg里面取果汁作为lvm。

2.lvm的建立

在这个过程中使用监控:

watch -n 1 'pvs;echo ====;vgs;echo ====;lvs;echo ====;df -h /mnt'

1)分区的建立,并设定分区标签为8e(LVM)

2)pv的创建

[root@server ~]# pvcreate /dev/vdb1
  Physical volume "/dev/vdb1" successfully created

3)vg的创建

[root@server ~]# vgcreate vg0 /dev/vdb1
  Volume group "vg0" successfully created

4)lvm的创建

lvcreate -L 20M -n lv0 vg0
WARNING: ext4 signature detected on /dev/vg0/lv0 at offset 1080. Wipe it? [y/n] y
  Wiping ext4 signature on /dev/vg0/lv0.
  Logical volume "lv0" created

5)铺设文件系统

mkfs.xfs /dev/vg0/lv0

6)测试:挂载使用

mount /dev/vg0/lv0 /mnt

3.lvm的拉伸

1)lvm的热拉伸

情况1:当vg中剩余容量足够时

lvextend -L 80M /dev/vg0/lv0    ##拉伸设备

xfs_growfs /dev/vg0/lv0            ##拉神文件系统

情况2:当vg中剩余容量不足时

再次建立分区并修改标签为8e

pvcreate /dev/vdb2                         ##建立新的pv
vgextend vg0 /dev/vdb2                  ##扩展vg0
lvextend  -L 200M /dev/vg0/lv0      ##拉神lv
xfs_growfs /dev/vg0/lv0                   ##扩展文件系统

情况3:针对ext文件系统的拉伸和缩减(xfs系统不能缩减)

umount /mnt/                        ##卸载
mkfs.ext4 /dev/vg0/lv0           ##修改文件系统为ext4
mount /dev/vg0/lv0 /mnt/      ##挂载

1.拉伸(热)

lvextend -L 250M /dev/vg0/lv0     ##lv扩展到250M
 resize2fs /dev/vg0/lv0                  ##文件系统扩展

2.缩减(冷)

umount /dev/vg0/lv0                              ##必须卸载才能缩减
e2fsck -f /dev/vg0/lv0                             ##检查
resize2fs /dev/vg0/lv0 100M                  ##缩小文件系统
lvreduce -L 100M /dev/vg0/lv0              ##缩小lv的大小,这里会提示减少空间可能会造成数据丢失

mount /dev/vg0/lv0 /mnt                        ##挂载

2)缩减vg

[root@server ~]# vgreduce vg0 /dev/vdb2
  Removed "/dev/vdb2" from volume group "vg0"

3).数据的迁移(移除含有数据的设备)

现在的目的是将含有数据的/dev/vdb1,除去

步骤1:pv数据的移动

pvmove /dev/vdb1 /dev/vdb2        

步骤二:设备的删除

vgreduce vg0 /dev/vdb1

pvremove /dev/vdb1

4.lvm快照

类似与系统快照,lvm也有快照,但是在lvm快照上传的东西的大小不能超过lvm快照的容量,否则直接会卸载。并且再不能挂载,除非删除,重新照快照

lvcreate -L 40M -n lv0-backup -s /dev/vg0/lv0
mount /dev/vg0/lv0-backup /mnt/

文件的大小显示的是lvm的容量

测试:往快照里面放超过快照容量的东西

dd if=/dev/zero of=/mnt/file bs=1M count=50

西东卸载

再次挂载会报错

5.lvm的卸载

从下往上逐次删除,

依次删除快照,lvm,vg,pv,删除磁盘。

猜你喜欢

转载自blog.csdn.net/qq_41627390/article/details/83930010