赞
踩
LVM(Logical Volume Manager)可以让分区变得弹性,可以随时随地的扩大和缩小分区大小,前提是该分区是LVM格式的。
lvm需要使用的软件包为lvm2,一般在CentOS发行版中都已经预安装了。
PV(Physical Volume)即物理卷
硬盘分区后(还未格式化为文件系统)使用pvcreate命令可以将分区创建为pv,要求分区的system ID为8e,即为LVM格式的系统标识符。
VG(Volume Group)即卷组
将多个PV组合起来,使用vgcreate命令创建成卷组,这样卷组包含了多个PV就比较大了,相当于重新整合了多个分区后得到的磁盘。虽然VG是整合多个PV的,但是创建VG时会将VG所有的空间根据指定的PE大小划分为多个PE,在LVM模式下的存储都以PE为单元,类似于文件系统的Block。
PE(Physical Extend)
PE是VG中的存储单元。实际存储的数据都是存储在这里面的。
LV(Logical Volume)
VG相当于整合过的硬盘,那么LV就相当于分区,只不过该分区是通过VG来划分的。VG中有很多PE单元,可以指定将多少个PE划分给一个LV,也可以直接指定大小(如多少兆)来划分。划分为LV之后就相当于划分了分区,只需再对LV进行格式化即可变成普通的文件系统。
通俗地讲,非LVM管理的分区步骤是将硬盘分区,然后将分区格式化为文件系统。而使用LVM,则是在硬盘分区为特定的LVM标识符的分区后将其转变为LVM可管理的PV,其实PV仍然类似于分区,然后将几个PV整合为类似于磁盘的VG,最后划分VG为LV,此时LV就成了LVM可管理的分区,只需再对其格式化即可成为文件系统。
LE(logical extent)
PE是物理存储单元,而LE则是逻辑存储单元,也即为lv中的逻辑存储单元,和pe的大小是一样的。从vg中划分lv,实际上是从vg中划分vg中的pe,只不过划分lv后它不再称为pe,而是成为le。
LVM之所以能够伸缩容量,其实现的方法就是将LV里空闲的PE移出,或向LV中添加空闲的PE。
LVM的写入机制
LV是从VG中划分出来的,LV中的PE很可能来自于多个PV。在向LV存储数据时,有多种存储机制,其中两种是:
尽管striped读写性能较好也不建议使用该模式,因为lvm的着重点在于弹性容量扩展而非性能,要实现性能应该使用RAID来实现,而且使用striped模式时要进行容量的扩展和收缩将比较麻烦。默认的是使用线性模式。
逻辑卷 | 含义 |
---|---|
pv | 物理卷,被处理过的物理分区 |
pe | 物理扩展,设定存储最小单元 |
vg | 物理卷组,捆绑pv到一个组中 |
lv | 逻辑卷,分配最终的使用设备 |
**注:lvm中的容量是pe的整数倍**
虚拟机node1下准备一个硬盘(mbr),大小随意,我之前是20G
分一个或两个lvm格式的分区,ID为8e
开一个终端监控lvm加盘过程,到此实验环境就有了,接下来理解下lvm的图解
建立物理分区并设定分区type为lvm(创建实验环境时已经完成)
命令与步骤:
pvcreate /dev/vdb2 创建pv
pvcreate /dev/vdb3 创建pv
gcreate vg0 -s 2M /dev/vdb2 创建vg -s代表设定pe大小位2M
lvcreate -L 100M -n lv0 vg0 创建lvm -L指定大小 -n指定名称
mkfs.xfs /dev/westosvg/westoslv 格式化
mount /dev/vg0/lv0 /wechatdata 挂载
打开另一个终端
当vg中的容量充足才能拉伸
-xfs文件系统格式使用下面命令
lvextend -L 200M /dev/vg0/lv0 拉伸设备
xfs_growfs /wechatdata 拉伸文件系统,rhel7中可以用设备或挂载点。
rhel8中只能用挂载点
-ext4格式文件系统
umount /wechatdata 格式化文件系统需要先卸载
mkfs.ext4 /dev/vg0/lv0 格式化成ext4格式
mount /dev/vg0/lv0 /wechatdata 挂载
lvextend -L 1024M /dev/vg0/lv0 拉伸文件设备
resize2fs /dev/vg0/lv0 扩展文件系统
xfs文件系统不支持容量缩减,所以想要缩减最开始做文件系统就不要做xfs,可以做成ext文件系统。
umount /westosdir 解除挂载
mkfs.ext4 /dev/vg0/lv0 格式化成ext4格式,是ext系统可以忽略。
e2fsck -f /dev/westosvg/westoslv 扫描一下文件系统
resize2fs /dev/westosvg/westoslv 800M 原来1700到800M,缩减文件系统
mount /dev/westosvg/westoslv /westosdir 挂载
lvreduce -L 800M /dev/westosvg/westoslv 缩减设备文件
pvmove /dev/vdb1 /dev/vdb2 移动文件内容
移动前:
移动中:
移动后:
lvcreate -L 20M -n westos-back -s /dev/westosvg/westoslv
L指定快照大小 n 指定快照名称 s指定照的对象
首先要保证所有设备都没有被挂载
lvremove /dev/westosvg/westoslv 删除lvm设备
vgremove westosvg 删除vg
pvremove /dev/vdb1 删除pv
fdisk /dev/vdb 删除硬盘LVM分区
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。