虚拟化三巨头怎么选

目前搞机里,虚拟化 Hypervisor 三巨头有:VMware vSphere ESXi,Microsoft Hyper-V 和 Proxmox Virtual Environment(PVE)。他们都是 Type 1 Hypervisor,虚拟化损耗比 Type 2 的 VMware Workstation 等要小。

ESXi

作为服务器界广泛使用的商业闭源 Hypervisor 一哥,它有很多优点,但是我没有使用的唯一原因是网卡不支持,压根安装不了。使用服务器级别的硬件(特别是戴尔 EMC 全家桶)或者自行注入驱动可解决,但是我是穷鬼+懒狗。

Hyper-V

硬件兼容性比 ESXi 好,还捆绑个 Windows Server 作为图形化管理界面。我没有使用的原因也正是捆绑的 Server 对低性能硬件而言是个不小的开销。

2023.10.18 更新:上面不完全正确。事实上,完全可以安装无 GUI 的 core 版本,降低操作系统开销;然后用服务器管理器或者 Windows Admin Center 远程管理服务器。参见:

在 Windows Server 上安装 Hyper-V 角色 | Microsoft Learn

“服务器核心”与“带桌面体验的服务器”安装选项 | Microsoft Learn

服务器管理器 | Microsoft Learn - 从客户端计算机管理远程计算机

开始使用 Windows Admin Center | Microsoft Learn

PVE

基于 KVM 的开源虚拟化软件。由于基于 debian,硬件兼容性也比 ESXi 要好。

基于此,有一个优势是,如果物理机性能确实捉襟见肘,那么可以在 PVE 上做事,而不用单独虚拟一个 debian(虽然这属实是有点厕所里打灯笼——找屎了)。

PVE 中文文档:Promxox VE 中文文档 7.1 文档

配置单

价格

2023年10月中旬价格,仅供参考。

配件价格
3865U 矿机主板,送 6pin 转 5525 DC 线67
4G DDR4 笔记本内存25
128G MSATA 固态30
12V5A 电源适配器8
纸盒机箱0
总计130

板U

英特尔赛扬 3865U 双核双线程 1.8GHz,带 HD610 核显,支持 VT-D 和 VT-X 虚拟化,实属入门软路由和虚拟化的好 U。不过,目前海鲜市场上正经的 3865U 板子都要快200。那么有没有不正经的呢?有,就是矿潮狂欢结束后的矿机主板。这类主板以缩水缩得妈都不认识为代价,把价格降到了五六十。

我这块板子最大的问题是没有 SATA 口,做不了 NAS。不过我不在乎,因为我是用来做软路由的。

这玩意的全核跑分勉强抵得上 3700X 一个核心的跑分

存储固态

同一个海鲜店一起买的。如果要开多台虚拟机,内存和硬盘最好加更大。

电源适配器

随便并夕夕整个 12V4A 以上的 5525 DC 电源就可。

其他配件

风扇不是必要的,3865U 功耗很低。我的是从抽屉里摸出一个多余的风扇用。记得买 5V 的风扇

机箱直接用板 U 的包装盒做机箱,发扬图吧精神~

此外我还买了个 8 口千兆交换机 ¥50,因为不是必要的就没算进去。

装机

矿机 3865U 主板有带风扇和不带风扇两种,带风扇的有个问题是因为缩水导致风扇没有温控,直接满速运行,活像飞机发动机。不带风扇露天也能压住,不过因为我打算丢进盒子里,所以还是选了有风扇的,不过整多了个无风扇的散热器。

到手之后拆了带风扇的飞机发动机散热器,装上无风扇的散热器,然后插上自己的 9025 风扇。结果发现,怎么 9025 风扇转速这么慢?一看,原来的小风扇是 5V , 9025 风扇是 12V,电压不够。变相起到了降速效果,不过是否有不良影响尚待观察。

飞机发动机散热,烤机温度只有33度,空调27度
开放式被动散热,56度还行
飞机发动机的电压是 5V 的
板子裸照,已换上无风扇散热器
经典鞋盒机箱
封闭式被动散热,只运行了软路由而非烤机,室温27度左右,纸盒机箱摸着温热而散热片稍微烫手

制作启动盘

首先准备一个大于 4G 的空 U 盘

然后下载最新的 PVE ISO 镜像:Download Proxmox software(别下错了)。

之后到这个网址下载 Ventoy Windows 版本,这个是个用于制作启动盘的神器。

然后解压并启动 Ventoy,在空 U 盘上安装 Ventoy。之后将下好的 PVE ISO 复制到 U 盘上即可。

安装 PVE

给鞋盒主机插上键鼠显示器网线,以及做好的启动 U 盘,插电开机。

自行引导到 U 盘(我的矿机板子不需要任何设置,即可自动 U 盘引导),进入 Ventoy。选中并回车 PVE 镜像。

选择 normal mode

之后进入 PVE 安装界面。

重要

因为安装的过程没有拍照,所以下面的图片用虚拟机的截图代替。步骤是一样的。

首先回车进入图形安装界面。

直接回车

备注

如果你卡在检测国家(如下图),可以拔掉网线,强制重启,安装完毕后再插回网线。

