All In Boom 带来的思考

2024-09-04 15:03:05 +08:00
 qizheng22

ESXi 7*24 小时稳定运行两年多,前几天拉闸换灯,没提前关电脑。重新开机时发现有台虚拟机找不到了,无法重新注册。目录里只有-flat.vmdk 文件。后来通过其他虚拟机挂载 vmdk 找回。

没过几天,ESXi 的 ssl 证书到期。替换证书重启无法进入系统。提示:

Shutting down firmware services... 
Using 'simple offset' UEFI RTS mapping policy
Relocating the modules and starting the kernel...

即使指定 ignoreHeadless=TRUE 也无法跳过。

虽然重装 ESXi 解决。但是在故障期间,我试着把硬盘拿出来备份数据,在读取 ESXi 的 VMFS 文件系统遇到不少阻碍。一般的磁盘工具无法识别,还有的只能识别很老版本的 VMFS 文件系统。还有一个数据恢复软件是收费的。

使用 ESXi 的初衷是为了隔离不同系统和运行环境。而 ESXi 稳定可靠,自身占用开销小,接近物理机性能。但是这几年使用中发现不少痛点。

  1. 显卡只能直通某一台虚拟机。如果有多台虚拟机,无法共享 GPU 算力。
  2. 未直通显卡的虚拟机无法 GPU 加速。浏览器/远程桌面等应用只能 CPU 软解码,导致 CPU 使用率占用高。
  3. VMFS 文件系统没有预想的通用,不能方便地通过其他系统或磁盘管理工具拿回文件。

必需基于 ESXi 的 All In One ?

在回答这个问题前,先看 ESXi 带来的优点。

  1. 可以 7*24 在线,只能手动更新。ESXi 本身只提供虚拟平台,只要没有功能 bug 和驱动问题。基本不用更新。
  2. 因为 ESXi 只是一个虚拟平台,在使用过程中非常纯净,不会担心因为安装其他乱七八糟的软件弄坏系统。而且支持 U 盘运行。(我用 U 盘稳定运行过一年,系统是加载到内存里里启动的)
  3. 系统自己占用 1G 多内存,不会有其他内存开销。基于 WEB 管理,非常方便。

如果换其他平台,上面三点如何解决?

  1. 对 7*24 小时的机器来说,影响最大的是重启。windows 现在的更新每月一次,可以关闭自动更新和自动重启。而 linux 大多数更新都不用重启。
  2. 无论是 Windows 还是 Linux ,用户文件基本只在用户目录里。只是一般 Windows 都会给最大权限,其他软件又不规矩,相对于 Linux 确实会产生更多垃圾文件。
  3. 在默认启动图形化系统后,Linux 轻量级桌面环境 xfce ,lxqt 占用内存 1G 以下。即使是 gnome ,kde ,占用 2G 以内。Windows 10 LTSC 是 2G 以下。都是可以接受的。

Windows+Hyper-V 还是 Linux+VMware ?

Windows 平台软件丰富,驱动支持好。Windows 下使用 Linux 子系统或 Docker ,需要开启 Hyper-V 。Hyper-V 虚拟化方案是 Type1 ,对标 ESXi ,性能比 VMware ,VirualBox 这类 Type2 好。能用 GPU 加速,但不支持 USB 。启用 Hyper-V ,会和其他虚拟类软件冲突。虽然最新的 VMWare 和 VirtualBox 虽然已兼容,但性能会有损耗。还有很多如安卓模拟器等依然会冲突。

Linux 下对于程序员来说开发环境搭建方便,大多数开发环境只需一条命令安装,玩 AI 也适合。VSCode ,JetBrains Gateway 等远程开发方案都只支持 Linux 。Linux 下原生支持 Docker ,大多数非图形化程序在 Linux 下运行效率高( Windows 的 Microsoft Defender 扫描,对有很多小文件的项目磁盘 IO 有较大影响)。VMWare Workstation 个人已完全免费,性能好,支持 USB 。

