4.4. 使用lvcreate创建逻辑卷
卷组是LVM架构中的核心,类似于非LVM系统中的磁盘分区,逻辑卷是我们最终所使用的对象,在卷组中创建逻辑卷,用到的命令是lvcreate。事实上,LVM有两种模式,分别为非Thin模式和Thin模式,在非Thin模式下,命令基本格式如下:
lvcreate -L 容量大小 -n 逻辑卷名 卷组名
在Thin模式下,命令基本格式如下:
lvcreate --thin -L 容量大小 -n 逻辑卷名 卷组名
根据图1所示,我们要在lisq卷组中创建Thin模式的逻辑卷,并挂载在LVM-Thin存储点上。在创建逻辑卷之前,我们必须知道lisq卷组的空间大小,可以通过命令“vgs”来查看到lisq卷组空间大小是90GB。
root@pve:~# vgs
VG #PV #LV #SN Attr VSize VFree
cdy 2 0 0 wz--n- <106.86g <106.86g
lisq 2 0 0 wz--n- 93.12g 93.12g
lixs 1 0 0 wz--n- <100.00g <100.00g
pve 1 7 0 wz--n- <39.50g <4.88g
在创建逻辑卷之前,我们要做好逻辑卷名称以及空间大小的规划。根据图1所示,我们要从lisq卷组中创建名称为“mydata”且容量为90GB的LVM-Thin逻辑卷,从lixs卷组中创建名称为“mydir”且容量为95GB的LVM逻辑卷,cdy卷组中不创建逻辑卷。
r
oot@pve:~# lvcreate --thin -L 90G -n mydata lisq # 创建LVM-Thin模式逻辑卷
Thin pool volume with chunk size 64.00 KiB can address at most 15.81 TiB of data.
Logical volume "mydata" created.
root@pve:~# lvcreate -L 95G -n mydir lixs # 创建LVM模式逻辑卷
Logical volume "mydir" created.
逻辑卷创建完成之后,我们可以通过“lvs”命令查看,还可以通过“lvdisplay”命令查看逻辑卷的详细信息。
root@pve:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mydata lisq twi-a-tz-- 90.00g 0.00 10.42 # LVM-Thin模式逻辑卷空间大小
mydir lixs -wi-a----- 95.00g # LVM模式逻辑卷空间大小
data pve twi-aotz-- 18.87g 0.00 1.58
root pve -wi-ao---- 9.75g
swap pve -wi-ao---- 4.00g
vm-100-disk-0 pve Vwi-a-tz-- 32.00g data 0.00
vm-100-disk-1 pve Vwi-a-tz-- 32.00g data 0.00
vm-101-disk-0 pve Vwi-a-tz-- 32.00g data 0.00
vm-101-disk-1 pve Vwi-a-tz-- 32.00g data 0.00
root@pve:~# lvdisplay
--- Logical volume ---
LV Path /dev/lixs/mydir # LVM逻辑卷mydir文件路径
LV Name mydir # LVM逻辑卷名称:mydir
VG Name lixs # 卷组名称:lixs
LV UUID bIaKsE-7ezS-rrTS-epe0-yvqB-AzZl-7J4nCM
LV Write Access read/write
LV Creation host, time pve, 2021-09-30 23:14:01 +0800
LV Status available
# open 0
LV Size 95.00 GiB # LVM逻辑卷mydir空间大小
Current LE 24320
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:13
--- Logical volume ---
LV Name mydata # LVM-Thin逻辑卷mydata文件路径
VG Name lisq # 卷组名称:lixs
LV UUID wHEz7Q-U7bF-Dota-JXm3-vwor-cPoa-XZRnjL
LV Write Access read/write
LV Creation host, time pve, 2021-09-30 23:13:09 +0800
LV Pool metadata mydata_tmeta # 元数据池,用于存放管理和检索虚拟机的数据
LV Pool data mydata_tdata # 数据池,用于存放虚拟机磁盘
LV Status available
# open 0
LV Size 90.00 GiB # LVM-Thin逻辑卷mydata空间大小
Allocated pool data 0.00%
Allocated metadata 10.42%
Current LE 23040
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:12
注意,mydir逻辑卷是LVM模式的,是一个文件设备,设备名称为“/dev/lixs/mydir”。而mydata逻辑卷是LVM-Thin模式,是一个LV Pool,一旦在mydata创建虚拟机磁盘,则“/dev/lisq/mydata”自动被删取而代之的是虚拟机磁盘逻辑卷,具体请参考关于“data逻辑卷章节”。
root@pve:~# ls /dev/lixs
mydir
root@pve:~# ls /dev/lisq
mydata
我们在第三方WEB UI监控界面上,可以看到我们所创建的LVM-Thin mydata逻辑卷、LVM mydir逻辑卷,如图47所示。
我们也可以通过“lsblk -f”命令行CLI来查看更详细的逻辑卷信息:
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
├─sdb1 LVM2_member LVM2 001 G4QEvl-FLjA-HLOy-47ue-pWRx-yZN0-b6NFaL
│ ├─lisq-mydata_tmeta # LVM-Thin逻辑卷mydata的元数据池
│ │ └─lisq-mydata
│ └─lisq-mydata_tdata # LVM-Thin逻辑卷mydata的数据池
│ └─lisq-mydata
└─sdb2 LVM2_member LVM2 001 9mWUj0-lteJ-LDGj-V1cd-CHi4-jix4-vt0yGl
sdc
├─sdc1 LVM2_member LVM2 001 N74Wl8-azXA-LxvN-eB5t-D33X-oosh-u30LSw
│ └─lisq-mydata_tdata # LVM-Thin逻辑卷mydata的数据池
│ └─lisq-mydata
└─sdc2 LVM2_member LVM2 001 F3dAkc-a2vJ-s6dI-22KU-WBIh-qIVB-oc6Q37
sdd LVM2_member LVM2 001 31G4SJ-B2J6-uSLL-1t20-VSTM-iIz3-dh0UNH
└─lixs-mydir # LVM逻辑卷mydir
sr0 iso9660 PVE 2021-07-05-19-15-41-00
通过上面的讲解,我们现在应该知道mydata逻辑卷实际上和默认的data逻辑卷一样,是一个LVM-Thin模式逻辑卷,是一个精简池,我们到Proxmox VE 7.0界面中看一下这个精简池,如图48所示。
接着我们到Proxmox VE 7.0界面中再来看一下卷组的使用率情况,通过这个卷组的使用率,给大家讲解一下这个界面的含义,如图49所示。
从图49中可以知道,cdy卷组目前的使用率为0%,也就是说到目前为止,我们并没有在卷组上创建逻辑卷(类似于磁盘分区)。lisq卷组目前的使用率为97%,也就是说到目前为止,我们在lisq卷组上创建了LVM-Thin模式逻辑卷mydata,这个mydata空间大小为90GB,占整个lisq逻辑卷空间的97%。lixs卷组目前的使用率为95%,也就是说到目前为止,我们在lixs卷组上创建了LVM模式逻辑卷mydir,这个mydir空间大小是95GB,占整个lixs逻辑卷空间的95%。
4.5. 使用mkfs创建文件系统(格式化逻辑卷)
逻辑卷创建完成之后,我们就可以像正常的磁盘分区一样使用逻辑卷了,但是在使用逻辑卷之前首先要将逻辑卷进行格式化。
所谓格式化逻辑卷,其实也就是在逻辑卷上创建文件系统,我们采用ext4文件系统来格式化逻辑卷,格式化操作如下:
root@pve:~# mkfs -t ext4 /dev/lixs/mydir # mydir逻辑卷创建ext4文件系统
mke2fs 1.46.2 (28-Feb-2021)
Creating filesystem with 24903680 4k blocks and 6225920 inodes
Filesystem UUID: 1f5c23fe-eaf2-43b4-a274-43e9e12fc1ce
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done
Writing inode tables: done
Creating journal (131072 blocks): done
Writing superblocks and filesystem accounting information: done
注意,这里我只格式化了LVM模式的mydir逻辑卷,因为mydir逻辑卷要挂载到“目录”存储点上,而mydata需要挂载到“LVM-Thin”存储点上,cdy卷组需要挂载到“LVM”存储点上,这两者无需进行格式化,主要是在挂载到“LVM-Thin”和“LVM”存储点时,Proxmox VE 7.0会自动处理。也就是说,挂载到“目录”存储点上的LVM模式逻辑卷需要进行格式化并创建文件系统。
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
├─sdb1 LVM2_member LVM2 001 G4QEvl-FLjA-HLOy-47ue-pWRx-yZN0-b6NFaL
│ ├─lisq-mydata_tmeta
│ │ └─lisq-mydata
│ └─lisq-mydata_tdata
│ └─lisq-mydata
└─sdb2 LVM2_member LVM2 001 9mWUj0-lteJ-LDGj-V1cd-CHi4-jix4-vt0yGl
sdc
├─sdc1 LVM2_member LVM2 001 N74Wl8-azXA-LxvN-eB5t-D33X-oosh-u30LSw
│ └─lisq-mydata_tdata
│ └─lisq-mydata
└─sdc2 LVM2_member LVM2 001 F3dAkc-a2vJ-s6dI-22KU-WBIh-qIVB-oc6Q37
sdd LVM2_member LVM2 001 31G4SJ-B2J6-uSLL-1t20-VSTM-iIz3-dh0UNH
└─lixs-mydir ext4 1.0 1f5c23fe-eaf2-43b4-a274-43e9e12fc1ce # 创建了文件系统
sr0 iso9660 PVE 2021-07-05-19-15-41-00
4.6. 挂载存储点
在Proxmox VE 7.0界面中,可以挂载多达12种类型的存储,LVM-Thin模式的mydata逻辑卷适合挂载到“LVM-Thin”存储点上,LVM模式的mydir逻辑卷适合挂载到“LVM”存储点上,cdy卷组适合挂载到“目录”存储点上,如图50所示。
在Proxmox VE 7.0中,逻辑卷有两种模式,分为LVM-Thin(Thin)模式和LVM(非Thin)模式,Proxmox VE 7.0中內建的local-lvm 的格式是 LVM-Thin。
LVM-Thin模式逻辑卷在使用上有好处,也有坏处:
- 好处,在创建虚拟机和容器时,具备快照功能,而且LVM-Thin可以超配磁盘空间;
- 坏处,只能存放虚拟机和容器文件,无法存放其他类型的文件;
LVM模式逻辑卷在使用上有好处,也有坏处:
- 好处,可以存放包括虚拟机和容器等多种文件类型(Proxmox VE限定LVM也只能存放虚拟机和容器文件);
- 坏处,虚拟机和容器没有快照功能,且LVM存储不能超配磁盘空间;
4.6.1. mydata逻辑卷挂载到LVM-Thin存储点
第一步:选择LVM-Thin挂载点
把LVM-Thin模式的mydata逻辑卷挂载到LVM-Thin存储点上,用于存放虚拟机磁盘和容器磁盘,首先我们先选择LVM-Thin挂载点,如图51所示。
第二步:挂载LVM-Thin模式逻辑卷
在弹出的LVM-Thin界面中,填写LVM-Thin存储池名称、选择卷组以及精简池,如图52所示。
LVM-Thin存储池添加成功之后,我们会在Proxmox VE 7.0左侧导航树中出现“lisq-lvm-thin”存储标识,同时在有窗口也挂载上了lisq-lvm-thin存储池,如图53和图54所示。
第三步:创建虚拟机检测使用情况
在创建虚拟机的界面中,存储池选择“lisq-lvm-thin”,从存储池 “lisq-lvm-thin”中切存储块来用作虚拟机磁盘,虚拟机磁盘可根据实际情况进行设置,如图55所示。
虚拟机创建成功,虚拟机磁盘存放在lisq-lvm-thin存储池中,且虚拟机可以正常启动,如图56所示。
4.6.2. cdy卷组挂载到LVM存储点
第一步:选择LVM挂载点
把cdy卷组卷挂载到LVM存储点上,用于存放虚拟机磁盘和容器磁盘,首先我们先选择LVM挂载点,如图57所示。
第二步:挂载卷组
LVM存储点只能挂载卷组,在弹出的LVM界面中,填写LVM存储池名称、选择卷组以及精简池,如图58所示。
LVM存储池添加成功之后,我们会在Proxmox VE 7.0左侧导航树中出现“cdy”存储标识,同时在有窗口也挂载上了cdy存储池,如图59和图60所示。
第三步:创建虚拟机检测使用情况
在创建虚拟机的界面中,存储池选择“cdy”,从存储池 “cdy”中切存储块来用作虚拟机磁盘,虚拟机磁盘可根据实际情况进行设置,如图61所示。
虚拟机创建成功,虚拟机磁盘存放在cdy存储池中,且虚拟机可以正常启动,如图62所示。
虚拟机创建成功之后,我们在Proxmox VE 7.0界面中再来看一下cdy卷组的使用率情况,如图63所示。
4.6.3. mydir逻辑卷挂载到目录存储点
第一步:在Proxmox VE后台创建挂载点
root@pve:~# mkdir /var/mydir # 创建挂载点/var/mydir
第二步:修改/etc/fstab文件,实现永久挂载
root@pve:~# vim /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
/dev/pve/root / ext4 errors=remount-ro 0 1
/dev/pve/swap none swap sw 0 0
proc /proc proc defaults 0 0
/dev/lixs/mydir /var/mydir ext4 defaults 0 0 # 在最后添加这一句,永久挂载
root@pve:~# df -hT | grep -v tmpfs # 查看挂载是否成功,有时候需要重启
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/pve-root ext4 9.5G 5.9G 3.2G 65% /
/dev/mapper/lixs-mydir ext4 93G 24K 89G 1% /var/mydir # 挂载成功
/dev/fuse fuse 128M 20K 128M 1% /etc/pve
第三步:在Proxmox VE界面选择目录挂载点
把LVM模式的逻辑卷挂载到“目录”存储点上,用于存放虚拟机磁盘和容器磁盘,也可以存放其他格式的文档,首先我们先选择“目录”挂载点,如图64所示。
第四步:挂载LVM模式逻辑卷
“目录”存储点适合挂载LVM模式的逻辑卷,在弹出的LVM界面中,填写“目录”存储池名称、目录路径以及存储内容,如图65所示。
“目录”存储池添加成功之后,我们会在Proxmox VE 7.0左侧导航树中出现“lixs-lvm”存储标识,同时在有窗口也挂载上了lixs-lvm存储池,如图66和图67所示。
第五步:创建虚拟机检测使用情况
在创建虚拟机的界面中,存储池选择“lixs-lvm”,从存储池 “lixs-lvm”中切存储块来用作虚拟机磁盘,虚拟机磁盘可根据实际情况进行设置,如图68所示。