LVM卷管理
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
LVM特点
可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。
基本的逻辑卷管理概念
PV : 物理卷
物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备。
VG : 卷组
卷组建立在物理卷之上,一个卷组中至少包括一个物理卷,在卷组建立之后可以动态的添加物理卷到卷组中。一个逻辑卷管理系统中可以只有一个卷组,也可以拥有多个卷组。
LV : 逻辑卷
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立之后可以动态的扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。
![](https://i-blog.csdnimg.cn/blog_migrate/48231feb7ef96b2c441c66e399f550b9.png)
PE :物理块
LVM 默认使用4MB的PE区块,而LVM的LV最多仅能含有65534个PE (lvm1 的格式),因此默认的LVM的LV最大容量为4M*65534/(1024M/G)=256G。PE是整个LVM 最小的储存区块。
也就是说,其实我们的资料都是由写入PE 来处理的。简单的说,这个PE 就有点像文件系统里面的block 大小。所以调整PE 会影响到LVM 的最大容量!不过,在CentOS6.x 以后,由于直接使用lvm2 的各项格式功能,因此这个限制已经不存在了。
LVM卷管理
磁盘准备
我们将模拟raid5、分区、物理硬盘三种类型设备创建VG,raid5 需要四块硬盘,分区和物理硬盘各一块硬盘,还有扩容时需要至少一块硬盘,所以在虚拟机里添加八块硬盘。
首先要安装LVM管理工具。
1,新建一个raid5设备,
2,新建一个分区
创建PV
pvcreate /dev/md5 /dev/sdf1 /dev/sdg
![](https://i-blog.csdnimg.cn/blog_migrate/40e1ccd174ec620d2bea17c054b55dbd.png)
查看PV
# pvdisplay
还可以使用命令pvs和pvscan查看简略信息。
创建VG
# vgcreate vg0 /dev/md5 /dev/sdf1 /dev/sdg
![](https://i-blog.csdnimg.cn/blog_migrate/57f4812dc04939b1278e732a1b76a1c9.png)
查看VG
![](https://i-blog.csdnimg.cn/blog_migrate/c82cc369fe3c9c671bc2b50c63a7b2a1.png)
同样可以使用命令vgs和vgscan查看。
创建LV (逻辑卷)
# lvcreate -L 1G -n lv1 vg0
![](https://i-blog.csdnimg.cn/blog_migrate/d0a0d138b311fa982bd820f1bd7dbb89.png)
-L 指定创建的LV 的大小
-l 指定创建的LV 的PE 数量
-n LV的名字
上面命令的意思是:从vg0 中分出1G的空间给lv1 使用
查看LV的信息
![](https://i-blog.csdnimg.cn/blog_migrate/cfcd536f38ebdf385b2e9fb1ca206191.png)
LV PathLV的路径,全名
LV NameLV的名字
VG Name所属的VG
LV SizeLV的大小
此时再来查看一下VG的大小
![](https://i-blog.csdnimg.cn/blog_migrate/b7d7a1d1096653b922414b6a30e79414.png)
减少了1G
格式化LV
然后再挂载使用
![](https://i-blog.csdnimg.cn/blog_migrate/a412cea906448cc34dd59d7997b0869c.png)
最后将挂载信息写入到/etc/fstab
![](https://i-blog.csdnimg.cn/blog_migrate/6fcadd5b8c14ac16ace05f1708b25572.png)
我们可以测试一下是否可用
![](https://i-blog.csdnimg.cn/blog_migrate/3ccb9adafdb6fae0151a0bcca0c36a18.png)
LVM的扩容操作
LVM最大的好处就是可以对磁盘进行动态管理,而且不会丢失现有的数据。假如有一天,lv1的使用量达到了80%,需要扩容,那我们该怎么做呢?因为vg0中还有很多剩余空间,所以我们可以从vg0中再分配点空间给lv1。
1,查看vg0的剩余容量
2,对lv1进行扩容
# lvextend -L +1G /dev/vg0/lv1 在原有的基础上增加了1G
![](https://i-blog.csdnimg.cn/blog_migrate/7f40449fb3f5a17e1a4e2a5acd9ca7dc.png)
此时用df -TH 查看实际的磁盘容量你会发现,实际容量并没有发生变化。这是因为我们的系统还不认识刚刚添加进来的磁盘的文件系统,所以还需要对文件系统进行扩容。
![](https://i-blog.csdnimg.cn/blog_migrate/fd20990436267cac8f069a0bb4462318.png)
此时
# resize2fs /dev/vg0/lv1
![](https://i-blog.csdnimg.cn/blog_migrate/0ba47dcf967b25c94dc72265f55ae112.png)
通过查看测试数据是否正常来判断是否在线动态扩容完成。
![](https://i-blog.csdnimg.cn/blog_migrate/e824f8c0d9a9d76ceaa62d1a4d5ae225.png)
VG的扩容
VG的扩容可以有两种方法。
第一种方法是通过增加PV来实现,操作如下:
A. 创建PV,使用/dev/sdh来创建一个PV。
B. 扩容VG
![](https://i-blog.csdnimg.cn/blog_migrate/88caf802cfb7b759818cb0b82aef38c0.png)
第二种方法是通过扩展RAID设备的容量来间接对VG进行扩容:
A.向RAID 中新加一块硬盘
![](https://i-blog.csdnimg.cn/blog_migrate/8555458ff3e2207eb91d664e07464f09.png)
B./dev/md5 的大小变化后,调整PV的大小
![](https://i-blog.csdnimg.cn/blog_migrate/1fd842a2c3e5c8c230e60ecc10059f8a.png)
LV的缩减
缩减操作需要离线处理
A.umount 文件系统
B. 缩减文件系统
C. 检查磁盘
D. 再次执行缩减操作
E. 缩减LV
F. 挂载查看
G. 查看测试数据
![](https://i-blog.csdnimg.cn/blog_migrate/76815377111359a219abb6e9aede4d69.png)
![](https://i-blog.csdnimg.cn/blog_migrate/0dc83808cd26e7fea9a9cd6659e9583e.png)
VG的缩减
A. umount文件系统 umount /mnt/lv1
B. 查看当前的PV详情 pvs
C. 将/dev/sdg从vg0 中移除 vgreduce vg0 /dev/sdg
D. 再次查看PV情况 pvs
E. 查看vg0 的情况 vgs
删除LVM
如果要彻底的来移除LVM的话,需要把创建的步骤反过来操作。
1,umount文件系统
2,移除LV
3,移除VG
4,移除PV
5,删除LVM
![](https://i-blog.csdnimg.cn/blog_migrate/0041b4e5349e7f416fd2e2f386432a71.png)
LVM快照
快照就是将当时的系统信息记录下来,就好像照相一样,未来若有任何资料变动了,则原始资料会被移动到快照区,没有被改动的区域则由快照区与档案系统共享。
建立LV
# lvcreate-L 100M -n lv1 vg0
# mkfs.ext4 /dev/vg0/lv1
# mount /dev/vg0/lv1 /mnt/lv1/
创建快照
# lvcreate-L 80M -s -n lv1snap /dev/vg0/lv1
说明:为/dev/vg0/lv1 创建一个大小为80M,名称为lv1snap 的快照。
![](https://i-blog.csdnimg.cn/blog_migrate/7a3720fb1ab0c35f38c9d967557f52f9.png)