

[h1]逻辑卷的组成[/h1]
逻辑卷管理的技术可理解为,将单个或多个物理磁盘分区(PV物理卷)组成逻辑卷组(VG),再把卷组分成多个逻辑卷(LV),主要特点是,在不影响原来数据情况下可简易的扩充磁盘的大小(缩小硬盘空间可能会导至数据丢失)。[lightbox title=”逻辑组成”][/lightbox]
[h2]1.物理卷(PV,Physical Volume)[/h2]
就是真正的物理硬盘或分区。
[h2]2.卷组(VG,Volume Group)[/h2]
将多个物理卷合起来就组成了卷组,组成同一个卷组的物理卷可以是同一个硬盘的不同分区,也可以是不同硬盘上的不同分区。我们可以把卷组想象为一个逻辑硬盘。
[h2]3.逻辑卷(LV,Logical Volume)[/h2]
卷组是一个逻辑硬盘,硬盘必须分区之后才能使用,这个分区我们称作逻辑卷。逻辑卷可以格式化和写入数据。我们可以把逻辑卷想象成为分区。
[h2]4.物理扩展(PE,Physical Extend)[/h2]
PE是用来保存数据的最小单元,我们的数据实际上都是写入PE当中,PE的大小是可以配置的,默认是4MB。
[h1]建立LVM的步骤 [/h1]
[h2]1.起步[/h2]
- 首先需要把物理硬盘分成分区,当然也可以是整块物理硬盘。
- 然后把物理分区建立成为物理卷(PV),也可以直接把整块硬盘都建立为物理卷。
- 接下来把物理卷整合成为卷组(VG)。卷组就已经可以动态的调整大小了,可以把物理分区加入卷组,也可以把物理分区从卷组中删除。
- 最后就是把卷组再划分成为逻辑卷(LV),当然逻辑卷也是可以直接调整大小的。我们说逻辑卷可以想象成为分区,所以也需要格式化和挂载。
[h2]2.物理卷管理 [/h2]
[h3]2.1 硬盘分区[/h3]
创建方式就是使用fdisk交互命令,不过需要注意的是分区的系统ID不再是Linux默认的分区ID号83了,而要改成LVM的ID号8e,(xfs中LVM的ID号是15)。
[h3]2.2 建立物理卷[/h3]
[root@localhost ~]# pvcreate [设备文件名]# 建立物理卷时,我们说即可以把整块硬盘都建立成物理卷,也可以把某个分区建立成物理卷。如果要把整块硬盘都建立成物理卷,命令如下[root@localhost ~]# pvcreate /dev/sdb# 在我们的使用中,是要把分区建立成为物理卷,所以执行以下命令:[root@localhost ~]# pvcreate /dev/sdb5[root@localhost ~]# pvcreate [设备文件名] # 建立物理卷时,我们说即可以把整块硬盘都建立成物理卷,也可以把某个分区建立成物理卷。如果要把整块硬盘都建立成物理卷,命令如下 [root@localhost ~]# pvcreate /dev/sdb # 在我们的使用中,是要把分区建立成为物理卷,所以执行以下命令: [root@localhost ~]# pvcreate /dev/sdb5[root@localhost ~]# pvcreate [设备文件名] # 建立物理卷时,我们说即可以把整块硬盘都建立成物理卷,也可以把某个分区建立成物理卷。如果要把整块硬盘都建立成物理卷,命令如下 [root@localhost ~]# pvcreate /dev/sdb # 在我们的使用中,是要把分区建立成为物理卷,所以执行以下命令: [root@localhost ~]# pvcreate /dev/sdb5
[h3]2.3 查看物理卷[/h3]
[root@localhost ~]# pvscanPV /dev/sdb5 lvm2 [1.01 GiB]PV /dev/sdb6 lvm2 [1.01 GiB]PV /dev/sdb7 lvm2 [1.01 GiB]Total: 3 [3.03 GiB] / in use: 0 [0 ] / in no VG: 3 [3.03 GiB][root@localhost ~]# pvscan PV /dev/sdb5 lvm2 [1.01 GiB] PV /dev/sdb6 lvm2 [1.01 GiB] PV /dev/sdb7 lvm2 [1.01 GiB] Total: 3 [3.03 GiB] / in use: 0 [0 ] / in no VG: 3 [3.03 GiB][root@localhost ~]# pvscan PV /dev/sdb5 lvm2 [1.01 GiB] PV /dev/sdb6 lvm2 [1.01 GiB] PV /dev/sdb7 lvm2 [1.01 GiB] Total: 3 [3.03 GiB] / in use: 0 [0 ] / in no VG: 3 [3.03 GiB]
可以看到在我的系统中,/dev/sdb5-7这三个分区是物理卷。最后一行的意思是:总共3个物理卷[大小] / 使用了0个卷[大小] / 空闲3个卷[大小]。
第二个查询命令是pvdisplay,它可以查看到更详细的物理卷状态,命令如下:
[root@localhost ~]# pvdisplay--- Physical volume ---PV Name /dev/vdbVG Name programPV Size 100.00 GiB / not usable 4.00 MiBAllocatable yes (but full)PE Size 4.00 MiBTotal PE 25599Free PE 0Allocated PE 25599PV UUID 2xNVwr-hSDU-as06-OKYm-jB47-kyo0-87PCPz--- Physical volume ---PV Name /dev/vdcVG Name programPV Size 100.00 GiB / not usable 4.00 MiBAllocatable yes (but full)PE Size 4.00 MiBTotal PE 25599Free PE 0Allocated PE 25599PV UUID hySTQB-vBdk-ugE7-pJJb-kwZv-2Gl0-ThSeGH[root@localhost ~]# pvdisplay --- Physical volume --- PV Name /dev/vdb VG Name program PV Size 100.00 GiB / not usable 4.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 25599 Free PE 0 Allocated PE 25599 PV UUID 2xNVwr-hSDU-as06-OKYm-jB47-kyo0-87PCPz --- Physical volume --- PV Name /dev/vdc VG Name program PV Size 100.00 GiB / not usable 4.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 25599 Free PE 0 Allocated PE 25599 PV UUID hySTQB-vBdk-ugE7-pJJb-kwZv-2Gl0-ThSeGH[root@localhost ~]# pvdisplay --- Physical volume --- PV Name /dev/vdb VG Name program PV Size 100.00 GiB / not usable 4.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 25599 Free PE 0 Allocated PE 25599 PV UUID 2xNVwr-hSDU-as06-OKYm-jB47-kyo0-87PCPz --- Physical volume --- PV Name /dev/vdc VG Name program PV Size 100.00 GiB / not usable 4.00 MiB Allocatable yes (but full) PE Size 4.00 MiB Total PE 25599 Free PE 0 Allocated PE 25599 PV UUID hySTQB-vBdk-ugE7-pJJb-kwZv-2Gl0-ThSeGH
[h3]2.4 删除物理卷[/h3]
[root@localhost ~]# pvremove /dev/sdb7[root@localhost ~]# pvremove /dev/sdb7[root@localhost ~]# pvremove /dev/sdb7
[h2]3.卷组管理[/h2]
[h3]3.1 建立卷组[/h3]
[root@localhost ~]# vgcreate [选项] 卷组名 物理卷名[root@localhost ~]# vgcreate [选项] 卷组名 物理卷名[root@localhost ~]# vgcreate [选项] 卷组名 物理卷名
可选项:
- -s PE大小:指定PE的大小,单位可以是MB,GB,TB等。如果不写默认PE大小事4MB
我们又三个物理卷/dev/sdb5-7,我们先把/dev/sdb5和/dev/sdb6加入卷组,留着/dev/sdb7一会实验调整卷组大小,命令如下:
[root@localhost ~]# vgcreate -s 8MB scvg /dev/sdb5 /dev/sdb6Volume group "scvg" successfully created[root@localhost ~]# vgcreate -s 8MB scvg /dev/sdb5 /dev/sdb6 Volume group "scvg" successfully created[root@localhost ~]# vgcreate -s 8MB scvg /dev/sdb5 /dev/sdb6 Volume group "scvg" successfully created
3.2 查看卷组
查看卷组的命令同样是两个,vgscan主要
[root@VM-4-11-centos ~]# vgscanReading volume groups from cache.Found volume group "program" using metadata type lvm2[root@VM-4-11-centos ~]# vgdisplay--- Volume group ---VG Name programSystem IDFormat lvm2Metadata Areas 2Metadata Sequence No 2VG Access read/writeVG Status resizableMAX LV 0Cur LV 1Open LV 1Max PV 0Cur PV 2Act PV 2VG Size 199.99 GiBPE Size 4.00 MiBTotal PE 51198Alloc PE / Size 51198 / 199.99 GiBFree PE / Size 0 / 0VG UUID dxkvC2-M8pb-9ja4-rvM1-6I3u-OzC8-k4QyWL[root@VM-4-11-centos ~]# vgscan Reading volume groups from cache. Found volume group "program" using metadata type lvm2 [root@VM-4-11-centos ~]# vgdisplay --- Volume group --- VG Name program System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 199.99 GiB PE Size 4.00 MiB Total PE 51198 Alloc PE / Size 51198 / 199.99 GiB Free PE / Size 0 / 0 VG UUID dxkvC2-M8pb-9ja4-rvM1-6I3u-OzC8-k4QyWL[root@VM-4-11-centos ~]# vgscan Reading volume groups from cache. Found volume group "program" using metadata type lvm2 [root@VM-4-11-centos ~]# vgdisplay --- Volume group --- VG Name program System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 2 Act PV 2 VG Size 199.99 GiB PE Size 4.00 MiB Total PE 51198 Alloc PE / Size 51198 / 199.99 GiB Free PE / Size 0 / 0 VG UUID dxkvC2-M8pb-9ja4-rvM1-6I3u-OzC8-k4QyWL
vgscan是查看系统中是否有卷组,而vgdisplay则是查看卷组的详细状态的。
[h3]3.3 增加卷组容量[/h3]
#把/dev/sdb7物理卷也加入scvg卷组[root@localhost ~]# vgextend scvg /dev/sdb7Volume group "scvg" successfully extended#把/dev/sdb7物理卷也加入scvg卷组 [root@localhost ~]# vgextend scvg /dev/sdb7 Volume group "scvg" successfully extended#把/dev/sdb7物理卷也加入scvg卷组 [root@localhost ~]# vgextend scvg /dev/sdb7 Volume group "scvg" successfully extended
[h3]3.4 减小卷组容量[/h3]
#在卷组中删除/dev/sdb7物理卷[root@localhost ~]# vgreduce scvg /dev/sdb7Removed "/dev/sdb7" from volume group "scvg"#删除所有的未使用物理卷[root@localhost ~]# vgreduce -a#在卷组中删除/dev/sdb7物理卷 [root@localhost ~]# vgreduce scvg /dev/sdb7 Removed "/dev/sdb7" from volume group "scvg" #删除所有的未使用物理卷 [root@localhost ~]# vgreduce -a#在卷组中删除/dev/sdb7物理卷 [root@localhost ~]# vgreduce scvg /dev/sdb7 Removed "/dev/sdb7" from volume group "scvg" #删除所有的未使用物理卷 [root@localhost ~]# vgreduce -a
[h3]3.5 删除卷组[/h3]
[root@localhost ~]# vgremove scvgVolume group "scvg" successfully removed[root@localhost ~]# vgremove scvg Volume group "scvg" successfully removed[root@localhost ~]# vgremove scvg Volume group "scvg" successfully removed
卷组删除之后,才能删除删除物理卷。还要注意的是scvg卷组还没有添加任何的逻辑卷,那如果拥有了逻辑卷,记得先删除逻辑卷再删除卷组
[h2]4. 逻辑卷管理 [/h2]
[h3]4.1 建立逻辑卷[/h3]
[root@localhost ~]# lvcreate [选项] [-n 逻辑卷名] 卷组名[root@localhost ~]# lvcreate -L 1.5G -n userlv scvgLogical volume "userlv" created[root@localhost ~]# lvcreate [选项] [-n 逻辑卷名] 卷组名 [root@localhost ~]# lvcreate -L 1.5G -n userlv scvg Logical volume "userlv" created[root@localhost ~]# lvcreate [选项] [-n 逻辑卷名] 卷组名 [root@localhost ~]# lvcreate -L 1.5G -n userlv scvg Logical volume "userlv" created
选项:
- -L 容量:指定逻辑卷大小,单位MB,GB,TB等
- -l 个数:按照PE个数指定逻辑卷大小,这个参数需要换算容量,太麻烦
- -n 逻辑卷名:指定逻辑卷名
建立完逻辑卷之后,还要格式化和挂载之后逻辑卷才能正常使用。格式化和挂载命令和操作普通分区时是一样的,不过需要注意的是逻辑卷的设备文件名是/dev/卷组名/逻辑卷名,如我们的userlv的设备文件名就是“/dev/scvg/userlv”
[h3]4.2 查看逻辑卷 [/h3]
[root@VM-4-11-centos ~]# lvscanACTIVE '/dev/program/Myself' [199.99 GiB] inherit[root@VM-4-11-centos ~]# lvdisplay--- Logical volume ---LV Path /dev/program/MyselfLV Name MyselfVG Name programLV UUID QegoVK-FU7e-XEKz-o5r6-342t-Nq2t-LcVbtbLV Write Access read/writeLV Creation host, time VM-4-11-centos, 2022-06-11 12:28:57 +0800LV Status available# open 1LV Size 199.99 GiBCurrent LE 51198Segments 2Allocation inheritRead ahead sectors auto- currently set to 8192Block device 252:0[root@VM-4-11-centos ~]# lvscan ACTIVE '/dev/program/Myself' [199.99 GiB] inherit [root@VM-4-11-centos ~]# lvdisplay --- Logical volume --- LV Path /dev/program/Myself LV Name Myself VG Name program LV UUID QegoVK-FU7e-XEKz-o5r6-342t-Nq2t-LcVbtb LV Write Access read/write LV Creation host, time VM-4-11-centos, 2022-06-11 12:28:57 +0800 LV Status available # open 1 LV Size 199.99 GiB Current LE 51198 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 252:0[root@VM-4-11-centos ~]# lvscan ACTIVE '/dev/program/Myself' [199.99 GiB] inherit [root@VM-4-11-centos ~]# lvdisplay --- Logical volume --- LV Path /dev/program/Myself LV Name Myself VG Name program LV UUID QegoVK-FU7e-XEKz-o5r6-342t-Nq2t-LcVbtb LV Write Access read/write LV Creation host, time VM-4-11-centos, 2022-06-11 12:28:57 +0800 LV Status available # open 1 LV Size 199.99 GiB Current LE 51198 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 252:0
[h3]4.3 调整逻辑卷大小[/h3]
[root@localhost ~]# lvresize [选项] 逻辑卷设备文件名[root@localhost ~]# lvresize [选项] 逻辑卷设备文件名[root@localhost ~]# lvresize [选项] 逻辑卷设备文件名
选项:
- -L 容量:安装容量调整大小,单位KB,GB,TB等。使用+代表增加空间,-号代表减少空间。如果直接写容量,代表设定逻辑卷大小为指定大小。
- -l 个数:按照PE个数调整逻辑卷大小
如果需要让分区使用这个新逻辑卷,还要使用resize2fs命令来调整分区的大小。LVM不需要卸载分区,直接就能调整分区的大小。resize2fs命令如下:
[root@localhost ~]# resize2fs [选项] [设备文件名] [调整的大小][root@localhost ~]# resize2fs [选项] [设备文件名] [调整的大小][root@localhost ~]# resize2fs [选项] [设备文件名] [调整的大小]
[h3]4.4 删除逻辑卷[/h3]
[root@localhost ~]# lvremove 逻辑卷设备文件名[root@localhost ~]# lvremove 逻辑卷设备文件名[root@localhost ~]# lvremove 逻辑卷设备文件名
删除时要先卸载。命令如下:
[root@localhost ~]# umount /dev/scvg/userlv[root@localhost ~]# lvremove /dev/scvg/userlv[root@localhost ~]# umount /dev/scvg/userlv [root@localhost ~]# lvremove /dev/scvg/userlv[root@localhost ~]# umount /dev/scvg/userlv [root@localhost ~]# lvremove /dev/scvg/userlv
暂无评论内容