LVM是 Logical Volume Manager(逻辑卷管理)的简写,可用于管理磁盘驱动器或其他类似的大容量存储设备。
以下为LVM及快照卷的详细解释。
目录
LVM基本组成
LVM利用linux内核的device-mapper来实现存储系统的虚拟化(系统分区独立于底层硬件)。通过LVM,可以实现存储空间的抽象化并在上面建立虚拟分区,可以简单地扩展和缩小分区,可以增删分区时无需担心某个硬盘上没有足够的连续空间。
LVM的基本组成块如下:
- 物理卷(Physical Volume,PV):指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备,是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
- 卷组(Volume Group,VG):类似于非LVM系统中的物理磁盘,由一个或多个物理卷PV组成。可以在卷组上创建一个或多个逻辑卷LV。
- 逻辑卷(Logical Volume,LV):类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。在逻辑卷上可以创建文件系统。
- 物理块(Physical Extent,PE):每一个物理卷PV被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。所以物理卷(PV)由大小等同的基本单元PE组成。
- 逻辑块:(Logical Extent ,LE):逻辑卷LV也被划分为可被寻址的基本单位,称为LE。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
LVM关系图:
优点
比起正常的硬盘分区管理,LVM更富于弹性:
- 在调整逻辑卷大小时可以不用考虑逻辑卷在硬盘上的位置,不用担心没有可用的连续空间。
- 可以在线多逻辑卷和卷组进行创建、删除、调整大小等操作。
- 无需重新启动服务,就可以将服务中用到的逻辑卷在线迁移到别的硬盘上。
- 允许创建备份,可以保存文件系统的备份。
- 使用卷组,使多个硬盘空间看起来像是一个硬盘。
相关命令
PV(物理卷):
- pvcreate:创建pv
- pvs:查看pv信息
- pvdisplay:查看pv详细信息
- pvremove:移除pv
- pvmove:元数据的移动
- pvscan:扫描系统上的pv
VG(卷组):
- vgcreate,vgs,vgdisplay,vgremove,vgscan同上
- vgreduce:缩减vg
- vgextend:扩展vg
LV(逻辑卷):
- lvcreate,lvs,lvdisplay,lvremove,lvscan,lvextend,lvreduce同上
创建逻辑卷
1.创建分区
#fdisk DEVICE
2.创建物理卷(PV)
#pvcreate [DEVICE]
如:pvcreate /dev/sdb7 /dev/sdb8
3.创建卷组(VG)
#vgcreate [vg_name] [pv]
如:vgcreate myvg1 /dev/sdb7
4.创建逻辑卷(LV)
#lvcreate -L [size] -n [lv_name] [vg_name]
如:lvcreate -L 100M -n mylv1 myvg1
5.创建文件系统与挂载逻辑卷
#mke2fs -j [lv_path]
如:mke2fs -j /dev/myvg1/mylv1
#mount [lv_path] [mount_point]
如:mount /dev/myvg1/mylv1 /mnt
扩展逻辑卷
#lvextend -L [size] [lv_path]
如:lvextend -L 200M /dev/myvg1/mylv1
缩减逻辑卷
注意:
1、不能在线缩减,得先卸载
2、确保缩减后的空间大小依然能存储原有的所有数据
3、在缩减之前应该先强行检查文件,以确保文件系统处于一致性状态
步骤:
#df -lh 查看逻辑卷已用多少空间
#umount [device] 卸载逻辑卷
umount /dev/myvg1/mylv1
#e2fsck -f [device] 强制检查文件系统
如:e2fsck -f /dev/myvg1/mylv1
#lvreduce -L [size] [device] 缩减逻辑卷
如:lvreduce -L 200M /dev/myvg1/mylv1
#mount [device]挂载逻辑卷
mount /dev/myvg1/mylv1 /mnt/test
快照卷
快照卷理解:
快照就是当创建快照卷时,仅拷贝原卷里数据的元数据,作为访问原文件的通道。创建的时候,并不会进行数据的物理拷贝,当原卷有写操作执行时,快照跟踪原卷的改变,把改变之前的数据拷贝到快照卷中,是实时的。
注意:
1、生命周期为整个数据时长:在这个时长内,数据的增长量不能超出快照卷大小(要修改的文件大小不能超出快照卷)
2、快照卷应该是只读的
3、跟原卷在同一卷组内
步骤:
#lvcreate -L [size] -n [snapshot_volume_name] -p (r|w) -s [device] 创建快照卷并设置大小,名字,只读或写,原卷
如:lvcreate -L 500M -n smylv1 -p r -s /dev/myvg1/mylv1
#mount [snapshot_volume] 挂载快照卷
如:mount /dev/myvg1/smyvg1 /mnt/test2