1, LVM 介绍
LVM 是 Logical Volume Manager 的简称, 中文就是逻辑卷管理.
物理卷 (PV,Physical Volume): 就是真正的物理硬盘或分区.
卷组 (VG,Volume Group): 将多个物理卷合起来就组成了卷组, 组成同一个卷组的物理卷 可以是同一个硬盘的不同分区, 也可以是不同硬盘上的不同分区. 我们可以把卷组想象为一 个逻辑硬盘
逻辑卷 (LV,Logical Volume): 卷组是一个逻辑硬盘, 硬盘必须分区之后才能使用, 这个分区我们称作逻辑卷. 逻辑卷可以格式化和写入数据. 我们可以把逻辑卷想象成
为分区.
物理扩展 (PE,Physical Extend):PE 是用来保存数据的最小单元, 我们的数据实际上都 是写入 PE 当中, PE 的大小是可以配置的, 默认是 4MB.
2, 建立 LVM 的步骤
首先需要把物理硬盘分成分区, 当然也可以是整块物理硬盘.
然后把物理分区建立成为物理卷 (PV), 也可以直接把整块硬盘都建立为物理卷.
接下来把物理卷整合成为卷组 (VG). 卷组就已经可以动态的调整大小了, 可以把物理分区加入卷组, 也可以把物理分区从卷组中删除.
最后就是把卷组再划分成为逻辑卷 (LV), 当然逻辑卷也是可以直接调整大小的. 我们说逻 辑卷可以想象成为分区, 所以也需要格式化和挂载.
3, 物理卷管理
1, 分区
创建方式就是使用 fdisk 交互命令, 不过需要注意的是分区的系统 ID 不再是 Linux 默认的分区 ID 号 83 了, 而要改成 LVM 的 ID 号 8e
- Device Boot Start End Blocks Id System
- /dev/sdb1 2048 10487807 5242880 8e Linux LVM
- /dev/sdb2 10487808 14682111 2097152 8e Linux LVM
- /dev/sdb3 14682112 20973567 3145728 8e Linux LVM
建立 PV
建立物理卷时, 我们说即可以把整块硬盘都建立成物理卷, 也可以把某个分区建立成物理卷. 如果要把整块硬盘都建立成物理卷, 命令如下
- [root@localhost ~]# pvcreate [设备文件名]
- [root@localhost ~]# pvcreate /dev/sdb1
- Physical volume "/dev/sdb1" successfully created.
- [root@localhost ~]# pvcreate /dev/sdb2
- Physical volume "/dev/sdb2" successfully created.
- [root@localhost ~]# pvcreate /dev/sdb3
- Physical volume "/dev/sdb3" successfully created.
或者
[root@localhost ~]# pvcreate /dev/sdb
查询 PV
- 1)pvscan
- [root@localhost ~]# pvscan
- PV /dev/sdb3 lvm2 [3.00 GiB]
- PV /dev/sdb2 lvm2 [2.00 GiB]
- PV /dev/sdb1 lvm2 [5.00 GiB]
- Total: 4 [<29.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 3 [10.00 GiB]
- 2)pvdisplay
- "/dev/sdb1" is a new physical volume of "5.00 GiB"
- --- NEW Physical volume ---
PV Name /dev/sdb1 物理卷名
VG Name 所属卷组名
PV Size 5.00 GiB 物理卷大小
Allocatable NO 是否已经分配
PE Size 0 PE 大小
Total PE 0 总共 PE
Free PE 0 空闲 PE 数
Allocated PE 0 可分配 PE
PV UUID 3TGUYI-7y28-ilGh-uNus-FJfZ-3mn2-a1E2MM UUID
4) 删除物理卷
[root@localhost ~]# pvremove /dev/sdb3
4, 卷组管理
1, 建立卷组
[root@localhost ~]# vgcreate [选项] 卷组名 物理卷名
选项:
-s PE 大小: 指定 PE 的大小, 单位可以是 MB,GB,TB 等. 如果不写默认 PE 大小事 4MB
我们有三个物理卷 / dev/sdb1-3, 我们先把 / dev/sdb1 和 / dev/sdb2 加入卷组, 留着 / dev/sdb3 进行调整卷组大小实验
[root@localhost ~]# vgcreate -s 2Mb vg1 /dev/sb1 /dev/sdb2
2, 查看卷组
- 1)vgscan
- [root@localhost ~]# vgscan
- Reading volume groups from cache.
- Found volume group "vg1" using metadata type lvm2
- 2)vgdisplay
- [root@localhost ~]# vgdisplay
- --- Volume group ---
VG Name vg1 卷组名
- 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 <7.00 GiB 卷组大小
PE Size 2.00 MiB PE 大小
Total PE 3582 总共 PE 数
Alloc PE / Size 0 / 0
Free PE / Size 3582 / <7.00 GiB 空闲 PE 数
VG UUID nffn4l-fnbY-n6ar-zy7v-PgKP-guw2-TTTOHz
3, 删除卷组
[root@localhost ~]# vgremove vg1
4, 增加卷组容量
- [root@localhost ~]# vgextend vg1 /dev/sdb3
- Volume group "vg1" successfully extended
5, 减少卷组容量
- [root@localhost ~]# vgreduce vg1 /dev/sdb3
- Removed "/dev/sdb3" from volume group "vg1"
5, 逻辑卷管理
1, 建立逻辑卷
[root@localhost ~]# lvcreate [选项] [-n 逻辑卷名] 卷组名
选项:
-L 容量: 指定逻辑卷大小, 单位 MB,GB,TB 等
-l 个数: 按照 PE 个数指定逻辑卷大小
-n 逻辑卷名: 指定逻辑卷名
- # 建立一个 2G 的逻辑卷
- [root@localhost ~]# lvcreate -L 2G -n lv1 vg1
- Logical volume "lv1" created.
vg1 卷组中建立 2GB 的 lv1 逻辑卷之后, 还要格式化和挂载之后逻辑卷才能正常使用. 格式化和挂载命令和操作普通 分区时是一样的, 不过需要注意的是逻辑卷的设备文件名是 / dev / 卷组名 / 逻辑卷名,
例子:
- [root@localhost ~]# mkfs.ext4 /dev/vg1/lv1
- # 格式化, 建立文件系统
- [root@localhost ~]# mkdir /lv1 && mount /dev/vg1/lv1 /lv1/
- # 建立挂载点, 并挂载
2, 查看逻辑卷
- 1)lvscan
- [root@localhost ~]# lvscan
- ACTIVE '/dev/centos/swap' [2.00 GiB] inherit
- ACTIVE '/dev/centos/root' [<17.00 GiB] inherit
- ACTIVE '/dev/vg1/lv1' [2.00 GiB] inherit
- 2)lvdisplay
- LV Path /dev/vg1/lv1
- LV Name lv1
- VG Name vg1
- LV UUID jGYU0t-hEzP-BgNw-TgdT-iXDU-oqwt-S2KjT8
- LV Write Access read/write
- LV Creation host, time localhost.localdomain, 2019-12-05 22:19:48 -0500
- LV Status available
- # open 1
- LV Size 2.00 GiB
- Current LE 1024
- Segments 1
- Allocation inherit
- Read ahead sectors auto
- - currently set to 8192
- Block device 253:2
3, 调整逻辑卷大小
[root@localhost ~]# lvresize [选项] 逻辑卷设备文件名
选项:
-L 容量: 安装容量调整大小, 单位 KB,GB,TB 等. 使用 + 代表增加空间,- 号代表减少空间. 如果直接写容量, 代表设定逻辑卷大小为指定大小.
-l 个数: 按照 PE 个数调整逻辑卷大小
- # 调整 / dev/vg1/lv1 大小为 3G
- [root@localhost ~]# lvresize -L +1G /dev/vg1/lv1
- Size of logical volume vg1/lv1 changed from 2.00 GiB (1024 extents) to 3.00 GiB (1536 extents).
- Logical volume vg1/lv1 successfully resized.
- # 查看
- [root@localhost ~]# df -h
- Filesystem Size Used Avail Use% Mounted on
- /dev/mapper/vg1-lv1 2.0G 6.0M 1.8G 1% /lv1
- # 但是此时大小还是没有变化怎么, 刚刚只是逻辑卷的大小改变了, 如果需要让分区使用这个新逻辑卷, 我们还要使用 resize2fs 命令来调整分区的大小.
不过这里就体现了 LVM 的优势, 我们不需要卸载分区, 直接就能调整分区的大小.
[root@localhost ~]# resize2fs [选项] [设备文件名] [调整的大小]
选项: -f: 强制调整
设备文件名: 指定调整哪个分区的大小 调整的大小: 指定把分区调整到多大, 要加 M,G 等单位. 如果不加大小, 会使用整个分区
- [root@localhost ~]# resize2fs -f /dev/vg1/lv1
- resize2fs 1.42.9 (28-Dec-2013)
- The filesystem is already 786432 blocks long. Nothing to do!
4) 删除逻辑卷
想要删除逻辑卷, 需要先取消挂载
- [root@localhost ~]# lvremove 逻辑卷设备文件名
- [root@localhost ~]# umount /dev/vg1/lv1
- [root@localhost ~]# lvremove /dev/vg1/lv1
来源: https://www.cnblogs.com/hjnzs/p/11994411.html