我使用ProxMox搭建了一个家庭虚拟化实验室,ProxMox 是一款免费且功能强大的虚拟化主机。在使用 ProxMox 之前,我尝试过:
- VMware ESXi:免费版不支持克隆?再见。
- XCP-ng:在我的普通 x86 系统上出现了几次安装程序崩溃,我决定不花时间去追踪问题。
- Unraid:无需付费即可享受他人免费提供的服务。
目前为止,Proxmox 运行非常流畅。主机是一台小巧的 i5 四核八线程迷你电脑,配备 64GB 内存,并搭载一块 256GB mSATA 硬盘和一块 2TB SSD 固态硬盘。我选择这套硬件是因为它无风扇且体积小巧,这对于我狭小的办公室来说至关重要。
我刚开始创建虚拟机的时候,没太注意,最初的十几个虚拟机都装在了mSATA硬盘上。现在我想把其中一些迁移到SSD硬盘上。
使用 Proxmox,这一切都变得简单透明。您无需将虚拟机离线。我们来演示一下,看看实际效果。
我已经登录 Proxmox 并导航到我的虚拟机:

您可以看到它有一个 20GB 的硬盘,并且位于“local-lvm”上。点击顶部的“移动磁盘”,会弹出以下对话框:

“local-lvm”是mSATA硬盘,容量为256GB,但部分空间被Proxmox操作系统、镜像仓库等占用。“ssd2tbthin”是2TB固态硬盘。请注意,两者的类型均为“lvmthin”,这意味着它们将采用精简配置(不会一次性分配所有磁盘空间,而是按需分配)。
我选择了“ssdtbthin”,并且勾选了“删除源”。然后我登录到我的虚拟机,在点击“移动磁盘”之前启动了 ioping 命令。虚拟机在整个迁移过程中都能正常运行吗?让我们拭目以待……
以下是 Proxmox 中虚拟机迁移输出的开头部分:

然后,当一切结束时:

与此同时,我在主机上执行了 ioping 操作:
root@crash:~# ioping . 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=1 时间=322.7 微秒(预热) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=2 时间=1.61 毫秒 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=3 时间=1.56 毫秒 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=4 时间=349.5 微秒 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=5 时间=268.5 微秒 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=6 时间=16.0 毫秒 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=7 时间=3.80 毫秒 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=8 时间=310.8 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=9 时间=15.6 毫秒(慢) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=10 时间=17.7 毫秒(慢) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=11 时间=42.5 毫秒(慢) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=12 时间=10.3 毫秒 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=13 时间=206.3 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=14 时间=279.0 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=15 时间=383.1 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=16 时间=327.1 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=17 时间=392.9 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=18 时间=274.4 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=19 时间=271.1 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=20 时间=375.8 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=21 时间=24.7 毫秒 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=22 时间=360.5 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=23 时间=374.2 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=24 时间=290.6 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=25 时间=306.2 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=26 时间=43.0 毫秒(慢) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=27 时间=28.3 毫秒 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=28 时间=294.9 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=29 时间=323.4 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=30 时间=17.1 毫秒 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=31 时间=307.2 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=32 时间=298.0 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=33 时间=357.9 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=34 时间=321.3 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=35 时间=353.6 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=36 时间=346.4 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=37 时间=311.5 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=38 时间=311.2 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=39 时间=4.43 毫秒 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=40 时间=347.8 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=41 时间=320.5 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=42 时间=321.4 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=43 时间=362.3 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=44 时间=1.53 毫秒(快) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=45 时间=1.56 毫秒(快) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=46 时间=1.50 毫秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=47 时间=1.54 毫秒(快) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=48 时间=342.7 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=49 时间=359.7 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=50 时间=200.9 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=51 时间=329.2 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=52 时间=2.48 毫秒 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=53 时间=304.2 微秒(快速) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=54 时间=2.32 毫秒(快) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=55 时间=2.33 毫秒(快) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=56 时间=2.29 毫秒(快) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=57 时间=2.31 毫秒(快) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=58 时间=2.29 毫秒(快) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=59 时间=2.28 毫秒(快) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=60 时间=2.26 毫秒(快) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=61 时间=2.35 毫秒 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=62 时间=2.35 毫秒 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=63 时间=2.32 毫秒(快) 4 KiB <<< . (ext4 /dev/sda1 18.2 GiB): 请求=64 时间=2.27 毫秒(快) ^C --- . (ext4 /dev/sda1 18.2 GiB) ioping 统计信息 --- 63 个请求已完成,耗时 271.4 毫秒,读取数据 252 KiB,IOPS 为 232,传输速度为 928.4 KiB/s。 生成了 64 个请求,耗时 1.06 分钟,文件大小为 256 KiB,IOPS 为 1,传输速率为 4.03 KiB/s。 最小值/平均值/最大值/标准差 = 200.9 微秒 / 4.31 毫秒 / 43.0 毫秒 / 9.10 毫秒
所以通常情况下,磁盘读写时间在 4-5 毫秒左右,考虑到同时还有其他程序在运行,这个速度还不错。磁盘读写时间偶尔会下降,最低接近 29 毫秒,但除此之外,我觉得系统响应很流畅。而且:
root@crash:~# 运行时间 09:37:36 上升 1 天,12:19, 1 位用户, 平均负载:0.00、0.00、0.00
太好了!现在我要去做剩下的事了。