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
2,把这分好区的硬盘建立成pv
#pvcreate /dev/sd{c,d}1
提示建立成功
#pvs
/dev/sda2 是系统自带的。
3,建立卷组
#vgcreate myvg /dev/sd{c,d}1 #vgs
使用pvdisplay命令查看更详细的信息
4,建立好vg后就能够建立lv了。
#lvcreate -n mystor -L 999g myvg #lvs
建立好lv后其设备文件在/dev/下和vg名同样的目录里看到链接文件。
5,格式化,挂载使用。
#mkfs -t ext4 /dev/myvg/mystor #mount /dev/myvg/mystor /data
为了之后开机系统自动挂载,给/etc/fstab文件中加入一行
扩展LVM
1,新硬盘分区,而后添加到vg中
#vgextend myvg /dev/sde1 /dev/sdf1 #vgs
2,加进来了,开始扩展lv
#lvextend -L +500g /dev/myvg/mystor
成功了
#lvs
3,该扩展文件系统了。
#resize2fs /dev/myvg/mystor
扩展前
扩展后
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
命令太长,没有所有截下来。
而后挂载快照卷
备份完成后快照卷卸载,而后删除快照卷。这时留下快照卷已经没有意义了。
总结
建立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。
最后附上马哥说过的话:“缩减有危险,操做需谨慎!”