LVM的简单介绍与使用
简介
LVM,逻辑盘卷管理(Logical Volume Manager),他是建立在硬盘与分区之上的一个逻 辑层,提高磁盘分区的灵活性。
概念
PE(Physical Extent)- 物理块
LVM 默认使用4MB的PE区块,而LVM的LV最多仅能含有65534个PE(lvm1 的格式),因此默认的LVM的LV最大容量为4M*65534/(1024M/G)=256G。PE是整个LVM 最小的储存区块,也就是说,其实我们的资料都是由写入PE来处理的。简单的说,这个PE就有点像文件系统里面的block大小。所以调整PE会影响到LVM的最大容量!不过,在CentOS 6.x以后,由于直接使用 lvm2的各项格式功能,因此这个限制已经不存在了。
PV(Physical Volume)- 物理卷
物理卷是逻辑卷管理中最底层的,他可以是实际的物理磁盘,也可以是物理分区,也可以是raid设备
VG(Volumne Group)- 卷组
卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。
LV(Logical Volume)- 逻辑卷
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组。
工作原理
通过封装底层的物理硬盘,以逻辑卷的方式呈现给上层应用。传统访问时直接访问文件系统,从而对底层是硬盘进行读取,在LVM中,我们访问底层的物理硬盘时是通过逻辑卷对硬盘进行操作。LVM的优点是可以实现对硬盘进行动态管理。它将一个或多个磁盘在逻辑上进行集合, 可以作为一个或多个硬盘进行使用。当硬盘不够时可以直接添加一块新硬盘进入这个集合达到动态管理的。
- 物理磁盘被格式化为PV,空间被划分为一个个的PE。
- 不同的PV加入到同一个VG中,不同PV的PE全部进入到了VG的PE池内
- LV基于PE创建,大小为PE的整数倍,组成LV的PE可能来自不同的物理磁盘 LV现在就直接可以格式化后挂载使用了 LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据
- LVM允许按用户组对存储卷进行管理,允许管理员用直观的名称代替物理磁盘名称用来标识。
使用
安装:
# yum install -y lvm2
创建pv
# pvcreate /dev/sdc
查看pv
# pvdisplay
# pvs
# pvscan
创建VG
# vgcreate ‐s 4M docker /dev/sdc
查看vg
# vgdisplay
# vgs
# vgscan
创建LV
# lvcreate -l 51199 -n docker docker // lvcreate ‐l PE的个数 -n lv名称 vg名称 查看vg # lvdisplay # lvs # lvscan
格式化LV与挂载
# mkfs.ext4 /dev/docker/docker //mkfs.ext4 LV_Name
# mount /dev/docker/docker /docker
扩容操作
-
创建pv
# pvcreate /dev/sdd
-
将pv添加到VG中。之后可以看见PE数量增加
# vgextend VG_Name /dev/sdd
-
扩容LV
# lvresize ‐l +10000 LV_Name 或者 # lvresize ‐L +20G LV_Name
-
检查并修复文件系统
# e2fsck ‐f LV_Name
-
将扩容后的LV完整地扩充到文件系统中
# resize2fs LV_Name //LV文件系统是ext4时 # xfs_growfs LV_Name //LV文件系统是xfs时