引言
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。前面谈到,LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。物理卷(physical volume)物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
Linux用户安装Linux操作系统时遇到的一个最常见的难以决定的问题就是如何正确地给评估各分区大小,以分配合适的硬盘空间。而遇到出现 某个分区空间耗尽时,解决的方法通常是使用符号链接,或者使用调整分区大小的工具(比如PatitionMagic等),但这都只是暂时解决办法,没有根本解决问题。随着Linux的逻辑盘卷管理功能的出现,这些问题都迎刃而解,用户在无需停机的情况下方便地调整各个分区大小。
DMDevice Mapper Kernel Architecture(内核模块)
功能:RAID,LVM2,快照,多路径(多线路),实现数据存储设备的寻路,镜像功能,动态扩展
基本术语
Logical Volume 上层
可以动态扩展,每一个LV就一个文件系统分区 LE其实就是PE,只是站在LV角度,LV就像分区。
Volume Group 中层
可以划分多个LV ,制定多少PE,给LV多少PE,就是一个存储空间。
Physical Volume 底层
没有加入VG之前是没有PE大小和数量的,PE(底层中块,逻辑存储单元),PV对设备部挑剔,可以是任何设备。
如图:
物理卷管理命令
pvs 查看物理卷
pvdiskplay 详细查看物理卷
pvcreate 创建物理卷
/dev/sdb{5,6}
pvmove 移动目标物理卷内数据到其他物理卷
/dev/sdb6
pvremove 抹除目标物理卷上的数据
/dev/sdb6
pvscan 扫描物理卷
卷组管理命令
vgs 查看卷组
vgdisplay 详细查看卷组
vgcreate 创建卷组
-s #默认是4MB,设置PE大小
myvg /dev/sdb{5,6}
vgremove 删除VG(只有没有LV的时候可以随便删除)
myvg
vgreduce 从卷组中移除物理卷
myvg /dev/sdb6
vgextend 添加物理卷至卷组
myvg /dev/sdb7
逻辑卷管理命令
lvs 查看逻辑卷
lvdisplay 详细查看逻辑卷
lvcreate 创建逻辑卷
-n name 名字
-L num[M|G] 制定大小
lvcreate -n testlv -L 2G myvg
mke2fs -j /dev/myvg/testlv(链接文件)
mount /dev/myvg/testlv /mnt
mount
/dev/mapper/myvg-testlv (真正的设备文件) on /mnt type ext3 (rw)
umount /mnt (先卸载,移除逻辑卷)
lvremove 移除逻辑卷
/dev/myvg/testlv(链接文件)
/dev/mapper/myvg-testlv (真正的设备文件)
扩展逻辑卷
lvextend 扩展物理边界(在线扩展,不影响源数据)
-L[+]# 增大多少,不写+号,别是扩展到多少
/path/to/lv
lvextend -L 140M /dev/myvg/testlv (在线扩展,不影响源数据)
resize2fs 扩展逻辑边界
-p 能扩展多少就扩展多大(和物理边界一样)
/path/to/lv 5G 修复逻辑卷边界为5G,不能超过物理边界
resize2fs -p /dev/myvg/testlv 扩展逻辑边界和边界一致
缩减逻辑卷
注意:1、不能在线缩减,得先umount
2、确保缩减后的空间大小依然能存储原有的所有数据
3、在缩减之前应该先强行检查文件,以确保系统处于一至性状态。
umount /mnt 1
df -lh 2
e2fsck -f /dev/myvg/testlv 3
resize2fs 缩减逻辑边界
resize2fs /dev/myvg/testlv 60M 缩减至多大
lvreduce 缩减物理边界
lvreduce -L 60M /dev/myvg/testlv
vim /etc/fstab 永久生效
mount -a 加载/etc/fstab条目
mount 查看是否生效
df -lh 查看物理空间是否缩小
快照卷
注意:1、生命周期为整个数据时长:在这段时长,数据额的增加量不能超出快照卷大小
2、快照卷应该是只读的
3、快照卷和原卷在同一卷组内
lvcreate
-s 声明是快照卷
-p r|w 权限
lvcreate -L # -n SLV_NAME -p r /path/to/lv
模拟快照过程
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
cp
/etc/inittab
/mnt
lvcreate -L 50M -n testlv-snap -s -p r
/dev/myvg/testlv
创建快照卷
touch
/mnt/1
vi
/mnt/inittab
删除后2行
mkdir
snap
mount
/dev/myvg/testlv-snap
/snap
挂载快照卷
tar
-jcf
/tmp/backup
.
tar
.bz2
/snap/inittab
备份快照卷
或者
cd
/snap
tar
-jcf
/tmp/backup
.
tar
.bz2 inittab
umount
/snap
卸载快照卷
lvremove
/dev/myvg/testlv-snap
删除快照卷(结束其生命周期)
rm
-rf
/mnt/
* 删除源目录所有文件
tar
xf
/tmp/backup
.
tar
.bz2 -C
/mnt/
还原至当前路径下
ls
snap 目录下有快照时的inittab文件
|