如果选择 Windows ,一定会安装 Linux ,因为 NAS 和 Docker 是刚需。而且现在两块数据机械硬盘都是 EXT4 格式,迁移成本大。

如果选择 Linux ,不一定会安装 Windows 。因为有笔记本电脑,Windows 下的电源管理比 Linux 强多了,笔记本电脑还是首选 Windows 。

9068 次点击
所在节点    程序员
65 条回复
godall
2024-09-04 15:14:44 +08:00
PVE 呢?
swLoXtOtd89pGg8t
2024-09-04 15:27:44 +08:00
显卡只能直通某一台虚拟机。如果有多台虚拟机,无法共享 GPU 算力。

同一显卡多台虚拟机共享,需要 vGPU (授权警告。。)
swLoXtOtd89pGg8t
2024-09-04 15:30:52 +08:00
不建议 hyperv ,虚拟化本身没有问题,但对于克隆什么的不友好,也没有什么统一的资源管理(比如 iso 仓库,存储池)。每次管理也需要 rdp 上去,不如 web 方便,有些眼花缭乱。

建议 pve
nilai
2024-09-04 15:32:05 +08:00
KVM 呢?
SophieEZzz
2024-09-04 15:35:20 +08:00
gpu 需要支持虚拟化才能解决前两个问题,第三个也许可以通过软件解决
可以试试 pve
以及我都给 esxi 和软路由额外配个 ups
molezznet
2024-09-04 16:34:07 +08:00
硬件不支持 esxi ,只能用 pve 。自动定期导出到另一台
luojiyin87
2024-09-04 16:37:27 +08:00
ups ? 321 文件备份原则
Bazingal
2024-09-04 16:42:03 +08:00
PVE+GVT-g 应该能解决你的痛点
snipking
2024-09-04 16:51:05 +08:00
虚拟化不是刚需,直接 Linux + Docker 就行了
wheat0r
2024-09-04 16:56:35 +08:00
“Hyper-V 虚拟化方案是 Type1 ,对标 ESXi ,性能比 VMware ,VirualBox 这类 Type2 好。”
看看这是在说啥
glcolof
2024-09-04 16:58:18 +08:00
@NevadaLi Windows 21H2 (也可能从更早的版本开始)的 HyperV 里面没有这个限制了,很多游戏工作室都用 HyperV 开虚拟机来挂游戏。
archxm
2024-09-04 16:58:57 +08:00
没有折腾价值
defunct9
2024-09-04 17:02:00 +08:00
kvm 就完事了
my101du
2024-09-04 17:02:58 +08:00
HyperV 里的 Windows 支持挂 USB 设备啊。 在连接的时候,有个高级选项。
Excepti0n
2024-09-04 17:06:39 +08:00
pve+sriov 可能可以解决
Mithril
2024-09-04 17:07:44 +08:00
虽说 PVE 大概能满足你的需求,但 PVE 本身的更新也是问题。

他就是个修改过的 debian ,一旦有安全漏洞需要补丁你照样可能需要重启。

但相对的它也就只是个 Linux+webshell ,你 Linux 的使用经验是完全适用的,出了问题你也可以自己搞定。
hez2010
2024-09-04 17:09:51 +08:00
@NevadaLi Windows Admin Center 了解一下,现在的 Windows Server 早就不需要 rdp 进去管理了。
hez2010
2024-09-04 17:11:37 +08:00
关于 GPU 虚拟化,如果你用 Hyper-V 的话则可以通过 GPU-PV 来启用 GPU 分区和虚拟化,这样一块 GPU 就可以被多台虚拟机共享了。
不过 Linux 需要用微软那个 WSL2 的 kernel ,不然没有 GPU 驱动无法调用 Hyper-V 虚拟化出来的 GPU 。
YongXMan
2024-09-04 17:13:25 +08:00
两台 ESXI + vsphere 稳定跑了几年了,没有掉过链子。
Jinnrry
2024-09-04 17:19:08 +08:00
PVE + vGPU unlock

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1070200

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX