LVM:
一、
Logical Volum Manager :逻辑卷管理器LVM可以整合多个物理分区在一起,让这些分区看起来是一个磁盘一样,还可以在将来其他的物理
分区或将其从这个LVM管理的磁盘当中删除!
物理卷(PV)id=8e ---> 卷组(Vg) --> 逻辑卷(Lv) 三层 二、特点:一个Vg至少包含一个物理卷。
逻辑卷可用
卷组大小由物理卷改变
逻辑卷大小改变,边界改变,不影响里面数据
逻辑卷可以缩减,边界缩小,不影响里面数据(有一定风险)
快照卷
逻辑卷有快照功能,保存原卷数据某一时刻的状态
访问快照是快照那一时刻数据的状态
快照非常小。
快照刚刚创建时几乎是空的。是访问逻辑卷的一条路径。
在线备份
在操作数据时备份数据不完整,损坏的。 可以使用快照。
PE: 物理盘区。--- check
三、LVM组成:
PV:物理卷,实际分区需要调整系统标示符(ID)成为8e(LVM的识别符),调整system
ID可以利用fdisk
VG:卷用户组,所谓的LVM大磁盘就是将许多PV整个成这个VG,VG就是LVM组合起来的大磁盘
LV:最终的VG还会被切成LV,Lv就是最后可以被格式化使用的类似分区!由于PE的大小是在格式化
分区是指定的固定大小,所以呢Lv的大小也是有PE的总数所决定的!
PE:物理扩展块,LVM默认使用的4M的PE块,LVM最多能使用65534个PE,,是lVM中最小的存储块,
PE有点像是文件系统的block大小,调整PE影响VG的最大容量!
四、实现流程:fdisk(system ID改为8e创建逻辑卷分区)-->
pvcreat,pvscan(创建与查看物理卷)-->vgcreat,vgdisplay(以pv卷创建VG卷) -->
lvcreat,lvdisplay(从VG中切割出LV)--> mkfs,mount(格式化后挂载使用)
逻辑卷支持快照(snapshot),快照就是将当时的系统信息记录下来,就好像照相功能一般,将来
若有任何数据改动了,则原始数据会被移动到快照区,没有被改动的区域则由快照区与文件系统
共享,快照卷的大小取决于,数据改变大小和数据改变频度!
五、命令参数:
PV参数:
pvscan(查询当前系统上任何具有PV的磁盘)
pvcreate(将物理分区新建为PV)
前期准备是:fdisk /dev/sdb n p 1 t 8e w
..#n为新建分区,p为主分区,1为sdb1卷标,t更改分区属性,8e为LVM默认的标识符,w保 存当前的配置信息 pvcreat /dev/sdb{1,2,3} pvscan pvdisplay pvdisplay(显示出目前系统上面的PV状态)pvremove(将PV属性删除,让该分区不具有PV属性)
VG参数:
vgcreate(新建VG的命令)
-s 指定PE大小,单位可以是K M G T (大小写均可)
eg:vgcreat -s 16M myvg /dev/sdb{1,2} vgscan vgscan vgdisplay vgscan(查找当前系统上是否有VG的存在) vgdisplay(显示当前系统上的VG状态) vgextend(在VG内增加额外的PV) eg: vgextend myvg /dev/sdb3 #将sdb3扩展给myvg vgdisplay vgreduce(在VG内删除PV) vgchange(设置VG是否启动(active)) vgremove(删除一个VG)LV参数:
lvcreate(新建LV)
-L 后面直接指定容量,单位可以为K M G T,最小单位为PE
-l 后面跟的是PE的个数 -n 后面跟的是LV的名称 eg:lvcreat -l 255 mylv mylv #将myvg全部分配给mylv,PE共255个 ll /dev/myvg/mylv lvdisplay mkfs -t ext3 /dev/myvg/mylv #(指定LV的全名) mkdir /mnt/lvm mount /dev/myvg/mylv /mnt/lvm df -lh cp -a /etc/* /mnt/lvm #测试一下可以lvm,复制一下试试 lvscan(查询系统上面的LV)lvdisplay(显示系统上面的LV状态)
lvextend(在LV里面增加容量)
pvcreat /dev/sdb4 #建立新的PV
pvscan vgextend myvg /dev/sdb4 #加大VG利用vgextend vgdisplay lvresize -l +200 /dev/myvg/mylv #放大LV ,利用lvr esize lvdisplay df /mnt/lvm dumpe2fs /dev/myvg/mylv #查看原本文件系统中的superblock记录情况 resize2fs -f /dev/myvg/mylv #resize2fs的语法,-f强制进行操作 resize2fs /dev/myvg/mylv #完整的将LV 的容量扩充到整个文件 系统 df /mnt/lvm ll /mnt/lvm lvreduce(在LV里面减少容量)pvdisplay #显示/dev/sdb中的容量大小,并尝试计算文件系统缩小多少
pvscan resize2fs /dev/myvg/mylv 2300M #直接降低文件系统的容量,这里不能将2300M写成2.3G ,这里不能写小数点 umount /mnt/lvm resize2fs /dev/myvg/mylv 2300M e2fsck -f /dev/myvg/mylv resize2fs /dev/myvg/mylv 2300M mount /dev/myvg/mylv /mnt/lvm df /mnt/lvm lvresize -l -45 /dev/myvg/mylv #降低LV的容量,同时剩余45个PE lvdisplay pvdisplay #确认/dev/sdb3是否都将PE删除了 pvmove /dev/sdb3 /dev/sdb5 #将sdb3中的PE移动到sdb5中去 vgreduce myvg /dev/sdb3 #将sdb3从/dev/myvg中移除 pvscan pvremove /dev/sdb3 #这里就成功移除了 ! lvremove(删除一个LV)lvresize(对LV进行容量大小的调整)
-L 后面直接指定容量,单位可以为K M G T,最小单位为PE
-l 后面跟的是PE的个数
六、如何扩展卷:
一、lvextend
-L 3G(扩展到3G)/+2G(或者加2G) /dev/myvg/mylv
二、resize2fs /dev/myvg/mylv七、如何缩减卷:风险大
umount /dev/myvg/mylv
e2fsck -f /dev/myvg/mylv
resize2fs /dev/myvg/mylv 2G
lvreduce -L 2G(-1G) /dev/myvg/mylv
mount /dev/myvg/mylv
八、怎么实现卷快照:
snap_mulv 快照卷名
lvcreat -L 128M -s -p r -n snap_mylv /dev/myvg/mylv
#-L 128M指定大小 ;-p r 指定权限为只读 ;-n snap_mylv为快照卷名称; -s 创建快照
mkdir /backup 创建挂载点
mount /dev/myvg/snap_mylv /back/ 挂载快照卷
九、例如: # fdisk /dev/sdbn t 8e w
# partprobe
# mke2fs -j /dev/sdb5 /dev/sdb6 /dev/sdb7
# pvcreate /dev/sdb{5,6,7}
# pvdisplay /dev/sdb5 | pvs
# vgcreate myvg /dev/sdb5
# vgdisplay myvg | vgs
# vgextend myvg /dev/sdb6 /dev/sdb7
# vgs
# pvmove /dev/sdb5
# vgreduce myvg /dev/sdb5
# vgremove myvg
# vgcreate -s 16M myvg /dev/sdb6 /dev/sdb7
# vgexteng -t myvg /dev/sdb5
# lvcreate -L 5G -n mylv myvg
# lvdispaly /dev/myvg/mylv | lvs
# lvextend -L 8G(+3G) /dev/myvg/mylv
# resize2fs /dev/myvg/mylv 8G(+3G)
# umount /dev/myvg/mylv# e2fsck -f /dev/myvg/mylv
# lvreduce -L 6G(-2G) /dev/myvg/mylv
# mount /dev/myvg/mylv /mnt
# lvcreate -L 2G -s -p r -n snap_mylv /dev/myvg/mylv
# lvreduce /dev/myvg/snap_mylv