逻辑卷管理器(LVM)
大多数人会将 {pve} 直接安装在本地磁盘上。{pve} 安装光盘提供了几种本地磁盘管理选项,当前默认设置使用 LVM。安装程序允许你选择单个磁盘进行此类设置,并将该磁盘用作卷组(VG)`pve`的物理卷。以下输出来自使用小型8GB硬盘的测试安装:
# pvs PV VG Fmt Attr PSize PFree /dev/sda3 pve lvm2 a-- 7.87g 876.00m # vgs VG #PV #LV #SN Attr VSize VFree pve 1 3 0 wz--n- 7.87g 876.00m
安装程序在此卷组(VG)内分配了三个逻辑卷(LV):
# lvs LV VG Attr LSize Pool Origin Data% Meta% data pve twi-a-tz-- 4.38g 0.00 0.63 root pve -wi-ao---- 1.75g swap pve -wi-ao---- 896.00m
- 根
-
格式化为`ext4`,并包含操作系统。
- 交换
-
交换分区
- 数据
-
这个卷使用了LVM-thin,用于存储虚拟机映像。LVM-thin更适合这项任务,因为它为快照和克隆提供了高效的支持。
对于4.1及以前版本的{pve},安装程序会创建一个名为``data''的标准逻辑卷,它被挂载在`/var/lib/vz`路径下。
从版本4.2开始,逻辑卷``data''是一个LVM-thin池,用于存储基于块的客户镜像,而`/var/lib/vz`仅仅是根文件系统上的一个目录。
硬件
我们强烈建议在此类设置中使用具有电池备份单元(BBU)的硬件RAID控制器。这样可以提高性能,提供冗余,并且使硬盘更换更容易(支持热插拔)。
LVM本身不需要任何特殊硬件,且内存需求非常低。
引导加载程序
我们默认安装了两个引导加载程序。第一个分区包含标准的GRUB引导加载程序。第二个分区是一个EFI系统分区(ESP),这使得在EFI系统上启动成为可能,并且可以从用户空间应用持久的固件更新。
创建卷组
假设我们有一个空的硬盘`/dev/sdb`,我们想在其上创建一个名为``vmdata''的卷组。
Caution
|
请注意,以下命令将会销毁 /dev/sdb 上的所有现有数据。
|
首先创建一个分区。
sgdisk -N 1 /dev/sdb
创建一个物理卷(PV),不需要确认并且设置250K的元数据大小。
# pvcreate --metadatasize 250k -y -ff /dev/sdb1
在`/dev/sdb1`上创建一个名为``vmdata''的卷组。
# vgcreate vmdata /dev/sdb1
为 /var/lib/vz
创建一个额外的逻辑卷
这可以通过创建一个新的薄卷(LV)来轻松完成。
# lvcreate -n <Name> -V <Size[M,G,T]> <VG>/<LVThin_pool>
一个真实世界的例子:
lvcreate -n vz -V 10G pve/data
现在必须在逻辑卷上创建一个文件系统。
mkfs.ext4 /dev/pve/vz
最后这必须被安装。
Warning
|
请确保`/var/lib/vz`是空的。在默认安装中它不是空的。 |
要使它始终可访问,请将以下行添加到`/etc/fstab`中。
echo '/dev/pve/vz /var/lib/vz ext4 defaults 0 2' >> /etc/fstab
调整细分池的大小
使用以下命令调整LV和元数据池的大小:
lvresize --size +<size[\M,G,T]> --poolmetadatasize +<size[\M,G]> <VG>/<LVThin_pool>
Note
|
当扩展数据池时,元数据池也必须被扩展。 |
创建一个LVM-thin池
必须在卷组上创建一个薄池。如何创建卷组,请参见LVM部分。