lvm磁盘管理(新建,扩充,缩减,快照)

来源:互联网 发布:梦三国2mac版本 编辑:程序博客网 时间:2024/06/08 15:35

前言:
1.出现LVM的原因和解决办法

Linux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间。普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻辑分区存放不下某个文件时,这个文件因为受上层文件系统的限制,也不能跨越多个分区来存放,所以也不能同时放到别的磁盘上。
而遇到出现某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具,但这只是暂时解决办法,没有从根本上解决问题。随着Linux的逻辑卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下可以方便地调整各个分区大小。

2.LVM的简介

LVM是逻辑盘卷管理(LogicalVolumeManager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
这里写图片描述
3.LVM的基本术语

物理存储介质(PhysicalStorageMedia)
指系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元。
*物理卷(Physical Volume,PV)
指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
*卷组(Volume Group,VG)
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。可以在卷组上创建一个或多个LV(逻辑卷)。
*逻辑卷(Logical Volume,LV)
类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。
*物理块(Physical Extent,PE)
每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。
*逻辑块(Logical Extent,LE)
逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
PV,VG,LV之间的关系如图:
这里写图片描述
这里写图片描述
摘自:http://blog.csdn.net/Ningdaxing1994/article/details/70850386

pvs|pvdisplayvgs|vgdisplaylvs|lvdisplay

1 lvm的建立

* 划分物理分区,并修改分区标签为lvm,id为8e* pvcreate  /dev/vdb1               #创建物理卷* vgcreate  vg0 /dev/vdb1           #创建物理卷组* lvcreate  -L 100M -n lv0 vg0      #创建逻辑卷* mkfs.xfs  /dev/westos/lv0         #格式化设备* mount /dev/westos/lv0  /mnt/      #设备挂载投入使用

监控命令:

watch -n 1 'echo "=== pvinfo ===";pvs;echo "=== vginfo ===";vgs;echo === lvinfo ===;lvs'

首先我们应该先划分出来一个分区,然后把它的标签改为lvm,id是8e,之后使用pvcreate,vgcreate,lvcerate命令去分别建立物理卷,物理卷组和逻辑卷。逻辑卷建立好之后就可以去格式化挂载使用了。
这里写图片描述
这个是我们监控信息的显示,可以清楚的看到我们已经建立出来的物理卷,物理卷组和逻辑卷的信息。
这里写图片描述

2 lvm的扩充

2.1 在xfs文件系统中

当vg中剩余容量充足的时候* lvextend -L 400M /dev/vg0/lv0* xfs_growfs /dev/vg0/lv0

既然是扩展的话,那么记得一定要比以前的大,扩展完逻辑卷后,还应该把文件系统铺平,让它去充满整个逻辑卷。
这里写图片描述

当vg中剩余容量不足的时候* 新建分区* pvcreate /dev/vdb2* vgextend vg0 /dev/vdb2* lvextend -L 700M /dev/vg0/lv0* xfs_growfs /dev/vg0/lv0

新建个分区,修改标签,然后将它创建成一个物理卷,将这个物理卷加入到刚才创建的物理卷组中,物理卷组的容量就变大了。因为我们逻辑卷是从物理卷组中分配出来的,所以当物理卷组的容量变大后,逻辑卷可以拿的也就多了。然后我们就可以去增加逻辑卷的大小了,完成以后记得要铺平文件系统呦
这里写图片描述

这里写图片描述

2.2 在ext文件系统中:

umount /mnt/mkfs.ext4 /dev/vg0/lv0mount /dev/vg0/lv0 /mnt

当我们想要直接去重新格式化文件系统的时候会报错,系统告诉我们这个设备正在挂载,不能格式化文件系统,此时我们应该先将设备卸载下来,然后再去格式化就不会再报错了。做完之后不要忘记将它重新挂载使用。
这里写图片描述
这里写图片描述
扩展:

* lvextend -L  800M /dev/vg0/lv0* resize2fs /dev/vg0/lv0

使用lvcreate命令对设备进行扩展,然后再铺平文件系统,这里步骤和xfs文件系统一样,区别就是两个文件系统铺平文件系统的命令是不一样的,这里要加以区别记忆。
这里写图片描述

缩减:

对设备:* umount /mnt* e2fsck -f /dev/vg0/lv0            #扫描设备* resize2fs /dev/vg0/lv0 200M       #文件系统缩小到200M* mount /dev/vg0/lv0 /mnt           #挂载设备* lvreduce -L 200M /dev/vg0/lv0     #逻辑卷缩减到200M

对设备进行更改的时候,我们应该先将它将它卸载下来。之后我们使用命令对设备进行扫描,看看它有多少资源被占用,以确保我们缩小逻辑卷不会影响到我们的数据。接下来就是去缩小文件系统,挂载设备,然后缩小逻辑卷。
扩充的时候先扩充逻辑卷,然后再铺平文件系统,但是在缩小的时候,我们应该先缩小文件系统,然后才能去缩小逻辑卷。
就好比是上菜的时候,你应该是先找到盘子,然后去盛菜,但是当你想要换个小点的盘子的时候,你就应该先看菜剩的多少,再去决定换哪个大小的盘子。
我们可以根据我们的监控信息来查看我们所做的行为有没有被系统承认接受。
这里写图片描述

这里写图片描述

对卷组:* pvmove /dev/vdb1 /dev/vdb2 #当我要移除的分区存在数据,那么需要把数据迁移到其他pv中* vgreduce vg0 /dev/vdb1* pvremove /dev/vdb1

当我们移动苏剧的时候要清楚你的数据是否能够完全移动到另外一个分区上去,在移动的过程中需要一点时间,移动完成后,就可以把你想要移除的物理卷从该卷组中删除,然后把它再从物理卷中删除,它就变成了一个分区。
这里写图片描述

这里写图片描述

partprobe:同步分区表

3 lvm的快照

* lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0     #快照的建立* lvreduce /dev/vg0/lv0backup      #快照的删除,删除前要先卸载快照
[root@server ~]# touch /westos/file{1..10}[root@server ~]# lvcreate -L 100M -n lv0backup -s /dev/vg0/lv0[root@server ~]# mount /dev/vg0/lv0backup /westos/[root@server ~]# rm -rf /westos/*[root@server ~]# umount /westos/[root@server ~]# lvremove /dev/vg0/lv0backup 

这里我们现在我们设备挂载处建立三个文件,后面我们所建立的快照中也应该会有这三个文件,以此来判断快照成功与否。快照一经创建,就可以直接诶挂载使用,我们可以看到,快照中的文件和我们之前建立的文件是一样的。
这里写图片描述

当我们一不小心删除了快照中的东西的时候,我们就可以卸载删除快照,然后按照母本重新创建出一个新的快照,里面的东西还是存在的。

这里写图片描述

4 lvm的删除

* lvremove /dev/vg0/lv0* vgremove vg0* pvremove /dev/vdb2* fdisk /dev/vdb

刚开始我们去移除逻辑卷的时候,提示逻辑卷不能删除。因为我们上面建立的快照在使用我们的这个逻辑卷。
这里写图片描述

那么我们就先要删除这个逻辑卷的快照,首先应该卸载这个快照,然后再去删除快照。删除完成之后,我们就可以去移除逻辑卷了。
移除逻辑卷的步骤为,先卸载逻辑卷,再去移除;然后删除物理卷组,删除物理卷组的时候要注意看这个物理卷组下面还有没有逻辑卷,没有的话就可以删除,有的话就先删除干净逻辑卷;再然后就是删除物理卷了。删除完后它就变成了一个逻辑卷分区。
我们接下来就可以使用fdisk命令去删除这个分区。
这里写图片描述

5 当lvm的分区被误删除

这里写图片描述
解决方法:

vgreduce vg0 --removemissing

这里写图片描述

阅读全文
0 0
原创粉丝点击