一、简介
- LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
- LVM的工作原理其实很简单,它就是通过将底层的物理硬盘抽象的封装起来,然后以逻辑卷的方式呈现给上层应用。在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,从而对底层的物理硬盘进行读取,而在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。比如说我增加一个物理硬盘,这个时候上层的服务是感觉不到的,因为呈现给上层服务的是以逻辑卷的方式。
LVM最大的特点就是可以对磁盘进行动态管理。因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。如果我们新增加了硬盘,其也不会改变现有上层的逻辑卷。作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性。
二、基本的逻辑卷管理概念:
PV(Physical Volume)- 物理卷
- 物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备。
- VG(Volumne Group)- 卷组
- 卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
LV(Logical Volume)- 逻辑卷
准备好分区,不用格式化
- 准备工作就绪,下面我们使用三种设备/dev/sdb3、/dev/sdb5、/dev/sdc1 来完成LVM实验。
- 创建PV
- 查看pv
- 还可以使用命令pvs 和pvscan 查看简略信息。
- 创建vg
- 说明:vg0 是创建的VG设备的名称,可以随便取;后面接上述的三个设备,也就是把三个设备组合成一个vg0.
- 查看VG
- 说明:
- VG Name VG的名称
- VG Size VG的总大小
- PE Size PE的大小,默认为4MB
- Total PE PE的总数量,5114 x 4MB = 19.98GB
- Free PE / Size 剩余空间大小
- 同样可以使用命令vgs 和vgscan 查看。
- 创建LV
- 如果多个vg,指定某个lv使用vg的全部空间
- lvcreate -n lv-data -l +100%FREE vg-data
- 说明:
- -L 指定创建的LV 的大小
- -l 指定创建的LV 的PE 数量
- -n LV的名字
- 上面命令的意思是:从vg0 中分出3G的空间给lv1 使用
- 查看LV的信息
- 说明:
- LV Path LV的路径,全名
- LV Name LV的名字
- VG Name 所属的VG
- LV Size LV的大小
- 再来看VG 的信息
- VFree 从5.68g 减少到了2.68g,另外的3g 被分配到了lv1.
- 格式化LV
- centos6格式化为ext4,centos7格式化为xfs
- LVM最大的好处就是可以对磁盘进行动态管理,而且不会丢失现有的数据。
- 假如有一天,lv1的使用量达到了80%,需要扩容,那我们该怎么做呢?
- 因为vg0中还有很多剩余空间,所以我们可以从vg0中再分配点空间给lv1。
- 查看vg0 的剩余容量,还有2.68g 可用。
- 对lv1进行扩容。
- 说明:在lv1原有的基础上增加了2G.
- 查看现在vg0 的剩余容量,减少了2G.
- 再查看lv1的容量,从3G增加到了5G.
- 查看实际的磁盘容量。
- 发现实际容量并没有变化,因为我们的系统还不认识刚刚添加进来的磁盘的文件系统,所以还需要对文件系统进行扩容。
- 还有一种情况,就是假如我们的vg0 空间不够用了,怎么办?这时我们就需要对VG进行扩容。
- VG的扩容可以有两种方法,第一种方法是通过增加PV来实现,操作如下:
- 第二种方法是通过扩展RAID设备的容量来间接对VG进行扩容。这种方法在上一篇文章中有介绍,这里不再赘述,需要注意的地方是,/dev/md5 的大小变化后,需要调整PV的大小,操作如下:
- 缩减操作需要离线处理。
- umount 文件系统
- 缩减文件系统
- 提示需要先运行磁盘检查。
- 检查磁盘
- 再次执行缩减操作
- 缩减文件系统成功,下面缩减LV的大小。
- 缩减LV
- 文件系统 和LV 缩减的大小必须保持一致,这里的4G是缩减到的大小;如果使用的是”-4G”,则表示容量减少多少的意思。
- 挂载查看
LV 缩减成功。
- 查看当前的PV详情
- 将/dev/sdc1 从vg0 中移除
- 再次查看PV情况
- /dev/sdc1 已经不属于vg0了。
- 查看vg0 的情况
- vg0 的大小减少了500mb
- 挂载分区
-
八、删除LVM
- 如果要彻底的来移除LVM的话,需要把创建的步骤反过来操作。
- umount 文件系统
- 移除LV
lvremove /dev/vg0/lv1
- 移除VG
vgremove vg0
- 移除PV
- 来自 [https://www.cnblogs.com/mchina/p/linux-centos-logical-volume-manager-lvm.html](https://www.cnblogs.com/mchina/p/linux-centos-logical-volume-manager-lvm.html)