虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

版主: Jack12345

Jack12345楼主
论坛支柱
论坛支柱
2023年度优秀版主
帖子互动: 640
帖子: 9161
注册时间: 2022年 7月 22日 11:46

#1 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 Jack12345楼主 »

一年多前,在那边写了个 关于虚拟机的帖子,本来打算全部都写完后,再copy 到本版来。但留了个小尾巴,一直没写完。现在看来,手头事情 一大堆,没时间写完了。不过基本上 已经可以用了,那个小尾巴 也不影响 大家参考。于是 就 copy 过来吧。
https://www.freeblueplanet.com/t/topic/675

很久以前在 公司工作的时候,每个人配了 2台 台式机,一台Windows, 一台 Linux,用KVM Switch 来共用一套 鼠标键盘 和显示器,随时切换。
现在 虚拟机技术(Virtual Machine) 已经比较成熟了,如果 要用到 多个系统,可以 不需要装 2个电脑了,一个 就可以了

很多年前 就听说了 virtual machine 这回事。但一直没有去折腾。直到前几年 自己组装了一台 台式机,才决定 折腾一下 virtual machine 这个东西。

首先,不管安装什么虚拟机软件,都要到 BIOS 去打开(enable) virtualization technology ( intel VT-X/AMD-v) 等,youtube 上很多教程,比较简单

其次 是听说 virtual box 是免费的,可以装在 windows 或 Linux 平台上的。就在 windows 上 下载安装了 一个 virtual box。按照 youtube 上 一些教程 安装配置好了。但 用下来 发现guest OS速度 比较慢,还有 host OS 和 guest OS 共享文件比较麻烦,最后发现 还是 通过 USB 的 flash drive 来共享文件 比较方便。所以 也只能说是 能用用,但 用的不好。
于是 virtual box 装好后,没怎么用,就搁置在 那里了。我在此 也不推荐 virtual box.

后来听说 Linux 上 有免费的 KVM (kernel-based virtual machine) 虚拟机 可以用。唯一要求是 host 只能是 Linux 的,不能用在 Windows 上面。对我来说 也无所谓,所以 就准备尝试一下了。那是 3年前的事了
在安装上,我 基本上 follow 这个人的 安装教程. 这个人是 linux 大拿,我从他那儿学到了 不少东西


不过 最近 他 又更新了一下 KVM 的安装教程,如下。不过 我 还没试过。应该 更好一点吧。


最近,我为了写这篇文章 做 profiling,又把 KVM 重新装了一遍,按照了 下面这个教程 安装,主要是 这个教程 有一些 优化速度 的步骤。我已经忘了 3年前装的 KVM 有没有 优化过了


这里有一点 要特别注意的,有时候 装好了 guest OS (比如 Windows 10),也分配了 4个CPU了,还是 运行起来 感觉很慢,甚至鼠标都不怎么流畅。什么原因呢?
打开 guest OS (比如 Windows 10),然后在 task bar 上 右键打开 task Manager, 你会看到 如下截屏。你会发现 实际上 只有 一个CPU在运行,虽然你分配了 4个CPU了。怪不得慢呢
图片

这是因为 在 虚拟机 configuration 里面,CPU分配 default 是按照 socket 来分配的。而 windows 平台 只能利用一个 socket,分配 再多的CPU 也没有用。必须重新 手动 config 一下 CPU的结构,改成 1个 socket, 4个(8个)core 之类的。如下图
图片

改完了,再检查一下 guest OS 的 processor 个数,你就会发现 core 个数 增多了,所以 最后总体速度 也快了
图片
x2 图片
上次由 Jack12345 在 2025年 1月 4日 16:32 修改。
原因: 未提供修改原因
Jack12345楼主
论坛支柱
论坛支柱
2023年度优秀版主
帖子互动: 640
帖子: 9161
注册时间: 2022年 7月 22日 11:46

#2 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 Jack12345楼主 »

现在 有一个 新的问题,虚拟机 装好了,相对于 裸机,速度怎么样呢?打了多少折扣?

我大概介绍一下我的台式机,AMD Ryzen 7 5700X, 8 core, 频率是 3.98G Hz. 64GB DDR4 memory, MSI X470 主板
这次 测试软件选择了 geekbench 6, 主页是 https://www.geekbench.com/
以前曾经选择过 PassMark,但要 花钱买的。还选择过 Cinebench,但没有Linux 版本。所以最后还是 选择了 geekbench

在裸机(bare metal) 上测试下来,
windows 10 平台, single-core 是 1829, 8-cores 是 9939
Ubuntu 20.04 平台, single-core 是 1866, 8-cores 是 10412

那么在 KVM 上测试下来怎么样呢?我装了 2个 guest OS, 还是 windows 10 和 ubuntu 20.04,测试数据 如下。相对于 裸机的 百分比折扣数据 在 括号里
windows guest: single-core:1424 (78%), 4-core: 4452, 8-core: 7047 (71%)
ubuntu guest: single-core: 1574 (84%), 4-core: 4989, 8-core: 7806 (75%)
稍微有点 欠缺的是 geekbench 在裸机上 不能 指定 测试 几个核的,所以 只有 1 核 和 8核 的数据,没有 4核的数据。但根据插值,效率 大约是 1核和8核 的平均吧

