逻辑卷管理(Logical Volume Manager)
简介:lvm可以弹性调节filesystem容量;lvm可以整合多个实体partion在一起,使得多个partion看起来像一个磁盘。
LVM基本概念
PV:物理卷 PE:实体范围区块 VG:卷组 LV:逻辑卷
数据写入磁盘时有两种方式:
线性模式(linear):假如将/dev/vda1, /dev/vdb1这两个partition 加入到VG当中,并且整个VG只有一个LV时,那么所谓的线性模式就是:当/dev/vda1 的容量用完之后,/dev/vdb1 的硬盘才会被使用到。推荐,且是LVM默认模式
交错模式(triped):将一份数据分为两份,分别写入/dev/sda1和/dev/vdb1。类似RAID0
LVM工作过程
1-pv阶段
pvcreate:将实体partition建立为PV 命令:pvcreate 实体分区名
pvscan:搜寻目前系统内任何具有PV的磁盘
pvdisplay:显示出目前系统上的PV状态
pvremove:将PV属性移除,使该partition不再具有PV属性
2-vg阶段
vgcreate:建立vg卷组 命令:vgcreate 选项 vg卷组名 pv名
选项:-s : 后面接PE大小,单位为m,g,t(大小写都可)
vgscan:搜寻系统上是否有vg存在
vgdisplay:显示目前系统上面的vg
vgextend:在vg内增加额外的pv 命令:vgextend vg卷组名 pv名
vgreduce:从vg内移除pv
vgchange:设定vg是否启动
vgremove:删除一个vg
后又添加一块硬盘 /dev/sdc ,经分区、创建pv后需将 /dev/sdc1 添加至 vgsdb1 卷组里
3-lv阶段
lvcreate:建立lv
lvcreate [-L N[mgt]] [-n lv名] vg名
-L:后接容量,容量单位可以是M,G,T等,最小单位为PE。
-l:后接PE个数,需要自行计算。
-n:后面接新创建出来的lv的名称
lvscan:查询系统上的lv
lvdisplay:显示系统上的lv状态
lvextend:增加lv容量
lvreduce:较少lv容量
lvremove:删除一个lv
lvresize:对lv进行容量大小调整
4-文件系统阶段
格式化
挂载
后需要增加 /dev/vgsdb1/lvsdb1 容量,目前 vgsdb1 还有容量,可进行操作
1、lvextend -L +具体单位容量 目标lv
lvsdb1 增加100M容量
将 vg卷组中剩余所有容量分配给 /dev/vgsdb1/lvsdb1
调整此lv文件系统容量 xfs_grows
最后再修改下 /etc/fstab 文件,使得以上分区设置永久生效
关闭并移除LVM流程
1、卸载系统上的lvm文件系统,包含快照与所有lv
2、使用 lvremove 移除lv
3、使用 vgchange -a n vg名字 使该vg卷组不具有 active 标志
4、使用 vgremove 移除 vg
5、使用 pvremove 移除 pv
6、使用fdisk将分区id修改回去
lvm相关指令汇总
EXT家族支持增加、减少文件系统容量;XFS仅支持增加文件系统容量。
LVM thin Volume 动态自动调整磁盘使用率
LVM的LV磁盘快照
快照就是将当时的系统信息记录下来,将来若有任何数据变动,则原始数据会被移动至快照区,没有变动的区域则由快照去和文件系统共享;
在数据变化前,会看到快照区内容和文件系统是一模一样的,当数据变化时,则变动前系统会将该区域的数据移动至快照区
图解:
vg中需要预留存放快照的空间,不能被占满。
快照区与被快照的lv必须在同一个vg卷组中。
系统新增了一个3G的磁盘,进行操作后如下
利用同一个卷组 vgsdb1 空闲的3G空间为 lvsdb1 建立快照区
-s :即建立快照的意思
因为xfs系统不允许相同uuid的文件系统挂载,所以加入参数 nouuid ,让系统忽略相同uuid的问题。
利用快照区复原系统
前提:要复原的数据量不能高于快照区能负载的实际容量,不然快照功能失效。
1、在 /lvmceshi 加个100M文件作为和快照 /snap1 的对比
2、利用 xfsdump 将快照区备份
3、卸载快照,卸载 /lvmsdb1 格式化清空 /lvsdb1 ,再恢复最初的数据(一次快照都没做的时候)