一、LVM简介
LVM(Logical Volume Manager,逻辑卷管理)的重点在于可以动态调整文件系统的容量!而并非在于数据的存储效率及安全上面。需要文件的读写性能或者是数据的可靠性是RAID所考虑的问题。LVM可以整合多个实体分区在一起,让这些分区看起来就像是一个磁盘一样!而且,还可以在未来新增或移除其它的实体分区到这个LVM管理的磁盘当中。如此一来,整个磁盘空间的使用上,实在是相当的具有弹性。
二、LVM常用术语
1.物理存储介质(he physical mediaThe physical media):这里指系统的存储设备文件,如/dev/sda,/dev/sdb等等;
2.物理卷(Physical Volume):简称PV,物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区,硬盘)比较,却包含有与LVM相关的管理参数;
3.卷组(Volume Group):简称VG,LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组有一个或多个物理卷组成
4.逻辑卷(Logical Volume):简称LV,LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷上可以建立文件系统(如/home,/usr等);
5.PE(Physical Extent):PV中可以分配的最小存储单元称为PE,PE的大小是可以配置的,默认为4MB;
6.LE(Logical Extent):LV中可以分配的最小存储单元称为LE,在同一个卷组中,LE的大小和PE是一样的,且一一对应;
图1 LVM磁盘结构图
三、创建逻辑卷
1.例如:要创建一个10G的lv;
2.注:逻辑卷可以拿分区或者整块硬盘做实验;这里我用/dev/sda7,/dev/sdb做实验
3.步骤:
3.1.创建物理分区:
①fdisk /dev/sda;(划分/dev/sda6分区,大小10G,修改分区类型为Linux LVM,ID改为8e)
②partx -a /dev/sda;同步分区;
3.2.创建物理卷(PV):
①pvcreate /dev/sd{a6,b};
②pvs;
③pvdisplay;
与PV相关的一些管理命令:
pvcreate:将实体分区创建成为PV;
pvs:显示pv简要信息;
pvdisplay:显示PV详细信息;
pvscan:搜寻目前系统里面任何具有PV的磁碟;
pvremove:将PV属性移除,让该分区不具有PV属性;
pvmove:移动pv
3.3.创建卷组(VG):
语法:vgcreate VGNAME(卷组名) /dev/pv1...(物理卷)
①vgcreate vg0 /dev/sd{a6,b};
②vgs;
③pvdisplay;
④vgdisplay;
与VG相关的一些管理命令:
vgcreate:创建VG;
vgs:显示vg简要信息;
vgdisplay:显示vg详细信息;
vgscan:搜寻系统上面是否有VG存在;
vgextend:在vg内添加额外的pv;
vgreduce:在vg内移除pv;
vgremove:删除一个VG;
vgchange:配置vg是否启动(active);
3.4.创建逻辑卷(LV):
语法:lvcreate [-L 逻辑卷大小 | -l PE的个数] [-n 逻辑卷名称] [所属的卷组名]
①lvcreate -L 10G -n lv0 vg0;
②lvdisplay;
与LV相关的一些管理命令:
lvcreate:创建LV;
lvs:显示lv简要信息;
lvdisplay:显示lv详细信息;
lvscan:查询系统上面的lv;
lvextend:在lv里面添加容量;
lvreduce:在lv里面减少容量;
lvremove:删除一个lv;
lvresize:对lv进行容量大小的调整
3.5.建立文件系统(格式化):
①mkfs.ext4 /dev/vg0/lv0;
3.6.挂载逻辑卷(写进/etc/fstab文件实现自动挂载):
①mkdir /mnt/ln0;
②/dev/vg0/lv0 mnt/lv0 ext4 defaults 0 0
③mount -a;
④df- h
⑤cp -r /etc/* /mnt/lv0;
四、扩展逻辑卷
1.注:扩展逻辑卷,前提卷组要有足够的容量;
2.扩展逻辑卷步骤:
①lvextend -L +10G /dev/vg0/lv0;
②lvdisplay;
③resize2fs /dev/vg0/lv0;同步文件系统,resize2fs只能同步ext系列文件系统;
④df -h;
注:扩展逻辑卷容量表示方法:+10G的含义是在已有的当前容量上加上10G;10G的含义是把容量扩展到10G;
3.要想把卷组空间容量全部扩展完并且同步文件系统使用以下命令:
①lvextend -r -l +100%FREE /dev/vg0/lv0;
五、扩展卷组
1.方法:加硬盘;(这里我用/dev/sdc硬盘做实验)
2.扩展卷组步骤:
①pvcreate /dev/sdc;##把硬盘变成物理卷
②vgextend vg0 /dev/sdc;##把物理卷加入卷组
③vgdisplay;
六、缩减逻辑卷
1.缩减逻辑卷步骤:
①umount /mnt/lv0:##取消已经挂载的逻辑卷
②e2fsck -f /dev/vg0/lv0;##强制进行磁盘检测
③resize2fs /dev/vg0/lv0 10G;
④lvreduce -L 10G /dev/vg0/lv0;
⑤mount -a:重新挂载逻辑卷
⑥lvdisplay;
⑦df -h;
七、删除物理卷(PV)
1.删除PV步骤:
①pvmove /dev/sdb;将PV中的PE个数移动到别的PV
②pvdisplay;(可以看到PE个数被移动到别的PV)
③vgreduce vg0 /dev/sdb;从卷组中删除PV
④vgdisplay;(可以看到卷组容量变小了)
⑤ pvs;(可以看见/dev/sdb不属于VG0)
⑥pvremove /dev/sdb;移除pv,不让/dev/sdb具有pv属性;
⑦pvs;查看
八、删除逻辑卷
1.删除逻辑卷步骤:
①umount /mnt/lv0;取消已经挂载的逻辑卷
②lvremove /dev/vg0/lv0;
③lvs;
九、删除卷组
1.删除卷组步骤:
①vgremove vg0;
④pvs;
十、逻辑卷快照
1.快照是特殊的逻辑卷,它是在生成快照时存在的逻辑卷的 准确拷贝。
2.对于需要备份或者复制的现有数据集临时拷贝以及其它操 作来说,快照是最合适的选择。
3.快照只有在它们和原来的逻辑卷不同时才会消耗空间:
3.1在生成快照时会分配给它一定的空间,但只有在原来的逻辑卷或 者快照有所改变才会使用这些空间。
3.2当原来的逻辑卷中有所改变时,会将旧的数据复制到快照中。
3.3快照中只含有原来的逻辑卷中更改的数据或者自生成快照后的快 照中更改的数据。
3.4建立快照的卷大小只需要原始逻辑卷的15%~20%就够了。也可 以使用lvextend放大快照。
4.快照就是将当时的系统信息记录下来,就好像照相一般, 若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享。
5.由于快照区与原本的LV共用很多PE的区块,因此快照区与被快照的LV必须要要在同一个VG上。系统恢复的时候的文件数量不能高于快照区的实际容量。
十一、创建快照逻辑卷
注:要事先创建好逻辑卷(我这里事先创建好了逻辑卷(/dev/vg0/lv0),并挂载在/mnt/lv0里),并拷贝一些数据到目录里做实验,以下四步事先准备好:
(1)cd /mnt/lv0;
(2)cp /etc/fstab f1;
(3)cp /etc/fstab f2;
(4)cp /etc/fstab f3 ;
1.创建逻辑卷快照步骤:
注:创建快照要注意卷组空间容量要足够;快照逻辑卷容量小于或等于被快照的逻辑卷;
①lvcreate -L 1G -s -n lv0-snapshot -p r /dev/vg0/lv0;创建快照
②lvdisplay;查看快照信息
③mkdir /mnt/snapshot;创建快照目录
④mount /dev/vg0/lv0-snapshot /mnt/snapshot/;挂载快照
2.测试:
①cd /mnt/lv0;进入到被快照的逻辑卷目录里
②echo > f1;在被快照的逻辑卷里清空f1的数据
③cd /mnt/snapshot;进入到快照逻辑卷目录里
④cat f1;可以看到原始f1的数据内容
3.利用快照回复数据:
(1)注:所要恢复的数据不能超过快照区的总大小,因为如果变动的数据大小超过了快照区的空间,那么快照区是不能容纳所有变动的数据了,这个时候快照功能会失效。
(2)方法:把快照里的数据复制到逻辑卷的挂载目录里即可;
4.删除快照逻辑卷:
①umount /mnt/snapshot/;取消挂载
②lvremove /dev/vg0/lv0-snapshot;删除快照逻辑卷
本文出自 “亚成-另一个LINUXER” 博客,请务必保留此出处http://yacheng0316.blog.51cto.com/11878883/1965035
原文地址:http://yacheng0316.blog.51cto.com/11878883/1965035