还有2个小问题。
1 我在上面 那个 CPU configuration 页面,看到 Logical host CPUs: 16. 那我现在 分配的 8个 core 是 逻辑上的核 还是 物理上的核呢?如果是 逻辑核,能不能 再多分配点 以便有更快速度呢?
我又在 CPU config 界面分配了 12core 和 16core,看一下 测试结果如何?
windows guest: 12-core: 7849, 16-core: 8585. 这个结果 和 8-core 的 结果差不多。而且 geekbench 又提示了:this benchmark result is invalid due to an issue with the timers on the system. 所以 也可以 解释一下 和 8-core 数字不同的一些由来
这样,基本确定了 在 CPU config 界面 分配的 cores 的个数 是 实际的 物理核了

2 在 KVM 上,速度打折还是挺大的。在 windows guest 里,哪怕在 single core 里, 效率 也达不到 80%,更不要说 多核了。那能不能 进一步优化提高呢?
这个估计 懂行的人 tuning 一下参数,再折腾一下 有可能 效率 还能提高一点。但我是不行了,反正 我初步再折腾了一下,发现 没什么改进,就放弃了,不想再花时间了。如果 哪位网友有经验 知道继续提高 CPU效率的,不知道 能否 分享一下?十分感谢

当然 KVM 相对于 别的虚拟机系统 来讲,还有可能 折腾出 GPU Passthrough,这是它的一大优点。youtube 上 也有人 价绍 设置 GPU Passthrough 的一些经验:

我本来想 折腾的,但最主要 我还是 不满意 CPU的效率。如果CPU能到 95%以上,我还是想 折腾一下GPU的。
另外,当我 看到某个网页上 用户 折腾了几个月还是失败了:I Tried For MONTHS And virt-manager KVM Passthrough Wont work at all!
https://communities.vmware.com/t5/VMwar ... -p/2937946
我也就 彻底放弃 在 KVM 上 再折腾 GPU Passthrough 了。如果哪位网友 有心得体会,不知能否共享一下?

补充更新:
刚听说 还有一个叫 CPU Pinning 的办法 可以进一步 提高 KVM 中 guest OS 的 CPU 利用效率,不知道 能否提高到 90% 以上。有意愿的 网友 可以去 折腾一下
上次由 Jack12345 在 2025年 1月 4日 16:33 修改。
原因: 未提供修改原因
Jack12345楼主
论坛支柱
论坛支柱
2023年度优秀版主
帖子互动: 640
帖子: 9161
注册时间: 2022年 7月 22日 11:46

#3 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 Jack12345楼主 »

前面 折腾的 virtual box 和 KVM 都是 tier-2 虚拟机,也就是 都有一个主要 操作系统 在裸机上 当 host OS, 别的 guest OS 都在 host 里面。这样比较适合 workstation 系统,也比较简单。但是,用下来,CPU的效率 都不令人满意,折扣挺大的。

原来 我就听说 有 tie-1 的 虚拟机 (A T1 hypervisor virtualizes the hardware for all the OS instances that run on that machine)。也就是 没有 host OS, 所有的OS 都是 guest OS, 都跑在 裸机上的 薄薄一层 软件界面上。一直想避免它的原因 是 这样一来 要用 guest OS 的话,必须另外用一台Laptop 远程登陆上 那个 server了,不能本地来用,还要多准备一台 Laptop.

但现在 前面折腾的 KVM 不令人满意,再加上 看了 youtube 上的 一个关于 proxmox 的系列介绍:

看了后,感觉被忽悠了。准备折腾一下。之所以用 proxmox,也是因为 它是免费的。和前面的 KVM一脉相承,都是 基于 Linux 的,只不过比 KVM 少了一个图形界面而已。

按照上面 youtube 第2课里 讲到的那样,先到 proxmox公司主页 https://www.proxmox.com/en/ ,下载了 ISO file。再用软件 rufus 把 ISO file 写到一个 flash drive 上,然后 就用 这个 flash drive 来启动安装。
这里要注意的是 台式机 和 laptop 都要用网线 连接到 Hub 上,不要用 wireless。然后再连到外面 router 上。我是特地到 amazon上买了个
https://www.amazon.com/gp/product/B08SB ... =UTF8&th=1
结果发现只有一个网线口,然后再买了个 4个口的 hub。一般家里 如果有 旧的路由器 就可以代替使用了,不用像我一样 新买设备了

安装 还比较简单,注意 台式机 还是要连 显示器 键盘 鼠标 来做一些 安装选择的。和 视频里的 稍微有点 不一样。安装好后,就通过 Laptop 上的浏览器 输入 台式机的 IP address 来登录了。

然后按照 那个系列 youtube 视频的 第5个 开始创建一个新的 virtual machine。我开始 安装 Windows 8.1, 首先 很多参数 要搞懂 怎么选择。比如 SCSI controller 要怎么选,Qemu agent 要怎么选,Cache 怎么选, discard 什么意思,还有一些别的参数。有些参数 如果和 视频里的一样,就follow 他的就行。但由于我的proxmox 版本和他的不一样,比他的新,就多出了 一些新的参数 没人可以 follow,只好 自己一个个 上网查,挺麻烦的。最后 总算 大概都选择好了。开始从ISO文件 安装 操作系统了,结果卡在那里,安装不起来,VNC 界面里 什么 都没有出现。跳出一个错误信息,查了半天 也不知道 怎么回事,怎么修正。只好 放弃了。
这个 Windows 8.1 的 ISO文件 在前面 KVM 那里 都安装起来了,为什么 这边 不行呢?

这半途而废的 proxmox 经历,让我感觉 proxmox 的参数 default 值 根本 没有tuning 到 最佳常用值,全是空白,要你自己去摸索。也是,参数都 tuning 好了,怎么赚你的 订阅费呢?
而且 感觉 bug 还有不少,我的 windows 8.1 ISO 文件就莫名其妙 装不起来了
而且 文档也欠缺,出了 bug 也不知道 哪里去找,要自己 慢慢花时间去 钻研。
总之,免费的东西 没那么好用的,没有那么傻瓜,都要自己 花时间精力 去钻研的

