LVM逻辑卷管理
枫梓林
提示:建议按着步骤来
1、 简介
- LVM是Logical Volume Mananger (逻辑卷管理)
LVM 示意图
- 物理卷(PV,Physical Volume):就是硬盘,是LVM分区的
- 卷组(VG,Volume Group):将多个物理卷整合起来,形成一个组,这个组里在划分逻辑卷
- 逻辑卷(LV,Logical Volume):卷组的一个逻辑硬盘,相当于硬盘,也需要分区格式化挂载
- 物理扩展(PE,Physical Extend):PE是用来保存数据的最小单元,我们的数据实际上都是写入PE中的。PE的大小是可以调配的,默认是4MB.
2、建立LVM的步骤
(1)首先将物理硬盘分区,整块盘也可以分区
(2)将物理分区的建立成为物理卷(PV),或者至直接把整块硬盘建立物理卷
(3)在将物理卷整合成为卷组(VG),卷组可以调整动态大小,可以把物理分区加入卷组,也可以删去
(4)最后将卷组在划分成为逻辑卷(LV),逻辑卷也可以调整大小,逻辑卷是相当于分区,需要格式化和挂载
3、逻辑卷管理及部署
常用的LVM部署命令
功能/命令 |
物理卷管理 |
卷组管理 |
逻辑卷管理 |
扫描 |
pvscan |
vgscan |
lvscan |
建立 |
pvcreate |
vgcreate |
lvcreate |
显示 |
pvdisplay |
vgdisplay |
lvdisplay |
删除 |
pvremove |
vgremove |
lvremove |
扩展 |
|
vgextend |
lvextend |
缩小 |
|
vgreduce |
lvreduce |
(1)磁盘分区
用fdisk将分区改为LVM的ID号为8e
(2)物理卷管理
建立物理卷
将sdb2和sdb3建立成为物理卷
[root@localhost ~]# pvcreate /dev/sdb2 //将sdb2建立成为物理卷
Physical volume "/dev/sdb2" successfully created.
[root@localhost ~]# pvcreate /dev/sdb3 //将sdb3建立成为物理卷
Physical volume "/dev/sdb3" successfully created.
[root@localhost ~]# pvcreate /dev/sdb //将sdb整个分区建立成为物理卷
扫描物理卷
[root@localhost ~]# pvscan
PV /dev/sdb2 lvm2 [2.00 GiB]
PV /dev/sdb3 lvm2 [3.00 GiB]
Total: 3 [<24.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 2 [5.00 GiB]
//总共3个物理卷[大小] / 使用了0个卷[大小] /空闲3个卷 [大小]
显示物理卷
[root@localhost ~]# pvdisplay
"/dev/sdb2" is a new physical volume of "2.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb2 //PV名
VG Name //VG名,属于哪个VG
PV Size 2.00 GiB //PV的大小
Allocatable NO //是否已分配
PE Size 0 //PE大小,
Total PE 0 //PE总数
Free PE 0 //空闲PE数
Allocated PE 0 //可分配的PE数
PV UUID ZosyQ5-foiF-DXjJ-KtTQ-u4Dj-Vupm-LIJwVY //pv的UUID
删除物理卷
[root@localhost ~]# pvremove /dev/sdb2 //删除sdb2物理卷
(3)卷组管理
建立卷组
[root@localhost ~]# vgcreate -s 10MB zxl /dev/sdb2 /dev/sdb3 //将sdb2 sdb3 物理卷加入卷组名字为zxl -s是指定 PE大小
Volume group "zxl" successfully created
//语法:
root@localhost ~]# vgcreate [选项] 卷组名 物理卷名
选项
-s PE的大小:指定PE的大小 不写默认为4M
扫描卷组
[root@localhost ~]# vgscan
Found volume group "zxl" using metadata type lvm2
查看卷组
[root@localhost ~]# vgdisplay
--- Volume group ---
VG Name zxl //卷组名
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write //卷组访问状态
VG Status resizable //卷组状态
MAX LV 0 //最大逻辑卷数
Cur LV 0
Open LV 0
Max PV 0 //最大物理卷数
Cur PV 2 //当前物理卷数
Act PV 2
VG Size 4.99 GiB //卷组大小
PE Size 10.00 MiB //PE大小
Total PE 511 //PE总数
Alloc PE / Size 0 / 0 //已用PE数量/大小
Free PE / Size 511 / 4.99 GiB //空闲PE数量/大小
VG UUID lzE8YW-RdKj-zBlR-QAyr-Sjlx-bbfX-FRCuih
删除卷组
[root@localhost ~]# vgremove zxl
扩展卷组
需要有空闲的物理卷
[root@localhost ~]# vgextend zxl /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
Volume group "zxl" successfully extended
缩小卷组
[root@localhost ~]# vgreduce zxl /dev/sdb1 //在卷组中删除/dev/sdb1物理卷
Removed "/dev/sdb1" from volume group "zxl"
[root@localhost ~]# vgreduce -a //删除所有的未使用物理卷
(4)逻辑卷管理
建立逻辑卷
[root@localhost ~]# lvcreate -L 1.5G -n userlv1 zxl //在zxl卷组中建立1.5GB的userlv1 逻辑卷
Rounding up size to full physical extent 1.50 GiB
Logical volume "userlv1" created.
//语法:
[root@localhost ~]# lvcreate [选项] [-n 逻辑卷名] 卷组名
选项:
-L 容量:指定逻辑卷大小,单位 MB,GB,TB等
-l 个数:按照 PE个数指定逻辑卷大小,这个参数需要换算容量,太麻烦
-n 逻辑卷名:指定逻辑卷名
格式化——挂载
建立完逻辑卷,就相当于fdisk的分区了,这是就要进行,格式化,挂载之后的逻辑卷才能正常使用
//----格式化----------
[root@localhost ~]# mkfs -t ext4 /dev/zxl/userlv1 //设备文件名 /dev/卷组名/逻辑卷名
[root@localhost ~]# mkdir /disklvm1 //建立挂载点
[root@localhost ~]# mount /dev/zxl/userlv1 /disklvm1/ //挂载命名是和格式化一样的 开机自动挂载要修改/etc/fstab文件
扫描逻辑卷
[root@localhost ~]# lvscan
ACTIVE '/dev/zxl/userlv1' [1.50 GiB] inherit //激活的逻辑卷大小是1.5G
查看逻辑卷
[root@localhost ~]# lvdisplay
--- Logical volume ---
LV Path /dev/zxl/userlv1 //逻辑卷设备文件名
LV Name userlv1 //逻辑卷名
VG Name zxl //所属的卷组名
LV UUID eqR3I6-9axJ-cW3t-7MwY-SWRk-tcRc-Zs1x72
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2020-09-24 23:50:45 -0400
LV Status available
# open 1
LV Size 1.50 GiB //卷组大小
Current LE 154
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:2
删除逻辑卷
[root@localhost ~]# lvremove 逻辑卷设备文件名 //我们删除 userlvm1这个逻辑卷,记得删除时要先卸载
//命令如下:
[root@localhost ~]# umount /dev/zxl/userlvm1
[root@localhost ~]# lvremove /dev/zxl/userlvm1
调整逻辑卷大小
//语法:
[root@localhost ~]# lvresize [选项] 逻辑卷设备文件名
选项:
-L 容量:安装容量调整大小,单位 KB,GB,TB等。使用+代表增加空间,-号代表减少空间。如果直接写容量,代表设定逻辑卷大小为指定大小。
-l 个数:按照 PE个数调整逻辑卷大小
增加逻辑卷
[root@localhost ~]# lvresize -L +2.1G /dev/zxl/userlv1 //在原来的基础上增加逻辑卷的大小
Rounding size to boundary between physical extents: <2.11 GiB.
Size of logical volume zxl/userlv1 changed from <1.01 GiB (103 extents) to <3.12 GiB (319 extents).
Logical volume zxl/userlv1 successfully resized.
[root@localhost ~]# df -h /disklvm1/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/zxl-userlv1 1.5G 4.6M 1.4G 1% /disklvm1
//调整只是改变了逻辑怎么/disklvm分区的大小还是,刚刚只是逻辑卷的大小改变了,如果需要让分区使用这个新逻辑卷,我们还要使用 resize2fs命令来调整分区的大小。
//把这个逻辑卷加入到/disklvm1分区中
[root@localhost ~]# resize2fs /dev/zxl/userlv1
resize2fs 1.44.6 (5-Mar-2019)
Filesystem at /dev/zxl/userlv1 is mounted on /disklvm1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/zxl/userlv1 is now 816640 (4k) blocks long.
//查看
[root@localhost ~]# df -h /disklvm1/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/zxl-userlv1 3.1G 4.6M 2.9G 1% /disklvm1 //大小改变了
//语法:
[root@localhost ~]# resize2fs [选项] [设备文件名] [调整的大小]
选项:
-f 强制调整
设备文件名:指定调整哪个分区的大小
调整的大小:指定把分区调整到多大,要加 M,G等单位。如果不加大小,会使用整个分区
注:
本文首发于枫梓林的博客,欢迎转载,但是必须保留本文的署名枫梓林(包含链接)
转发请给我留言:fengzilin1973@outlook.com