LVM的管理
我们先来介绍一下DM,以及逻辑卷的原理:
DM:Device Mapper 设备映射,用于提供逻辑设备的机制
1、将多个物理设备组合成一个逻辑设备
2、实现RAID,LVM2(逻辑卷2)的功能
3、LVM2功能实现的核心
4、能够实现动态扩展和缩小文件系统空间
5、支持镜像的功能
DM中将多个物理设备组织成逻辑设备的方式:
Linear(线性设备)、mirror(类似于镜像)、snapshot(快照)、multipath(多路径)
快照:访问同一个数据的另一条路径。实现数据备份
DM中多个物理磁盘组织成一个逻辑设备,逻辑设备上需要创建类似逻辑分区才能使用。
物理卷PV:Physical Volume (即多个物理设备)
卷组VG:Volume Group (逻辑设备,PV的组合)
逻辑卷:Logical Volume (可动态扩展的分区)
每一个逻辑卷都是一个独立的文件系统,它有两个边界:物理边界,逻辑边界
可对逻辑卷创建快照,逻辑卷和快照都存于VG中。
卷组是由一个个的PE组成,而PE过渡到逻辑卷时,被称为VE
PE:Physial Extend,物理盘区。物理卷只有加入卷组后才能成为PE
LE:Logical Extend,逻辑盘区
接下来说一下逻辑卷的管理:
建议将逻辑卷创建到raid上。(硬件raid)
pv:
pvcreate:创建pv。
-f:强制创建
例:# pvcreate /dev/sda{10,11}
pvscan | pvs:扫描当前系统上一共有多少个pv
pvdisplay:查看pv的详细信息,可指定一个pv
例:# pvdisplay /dev/sda10
pvmove:将存有数据的盘区里的数据移动到另一个盘区中
例:# pvmove /dev/sda10
pvremove:将一个盘区里的源数据给抹除掉
例:# pvremove /dev/sda10 (删除/dev/sda10盘区)
准备创建pv是需要先有几个磁盘,且将磁盘类型设定为8e,即LVM类型。
vg:
vgcreate:创建vg
-s #:指定PE大小,默认为4M
例:# vgcreate myvg /dev/sda{10,11}
vgremove:删除vg
例:# vgremove myvg
vgextend:扩展vg的大小,即添加一个PE
例:# vgextend myvg /dev/sda12
vgreduce:缩减vg的大小,即移除一个PE的过程
例:# vgreduce myvg /dev/sda10
vgs:查看当前系统上有多少个卷组
vgdisplay:查看vg的详细信息,可指定一个vg
lv:
lvcreate:创建lv
-n:指定名字
-L:指定大小
lvcreate -n LV_NAME -L #G VG_NAME
例:# lvcreat -L 50M -n testlv myvg
lvremove:移除lv
例:# lvremove /dev/myvg/testlv
lvs:查看当前系统上有多少个lv
vgdisplay:查看lv的详细信息,可指定一个lv
例:# vgdisplay /dev/myvg/testlv
扩展和缩减逻辑卷
前提:不影响逻辑卷中的数据
一、扩展逻辑卷
先扩展物理边界,再扩展逻辑边界
扩展逻辑卷的物理边界
lvextend
-L [+]# /path/to/lv
例:# lvextend -L 5G /dev/myvg/testlv
扩展逻辑边界
resize2fs
resize2fs /path/to/lv 5G
-p :扩展到最大
例: # resize2fs /dev/myvg/testlv 5G
二、缩减逻辑卷
注意:1、不能在线缩减,得先卸载;
2、确保缩减后的空间大小依然能存储原有的所有数据;
3、在缩减之前应该先强行检查文件,以确保文件系统处于一致性状态
其顺序:
df -lh (查看逻辑卷已用的空间)
umount (卸载)
mount(查看是否卸载成功)
e2fsck -f(强行检查文件系统)
resize2fs (缩减逻辑边界)
resize2fs /path/to/pv #G
例:# resize2fs /dev/myvg/testlv 3G
lvreduce (缩减物理边界)
lvreduce -L [-]# /path/to/lv
例: # lvreduce -L 3G /dev/myvg/testlv
重新挂载
三、快照卷
注意:
1、生命周期为整个数据访问时长;在这段时长内,数据的增长量不能超出快照卷大小
2、快照卷应该是只读的;
3、跟原卷在同一卷组内;
用法:
lvcreate
-s:快照卷
-p r|w:快照卷的权限
格式:
lvcreate -L # -n SLV_NAME -p r /path/to/lv
例:# lvcreate -L 50M -n testlv-snap -s -p r /dev/myvg/testlv