一点感想,相对于 ESXi 的高昂价格,proxmox 是免费的。如果 想走 系统管理员 IT support 这条路,值得下功夫 把它 折腾明白,到时候 也能忽悠 一些公司 把 ESXi 替换掉,节约不少成本,自己也可以 乘机找到个 饭碗。
但对于 我们 这些 只是 利用一下的用户 来说,就不值得 花大把精力 把它 搞明白了。

在折腾 promox 过程中,也找到了 一些比较有用的网页,也分享给大家
这些 帖子中,有些人 为了 确定一个参数,做了大量的 benchmark 的工作





如果 哪位网友 对 proxmox 比较有经验的,也欢迎 写一点 心得体会
上次由 Jack12345 在 2025年 1月 4日 15:30 修改。
原因: 未提供修改原因
Jack12345楼主
论坛支柱
论坛支柱
2023年度优秀版主
帖子互动: 640
帖子: 9161
注册时间: 2022年 7月 22日 11:46

#4 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 Jack12345楼主 »

前面折腾 virtual machine 的时候 一直 回避收费的,想免费的 能解决问题就好。但 要么 不令人满意 或者要么 费时费力。没办法,只好准备试一下 收费的了。收费的 业界比较有名的 就只有 VMware 了

先从 收费的 VMware Workstation Pro 开始,也有免费的 Workstation Player,但少了一个重要的 snapshots 功能,所以 就不考虑了。下载页面是
https://customerconnect.vmware.com/down ... n_pro/16_0
之所以 下载 版本16 是因为 版本 17 还在 under development,还不稳定。然后 版本16 可以 比较容易在 网上 找到 key. 下载下来后 可以试用 30天
更新:现在 VMware Workstation Pro 官方 全部免费了

下载安装的详细教程 可以看 这个 youtube,比较详尽。windows 和 Linux 安装都有,推荐

如果 感觉比较长,也可以 看这个

Linux 安装步骤 也可以看这个


相对于 前面KVM的麻烦,这个安装 非常简单,唯一要注意的也是和 前面KVM 手动设置CPU 一样,这边 也要手动设置一下。1个 socket, 4个 core. 这些 core 都是 物理的 core,不是逻辑上的

图片

图片

然后 同样用 geekbench 6 做了一些测试,数据如下。括号里是 相对于 裸机速度的百分比
当 host OS 是 Windows 10时,
Windows10 is guest OS. 1-core: 1770 (97%) 4-core: 5479 8-core: 8145 (82%)
Ubuntu 20 is guest OS. 1-core: 1751 (94%) 4-core: 5652 8-core: 7591 (73%)

当 host OS 是 Ubuntu 20时
Windows10 is guest OS. 1-core: 1775 (97%) 4-core: 5563 8-core: 8589 (86%)
Ubuntu 20 is guest OS. 1-core: 1805 (97%) 4-core: 5737 8-core: 8558 (82%)

从上面这些 数据可以看出,单核时,效率最高,平均打折 有95% 左右。8核时,打折就有点大了,平均有 80% 左右。4核的 打折效率 应该在中间吧,大概 插值成 90% 左右
所以根据 这些数据,我分配给 guest OS 的 一律 CPU 最高是 4核。再多核,效率就低了

有一点非常奇怪,我装了好几个 Windows 7 ISO 版本,有 professional, 有 ultimate, 最后 装好后 都变成 home basic 版本,还有 上网 都有 问题。不知道 谁有 这方面的 经验?

但是 Workstation Pro 版本 有个最大的遗憾 就是 VMware公司 故意把 workstation 版本的 GPU Passthrough 功能给取消掉了。你如果要这个功能,只有去用 ESXi 版本

但是 一般人 普通用用 也够了。大多数软件 也只用到 CPU,不需要 GPU 来加速。所以 Workstation 版本 也够用了。适合于 已经有 host OS 的 电脑 上,特别是在 Laptop 上。
上次由 Jack12345 在 2025年 1月 4日 17:21 修改。
原因: 未提供修改原因
Jack12345楼主
论坛支柱
论坛支柱
2023年度优秀版主
帖子互动: 640
帖子: 9161
注册时间: 2022年 7月 22日 11:46

#5 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 Jack12345楼主 »

因为 VMware Workstation Pro 版本 没有 GPU passthrough 功能,不得不 尝试着 折腾一下 VMware 的 ESXi。

首先,要下载 一个 ESXi 版本,虽然现在 官方最新版本是8.0,但刚开始,还很不稳定。所以我们还是从 7.0 版本开始。其中的最新 update 是 3L。官方网址是 https://docs.vmware.com/en/VMware-vSphe ... notes.html
图片

点击 那个 红圈里的 下载 link, 就得到 如下页面
图片

按照 download 继续 点下去,就得到如下的 下载页面,下载 第一个 ISO 文件就行了。
图片

点进去,它要求你注册一个账号。你用 email 注册一个账号,就可以下载了。并且 它还给你一个免费的 license key. 装好的 ESXi 可以有 60天的 trial period. 在60天 快结束的时候,可以 用这个 free license key 来激活它。至于各种 license 之间的差别,这个网页 说的很清楚
https://www.nakivo.com/blog/free-vmware ... mitations/

我下载的 ISO 文件叫 VMware-VMvisor-Installer-7.0U3l-21424296.x86_64.iso,你们有可能 有点不一样。然后就是安装了。首先跟前面 安装 proxmox 一样,用软件 rufus 把 下载的 ISO 文件 拷到 flash drive 上,然后启动 台式机,就可以安装了。具体教程 参考这个 youtube。比较简单


