一.LVM原理:
1.问题:如果你的目录下文件的存储空间不足,如何做呢?首先将目录下的文件拷贝出来,加入新盘,然后利用磁盘的分割、格式化,扩容之后再将文件拷贝回来,扩容之后也有可能空间太大,浪费空间的情况,这样完成这个任务就比较麻烦了,如何灵活的解决这个问题呢,这就用到了下面的知识了。
2.解决方法:LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。
3.LVM的工作原理:
在传统的磁盘管理机制中,我们的上层应用是直接访问文件系统,,在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作,对磁盘进行动态管理。
PV(Physical Volume)-物理卷: 在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备。
VG(VolumneGroup)-卷组: 卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。
LV(Logical Volume)-逻辑卷: 逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。
PE(Physical Extent)-物理块: LVM 默认使用4MB的PE区块,而LVM的LV最多仅能含有65534个PE (lvm1 的格式),因此默认的LVM的LV最大容量为4M*65534/(1024M/G)=256G。PE是整个LVM 最小的储存区块。
二.LVM应用实验:
1. LV创建实验:
(1)磁盘准备:我们将模拟raid5、分区、物理硬盘三种类型设备创建VG,raid5 需要四块硬盘,分区和物理硬盘各一块硬盘,还有扩容时需要至少一块硬盘,所以在虚拟机里添加八块硬盘,每块5GB.
(2)工具准备:# rpm -qa | grep lvm (检查系统中是否安装了LVM管理工具)
如果未安装,则使用yum 方式安装:# yum install lvm*
(3)创建pv: pvcreate /dev/md5 /dev/sdf1 /dev/sdg(分别为自己准备的raid设备、磁盘分区、磁盘)
查看pv信息: pvdisplay、pvs、pvscan
(4)创建VG: # vgcreatevg0 /dev/md5 /dev/sdf1 /dev/sdg
vg0 是创建的VG设备的名称,可以随便取;后面接上述的三个设备,也就是把三个设备组合成一个vg0.
查看VG信息: vgs、vgscan
(5)创建LV: # lvcreate -L 5G -n lv1 vg0
-L 指定创建的LV 的大小
-l 指定创建的LV 的PE 数量
-n LV的名字上面命令的意思是:从vg0 中分出5G的空间给lv1 使用
查看LV的信息:lvdisplay
(6)格式化lv: # mkfs.ext4 /dev/vg0/lv1
(7)挂载lv: # mkdir /mnt/lv1(创建空的挂载文件)
# mount /dev/vg0/lv1 /mnt/lv1/ (将lv1挂载在创建的目录上)
# df–TH(查看一下挂载的情况)
(8)将文件信息写入配置文件:/etc/fstab(重启时也可以加载相关的配置)
2.文件完整验证实验:
(1)准备实验文件:在挂载的目录/mnt/lv1下创建一些文件
(2)lv扩容实验及验证:
查看vg0和lv1的容量变化(发生变化)
文件系统的扩容: #resize2fs /dev/vg0/lv1
# df–TH
查看一下测试文件
(3)VG的扩容:增加pv数量或者是增加raid的容量
第二种方法:
(3) lv缩减实验及验证:
umount /mnt/lv1(解除lv1的挂载,需要离线缩减)
resize2fs /dev/vg0/lv1 4G (调整文件系统大小)
ef2fsck -f /dev/vg0/lv1 (检查磁盘)
resize2fs /dev/vg0/lv1 4G(再次缩减)
lvreduce /dev/vg0/lv1 -L 4G (缩减LV)
挂载查看,查看数据。