标签:lvm
一、简述
LVM 是 Logical Volume Manager(逻辑卷管理)简写 ,是基于dm (device mapper) 模块实现,
将一个或多个底层块设备组织成一个逻辑设备的工具。目前使用版本是lvm2
LVM与文件系统和块设备之间:
LVM层次结构图
1, PE(physical extent)
每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
2, LE(logical extent)
逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
3, PV (physical volume)
是底层块设备,比如 RIAD,分区,磁盘等
4, VG (Volume Group)
卷组是LVM中最高抽象层,是由一个或多个物理卷所组成的存储器池
5, LV(logical volume)
逻辑卷相当于非LVM系统中的分区,它在卷组上建立,是一个标准的块设备,可以在其上建立文件系统。
不同文件存储方式最小单位的对比:
名称 | 最小存储单位 |
硬盘 | 扇区(512字节) |
文件系统 | block(1K或4K ) |
raid | chunk (512K) mdadm -c |
LVM | PE (16M自己定义) |
二、应用场景:
1, 动态扩展或缩减存储空间边界
存储空间边界:
物理边界
逻辑边界
扩展边界: 物理卷 -> 逻辑卷
缩减边界: 逻辑卷 -> 物理卷
2,多路径(multipath)访问,就是快照(snapshot)
用途: 实时备份(moment-in-time),也是最重
三、LVM 常用的工具
# pv : # pvcreate : 创建物理卷 # pvs : 查看物理卷 # pvdisplay : 详细查看物理卷 # pvremove : 移除物理卷 # pvmove : 挪走物理卷上的数据 # pvscan : 扫描所有磁盘上的物理卷 # vg: # vgcreate : 创建卷组 # vgs : 查看卷组 # vgdisplay : 详细查看卷组 # vgremove : 移除卷组 # vgextend : 扩展卷组大小 # vgreduce : 缩减卷组大小 # vgscan : 扫描所有卷组 # lv: # lvcreate : 创建逻辑卷 # lvs : 查看逻辑卷 # lvdisplay : 详细看看逻辑卷 # lvremove : 移除逻辑卷 # lvextend : 扩展逻辑卷 # lvreduce : 缩减逻辑卷 # lvscan : 扫描所有逻辑卷
四、创建lv流程
1,添加新的硬盘
在虚拟机中添加一块硬盘为sdb大小为10G。在虚拟机管理添加新设备就可以添加一块scis硬盘。
2,准备分区
[root@xuegod63 Desktop]#fdisk /dev/sdb # 通过命令在sdb中三个分区: sdb1,sdb2,sdb3 [root@xuegod63 Desktop]# ls /dev/sdb* # 查看sdb下三个分区 /dev/sdb /dev/sdb1 /dev/sdb2 /dev/sdb3
3,制作PV
[root@ Desktop]# rpm -qf `which pvcreate` # 通过which查看哪个包生成的命令 lvm2-2.02.87-6.el6.x86_64 [root@xuegod63 Desktop]# pvcreate /dev/sdb{1,2} # sdb1,sdb2d 命令展开 Writing physical volume data to disk "/dev/sdb1" Physical volume "/dev/sdb1" successfully created # successfully表示pv创建成功 Writing physical volume data to disk "/dev/sdb2" Physical volume "/dev/sdb2" successfully created
4,制作VG
[root@xuegod63 Desktop]# vgcreate Vg1 /dev/sdb1 /dev/sdb2 Volume group "Vg1" successfully created
5,制作LV
[root@xuegod63 Desktop]# lvcreate -n LV1 -L 1.5G Vg1 Logical volume "LV1" created # -n 指lv的name # -L 指定大小
6,查看命令
依次为:简单对应卷信息的查看 扫描相关的所有的对应卷 详细对应卷信息的查看
7.1 物理卷查看
# pvs # pvscan # pvdisplay
7.2 卷组查看
# vgs # vgscan # vgdisplay
7.3 逻辑卷查看
# lvs # lvscan # lvdisplay
# 【例】创建时指定一下PE [root@xuegod63Desktop]# vgcreate -s 16M vg1 /dev/sdb1 /deb/sdb2 # -s 指定PE的大小为16M,并且PE大小只能为2的冪数
8, 综合使用
[root@xuegod63 ~]# mkfs.ext4 /dev/Vg1/LV1 #格式化后才能进行挂载 [root@xuegod63 ~]# mount /dev/Vg1/LV1 /opt/
五、LVM动态扩容和静态缩容
逻辑卷扩容:
1,先确定扩展的目标大小,并确定对应的卷组中有足够的空闲空间可用,
2,扩展物理边界
lvextend -L 4G /dev/myvg/mylv
3,扩展逻辑边界
resize2fs /dev/myvg/mylv
逻辑卷缩减很危险:缩减要离线
1,先确定缩减后的目标大小,并确保对应目标逻辑卷大小中有足够的空间可容纳原有所有数据
2,先卸载文件系统,并要执行强制检测
e2fsch -f
3,缩减逻辑边界
resize2fs DEVICE SIZE
4,缩减物理边界
lvreduce -L SIZE DEVICE
例如:逻辑卷扩容
# 1,先查看相关的大小 [root@xuegod63~]# vgs VG #PV #LV #SN Attr VSize VFree Vg1 2 1 0 wz--n- 2.02g 528.00m [root@xuegod63 ~]# lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert LV1 Vg1 -wi-ao 1.50g # 2, 逻辑卷动态扩展 [root@xuegod63 ~]# lvextend -L +300M /dev/Vg1/LV1 # +300M为逻辑增加300M Extending logical volume LV1 to 1.79GiB Logical volume LV1 successfully resized [root@xuegod63 ~]# lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert LV1 Vg1 -wi-ao 1.79g # 3, 再扩展文件系统的大小 [root@xuegod63 ~]# resize2fs /dev/Vg1/LV1 [root@xuegod63 ~]# df –h /dev/mapper /Vg1-LV1 1.8G 35M 1.7G 2% /opt
逻辑卷静态缩容:
# umount /opt #缩容要先卸载 # e2fsck –f /dev/Vg1/LV1 #强制检查文件系统 # resize2fs /dev/Vg1/LV1 1G #文件系统缩小至1G # lvreduce -L 1G /dev/Vg1/LV1 #逻辑分区缩小至1G # mount /dev/Vg1/LV1 /opt
VG 缩减
注:缩减时,可以不卸载正在使用中的LV。另外,只能缩减没有被使用的pv。
否则会提示以下内容:
[root@xuegod63 ~]# vgreduce Vg1 /dev/sdb1 Physical volume "/dev/sdb1" still in use
将pv从vg中删除
[root@xuegod63 ~]# vgreduce Vg1 /dev/sdb3 Removed "/dev/sdb3" from volume group "Vg1" [root@xuegod63 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb1 Vg1 lvm2 a-- 1.01g 32.00m /dev/sdb2 Vg1 lvm2 a-- 1.01g 1.01g /dev/sdb3 lvm2 a-- 1.01g 1.01g [root@xuegod63 ~]# vgs VG #PV #LV #SN Attr VSize VFree Vg1 2 1 0 wz--n- 2.02g 1.04g
lvm 删除命令
# umount /dev/Vg1/LV1 # 卸载 # lvremove /dev/Vg1/LV1 # 删除逻辑卷 # vgremove Vg1 # 删除卷组 # pvremove /dev/sdb1 # 删除物理卷
【例】删除应用如下
[root@xuegod63 ~]# lvremove /dev/Vg1/LV1 Doyou really want to remove active logical volume LV1? [y/n]: y Logical volume "LV1" successfullyremoved [root@xuegod63~]# lvs [root@xuegod63~]# vgremove Vg1 Volume group "Vg1" successfullyremoved [root@xuegod63~]# pvremove /dev/sdb3
六, 创建快照卷
lvcreate
-L 大小
-n 快照名
-s 逻辑卷
-p r 只读
语法:
# lvcreate -s -n SNAP_NAME -L SIZE -p r /PATH/TO/SOMEFILE
例如:
# 准备分区 [root@xuegod63 ~]# fdisk -l /dev/sda | grep "Linux LVM" /dev/sda5 5253 5514 2101349+ 8e Linux LVM /dev/sda6 5515 6168 5253223+ 8e Linux LVM # 创建PV [root@xuegod63 ~]# pvcreate /dev/sda{5,6} Physical volume "/dev/sda5" successfully created Physical volume "/dev/sda6" successfully created # 创建VG [root@xuegod63 ~]# vgcreate myvg1 /dev/sda{5,6} Volume group "myvg1" successfully created # 创建LV [root@xuegod63 ~]# lvcreate -n mylv1 myvg1 -L 5G Logical volume "mylv1" created # 查看 [root@xuegod63 ~]# vgs VG #PV #LV #SN Attr VSize VFree myvg1 2 1 0 wz--n- 7.01g 2.01g [root@xuegod63 ~]# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert mylv1 myvg1 -wi-a----- 5.00g # 格式化并挂载 [root@xuegod63 ~]# mke2fs -t ext4 /dev/myvg1/mylv1 [root@xuegod63 ~]# mkdir /media/mylv [root@xuegod63 ~]# mount /dev/myvg1/mylv1 /media/mylv # 复制数据 [root@xuegod63 ~]# mount /dev/myvg1/mylv1 /media/mylv [root@xuegod63 ~]# cp /etc/rc.d/rc /media/mylv/ [root@xuegod63 ~]# cp /etc/rc.d/rc.sysinit /media/mylv/ # 创建快照卷并挂载 [root@xuegod63 ~]# lvcreate -s -n mylv1Snap -p r -L 512M /dev/myvg1/mylv1 Logical volume "mylv1Snap" created [root@xuegod63 ~]# mkdir /media/snapmylv [root@xuegod63 ~]# mount -r /dev/myvg1/mylv1Snap /media/snapmylv # 测试 [root@xuegod63 ~]# echo "# this is test. " > /media/mylv/rc #追加数据 [root@xuegod63 ~]# tail -n 1 /media/mylv/rc #查看逻辑卷数据 # this is test. [root@xuegod63 ~]# tail -n 1 /media/snapmylv/rc #查看快照卷的数据 exit 0 # 在创建快照的瞬间数据可能会出问题,先把目标逻辑卷重新以只读的方式挂载,并创建快照,再以读写方式重新挂载逻辑卷, 比如: # mount -o remount,ro /dev/myvg1/mylv1 /media/mylv && lvcreate -s -n mylv1Snap -p r -L 512M /dev/myvg1/mylv1 && mount -o remount,rw /dev/myvg1/mylv1 /media/mylv
注意:快照卷是对某逻辑卷进行的,因此必须跟目标逻辑卷在同一个卷组中,无须指明卷组
THE END.
本文出自 “学神IT-Linux讲师-MK” 博客,请务必保留此出处http://xuegod.blog.51cto.com/9708186/1637804
标签:lvm
原文地址:http://xuegod.blog.51cto.com/9708186/1637804