我和他讲的 有几点 不同的 小地方
1 我只用了 一个 SSD 硬盘,不用2个的
2 不用他介绍的下载办法,用我前面说的 下载办法。
3 因为 在当地 当 workstation 使用,所以 没有 改变 IP address from DHCP to static
4 没有在 NTP settings 里面 改变 Time & date。其实就是 装好了 什么都 懒的变动
5 在我的版本里,好像 datastore1 缺省 就建立了,不用像视频里一样 自己再手动建立了。如下图
图片

然后点击 Datastore browser, 就出现下图。再点击 Create directory 就可以创建 ISO_images 目录,然后再点击 Upload 就可以 用来上载 ISO文件了。
图片

再然后 创建 新的虚拟机 基本上 就和 视频里 讲得一样了。唯一 要注意的 就是和 前面讲的 CPU 结构设置一样,要设置成 一个 socket,几个 cores。如下面 红圈里 所示。这个 ESXi 好像 default 值 就是 2个 sockets, 所以 每次改变 CPU数目的时候 都要来 检查一下
图片

当然 创建 虚拟机的时候,如果出现 以下 错误信息。
图片

这时要把 设置从 EFI 改成 BIOS,如下图,就没问题了。
图片

guest OS (比如 windows 10) 装好后,一般都要再装一个 VMware Tools。点 右上角的 Action button,再选择 Install VMware Tools button. 如下图。选中后 要等 几秒,然后选中 右下角的 弹出窗口
图片

或者 参考一下 这个视频。看后半段 就可以了


这样基本上 一个完整的 虚拟机 guest OS 装好了

基于 同样的操作,我也同样把 guest OS ubuntu 22.04 LTS 装好了。

同时建议 到 vmware 下载安装一个 VMware remote console Tool,类似于 VNC,RDP 的一个客户端界面,比 网页窗口 看 virtual machine 好多了, 可以全屏之类的。参考这个 视频


但是 这里 有一个问题,我在 Windows 里 和 ubuntu 里 都能看 youtube, 但就是 没有声音。这个以后再说

同样 也用 geekbench 6 做了一下 bench mark, 并且 相对于 裸机(bare metal) 的效率 也计算出 放在 括号里了
windows 10, 1-core: 1818 (99.5%), 4-core: 5809, 8-core: 9054 (91%)
Ubuntu 22.04, 1-core: 1853 (99.3%), 4-core: 5903, 8-core: 9251 (89%)
根据插值 平均一下,4-core 的时候 效率 大概在 95% 左右。

从这些 数据可以看出,ESXi 情况下,guest OS 效率 又比 WorkStation Pro 版本 高了不少。

如果想 删掉 某一个 虚拟机,可以参考一下这个 video
上次由 Jack12345 在 2025年 1月 4日 15:48 修改。
原因: 未提供修改原因
Jack12345楼主
论坛支柱
论坛支柱
2023年度优秀版主
帖子互动: 640
帖子: 9161
注册时间: 2022年 7月 22日 11:46

#6 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 Jack12345楼主 »

现在 在CPU上的 virtual machine 弄好了,速度也挺快的。下面就是 折腾 GPU passthrough 了,可以参考这个视频。虽然他是用在 6.7 版本上,但在7.0上 基本上是 一摸一样的


但我在 按照视频 来 勾选 PCI 显卡的时候,遇到了 像这个网页里说的问题,那几个选择项 一直在闪烁,没办法选中。


后来 我就用里面一个人介绍的办法,在 右上角 filter 里 填上 显卡的关键词,就只有一项 显示出来了,就可以选中了。如下图
图片

最后 结果就是 显卡 那个group 的 passthrough 都变成 active 了,如下图。记得 把机器重启一下,让configuration 生效。 然后继续按照视频里的流程 就行了。
图片

下面是 在GPU passthrough 过程中 遇到的 一些经验教训,供大家参考

1 在7.0 上 有一点 不太一样。在 New PCI device 那一栏里,7.0 里 没有 Reserve all memory 那个 button 了,所以我回到 上面 memory 那一栏里 自己 手动 勾上了 Reserve all guest memory (All locked) 那一项

2 而且加 PCI device 的时候,不光要加 显卡 driver, 还要加 声音 audio controller,如下图。这样 声音 就可以 通过 hdmi 线 也出来了。我的显示器上 有耳机输出口,我试过,it works.
图片

至于 板载的声卡,没人关心它了。有人建议在 BIOS里 把 板载声卡 Disable 掉,因为会在 某些情况下 造成问题。我也 暂时 disable 它了,怕出现 问题

3 在这个视频之后,我又看到 另一个视频,很有道理的样子

于是 我也跑到 BIOS enable 了 二项。
Re-Size BAR Support [Enabled]
Above 4G memory/Crypto Currency mining [Enabled]
然后 除了那个参数 hypervisor.cpuid.v0 以外,我又加了2个参数。
pciPassthru.use64bitMMIO = TRUE
pciPassthru.64bitMMIOSizeGB = 32
虽然重启后,也没感觉到 什么差别。有可能 效率 会高一点

