LVM管理

一.逻辑卷管理器(LVM)
允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小
允许在多个物理设备间重新组织文件系统
• 将设备指定为物理卷
• 用一个或者多个物理卷来创建一个卷组
• 物理卷是用固定大小的物理区域(Physical Extent,PE)来定义的
• 在物理卷上创建的逻辑卷
是由物理区域(PE)组成
• 可以在逻辑卷上创建文件系统
LVM管理
二.LVM介绍
LVM: Logical Volume Manager, Version: 2
dm: device mapper:将一个或多个底层块设备组织成一个逻辑设备的模块
设备名:/dev/dm-#
软链接:
/dev/mapper/VG_NAME-LV_NAME
/dev/mapper/vol0-root
/dev/VG_NAME/LV_NAME
/dev/vol0/root
PE(physical extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是能被LVM寻址的最小单元。PE的大小是可设置的,默认为4MB。
LE(logical extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
三.LVM更改文件系统的容量
LVM可以弹性的更改LVM的容量
通过交换PE来进行资料的转换,将原来LV内的PE转移到其他的
设备中以降低LV的容量,或将其他设备中的PE加到LV中以加大
容量
LVM管理
四.LVM的优点
1. 灵活的容量.
当使用逻辑卷时,文件系统能扩展到多个磁盘上,你能聚合多个磁盘或磁盘分区成单一的逻辑卷.
2.可伸缩的存储池.
你能使用简单的命令来扩大或缩小逻辑卷大小,不用重新格式化或分区磁盘设备.
3.在线的数据再分配.
你能在线移动数据,数据能在磁盘在线的情况下重新分配.比如,你能在线更换可热插拔的磁盘.
4. 方便的设备命名
逻辑卷能按你觉得方便的方式来起所有名称.
5.磁盘条块化.
你能生成一个逻辑盘,他的数据能被条块化存储在2个或更多的磁盘上.这样能明显提升数据吞吐量.
6.映像卷
逻辑卷提供方便的方法来映像你的数据.
7.卷快照
使用逻辑卷,你能获得设备快照用来一致性备份或测试数据更新效果而不影响真实数据.
五.实验演示
以下实验在VMware Workstation 14 Pro上完成,操作系统分别为centos 6.9 和centos 7.4。
A.在虚拟机上虚拟增加2块硬盘分别为/dev/sdb和/dev/sdc,将其分区后再创建卷组vg0和逻辑卷lv0。
1.下图为将两块硬盘分区后执行fdisk -l 命令后输出的信息。注:分区格式为8e
LVM管理

2.创建物理组

pvcreate /dev/sdb1 创建物理卷/dev/sdb1容量为5G
pvcreate /dev/sdc1 创建物理卷/dev/sdc1容量为4G
pvs 显示创建好的所有的物理卷
LVM管理

pvdisplay 显示创建好的所有的物理卷详细信息

LVM管理
3.创建卷组
vgcreate -s 16m vg0 /dev/sd{b,c}1 创建9G大小的卷组,并设置卷组上的物理卷的PE为16M
vgs 查找系统中存在的LVM卷组,并显示找到的卷组列表
LVM管理
vgdisplay 显示所有卷组的属性。
LVM管理
4.创建逻辑卷
lvcreate -n lv0 -L 5G vg0
lvs
lvdisplay
LVM管理
B.将lv0容量扩容
1.新增一块硬盘,并将其创建成物理卷
pvcreate /dev/sdd1
pvs
LVM管理
2.扩展vg0
vgextend vg0 /dev/sdd
LVM管理
3.扩展lv0
lvextend -L +3G /dev/vg0/lv0
LVM管理
4. 同步所有的文件系统
resize2fs /dev/vg0/lv0 同步所有的文件系统
lvextend -l +100%FREE -r /dev/vgq/lv0 一步到位
C .将lv0容量缩减(要考虑到现有文件不能被破坏)
a.先备份
b.必须卸载后缩小
1.resize2fs /dev/vg0/lv0 6G
LVM管理
2.fsck /dev/vg0/lv0
LVM管理
3.lvreduce -L 6G /dev/vg0/lv0
LVM管理
4.lvs
LVM管理
5.mkfs.ext4 /dev/vg0/lv0
LVM管理
6.mount /dev/vg0/lv0 /mnt/lvm0
LVM管理

D.缩减卷组vg0即卷组中的若干个硬盘删掉
1.通过pvdisplay命令显示/dev/sbc1的空间是没有被使用的
LVM管理
LVM管理
2.根据创建逻辑卷lv0的大小,所以这有两种方式可以将vg0的容量减少。第一种是直接删掉设备,第二种是将设备/dev/sdd1的数据先移除,再将其所处。
若是将/dev/sdd1删掉
vgs
LVM管理

pvmove /dev/sdd1
LVM管理
pvdisplay /dev/sdd1
LVM管理
vgreduce vg0 /dev/sdd1
vgs
LVM管理
pvremove /dev/sdd1
LVM管理
pvdisplay
LVM管理
若是将/dev/sdc1删掉,同理可直接执行以下命令
vgreduce vg0 /devsdc1
pvremove /devsdc1
E.跨主机将逻辑卷/dev/vg0/lv0 从centos7迁移到centos 6上(让它继续正常使用包括数据)
在centos 7上创建了逻辑卷/dev/vg0/lv0大小为3G()
LVM管理
在centos 7 上/mnt/lvm0目录创建了3个文件11,12,13
LVM管理
现将逻辑卷/dev/vg0/lv0 从centos7迁移到centos 6(包括文件11,12,13)
1.pvdisplay显示物理卷的情况
LVM管理
2.将物理卷/dev/sdb1的数据移到同一卷组的其他物理卷中,并从vg0中删除

pvremove /dev/sdb1

LVM管理
pvdisplay
LVM管理
2.卸载设备/dev/vg0/lv0
fuser -km /mnt/lvm0
umount /mnt/lvm0
LVM管理
3.将卷组导出即将硬盘c从7中拆除
vgchange -a n vg0
vgexport vg0
LVM管理
vgdisplay
LVM管理
4.将硬盘加入6中并导入
vgimport vg0
vgchange vg0
LVM管理
pvdisplay
LVM管理
5.挂载vg0
mkdir /mnt/lvm0 -p
mount /dev/vg0/lv0 /mnt/lvm0
df -h
LVM管理
5.验证文件是否可以正常查看
LVM管理
F.为现有逻辑卷创建快照
1.创建快照
lvcreate -l 64 -s -n data-snapshot -p r /dev/vg0/lv0
LVM管理
2.挂载快照
mkdir -p /mnt/snap
mount -o ro /dev/vg0/data-snapshot /mnt/snap/
df -h
LVM管理
G.误操作了/mnt/lvm0/目录下的文件,恢复创建快照时文件的状态
1.先将/mnt/lvm0/目录下的文件11删除,12的文件内容清空
LVM管理
2.卸载逻辑卷
fuser -km /mnt/lvm0
fuser -km /mnt/snap
umount /mnt/lvm0
umount /mnt/snap
df -h
LVM管理
3.恢复快照
lvconver --merge /dev/vg0/date-snapshot
LVM管理
4.验证文件是否还原
mount /dev/vg0/lv0 /mnt/lvm0
cd /mnt/lvm0
cat 11 12 13
LVM管理