20200202
一、实验环境:centos7.5(进行该项目实验之前实现过软raid操作,相关问题已解决并给出步骤) 时间202002
二、实验前准备:(做好快照、备份等)
1.四块10G磁盘(虚机中分别为/dev/sdc,/dev/sdd,/dev/sde,/dev/sdf)
2.LVM——Logical Volume Management, 逻辑卷管理器;—> LVM2——LVM Version 2
使用纯软件的方式组织一个或多个底层的物理块设备,将他们重新定义为一个逻辑块设备的解决方案;
利用linux内核中dm模块实现;
dm:device mapper,设备映射;dm模块可以将一个或多个底层设备,按照预期规划组织成特定的形式,从而实现更高级的逻辑磁盘管理方式;需要用户空间中的命令向dm模块发出系统调用,才可以进行逻辑块设备管理;
使用DM模块实现LVM管理的一般性步骤:(可以理解为三层:物理卷(PV)层、卷组(VG)层、逻辑卷(LV)层)
1.创建并标识物理卷,PV
2.基于PV创建卷组,即逻辑块设备(VG),同时指定PE的大小 ;
注意:一旦卷组创建完成,则PE的大小将固定下来,其值无法再次进行修改;如果想要调整PE大小,只能重新定义卷组;
3.在已有的卷组中,创建逻辑卷;
4.需要在逻辑卷中创建文件系统(高级格式化);
5.挂载;
物理卷的管理:
注意:如果想要让一个基本分区成为物理卷,必须将分区的系统ID修改为8e;
物理卷管理的相关命令:
pvcreate:将普通的块设备创建为物理卷设备;创建物理卷;
pvremove:将物理卷设备转变为普通块设备;删除物理卷;
pvdisplay:显示物理卷的详细信息;
pvs:显示物理卷的简短信息;
pvmove:将某个物理卷中的所有被LV占用的PE移动到其他的物理卷中;
卷组管理的相关命令:
vgcreate
格式:
vgcreate [OPTIONS] VolumeGroupName PhysicalDevicePath [PhysicalDevicePath...]
-s, --physicalextentsize PhysicalExtentSize[bBsSkKmMgGtTpPeE]
用于指定PE的大小,默认单位为MiB,默认的大小为4MiB;
vgreduce:从卷组中移除物理卷;
注意:必须保证被移除的物理卷上没有被占用的PE;如果有,则需要先对物理卷执行pvmove命令,再执行移除操作;
vgextend:向卷组中添加物理卷;
vgdisplay:显示卷组的详细信息;
vgs:显示卷组的简短信息;
逻辑卷管理的相关命令:
lvcreate:创建逻辑卷
-L, --size LogicalVolumeSize[bBsSkKmMgGtTpPeE]
指定逻辑卷的大小,其值不能超出卷组的容量;
-l, --extents LogicalExtentsNumber[%{VG|PVS|FREE|ORIGIN}]
在创建逻辑卷时,指定逻辑卷中包含的LE(逻辑盘区)的数量或者某个特定值的百分比;
-i, --stripes Stripes
在创建逻辑卷时,以条带的方式创建,并指明在逻辑卷上的条带的数量;
-n, --name LogicalVolume{Name|Path}
指明逻辑卷的名称;
-s, --snapshot OriginalLogicalVolume{Name|Path}
创建快照卷;
-p, --permission {r|rw}
创建逻辑卷时指明此逻辑卷的操作权限;
-a, --activate {y|ay|n|ey|en|ly|ln}
-ay:创建逻辑卷的命令执行之后立即激活逻辑卷
-an:创建逻辑卷的命令执行之后将逻辑卷设置为停用状态;
lvs:显示创建的逻辑卷的详细信息
lvdisplay:
lvextend:扩展逻辑卷的物理边界;
-L [+]SIZE[kKmMgGtT] /PATH/TO/LV
resize2fs:扩展逻辑卷的逻辑边界;
[-f] /PATH/TO/LV
注意:扩展逻辑卷的空间,可以在线进行;
扩展逻辑卷的示例:
先扩展物理边界:
~]# lvextend -L +10G /dev/cl/sx
再做逻辑边界扩展:
~]# resize2fs -f /dev/cl/sx
lvreduce:缩减逻辑卷的物理边界;
lvreduce -L [-]SIZE[kKmMgGtT] /PATH/TO/LV
resize2fs [-f] /PATH/TO/LV LV_SIZE
注意:
1.在缩减逻辑卷空间时,先缩减逻辑边界,再缩减物理边界;
2.缩减逻辑卷空间前,先卸载并停用逻辑卷,缩减之后,再启用挂载即可;
3.建议在缩减逻辑卷之前,对文件系统进行检测,以保证数据一致性;
缩减逻辑卷的示例:
~]# umount /mnt/lvm
~]# e2fsck /dev/cl/sx
~]# resize2fs -f /dev/cl/sx 10G
~]# lvchange -an /dev/cl/sx
~]# lvreduce -L 10G /dev/cl/sx
~]# lvchange -ay /dev/cl/sx
~]# mount /dev/cl/sx /mnt/lvm
逻辑卷的快照:
快照:其本身也是逻辑卷,可以将其视为做快照的目标逻辑卷的另外一个访问路径;
快照卷是一种特殊的逻辑卷,在其创建之初,其存储空间并没有任何消耗;只有当原来的逻辑卷中数据发生变化时,才会消耗快照卷空间;
快照卷中只包含原有逻辑卷中被更改的数据或自生成快照逻辑卷之后快照卷中更改的数据;
快照卷也可以使用lvextend进行扩容;
通常来说,快照卷和原卷会共用很多的PE,因此快照卷与原卷就必须在同一VG上;在从快照卷备份数据的过程中,必须要保证,变化的数据文件的总量不能超过快照卷大小;
创建快照卷:
lvcreate -L SIZE_SNAPSHOP -s -p r -n LV_NAME_SNAPSHOT /PATH/TO/LV_ORIGIN
示例:
~]# lvcreate -L 5G -s -p r -n snap_class18 /dev/cl/sx
~]# mkdir /mnt/snapshot
~]# mount /dev/cl/snap_sx /mnt/snapshot/
完成数据的备份之后:
~]# umount /mnt/snapshot/
~]# lvremove /dev/cl/snap_sx
三、操作步骤:
1.一个完整的LVM建立过程:
(1)物理卷操作:
创建物理卷:
[root@localhost ~]# pvcreate /dev/sdc /dev/sdd
Physical volume “/dev/sdc” successfully created.
Physical volume “/dev/sdd” successfully created.
显示物理卷的简略信息:
[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- <19.00g 0
/dev/sdc lvm2 — 10.00g 10.00g
/dev/sdd lvm2 — 10.00g 10.00g
显示物理卷的详细信息:
[root@localhost ~]# pvdisplay
— Physical volume —
PV Name /dev/sda2
VG Name centos
PV Size <19.00 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 4863
Free PE 0
Allocated PE 4863
PV UUID Hdu4F8-fdOR-uL7q-fWeg-iCuT-SFWB-EH7CWJ
"/dev/sdc" is a new physical volume of "10.00 GiB"
--- NEW Physical volume ---
PV Name