4 根据第二个视频提醒,在安装 独立显卡驱动的时候,那个显卡最好 连着个 显示器,因为软件会检测的。如果没连 显示器 会怎样?有可能也没事,但我懒得试了
而且 安装好后,那个 monitor 很有可能就 出现画面了(这至少 证明了 显卡 有输出到显示器了),比如 Windows 的·登录画面,而 Laptop上的 web client 里 倒没有出现 像视频里那样的 Windows 登录界面。不要急,用Laptop 的键盘登录就可以了。
这是因为 Windows 检测到 2个monitor,有可能 变成 Extend these displays 选项了。到 windows 里面 再把它 设置成 Show only on 1 就可以变成 像视频里 一样的了。
现在 还不能设置成 Show only on 2,因为 现在 还没有 直通 Windows VM 的键盘鼠标,没法点那个 Keep changes 那个 button,还要 Revert 回来的

5 我又找到另一个网页,关于 GPU passthrough 的一些经验教训。其中他提到 不要用 DisplayPort,而我正好 只有 hdmi 线,有可能 避开了 他遇到的坑
https://www.lawlor.cloud/vmware-esxi-7-gpu-passthrough/

6 还有 我这里 碰到 一个小坑。装好 nvidia 的 device driver 后,偶然看了 一下 VM 里的 Task Manager 的 performance,发现 nvidia display container LS 这个 process 居然一直 占用着 25% 左右的 CPU。我总共就分了 4个core 给这个 VM,还没用呢 居然就占用 1/4了,这怎么能忍?
然后就在 网上找到 这篇文章,照着它写的,把原来的 driver 卸载了,uninstall 了所有的 nvidia 相关软件。然后重新找了一个版本,比如我用了 另外一个日期的版本 457.09 就没事了,安装后 就好了
https://www.makeuseof.com/windows-nvidi ... -high-cpu/

GPU Passthrough 弄好后,我也用 geekbench 6 做了一下 benchmark。测试接口是 OpenCL
bare metal: 69822 , GTX 1660 Ti passthrough: 70417
基本上 GPU passthough 效率是 100%了。至于 为什么 数字超过 100%了,我想 bare metal 应该用 CUDA 接口的,这样 才能 发挥 nVidia GPU的潜力。但 geekbench 只有 OpenCL,可能是 这个原因吧
上次由 Jack12345 在 2025年 1月 4日 19:54 修改。
原因: 未提供修改原因
Jack12345楼主
论坛支柱
论坛支柱
2023年度优秀版主
帖子互动: 640
帖子: 9161
注册时间: 2022年 7月 22日 11:46

#7 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 Jack12345楼主 »

折腾好了 nVidia 显卡在 Windows 10 VM 上的 GPU Passthrough, 下面就要考虑 AMD 显卡了。我手上有一个 RX 6600 的显卡。现在机箱里 装了 2块显卡了。我又把 显示器的 HDMI线 接到 AMD 显卡上。重新启动。

首先 跟前面一样,把AMD显卡的 Passthrough 状态 激活,如下图所示
图片

接着就把 这二个 PCI device 加到 Windows 10 VM 里,如下图所示
图片

然后重新启动完后,进入到 Windows 10 VM 里,下载了 AMD的 驱动,开始安装。然后 就出问题了,不能识别 AMD显卡,所以 拒绝进一步安装了。我怀疑 是不是 原来的 nVidia 驱动 还在那里,有干扰?应该不会的。但再折腾一下吧

于是把 整个 VM 删掉,重新 装了一遍 干净的 Windows 10 VM, 然后 GPU passthrough,再走到 前面那一步,还是 卡在那里,自家的 驱动程序 不认 自家的显卡
然后找了 一个以前版本的 驱动,认出了显卡,也开始装了,但卡在 92% 就不动了。

后来 也根据一些网页的提醒,加了 pciHole.start = 2048 和 pciHole.end = 10240 这2个参数,还是没用。于是 先卡在这里了

我把一些有用的网页 都贴上来了,以供参考。
http://www.gebi1.com/thread-71839-1-1.html
https://blogs.vmware.com/apps/2018/09/u ... h-i-o.html
https://communities.vmware.com/t5/VMwar ... d-p/929488
https://hardforum.com/threads/esxi-with ... h.2024237/
https://communities.vmware.com/t5/VMwar ... d-p/457412

我现在 暂时没有时间 把 AMD 显卡在Windows VM 上的直通 搞明白了。暂时先 hold 在这边,以后有进展了 再来更新。如果 哪个网友 有经验的 也欢迎分享
上次由 Jack12345 在 2025年 1月 4日 15:59 修改。
原因: 未提供修改原因
Jack12345楼主
论坛支柱
论坛支柱
2023年度优秀版主
帖子互动: 640
帖子: 9161
注册时间: 2022年 7月 22日 11:46

#8 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 Jack12345楼主 »

前面 介绍了 Windows VM 里的 nVidia GPU Passthrough,没问题。但是 不能在外置显示器上显示,因为 现在 还没有 直通 Windows VM 的键盘鼠标,没法点那个 Keep changes 那个 button,还要 Revert 回来的。所以 下一步 就要给 虚拟机 分配一套 独立的 键盘鼠标了

这里 我找到一个 网页关于 HID 的 Passthrough,讲得很不错的。我基本上 照着 他说的去做的
https://www.lawlor.cloud/vmware-esxi-7- ... ssthrough/
更新:这个网页 现在没了。你就用 关键词 vmware esxi 7 usb hid passthrough 再搜索类似网页吧

首先,关掉 VM,然后在 host 里 打开 SSH,如下图 所示
图片

然后我下载了个 PuTTY 客户端,输入 root@IP_address, 就可以连接到 主机了。然后 就按照那个网页说的,找到 键盘和鼠标的 ID number,比方说我的 就是这样的
Bus 002 Device 003: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 002 Device 002: ID 413c:2003 Dell Computer Corp. Keyboard

