3.7. 逻辑卷管理(LVM)

大多数人直接在本地磁盘上安装Proxmox VE。Proxmox VE 安装 CD 提供了多个本地磁盘管理选项,并且默认使用 LVM。安装程序允许您为此类设置选择单个磁盘,并将该磁盘用作 Volume Group (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
  • root 格式化为 ext4,并包含Proxmox VE的系统

  • swap 交换分区

  • data 格式化为lvm精简卷(lvm-thin),,用于存储 VM 映像。因它为快照和克隆提供了有效的支持,所以LVM-thin 更适合此场景。

对于 Proxmox VE 4.1以前版本(包括 4.1),安装程序会创建一个名为data的标准逻辑卷,该逻辑卷挂载在 /var/lib/vz

从版本 4.2 开始,逻辑卷data是一个 LVM 精简池,用于存储基于块的客户机映像,而 /var/lib/vz 只是根文件系统上的一个目录。

3.7.1. 硬件

我们强烈建议使用硬件 RAID 控制器(带电池)进行此类设置。这样不仅可以提高性能,而且还可以提供冗余,并且磁盘可热插拔更换。

LVM本身不需要任何特殊的硬件,内存要求非常低

3.7.2. 创建卷组

假设我们有一个空磁盘 /dev/sdb,我们要在它上面创建一个名为”vmdata”的卷组。

注意:请注意,以下命令将清空 /dev/sdb 上的所有现有数据。

首先创建一个分区。

sgdisk -N 1 /dev/sdb

创建一个未确认的 Physical Volume (PV) 和 250K 元数据大小。

pvcreate --metadatasize 250k -y -ff /dev/sdb1

在 /dev/sdb1 上创建名为”vmdata”的卷组

vgcreate vmdata /dev/sdb1

3.7.4. 为 /var/lib/vz 创建一个额外的 LV

下面命令可以轻松创建一个LV。

lvcreate -n <Name> -L <Size[M,G,T]> <VG>

如在pve卷组下创建一个名为vz的10g lv

 lvcreate -n vz -L 10G vmdata

接着在做个。

 mkfs.ext4 /dev/vmdata/vz

最后,必须安装它。

注意确保 /var/lib/vz 为空。如果是默认安装,那么不为空。

为了使其始终可访问,请在 /etc/fstab 中添加以下行。

echo '/dev/pve/vz /var/lib/vz ext4 defaults 0 2' >> /etc/fstab

3.7.6. 创建 LVM 精简池

在vmdata卷组上,创建一个名为data,大小为10G的精简池。

lvcreate -L 10G -T -n data vmdata

3.7.5. 调整精简池的大小

可以使用以下命令调整 LV 和元数据池的大小。

注意:扩展数据池时,还必须扩展元数据池。

lvresize --size +<size[\M,G,T]> --poolmetadatasize +<size[\M,G]> <VG>/<LVThin_pool>

将data精简池增加10G,同时将元数据池增加1G

 lvresize --size +10G --poolmetadatasize +1G vmdata/data