鼠标点击右下角的 agree,点击 next 遵从默认的硬盘设置(多个硬盘这里选择想要安装到的硬盘)。

国家打字 China,时区选上海,键盘布局默认。

填写 root 账号密码和邮箱。

选择网口,域名自己写个喜欢的(没什么用,但是三级域名会被当作主机名,比如下图的 hahaha),IP 写个局域网内还没被占有的 IP,网关和 DNS 服务器一般写路由器局域网 IP。

取消自动重启,点击安装。

安装结束后,记住 PVE 的网址,插上网线(如果之前拔掉了),点击重启然后赶紧拔掉 U 盘

进入 PVE 后台

输入网址(记得是 HTTPS),点击高级,继续访问。(因为是自签名证书,操作系统不信任)

输入 root 账号密码,语言选择简体中文,选择保存用户名,登录。

会提示没有商业许可证,不用管,点击“确定”跳过即可,个人免费。

安装 OpenWrt

参考:超详细,多图 PVE 安装 OpenWRT 教程(个人记录)_pve安装openwrt_优雅码农的博客-CSDN博客

首先上传 OpenWrt 的镜像。我上传我自己编译的 ImmortalWrt(自编译教程:自编译 OpenWrt,以 UA2F 为例),或者自己去官网下载。

上传完成会弹出个 Task Viewer,关闭即可。

然后创建虚拟机:

取个名字,点击高级选择开机启动。我们希望在 PVE 开机后,软路由第一时间内自动启动,而不是我们手动开机。

不需要任何介质。稍后将使用命令行创建一个和镜像一样大小的磁盘。如果在这里创建磁盘,因为一般软路由的镜像都很小,大于镜像大小的磁盘空间用不上,造成空间浪费。

系统直接默认,下一步。

删掉唯一的磁盘(原因之前说了)。

选择核心数。因为我的外网带宽是百兆而且内网没啥设备,还上了千兆交换机处理内网传输,所以只需要 1 核心。CPU 类别选择 host,即保持和实体机的 CPU 特性一致。

同样由于上面的原因,我只给了 128 MB 内存(之后运行实际占用 70-80 MB)。

之后一路默认下一步(“网络”有多个网卡的可以添加,我只有一个网口做旁路由所以默认即可),创建虚拟机。先不要开机

来到 PVE 服务器的 shell,输入:

qm importdisk <刚才创建的虚拟机的序号> /var/lib/vz/template/iso/<镜像文件名> local-lvm

使用上传的镜像为刚才创建的软路由虚拟机创建磁盘。

之后来到软路由虚拟机的硬件,双击“未使用的磁盘”。

如果虚拟磁盘是在固态上就开启 SSD 仿真,然后添加。

移除毫无卵用的 CD 驱动器。

引导程序中,把新添加的硬盘移到第一位并且勾上启用;不启用网络引导。

之后就可以开机,在控制台中输入命令了。

后续可参见:

个人数字基建(1):在 VMware 安装 OpenWrt 主路由

个人数字基建(2):在 VMware 安装 OpenWrt 旁路由

性能

目前只开了 OpenWrt 一个虚拟机。可以在 PVE 后台查看服务器负载。

轻负载时(网络没啥使用,仅有5个设备连接),服务器的整体 CPU 利用率在10%以下。

百兆宽带下行测试时,服务器的整体 CPU 利用率在35-60%之间。

Steam 游戏下载,负载相似,在 50% 附近。

修改 PVE 软件仓库订阅源

https://blog.csdn.net/weixin_52960369/article/details/135361688

解决vi编辑器按键异常问题

cp /etc/vim/vimrc ~/.vimrc

修改软件源


# 将此文件的中的所有内容使用 # 注释掉,如果编辑的时候出现上下键和DEL异常请看补充
vi /etc/apt/sources.list.d/pve-enterprise.list
 
# 下载中科大的GPG KEY
wget https://mirrors.ustc.edu.cn/proxmox/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
 
# 使用Proxmox非企业版源
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list
 
# 将Debian官方源替换为中科大源
sed -i 's|^deb http://ftp.debian.org|deb https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list
sed -i 's|^deb http://security.debian.org|deb https://mirrors.ustc.edu.cn/debian-security|g' /etc/apt/sources.list
 
# 替换Ceph源
echo "deb https://mirrors.ustc.edu.cn/proxmox/debian/ceph-quincy bookworm no-subscription" > /etc/apt/sources.list.d/ceph.list
 
# 替换CT镜像下载源
sed -i 's|http://download.proxmox.com|https://mirrors.ustc.edu.cn/proxmox|g' /usr/share/perl5/PVE/APLInfo.pm

# 更新
apt update

删除订阅弹窗(https://www.bilibili.com/read/cv28639629/)

sed -Ezi.bak "s/(Ext.Msg.show\(\{\s+title: gettext\('No valid sub)/void\(\{ \/\/\1/g" /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js && systemctl restart pveproxy.service

Ctrl+F5刷新缓存

添加 Tailscale 访问端口

首先安装 Tailscale 并且上线

shell 输入 ip a

之后就可以使用 https://<tailscale-ip>:8006https://<tailscale机器名>:8006 登录。