PVE 中 LVM 卷的扩容全过程以及相关解释。
环境介绍
目前服务器具备4块硬盘:2×1TB + 2×4TB,计划取出一块做系统盘(及ISO镜像、CT卷等),余下三块硬盘做LVM用于VM磁盘存储。硬件上不具备RAID卡,PVE版本为Linux 6.8.4-2-pve。
准备硬盘
目前服务器上所有硬盘均有数据,但数据不再需要将清零处理;其中1块1TB硬盘(/dev/sdb
)已安装好系统,分区拓扑参考下表:
1 | root@dell_t30:~# lsblk |
可见其中pve-root
分区仅被分到96GB,余下空间均分配给pve-data
。
下面来准备磁盘,其中sda、sdc、sdd三块硬盘需要组LVM,那么先对这三块盘进行准备,主要就是初始化分区表和建立空分区。新建立的分区不必格式化。
1 | root@dell_t30:~# fdisk /dev/sda |
对余下两块盘做同样操作,这里不再赘述。
创建LVM及扩容
- 首先创建物理卷(PV):
1
2root@dell_t30:~# pvcreate /dev/sda1
Physical volume "/dev/sda1" successfully created. - 创建卷组(VG):其中
1
2root@dell_t30:~# vgcreate datastore0 /dev/sda1
Volume group "datastore0" successfully createddatastore0
是我这里对VG的命名,可以随意修改;/dev/sda1
是刚才创建好PV的磁盘 - 看一下VG状态及信息,确认卷组创建成功以及状态正常(
vgdisplay
)1
2
3
4root@dell_t30:~# vgs
VG #PV #LV #SN Attr VSize VFree
datastore0 1 0 0 wz--n- <3.64t <3.64t
pve 1 3 0 wz--n- <930.51g 16.00g - 扩容VG,把剩余磁盘都加入该VG看一下当前VG状态,确保所有硬盘都加入了:
1
2
3
4
5
6root@dell_t30:~# vgextend datastore0 /dev/sdc1
Physical volume "/dev/sdc1" successfully created.
Volume group "datastore0" successfully extended
root@dell_t30:~# vgextend datastore0 /dev/sdd1
Physical volume "/dev/sdd1" successfully created.
Volume group "datastore0" successfully extended1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20root@dell_t30:~# vgdisplay
--- Volume group ---
VG Name datastore0
System ID
Format lvm2
Metadata Areas 3
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 3
Act PV 3
VG Size <8.19 TiB
PE Size 4.00 MiB
Total PE 2146188
Alloc PE / Size 38400 / 150.00 GiB
Free PE / Size 2107788 / 8.04 TiB - 将新建LVM加入到PVE
Web首页左侧点数据中心,中间点存储,添加,LVM,ID随便写,卷组选刚才创建的,启用勾选,内容按实际需求选择,添加即可。
系统卷扩容
我这里直接在Web里面把自动创建的LVM-Thin销毁掉,然后执行如下命令扩容pve-root
:
1 | root@dell_t30:~# lvextend -rl +100%FREE /dev/mapper/pve-root |
我这里resize2fs
是自动的,如果没有自动执行可以手动执行一下。