用 vi 编辑一下2个文件。因为 网页只提到一个 设备,所以 我也先加入了键盘的设置。然后 加入了2个参数
usb.generic.allowHID = TRUE 和 usb.quirks.device0 = 0x413c:0x2003 allow。好像可以
但是 当我 依样画葫芦,加入 第2个USB 设备 鼠标的时候,发现 前面加入的键盘 被 变灰色 disable 掉了。好像 只能加一个 USB 设备?想了想,还是决定 先加入 鼠标,键盘可以 暂时用虚拟的。最后 设置如下图 所示
图片

图片

然后建议用 VMware Remote Console (VMRC) 或 Workstation Pro 客户端 打开 VM,因为用网页端 打开 VM的时候,如果用host 的外置显示器,容易 black screen。
在 设置里 选择 Show only on 2, 这时候 台式机上的 鼠标 就起作用了,选择了 Keep change后,VM 就只在 台式机的显示器上 显示了。
还有,这时候把 参数 svga.present 设置成 FALSE 也可以,在 device manager 里 看不到 VMware 的 显示 driver 了,已经不需要它了。

现在 新的问题来了,我如果 有 2个 USB设备,键盘和鼠标,怎么办?
一种是搞明白 软件里怎么修改设置了,这个比较难。
第二 就是 装一个 USB dongle 了,几合一的 USB 接口,几个USB设备 合用一个 接口。
我本来打算 用这种办法的。刚好 我看到一个 视频,他推荐 USB到 PCI 的转接口。我也打算试一下


买回来后 插到 卡槽里了。然后 跟前面 GPU显卡设置一样,先选中,然后再 Toggle passthrough,这时候它提醒Enabled/Needs reboot,然后就是重启。结果重启了后 还是 Enabled/Needs reboot。

然后搜索一下,发现这个网页

按照它提示的,找到 那个参数 VMkernel.Boot.disableACSCheck,把它设置成 True,如下图
图片
再重启后,这个 PCI 设备的状态 就是 Active 了

然后 再把 这个 PCI 设备 加入到 VM里,如下图所示。
图片

然后再启动VM,这时候 VM boot 不起来。把这个 新的PCI 设备去掉,VM 又可以 boot 起来了。我搜索了 一下,还有人 和我遇到的状况 类似。

我调出了 vmkernel.log 文件,看了一下,发现了几句报错信息
WARNING: MSI: 367: MSI already enabled for device 0000:25:00.0
IntrCookie: 172: Unable to allocate cookies: Failure
PCIPassthru: 2454: failed to allocate MSI interrupt
看了一下,好像要 disable MSI interrupt, 比如 pciPassthru0.msiEnabled = false, 像这2个网页里说的那样
https://forums.servethehome.com/index.p ... ard.18082/

但 具体怎么做,以后有时间再折腾吧。现在暂时 不把 这个新的PCI 设备加入到 VM 里。以后再更新

至于 键盘鼠标的问题,还是 先弄个 几合一的 USB 扩展口吧,几个 USB 设备 共用 一个 USB口,现在 只能 这样 先用用了。暂时 还没有买,以后再更新。
或者像 前面网页里讲得那样,用一个 Logitech 的 USB receiver, 鼠标 键盘 都是 无线的
上次由 Jack12345 在 2025年 1月 5日 00:49 修改。
原因: 未提供修改原因
Jack12345楼主
论坛支柱
论坛支柱
2023年度优秀版主
帖子互动: 640
帖子: 9161
注册时间: 2022年 7月 22日 11:46

#9 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 Jack12345楼主 »

现在 继续 探索 在 Ubuntu 上面的 GPU passthrough 问题。先尝试一下 nVidia 的显卡。

再次把 显示器的 HDMI cable 接到 nVidia 显卡上。然后 打开 host, 进入 Ubuntu VM。跟前面的 Windows VM 一样,把 nVidia 显卡 加到 Ubuntu VM 的 PCI device 上,如下图所示
图片

然后 又加入 下面 这几个参数
hypervisor.cpuid.v0 = FALSE
pciPassthru.use64bitMMIO = TRUE
pciPassthru.64bitMMIOSizeGB = 16

然后 用 Workstation Pro 或 VMware Remote Console (VMRC) 来启动 Ubuntu VM,这时候 我参照 这个 video 来安装 nvidia 的驱动。

但是 折腾了 好久 都没有成功。如下图所示,
图片

在 Additional Drivers 里面 不管 选择安装 驱动版本 525 还是 530,红框里 标的 都是 试着 安装过的。但重启后 在 Setting 里的 About 那一栏里,发现 Graphics 还是 llvmpipe (LLVM) 通用的驱动。如下图所示
图片

现在怎么办呢?这时候 我又发现了 另一个 video

看了半天,作者好像是个 高手的样子,我也不理解 他的 那些条命令 是什么意思。但决定按照他的办法尝试一下。但和他的 稍微有点不一样

一个是先装 Ubuntu22.04.2 VM,装好后 也没有改那个 IPv4 的 wired setting,直接 跳过去了。
二是 加 PCI device 的时候 是和 加参数 hypervisor.cpuid.v0=FALSE 的时候 一起做,没有 像视频里 那样 一开始 就加。然后 我还多加了个 鼠标的 USB device。

他 youtube 下面 也有命令行,我基本上 就直接 copy 下面的命令行,然后同样 下载了那个 驱动 515.43.04
然后 第6条 命令 放在 第5条 前面来做,主要是 第5条 把 gnome 停了,copy paste 麻烦。
5- Stop X Server 只要一条命令就够了,和视频里一样 $sudo init 3. 就是把 gnome 停了。要恢复 gnome 就输入 sudo init 5 或者 重启

