4. Proxmox VE新增LVM设置
前面第三节介绍了Proxmox VE的默认LVM设置,有了第三节的基础之后,我们再来操作Proxmox VE新增LVM设置,在进行Proxmox VE新增LVM设置之前,我再把Proxmox VE的LVM逻辑架构图贴上来,因为我们的LVM设置都是围绕这Proxmox VE的LVM逻辑架构图进行,如图1所示。
接下来,我们通过Proxmox VE的界面查看磁盘分区信息,除了系统盘之外,还有其余3块磁盘sdb、sdc和sdd没有使用到,如图39所示。
或者,也可以通过Proxmox VE命令行去查看磁盘配置,也可以发现其余3块磁盘sdb、sdc和sdd没有使用到,如下所列:
root@pve:~# lsblk -f
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
sda
├─sda1
├─sda2 vfat FAT32 F92A-97E4
└─sda3 LVM2_member LVM2 001 Ny0mtE-hiIR-IVRB-33aA-dKZe-uKyL-gtbWkM
├─pve-swap swap 1 d971d023-1e21-4db4-b083-35581f2fc965 [SWAP]
├─pve-root ext4 1.0 9cbd71dd-b8a4-473e-a503-48c8c0c0928b 3.2G 61% /
├─pve-data_tmeta
│ └─pve-data-tpool
│ ├─pve-data
│ ├─pve-vm--100--disk--0
│ ├─pve-vm--100--disk--1
│ ├─pve-vm--101--disk--0
│ └─pve-vm--101--disk--1
└─pve-data_tdata
└─pve-data-tpool
├─pve-data
├─pve-vm--100--disk--0
├─pve-vm--100--disk--1
├─pve-vm--101--disk--0
└─pve-vm--101--disk--1
sdb #未使用磁盘sdb
sdc #未使用磁盘sdc
sdd #未使用磁盘sdd
sr0 iso9660 PVE 2021-07-05-19-15-41-00
4.1. 使用fdisk对磁盘进行分区
系统盘的分区与格式化的操作在安装Proxmox VE 7.0的过程中,由Proxmox VE 7.0自动对系统盘进行分区与格式化。如果其他的磁盘要进行分区与格式化,则需要使用分区工具和格式化工具手动进行操作。
如图1的所示,数据盘/dev/sdb划分为/dev/sdb1和/dev/sdb2两个分区,数据盘/dev/sdc划分为/dev/sdc1和/dev/sdc2两个分区,数据盘/dev/sdd则不划分区。
4.1.1. 使用fdisk对/dev/sdb进行分区
第一步:执行“fdisk /dev/sdb”命令,进入交互的分区管理界面
root@pve:~# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.36.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x081aa200.
Command (m for help): # 命令(输入m获取帮助)提示符
在操作界面中的“命令(输入m获取帮助):”提示符,用户可以输入特定的分区操作指令,完成各项分区管理任务。
第二步:按照提示符,输入“m”指令查看分区指令
Command (m for help): m # 输入m指令
Help:
DOS (MBR)
a toggle a bootable flag
b edit nested BSD disklabel
c toggle the dos compatibility flag
Generic
d delete a partition
F list free unpartitioned space
l list known partition types
n add a new partition # 创建新的分区指令
p print the partition table # 查看分区列表信息
t change a partition type
v verify the partition table
i print information about a partition
Misc
m print this menu
u change display/entry units
x extra functionality (experts only)
Script
I load disk layout from sfdisk script file
O dump disk layout to sfdisk script file
Save & Exit
w write table to disk and exit # 保存并退出
q quit without saving changes
Create a new label
g create a new empty GPT partition table
G create a new empty SGI (IRIX) partition table
o create a new empty DOS partition table
s create a new empty Sun partition table
在输入“m”指令之后,我们就可以查看到创建新分区的指令是“n”,“p”则是查看分区列表的指令,“w”则是将配置写入磁盘中并推出。如果您对fdisk工具非常熟悉,可以不用输入“m”指令查找。
第三步:按照提示符,输入“n”指令创建分区/dev/sdb1
Command (m for help): n # 创建分区/dev/sdb1
Partition type # 分区类型
p primary (0 primary, 0 extended, 4 free) # 主分区
e extended (container for logical partitions) # 扩展分区
Select (default p): p # 选择主分区类型
Partition number (1-4, default 1): 1 # 选择分区编号1
First sector (2048-209715199, default 2048): # 选择起始扇区,建议直接按回车键
Last sector, +/-sectors or +/-size{
K,M,G,T,P} (2048-209715199, default 209715199): +50GB # 指定分区空间大小
Created a new partition 1 of type 'Linux' and of size 46.6 GiB. # 成功创建/dev/sdb1分区
在选择分区编号的时候,需要注意的是,主分区和扩展分区的编号范围只能1-4,具体可以上网查一下相关资料,这里不在深入讨论。分区编号的起始位置一般从“1”号开始。
第四步:按照提示符,输入“p”指令查看分区/dev/sdb1
Command (m for help): p
Disk /dev/sdb: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x081aa200
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 97658879 97656832 46.6G 83 Linux # /dev/sdb1分区列表
创建分区完成之后,输入“p”指令查看创建好的分区/dev/sdb1列表信息。
第五步:按照提示符,输入“n”指令创建分区/dev/sdb2
Command (m for help): n # 继续创建/dev/sdb2分区
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): p # 选择主分区类型
Partition number (2-4, default 2): 2 # 选择分区编号2
First sector (97658880-209715199, default 97658880): # 选择起始扇区,直接按回车键
Last sector, +/-sectors or +/-size{
K,M,G,T,P} (97658880-209715199, default 209715199): # 选择结束扇区,直接按回车键
Created a new partition 2 of type 'Linux' and of size 53.4 GiB. # 成功创建/dev/sdb1分区
创建/dev/sdb2分区时需要注意,由于在/dev/sdb磁盘上只划分两个分区,所以必须把/dev/sdb磁盘剩余的空间全部分给/dev/sdb2,所以在选择结束扇区的时候,直接按回车键即可。
第六步:按照提示符,输入“p”指令查看分区/dev/sdb2
Command (m for help): p
Disk /dev/sdb: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x081aa200
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 97658879 97656832 46.6G 83 Linux
/dev/sdb2 97658880 209715199 112056320 53.4G 83 Linux # /dev/sdb2分区列表
创建分区完成之后,输入“p”指令查看创建好的分区/dev/sdb2列表信息。
第七步:按照提示符,输入“w”指令保存配置
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
保存了创建分区/dev/sdb1、/dev/sdb2的配置信息之后,我们就可以在Proxmox VE 7.0 界面上直观地看到了/dev/sdb的分区,如图40所示。
除了通过Proxmox VE 7.0 界面查看/dev/sdb的分区信息之外,还可以通过命令行CLI的方式进行查看,如下所列:
root@pve:~# fdisk -l
Disk /dev/sdb: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x081aa200
Device Boot Start End Sectors Size Id Type
/dev/sdb1 2048 97658879 97656832 46.6G 83 Linux
/dev/sdb2 97658880 209715199 112056320 53.4G 83 Linux
4.1.2. 使用fdisk对/dev/sdc进行分区
磁盘/dev/sdc的分区与磁盘/dev/sdb的分区类似,需要注意的是,根据图1所示,数据盘/dev/sdc也划分为/dev/sdc1和/dev/sdc2两个分区。
第一步:创建/dev/sdc1分区和/dev/sdc2
root@pve:~# fdisk /dev/sdc
Welcome to fdisk (util-linux 2.36.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x289f0feb.
Command (m for help): n #创建/dev/sdc1分区
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p # 选择主分区类型
Partition number (1-4, default 1): 1 # 选择分区编号1
First sector (2048-209715199, default 2048): # 选择起始扇区,直接按回车键
Last sector, +/-sectors or +/-size{
K,M,G,T,P} (2048-209715199, default 209715199): +50GB # 选择结束扇区,划分50GB空间
Created a new partition 1 of type 'Linux' and of size 46.6 GiB.
Command (m for help): n #创建/dev/sdc2分区
Partition type
p primary (1 primary, 0 extended, 3 free)
e extended (container for logical partitions)
Select (default p): p # 选择主分区类型
Partition number (2-4, default 2): 2 # 选择分区编号1
First sector (97658880-209715199, default 97658880): # 选择起始扇区,直接按回车键
Last sector, +/-sectors or +/-size{
K,M,G,T,P} (97658880-209715199, default 209715199): # 选择结束扇区,直接按回车键结束
Created a new partition 2 of type 'Linux' and of size 53.4 GiB.
创建/dev/sdc2分区时需要注意,由于磁盘/dev/sdc已经划分了一个分区,所以必须把/dev/sdb磁盘全部空间分给/dev/sdc2,所以在选择结束扇区的时候,直接按回车键即可。
第二步:保存分区配置
Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
保存了创建分区/dev/sdc1的配置信息之后,我们就可以在Proxmox VE 7.0 界面上直观地看到了/dev/sdc的分区,如图41所示。
除了通过Proxmox VE 7.0 界面查看/dev/sdc的分区信息之外,还可以通过命令行CLI的方式进行查看,如下所列:
root@pve:~# fdisk -l
Disk /dev/sdc: 100 GiB, 107374182400 bytes, 209715200 sectors
Disk model: VMware Virtual S
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x289f0feb
Device Boot Start End Sectors Size Id Type
/dev/sdc1 2048 97658879 97656832 46.6G 83 Linux
/dev/sdc2 97658880 209715199 112056320 53.4G 83 Linux
根据图1所示,数据盘/dev/sdd不划分区,那么到了这一步,我们目前磁盘分区创建已经完成了,我们可以通过执行“cat /proc/partitions”命令查看系统内核是否已经识别除了新的硬盘分区,如果没有识别出来,可以执行“partprobe /dev/sdb”命令强制系统加载新的分区表,或者通过重启系统方式使分区生效。
root@pve:~# cat /proc/partitions
major minor #blocks name
11 0 1039928 sr0
8 0 41943040 sda
8 1 1007 sda1
8 2 524288 sda2
8 3 41417711 sda3
8 16 104857600 sdb # /dev/sdb磁盘的分区生效
8 17 48828416 sdb1
8 18 56028160 sdb2
8 32 104857600 sdc # /dev/sdc磁盘的分区生效
8 33 48828416 sdc1
8 34 56028160 sdc2
8 48 104857600 sdd # /dev/sdc磁盘生效,没有分区
253 0 4194304 dm-0
253 1 10223616 dm-1
253 2 1048576 dm-2
253 3 19787776 dm-3
253 4 19787776 dm-4
253 5 19787776 dm-5
253 6 33554432 dm-6
253 7 33554432 dm-7
253 8 33554432 dm-8
253 9 33554432 dm-9
4.2. 使用pvcreate创建物理卷
物理卷就是包含有LVM相关管理参数的磁盘或磁盘分区,位于整个LVM架构的最底层,创建物理卷是实现LVM逻辑管理的第一步,创建物理卷使用到的命令是“pvcreate”。
第一步:将磁盘/dev/sdb的/dev/sdb1分区和/dev/sdb2转换为物理卷
root@pve:~# pvcreate /dev/sdb1
Physical volume "/dev/sdb1" successfully created.
root@pve:~# pvcreate /dev/sdb2
Physical volume "/dev/sdb2" successfully created.
物理卷创建完成之后,可以通过“pvs”命令查看,还可以通过“pvdisplay”来查看系统中所有物理卷的信息。
root@pve:~# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 pve lvm2 a-- <39.50g <4.88g
/dev/sdb1 lvm2 --- <46.57g <46.57g # 物理卷/dev/sdb1
/dev/sdb2 lvm2 --- 53.43g 53.43g # 物理卷/dev/sdb2
root@pve:~# pvdisplay
--- Physical volume ---
PV Name /dev/sda3
VG Name pve
PV Size <39.50 GiB / not usable 2.98 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 10111
Free PE 1248
Allocated PE 8863
PV UUID Ny0mtE-hiIR-IVRB-33aA-dKZe-uKyL-gtbWkM
"/dev/sdb1" is a new physical volume of "<46.57 GiB" # 物理卷/dev/sdb1
--- NEW Physical volume ---
PV Name /dev/sdb1 # 物理卷名称:/dev/sdb1
VG Name # 卷组名称:无,没有加入卷组
PV Size <46.57 GiB # 物理卷/dev/sdb1空间
Allocatable NO # 是否可分配:否
PE Size 0 # 还没加入VG,不能指定PE大小
Total PE 0 # 还没加入VG,不能指定PE大小
Free PE 0 # 还没加入VG,不能指定PE大小
Allocated PE 0 # 还没加入VG,不能指定PE大小
PV UUID busG1F-rL0G-ZyzJ-xno2-0pBO-plxs-rKA34O
"/dev/sdb2" is a new physical volume of "53.43 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb2
VG Name
PV Size 53.43 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID OixLw6-MImQ-ZWyU-XBMb-3iw2-uxn2-iKVBR0
我们通过第三方WEB UI监控来看一下我们刚才所创建的物理卷的信息,如图42所示。
在图42中,我们没有查看到刚才所创建的物理卷信息,其实在物理卷加入卷组之前,第三方WEB UI是无法查看到物理卷组的。
第二步:将磁盘/dev/sdc的/dev/sdc1和/devsdc2分区转换为物理卷
root@pve:~# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created.
root@pve:~# pvcreate /dev/sdc2
Physical volume "/dev/sdc2" successfully created.
物理卷创建完成之后,可以通过“pvs”命令查看,还可以通过“pvdisplay”来查看系统中所有物理卷的信息,不再演示。
第三步:将磁盘/dev/sdd转换为物理卷
root@pve:~# pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created.
root@pve:~# pvs
PV VG Fmt Attr PSize PFree
/dev/sda3 pve lvm2 a-- <39.50g <4.88g
/dev/sdb1 lvm2 --- <46.57g <46.57g
/dev/sdb2 lvm2 --- 53.43g 53.43g
/dev/sdc1 lvm2 --- <46.57g <46.57g
/dev/sdc2 lvm2 --- 53.43g 53.43g
/dev/sdd lvm2 --- 100.00g 100.00g
root@pve:~# pvdisplay
--- Physical volume ---
PV Name /dev/sda3
VG Name pve
PV Size <39.50 GiB / not usable 2.98 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 10111
Free PE 1248
Allocated PE 8863
PV UUID Ny0mtE-hiIR-IVRB-33aA-dKZe-uKyL-gtbWkM
"/dev/sdb1" is a new physical volume of "<46.57 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb1
VG Name
PV Size <46.57 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID G4QEvl-FLjA-HLOy-47ue-pWRx-yZN0-b6NFaL
"/dev/sdb2" is a new physical volume of "53.43 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb2
VG Name
PV Size 53.43 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 9mWUj0-lteJ-LDGj-V1cd-CHi4-jix4-vt0yGl
"/dev/sdc1" is a new physical volume of "<46.57 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc1
VG Name
PV Size <46.57 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID N74Wl8-azXA-LxvN-eB5t-D33X-oosh-u30LSw
"/dev/sdc2" is a new physical volume of "53.43 GiB"
--- NEW Physical volume ---
PV Name /dev/sdc2
VG Name
PV Size 53.43 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID F3dAkc-a2vJ-s6dI-22KU-WBIh-qIVB-oc6Q37
"/dev/sdd" is a new physical volume of "100.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdd
VG Name
PV Size 100.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 31G4SJ-B2J6-uSLL-1t20-VSTM-iIz3-dh0UNH
4.3. 使用vgcreate创建卷组
卷组是LVM架构中的主体,类似于非LVM系统中的磁盘,由一个或若干个物理卷组成。创建卷组用到的命令是vgcreate。注意,在创建卷组时,卷组名称是唯一的,且不可以与/dev中已有的文件名称冲突。
第一步:创建卷组,并将物理卷加入卷组
创建一个名称为“lisq”的卷组,同时将/dev/sdb1和/dev/sdc1这两个物理卷加入到卷组lisq中。
root@pve:~# vgcreate lisq /dev/sdb1 /dev/sdc1
Volume group "lisq" successfully created
创建一个名称为“cdy”的卷组,同时将/dev/sdb2和/dev/sdc2这两个物理卷加入到卷组cdy中。
root@pve:~# vgcreate cdy /dev/sdb2 /dev/sdc2
Volume group "cdy" successfully created
创建一个名称为“lixs”的卷组,同时将/dev/sdd这个物理卷加入到卷组lixs中。
root@pve:~# vgcreate lixs /dev/sdd
Volume group "lixs" successfully created
卷组创建完成之后,可以通过“vgs”命令查看,还可以用vgdisplay命令查看所有卷组或指定卷组的信息。
root@pve:~# vgs
VG #PV #LV #SN Attr VSize VFree
cdy 2 0 0 wz--n- <106.86g <106.86g # 卷组cdy,由2个pv组成
lisq 2 0 0 wz--n- 93.12g 93.12g # 卷组lisq,由2个pv组成
lixs 1 0 0 wz--n- <100.00g <100.00g # 卷组lixs,由1个pv组成
pve 1 7 0 wz--n- <39.50g <4.88g
root@pve:~# vgdisplay
--- Volume group ---
VG Name lixs # 卷组lixs
System ID
Format lvm2
Metadata Areas 1 # 元数据区,包含有1个物理卷的元数据
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0 # 还没有创建LV,不能指定LV
Cur LV 0 # 还没有创建LV,不能指定LV
Open LV 0 # 还没有创建LV,不能指定LV
Max PV 0 # PV最大数量,没有给出数值
Cur PV 1 # 当前PV数量,4个当前PV
Act PV 1 # 生效PV数量,4个生效PV
VG Size <100.00 GiB # VG空间大小等于物理卷之和
PE Size 4.00 MiB # 加入VG之后才能指定PE大小
Total PE 25599
Alloc PE / Size 0 / 0
Free PE / Size 25599 / <100.00 GiB
VG UUID nWU1m1-41HC-uzC4-b1NF-cx1k-VKBm-VjWEdL
--- Volume group ---
VG Name cdy
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 <106.86 GiB
PE Size 4.00 MiB
Total PE 27356
Alloc PE / Size 0 / 0
Free PE / Size 27356 / <106.86 GiB
VG UUID 9zKoqV-1S1l-v8yS-gDF6-CYDP-cZaw-MxTnih
--- Volume group ---
VG Name lisq
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 93.12 GiB
PE Size 4.00 MiB
Total PE 23840
Alloc PE / Size 0 / 0
Free PE / Size 23840 / 93.12 GiB
VG UUID V5jvss-iRJM-Q2gY-85J6-mGmv-uTtb-6OTjXg
--- Volume group ---
VG Name pve
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 23
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 7
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size <39.50 GiB
PE Size 4.00 MiB
Total PE 10111
Alloc PE / Size 8863 / 34.62 GiB
Free PE / Size 1248 / <4.88 GiB
VG UUID H60lKU-9yzf-4t64-NvQK-MQkU-PFp9-Vg3Xds
我们就可以在Proxmox VE 7.0 界面上查看一下磁盘分区的变化情况,我们可以看到/dev/sdb1、/dev/sdb1、/dev/sdc1和/dev/sdd的类型已经变为“LVM”了,分区,如图43所示。
我们在到Proxmox VE 7.0 的LVM界面查看刚才所创建的卷组lisq,如图44所示,从图44中可以看到,卷组lisq由/dev/sdb1和/dev/sdc1这两个逻辑卷组成,卷组cdy由/dev/sdb2和/dev/sdc2这两个卷组组成,卷组lixs由/dev/sdd这个物理卷组成。
我们再来通过第三方WEB UI界面来看一下LVM信息,可以看到物理卷在加入了卷组之后,WEB UI界面才显示物理卷的信息,如图45所示。同时也可以在卷组界面中,查看卷组的信息,如图46所示。