LVM逻辑卷管理


LVM:Logical Volumn Manager 逻辑卷管理linux


是用来作什么的?bash


lvm将存储设备变成PV,而后把一个或多个PV组织成一个或多个卷组,再在卷组上建立LV。建立好LV后对其格式化,就能够挂载使用了。用LVM管理的硬盘好处是:不关机对分区大小调整,扩容方便,一个分区能够位于多块硬盘上。对每一个分区的大小没有须要。能够作快照卷。ide



名词解释url


 pv:物理卷,位于LVM的最底层,每一个pv由一个分区组成。只有把分区标记为pv后才能加入vg。spa


 vg: 卷组,由一个或多个pv组成,卷组用来管理pv,删除、添加pv在这里完成。pe的大小也在这里指定。3d


 pe:物理盘区,位于pv中。默认4M,单位只能为2的N次方,4M、8M等。建立卷组的时候指定后不能再更改。是卷组分配给lv最小容量单位。blog


 lv:逻辑卷,建立好lv后格式化lv,而后再挂载就可使用了。进程


 快照卷: 经过很短的时间对某个分区作一个快照。是一种特殊的lv,通常不住这里写数据,用来作备份。应用场景:对某个分区作备份时,可能须要一个小时。假如第一个复制是的A文件,最后一个复制的B文件,就有可能出现A文件的内容是一小时以前的,复制B文件时可能时间已通过去了一个小时,B文件内容是一小时以后的。这样整个数据就出现了有始无终,这就很不妥了。若是没有镜像卷,就须要中止原卷写入,而后再备份,这样的耽误时间后果是可想而知的。而快照圈会把在快照以后有变更的文件放到本身的空间保存一份,没有变更的文件还会存储在原分区上。有了这个机制,经过快照卷备份的数据都是同一个时刻的。快照卷大小由变更文件多少决定,最大与原卷同样。快照卷与原卷必须在一个vg上。ip



lvm建立顺序:硬盘分区-->把分区变成pv-->建立vg-->建立lv-->格式化lv-->挂载rem

   注意:硬盘分区时,必定要标记分区类型为8e。如不标记有可能把pv拿到其它系统上扫描不到此分区作过pv。



命令


PV相关命令


pvcreate 建立卷组

pvs 查看当前系统的物理卷组

pvdisplay 查看当前系统的物理卷组的详细信息

pvremove 移除pv

 如:pvremove /dev/sdb1

pvmove 把指定pv中的数据都移动到其它pv中,前提其它pv有足够空间。

 如:pvmove /dev/sdb1

pvscan 当pv移动到其它计算机上时pv扫描,



VG相关命令


vgcreate 建立vg

 -s: 指定pe的大小,单位有k,m,g,t,e,p 但要是2的N次方,没有特殊要求不用指定。

vgs 显示当前系统的vg信息,(vg0是系统自带的。)

vgdisplay 显示当前系统的vg详细信息

vgremove 删除vg命令

vgextend vg扩展

vgreduce 对vg进行缩减,若是vg中的pv有数据,须要用pvmove移动pv中的数据

vgscan vg扫描命令

vgrename vg更名


LV相关命令

lvcreate 建立lv

 -n lvname:指定lv名字

 -L 2G:指定lv的大小经常使用的单位有m,M,g,G,t,T。好比这里指定2G。

 -s 建立快照卷

 -p 指定权限,r为只读,rw为读写。

 

 lvcreate -n mylv -L 2500G myvg

 lvs 显示lv

 lvdisplay 显示lv,更详细

 lvremove 移除lv

 lvextend 扩展lv

 lvreduce 缩减lv

 lvscan 扫描lv


其它命令

resizee2fs  增长或缩减文件系统的命令

fuser 查看某个挂载点是否有进程使用

ex2fsck 检测ext系系文件系统。



建立一个2t的lv,建立好后对其扩展到2.5T。而后对其作快照卷。(以ext系统文件系统示例)


建立LVM


1,系统上挂了5块500G的硬盘,先对2块硬盘分区,指定分区类型标记为8e。

#fidsk /dev/sdc

spacer.gifwKioL1PH61CzbqZgAAM-J3QtguE925.jpg


2,把这分好区的硬盘建立成pv

#pvcreate /dev/sd{c,d}1

