Local-LVM 和 目录存储的比较
Proxmox VE 使用默认配置安装,会在硬盘上安装LVM,如果硬盘硬盘超过200G,大约会划分100G用于 root,剩余部分用于 data。 如果空间不足200GB,会按照比例,减少 root 和 data 的空间。 其中data 以lvm-thin 方式管理数据,在 Proxmox VE的数据中心中登记为 local-lvm 存储。
root@pve:~# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data pve twi-a-tz-- 45.24g 0.00 1.59
root pve -wi-ao---- <35.88g
swap pve -wi-ao---- 4.00g
LVM-thin与LVM相比,支持精简配置,链接克隆。 由于LVM-thin是通过逻辑卷管理虚拟机的磁盘,缺少文件系统这一层,实际的IO效率比采用 qcow2 + 文件系统方式,性能要低一些。
在云教室场景下,如果采用LVM-thin的存储方式,系统的整体性能会比采用文件系统(qcow2+文件系统)低很多。因此建议将LVM-thin改成目录存储的方式。提高系统的整体IO性能。
典型的50用户云教室配置下(采用960G 企业级 SATA SSD),如果使用LVM-thin模式,桌面的创建速度、还原速度,会明显比采用目录方式慢。 PVE采用目录方式的桌面创建速度,与采用Hyper-V虚拟化时接近。
因此,建议Proxmox VE安装后,将LVM-thin改造成目录存储方式。 目录的文件系统可以选 xfs 或者 ext4 。 xfs 的设计适用于大文件,高IO的应用场景,更适合于虚拟机存储。
情况1:将Local-LVM改造成基于XFS的目录存储
如果主机只有一个SSD,并且这个硬盘用于虚拟机的存储,我们可以把 Local-LVM 改造成基于 XFS 的目录存储。
pvesh delete /storage/local-lvm
umount /dev/pve/data
lvremove /dev/pve/data -y
vgdisplay pve | grep Free | awk '{print "lvcreate -l " $5 " -n data pve -y"}' |bash
mkfs.xfs /dev/pve/data
mkdir /mnt/data
mount /dev/pve/data /mnt/data
echo "/dev/pve/data /mnt/data xfs defaults 0 0" >> /etc/fstab
pvesm add dir data --path=/mnt/data
情况2:删除 local-lvm,空间增加到 local
如果主机还有其他磁盘用于存放虚拟机,我们可以把启动盘上 local-lvm 存储删除,将空间全部分配给 local。 可以使用如下脚本:
pvesh delete /storage/local-lvm
umount /dev/pve/data
lvremove /dev/pve/data -y
lvextend -l +100%FREE -f /dev/pve/root
resize2fs /dev/mapper/pve-root