但在 执行 第7条命令 sudo ./NIVIDA_Linux-x86_64-515.43.04.run -m=kernel-open 时报错了。
ERROR: An error occurred while performing the step "Building kernel modules".
后来 想了想 他视频上传时期 是在 22年7月,那时候 Ubuntu 还是 22.04 (不是 22.04.2)。于是 我为了 模仿他的环境,也重装了个 Ubuntu 22.04。
而且 我怕 update 一下子 又update 到 22.04.2,所以也把 sudo apt update 给停了。但还是 同样的地方 报错。又想了想,别的 update 命令 也有可能导致 版本 不一样,比如 sudo update-initramfs -u, sudo update-grub 等。所以 我不能 完全 模仿他的 build 环境

然后没办法,我又重新装了 Ubuntu 22.04.2,但在 选择驱动的时候,我不再 选择 视频里的版本 515.43.04。现在这个时候 最新版本是 530. 为了兼容性 和 稳妥考虑,我选了个 倒数第二的版本 525.116.04。
然后重复了 以前的过程,这次 build 过程中 倒没有 报错了。很高兴。这次 build 过程中 多了一个选择项,也不管了,一律回车 选择 default 值。

后面都照抄视频里的,一直到 reboot。用 $ nvidia-smi 一查,果然出来 信息了。About 显示如下图
图片

但到 setting 里一看,还是只有一个显示器,不像 Windows 10 里 那样 有2个显示器,你可以选择 Show only on 2。怎么办呢?后来关机。在设置里 把 svga.present 从 TRUE 改成 FALSE。如下图
图片

然后重新用 Workstation Pro 或 VMware Remote Console (VMRC) 来启动 Ubuntu VM,等一阵后,it works ! 图像 直接在 台式机的显示器上 出现了。鼠标也可以操纵它了。至于 Laptop 上的客户端,什么都没有了,一片黑。

nVidia GPU 在 Ubuntu 上 直通成功后,我也用 geekbench 6 做了一下 benchmark.
裸机(bare metal): 72422, Ubuntu GPU passthrough: 73318.
又超过 100%了,有点 小奇怪。不管了,work 就行
上次由 Jack12345 在 2025年 1月 4日 16:20 修改。
原因: 未提供修改原因
Jack12345楼主
论坛支柱
论坛支柱
2023年度优秀版主
帖子互动: 640
帖子: 9161
注册时间: 2022年 7月 22日 11:46

#10 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 Jack12345楼主 »

AMD 显卡 在 windows guest OS 上的 GPU 直通 一直没有折腾成功,前面说过了

至于 AMD 显卡 在 Linux guest OS 上的 GPU 直通,先折腾一下,也没成功。但我后来有事 忙别的去了,也没有花很多时间 穷尽各种办法,所以 也不敢说 一定就折腾不出来。所以 留了个小尾巴

至于 USB 接口的,现在 只有一个 USB 口,也没折腾出 多个 USB 接口。所以 只好麻烦大家 再去买个 USB hub 了,鼠标键盘 共用一个 USB 口了。这也算一个 小尾巴。

其它的就没了。如果网友有各种经验的,也欢迎 跟帖分享
上次由 Jack12345 在 2025年 1月 4日 16:31 修改。
原因: 未提供修改原因
alt168(alt)
著名写手
著名写手
帖子互动: 31
帖子: 254
注册时间: 2023年 6月 17日 10:42

#11 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 alt168(alt) »

Jack12345 写了: 2025年 1月 4日 15:26 一年多前,在那边写了个 关于虚拟机的帖子,本来打算全部都写完后,再copy 到本版来。但留了个小尾巴,一直没写完。现在看来,手头事情 一大堆,没时间写完了。不过基本上 已经可以用了,那个小尾巴 也不影响 大家参考。于是 就 copy 过来吧。
https://www.freeblueplanet.com/t/topic/675

很久以前在 公司工作的时候,每个人配了 2台 台式机,一台Windows, 一台 Linux,用KVM Switch 来共用一套 鼠标键盘 和显示器,随时切换。
现在 虚拟机技术(Virtual Machine) 已经比较成熟了,如果 要用到 多个系统,可以 不需要装 2个电脑了,一个 就可以了

很多年前 就听说了 virtual machine 这回事。但一直没有去折腾。直到前几年 自己组装了一台 台式机,才决定 折腾一下 virtual machine 这个东西。

首先,不管安装什么虚拟机软件,都要到 BIOS 去打开(enable) virtualization technology ( intel VT-X/AMD-v) 等,youtube 上很多教程,比较简单

其次 是听说 virtual box 是免费的,可以装在 windows 或 Linux 平台上的。就在 windows 上 下载安装了 一个 virtual box。按照 youtube 上 一些教程 安装配置好了。但 用下来 发现guest OS速度 比较慢,还有 host OS 和 guest OS 共享文件比较麻烦,最后发现 还是 通过 USB 的 flash drive 来共享文件 比较方便。所以 也只能说是 能用用,但 用的不好。
于是 virtual box 装好后,没怎么用,就搁置在 那里了。我在此 也不推荐 virtual box.

后来听说 Linux 上 有免费的 KVM (kernel-based virtual machine) 虚拟机 可以用。唯一要求是 host 只能是 Linux 的,不能用在 Windows 上面。对我来说 也无所谓,所以 就准备尝试一下了。那是 3年前的事了
在安装上,我 基本上 follow 这个人的 安装教程. 这个人是 linux 大拿,我从他那儿学到了 不少东西