wKiom1PH6n7Rw05wAABt96r33YQ840.jpg

  提示建立成功

#pvs

wKioL1PH65jSMSzrAACA5TN58RM874.jpg

    /dev/sda2 是系统自带的。

3,建立卷组

 #vgcreate myvg /dev/sd{c,d}1
 #vgs

spacer.gifwKiom1PH6n7hGcL6AADAPXR_2k4926.jpg

使用pvdisplay命令查看更详细的信息

spacer.gifwKioL1PH65jRi3ZxAAKFILPqWkw789.jpg


4,建立好vg后就能够建立lv了。

 #lvcreate -n mystor -L 999g myvg
 #lvs

spacer.gifwKiom1PH6n7iYsM7AACjNxHhIuM695.jpg

建立好lv后其设备文件在/dev/下和vg名同样的目录里看到链接文件。

spacer.gif

wKioL1PH65iw3lePAABpu0ihyp0839.jpg


5,格式化,挂载使用。

 #mkfs -t ext4 /dev/myvg/mystor
 #mount /dev/myvg/mystor /data

spacer.gifwKioL1PH65iCDeYJAAD4CTWhst0303.jpg

为了之后开机系统自动挂载,给/etc/fstab文件中加入一行

wKiom1PJMOexR0BiAAA-JNxmP_k960.jpg


扩展LVM

1,新硬盘分区,而后添加到vg中

#vgextend myvg /dev/sde1 /dev/sdf1
#vgs

wKiom1PH65LStvLaAADv2Pw6GJE014.jpg

2,加进来了,开始扩展lv

#lvextend -L +500g /dev/myvg/mystor

wKioL1PH7KyxKB6tAAB7ulWXWlw919.jpg

成功了

#lvs

wKioL1PH7KzhzFB8AACq99GXM8I927.jpg

3,该扩展文件系统了。

#resize2fs /dev/myvg/mystor

wKiom1PH65OBVWHEAAEcspfnlEs274.jpg

扩展前

wKioL1PH7KygEmTQAADxQt4AWDE868.jpg

扩展后

wKiom1PH65PBiQQiAAEBgNCRt5s080.jpg



lvm 建立快照卷

    在建立快照卷前必定要确保没有程序对原卷作写操做,不然有建立快照时会把文件内容正在改变时候时态作为快照。为了确保尽可能减小作快照时占用lv的时候,这里把三条命令放在一块儿执行了,第一句命令的意思是临时把原卷的挂载点设置为只读,第二句命令建立快照卷,第三句命令把前面修改原卷挂载点还原。

 mount -o remount,ro /dev/myvg/mystor && lvcreate -L 1g -s -p r -n mystor-snap /dev/myvg/mystor && mount -o remount,rw /dev/myvg/mystor /data


wKiom1PH7EqSiJVxAABYlq4hrKs071.jpg

命令太长,没有所有截下来。

而后挂载快照卷

wKioL1PH7WSBXHG_AAB9xMxuzX8369.jpg

备份完成后快照卷卸载,而后删除快照卷。这时留下快照卷已经没有意义了。

wKiom1PH7ErQZcgXAAA6-nrqB8c991.jpg


总结

    建立LVM的步骤:fdisk建立分区,并标记分区类型为8e(linux lvm)-->建立pv-->建立vg(是否指定pe大小)-->建立lv-->格式化lv-->挂载


    扩展lv的步骤:若是vg空间不够须要给vg添加空间,若是空间足够则使用lvextend命令扩展,而后使用resizee2fs命令扩展分区容量。


    快照卷:必须与原卷在一个vg,且vg要有足够空间。建立快照卷的时候要保证原卷没有程序访问。尽可能用最小时间建立原卷。挂载快照卷,备份完成后删除快照卷。


    缩减lv:卸载lv(umount)-->使用(e2fsck -f)强制检测文件系统,确保检测后没有问题-->使用resize2fs 命令缩减文件系统-->使用lvreduce  命令缩减-->挂载缩减后的lv。  注:缩减最小不能低于已使用的空间。



    缩减vg:使用pvmove命令移动要取出pv上的文件到其它pv。前题其它pv空间要足够-->用vgreduce命令移除pv。

        

           


最后附上马哥说过的话:“缩减有危险,操做需谨慎!”

相关文章
相关标签/搜索