|
一、LVM概述 LVM是逻辑卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,LVM是建立在硬盘和分区之上的一个逻辑层,来提高磁盘分区管理的灵活性。前面谈到,LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。物理卷(physical volume)物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。 每个Linux使用者在安装Linux时都会遇到这样的困境:在为系统分区时,如何精确评估和分配各个硬盘分区的容量,因为系统管理员不但要考虑到当前某个分区需要的容量,还要预见该分区以后可能需要的容量的最大值。因为如果估 计不准确,当遇到某个分区不够用时管理员可能甚至要备份整个系统、清除硬盘、重新对硬盘分区,然后恢复数据到新分区。 虽然现在有 很多动态调整磁盘的工具可以使用,例如PartationMagic等等,但是它并不能完全解决问题,因为某个分区可能会再次被耗尽;另外一个方面这需要 重新引导系统才能实现,对于很多关键的服务器,停机是不可接受的,而且对于添加新硬盘,希望一个能跨越多个硬盘驱动器的文件系统时,分区调整程序就不能解 决问题。 因此完美的解决方法应该是在零停机前提下可以自如对文件系统的大小进行调整,可以方便实现文件系统跨越不同磁盘和分区。幸运的是Linux提供的逻辑盘卷管理(LVM,LogicalVolumeManager)机制就是一个完美的解决方案。
二、相关术语及相关命令 1、Physical Volume,PV,物理卷 创建分区后需要调整磁盘类型为8e,再用pvcreate命令转换成底层物理卷(PV),之后才能加以利用创建卷组 。 1)pvcreate:将物理分区创建成物理卷; 使用格式:pvcreate /path/to/divice pvcreate /dev/sdb1 /dev/sdc1 也可以写成 pvcreate /dev/sd{b,c}1 2)pvscan:扫描当前系统所有PV盘; 3)pvdisplay:查看当前系统上面PV的状态, pvdisplay或者pvdisplay /dev/sdb1 pvs:可以查看PV的简单属性 5)pvmove:将指定PV的数据转移至其他PV pvmove /dev/sdc1 6)pvremove:删除PV,让该分区不具有PV属性 pvremove /dev/sdc1 2、Volume Group,VG,卷组 卷组是在物理卷的基础之上,组合多个物理卷而成的,就是卷组(VG),卷组的基本单位就是PE,也叫基本单元,卷组类似于磁盘的扩展分区,不能直接格式化挂载使用,需要在上面在创建逻辑卷(LV),之后才能使用。 1)vgcreate:创建卷组 -s:制定PE大小 2)vgscan:扫面卷组 3)vgdisplay:查看卷组属性 4)vgextend:扩展卷组 5)vgeduce:缩减卷组 6)vgremove:删除卷组 Physical Extend,PE,物理盘区 卷组的基本单位,类似于磁盘的块block,默认大小时4M,卷组(VG)切割逻辑卷(LV)就是通过划分PE来实现的。 3、Logical Volume,LV,逻辑卷 最后把卷组(VG)切割成逻辑卷(LV)之后就能像分区一样格式化,挂载使用了! 1)lvcreate:创建逻辑卷 -L:指定大小,可以用M,G,T例如:lvcreate -L 5G /path/to/lv -l:制定PE个数,也可以制定逻辑卷的大小,与-L用法相同 -n:制定逻辑卷名 lvcreate -L SIZE -n LV_NAME VG_NAME 2)lvscan:扫描逻辑卷 3)lvdisplay:查看逻辑卷属性 4)lvextend:扩展逻辑卷 5)lveduce:缩减逻辑卷物理边界 6)lvremove:删除逻辑卷 7)lvresize:缩减逻辑卷的逻辑边界 4、Snapshot,快照卷 快照就是将当时的系统状态信息记录下来,就好像照相一般。此后有任何数据改动,则被改动的数据的原始数据会被移动到快照卷,没用改动的数据则与源文件系统共享。 lvcreate -s:使用-s选项创建快照卷 -p r:限定快照卷为只读访问 -n:制定快照卷名 lvcreate -L SIZE -s -p r -n LV_NAME /path/to/lv 5、命令汇总:
操作 | PV阶段 | VG阶段 | LV阶段 | 扫描(scan) | pvscan | vgscan | lvscan | 新建(create) | pvcreate | vgcreate | lvcreate | 查看(display) | pvdisplay|pvs | vgdisplay|vgs | lvdisplay|lvs | 扩展(extebd) | ​ | vgextend | lvextend | 缩减(educe) | ​ | vgreduce | lvreduce | 删除(remove) | pvremove | vgremove | lvremove | 逻辑卷逻辑边界 | ​ | ​ | resize2fs |
四、创建逻辑卷(LV) 1、修改物理分区类型 先将普通磁盘分区转换成8e格式,如图所示,要将所需分区逐一转换成8e
2、创建物理卷(PV) 转换完成后开始创建物理卷,把sdb5和sdc5创建成物理卷
3、创建卷组(VG) 创建完物理卷后就可以创建卷组了,卷组名为myvg,指定PE大小为8M
4、创建逻辑卷 然后再创建逻辑卷
5、挂载逻辑卷 现在就可以格式化逻辑卷lv1,并挂载使用了
五、扩展卷组(VG) 1、首先准备好一个pv 2、然后使用vgextend命令即可完成扩展;vgextend VG_NAME /path/to/path
VG已经轻松扩展成30G了,是不是很简单啊? 六、缩减卷组(VG) 1、确定要移除的pv; 2、将此pv上的数据转移到其他pv;我们可以用一条命令来实现, 要注意的是缩减后不能小于卷组上逻辑卷的总大小!转移完数据后卷组大小是不变的
3、转移数据后就可以将,sdb5移除了,命令:vgredue VG_NAME /path/to/pv
成功将sdb5从myvg中移除 七、扩展逻辑卷(LV) 1、确定扩展多大? 2、扩展 将lv1扩展到8G 1)扩展物理边界lvextend -L [+]SIZE /path/to/lv
2)扩展逻辑边界 resize2fs /path/to/device
3、检测文件系统 扩展完逻辑卷后要检测文件系统是否有错误 fsck e2fsck [-t fs_type][-f][-p] /path/to/device 八、缩减逻辑卷(LV) 1、逻辑卷缩减有风险,确定缩减大小?前提是,至少能容纳原有的所有数据。 2、缩减:将lv1缩减到3G 1)卸载并强行检测文件系统; umount /dev/myvg/lv1 e2fsck -f /dev/myvg/lv1或fsck -f /dev/myvg/lv1 2)缩减逻辑边界 resize2fs /path/to/device SIZE
3)缩减物理边界 lvreduce -L [-]SIZE /path/to/device
缩减后也要进行文件系统检测,我这里是实验环境,没有检测 九、快照卷 1、创建快照卷 lvcreate -L SIZE -s -p r -n LV_NAME /path/to/lv lvcreate -L 50M -s -p r -n lv1-snap /dev/myvg/lv1
2、只读方式挂载快照卷 挂载之后就可以备份数据了。 十、移除逻辑卷 1、快照卷备份使用完后就可以删除了 umount /dev/myvg/lv1-snap lvremove /dev/myvg/lv1-snap
|