不过 最近 他 又更新了一下 KVM 的安装教程,如下。不过 我 还没试过。应该 更好一点吧。


最近,我为了写这篇文章 做 profiling,又把 KVM 重新装了一遍,按照了 下面这个教程 安装,主要是 这个教程 有一些 优化速度 的步骤。我已经忘了 3年前装的 KVM 有没有 优化过了


这里有一点 要特别注意的,有时候 装好了 guest OS (比如 Windows 10),也分配了 4个CPU了,还是 运行起来 感觉很慢,甚至鼠标都不怎么流畅。什么原因呢?
打开 guest OS (比如 Windows 10),然后在 task bar 上 右键打开 task Manager, 你会看到 如下截屏。你会发现 实际上 只有 一个CPU在运行,虽然你分配了 4个CPU了。怪不得慢呢
图片

这是因为 在 虚拟机 configuration 里面,CPU分配 default 是按照 socket 来分配的。而 windows 平台 只能利用一个 socket,分配 再多的CPU 也没有用。必须重新 手动 config 一下 CPU的结构,改成 1个 socket, 4个(8个)core 之类的。如下图
图片

改完了,再检查一下 guest OS 的 processor 个数,你就会发现 core 个数 增多了,所以 最后总体速度 也快了
图片
给作者大声鼓掌,致敬,感谢分享,我也在用ESXi,感觉有很多益处,方便。
x1 图片
yanb
论坛点评
论坛点评
帖子互动: 154
帖子: 2718
注册时间: 2022年 10月 24日 19:21

#12 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 yanb »

不错,感谢分享。
头像
YouHi
论坛元老
论坛元老
YouHi 的博客
帖子互动: 2613
帖子: 36044
注册时间: 2022年 7月 22日 22:36

#13 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 YouHi »

狂赞
著名网友名单
🇺🇸 NC CHINESE AMERICANS FOR TRUMP 🛩️
你也是Trump U毕业的吗???
头像
VladPutin(清风不识字何故乱翻书)
论坛支柱
论坛支柱
VladPutin 的博客
帖子互动: 1395
帖子: 12244
注册时间: 2022年 7月 24日 11:12

#14 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 VladPutin(清风不识字何故乱翻书) »

吃饱了撑的。VM是用来教学用的,没人拿这个真的干活。
图片
Jack12345楼主
论坛支柱
论坛支柱
2023年度优秀版主
帖子互动: 640
帖子: 9161
注册时间: 2022年 7月 22日 11:46

#15 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 Jack12345楼主 »

整个 一个 井底之蛙

VMware 公司 一年收入 130多亿美元,是不是 VMware 公司的客户和用户 都是傻瓜白痴?钱多的没处花了?白白每年送钱 130多亿美元 给 VMware 公司?

还有 intel AMD 里 都在 CPU里 加入了 硬件支持 VM 的技术,难道 intel AMD 里 都是 傻瓜白痴?

你发这个帖 除了暴露你无知外,什么也说明不了
上次由 Jack12345 在 2025年 1月 8日 18:04 修改。
原因: 未提供修改原因
头像
(ヅ)
论坛支柱
论坛支柱
帖子互动: 544
帖子: 11677
注册时间: 2022年 8月 21日 14:20

#16 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 (ヅ) »

写了洋洋洒洒一大片

其实没什么有用的内容

最多算了自己的折腾笔记
头像
(ヅ)
论坛支柱
论坛支柱
帖子互动: 544
帖子: 11677
注册时间: 2022年 8月 21日 14:20

#17 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 (ヅ) »

VladPutin 写了: 2025年 1月 8日 11:36 吃饱了撑的。VM是用来教学用的,没人拿这个真的干活。
只有咱打游戏的偶尔用用,干活早就上容器了
Jack12345楼主
论坛支柱
论坛支柱
2023年度优秀版主
帖子互动: 640
帖子: 9161
注册时间: 2022年 7月 22日 11:46

#18 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 Jack12345楼主 »

(ヅ) 写了: 2025年 1月 8日 18:26 写了洋洋洒洒一大片

其实没什么有用的内容

最多算了自己的折腾笔记
站在旁边 说风凉话 谁都会

不知道(ヅ)老兄 能否分享一点 有用内容的 干货帖子?像 minquan 老兄的 【我是如何翻墙到境外网络的】一样?我保证给与 置顶待遇

先提前 谢谢支持了
ifree(老白河)
正式会员
正式会员
帖子互动: 0
帖子: 4
注册时间: 2023年 8月 5日 22:32

#19 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 ifree(老白河) »

谢谢分享!自从vmware workstation免费以后,就没有动力搞其他的了。
-------------------------------------------------------------------------------
anesthetic
职业作家
职业作家
帖子互动: 67
帖子: 774
注册时间: 2022年 8月 30日 01:02

#20 Re: 虚拟机(Virtual Machine) 的折腾历史 以及 ESXi 的使用

帖子 anesthetic »

Jack12345 写了: 2025年 1月 8日 17:35 整个 一个 井底之蛙

VMware 公司 一年收入 130多亿美元,是不是 VMware 公司的客户和用户 都是傻瓜白痴?钱多的没处花了?白白每年送钱 130多亿美元 给 VMware 公司?

还有 intel AMD 里 都在 CPU里 加入了 硬件支持 VM 的技术,难道 intel AMD 里 都是 傻瓜白痴?

你发这个帖 除了暴露你无知外,什么也说明不了
VMware客户是搞cloud vps的,正经干活方面vm在container没出来前还有点用,现在完全落寞了。。。

cpu的hyperv指令不光是来搞vm的。。。
回复

回到 “电脑手机 - 精华区”