LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是linux环境下对磁盘分区进行管理的一种机制,LVM的建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。要了解它,可以结合DM(Device mapper)逻辑设备来理解,DM在内核中它包含三个重要的对象概念,mapped device、映射表、target device。Mapped device 是一个逻辑抽象,可以理解成为内核向外提供的逻辑设备,它通过映射表描述的映射关系和 target device 建立映射。从 Mapped device 到一个 target device 的映射表由一个多元组表示,该多元组由表示 mapped device 逻辑的起始地址、范围、和表示在 target device 所在物理设备的地址偏移量以及target 类型等变量组成(这些地址和偏移量都是以磁盘的扇区为单位的,即 512 个字节大小)。Target device 表示的是 mapped device 所映射的物理空间段,对 mapped device 所表示的逻辑设备来说,就是该逻辑设备映射到的一个物理设备。在DM中,具体表现了逻辑卷、物理卷之间的联系与变化,也形象的描述了快照卷的作用。下面先讲一下卷组(pv、vg、lv)的命令
vgcreate创建 vgremove vgextend,vgreduce,vgs,vgdisplay,vgscan
vgcreate myvg /dev/sda{#,#} 创建
vgdisplay myvg 只查看myvg
指定pe大小:默认是4M
vgcreate VG_name /path/to/pv
-s:指定pe大小,默认是4M
vgremove myvg:删除myvg,(删除一个vg)
pvs:查看一个pv属于哪个vg (有误差20%左右)
pvcan:扫描当前用户一共有多少种pv
vgreduce:缩小vg,意味着把pv拿掉(一定要把pv上的数据挪走)
pvmove /dev/sda11 把盘sda11中的数据挪走,为以后的缩减不损害数据做准备
vgreduce myvg /dev/sda11 从myvg挪走/dev/sda11
pvremove /dev/sda11 擦除/dev/sda11
扩展vg
先创建一个pv
vgextend myvg /dev/sda12 扩展myvg
lvcreate,lvremove lvextend,lvreduce,lvresize,lvs
lvdisplay
创建lv
lvcreate -n lv_name(名字) -L #G(大小)VG_name
lvcreat -L 50M -n testlv myvg
lvs:查看创建信息
lvdisplay:显示所有lv(路径例如:dev/myvg/testlv)
mke2fs -j dev/myvg/testly
lvremove /dev/myvg/testlv = lvremove /dev/mapper/myvg-testlv
扩展逻辑卷:
lvextend 物理边界
-L [+]# 扩展 /PATH/TO/LV (+指的是在增加?GM不写是增加至?M)
resize2fs 逻辑卷(文件系统)的边界
resize2fs /PATH/TO/LV
-p 扩展到极限(与物理边界相同)
缩减逻辑卷:
注:1、不能在线缩减,得先卸载
2、确保缩减后的空间大小依然能储存原有的所有数据
3、在缩减之前应该先强行检查文件,一确保文件系统处于一致性状态。
resize2fs
df -lh 查看逻辑卷用了多少空间
umount /users 卸载挂载点
e2fsck -f /PATH/TO 强制检测
resize2fs /PATH/TO/PV 3G
(缩减逻辑卷至3G)
lvreduce -L [-]# /PATH/TO/LV(缩减物理边界至3G)
快照卷
1、生命周期为整个数据时长,在这段时长内,数据的增长量不能超出快照卷大小
2、快照卷应该是只读的
3、跟原卷在同一卷组内
lvcreate
-s
-p r|w
lvcreate -L# -n SLV_NAME -s -p r /PATH/TO/LV
在快照卷后面编辑的文件内容不可以通过快照卷来还原。而且快照卷最好都压缩并放到一个相对安全的位置。在以后的误删后,可以做最基本的还原(因为还原的的做快照卷时的,在以后可能有改变)。