All In Boom 带来的思考

123 天前
 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 。

7384 次点击
所在节点    程序员
65 条回复
wyxls
122 天前
从 OP 需求上看,PVE 比较适合而且灵活,想走 Linux 可以直接创一个 LXC 容器出来,当原生 Linux 用,同时兼容 windows 虚拟机,硬件直通也有基本兼容

我自己都是搭配 NAS 的大容量存储,每周给全容器做增量备份操作,只要不是备份挂了,换一套 x86 硬件装上 OS ,然后一通还原就能恢复全部服务

当然如果涉及到生产力,建议还是上商业化的方案
webcape233
122 天前
以前也试过 pve ,感觉还是麻烦。 现在我是直接 archlinux ,大部分工作直接里面用,一些测试开发环境就是 kvm 虚拟机,用 cockpit 网页版或者 virmanager ,也没必要服务都容器化,直接运行,简单省心性能好,也很稳。
RobinHuuu
122 天前
linux all in one 就好了
NevadaLi
122 天前
@hez2010 #38 这么看来确实 hyperv 没有 pve 省事,pve 自带的已经很全了, Windows Admin Center 还有各种麻烦
NevadaLi
122 天前
@glcolof #11 是说 vgpu ?我还以为这是老黄的限制。。
user100saysth
122 天前
话说 OP 的 ALL IN BOOM 处理器是啥//?
glcolof
122 天前
@NevadaLi 老黄确实对 GPU 虚拟化有限制,HyperV 这个功能可能是微软和老黄达成了什么协议吧……
Greenm
122 天前
楼主写了这么多对比和分析,什么 vmware ,hyperv ,偏偏就没写 ESXi 的直接对比方案 PVE ,PVE 有着各种个样的优点(我自己也选择的 PVE ),评论也有很多推荐 PVE 的,到底是什么原因让楼主依然选择了 Linux + vmware ?

是 OP 根本没考虑到没听说过 PVE 吗? 没了 PVE 方案的对比,你正文里的方案对比犹如鸡肋,食之无味弃之可惜。
Hopetree
122 天前
最开始 EXSI ,后面换成 PVE ,我感觉 PVE 可玩性更高,也很稳定,EXSI 是商用的,稳定是第一基本不需要质疑
NevadaLi
122 天前
@glcolof #47 原来如此。。
qizheng22
122 天前
@Greenm PVE 以前只是装过一次,没用过,所以无法对比。现在用 Linux ,VMware 暂时没用到。用 Docker 是因为很多系统各自需要的数据库对版本有要求,用 Docker 方便实现各版本数据库使用。

CPU 是 7700K ,48GB 内存

以前用 ESXI ,一共 3 个虚拟机:开发环境(数据库,各种中间件),基础服务(NAS 文件共享,云笔记,博客等),开发机(图形化的 Linux ,一般用 idea 或 vscode 远程开发,偶尔连上去),还有一个 windows 备用,基本没启动。偶尔要下载或者 office 等才开。

用 EXSI 时,开发环境和基本服务各分 8G 内存,开发机分 16G 内存。用 Linux+Docker 后,一般 20G 就够用了。
分成不同虚拟机,分配资源还是会有一定浪费,但又不得不留一些剩余。
shentar
122 天前
我的经验是数据远比系统重要。数据跟系统不要耦合。数据一定是放在标准的文件系统上面,不要指望什么软硬 raid 。重要数据手动复制多份冗余。系统无状态,可随时重装。
8355
122 天前
可能我会选择 All In Mac Studio / Mac mini
能稍微安心点
但是我确实没有 op 这种连续 2 年多的长期使用经验
xinmans
122 天前
建议 pve+开个 VM 直通硬盘部署 pbs 备份。 无论怎么坏,只要 pbs 的数据(可以用 zfs )在,就可以恢复出来。我实践过最坏的情况是,pve 都坏了,vm 都看不到。

我是按照如下步骤逐一恢复的。
1. 部署 pve
2. 开个 vm 部署 pbs
3. 直通之前有 pbs 数据的 zfs 文件系统的 sata 硬盘到 pbs
4. 在 pbs 里能看到所有的配置和备份的 vm
5. 在 pve 里逐一恢复备份在 pbs 里的 vm

至此,所有的数据和配置都自动恢复了,唯一需要手动的是 pve 里配置 pbs 的存储。

所以 allinboom 没问题,只要备份做得好,怎么 boom 都可以自举恢复(除非 pbs 的数据没了,比如机器爆炸了,硬盘掉电挂了,不过我对 zfs 这方面还是有信心的)
qizheng22
122 天前
@shentar 赞同。有时候偷懒,软件用 apt install 安装,配置文件在/etc 里。用久了,配置文件里有很多,比如 nginx 。突然 boom 搞起来很麻烦。有些自己都不记得了。
qizheng22
122 天前
@xinmans zfs 很久以前就听说很好,一直没试过,有点不敢。以前用过 brafs 文件系统,感觉也没多大区别。最后还是选择 ext4 ,毕竟这么多年,还是值得信赖。

硬盘直通是好办法,存储盘直通没问题。但是有时想让其他虚拟机共享 SSD 的速度。直通的话只有一个虚拟机能用了。硬盘有限,其他虚拟机就只能用虚拟磁盘。
zephyru
122 天前
我装了一圈后,选择了 windows+VMWare Workstation
选择 windows 还是简单,方便维护,家用的稳定性其实也差不多说的过去
不过长时间开机内存占用会维持在高位,重启,也算是正好应对差不多每几个月一次的更新
之前用 wsl 体验不佳,所以也不怎想用 Hyper-V 感觉也没什么明显优势
seven123
122 天前
ESXI 几年了,只要自己不乱搞,稳得很
qizheng22
122 天前
@zephyru win 系统开发的话有点烦。项目目录要设置排除目录,虽然一般 ide 会自己做了这个工作。各种环境变量配起来比 linux 烦琐。还有经常改 hosts ,不像 linux 直接 vi /etc/hosts 。不过 win 下的远程桌面体验没得说。但现在的远程开发工具基本都只支持 ssh 连 linux
qizheng22
122 天前
@seven123 确实稳,不过后面换机器,考虑到它不支持大小核利用,还是尽早切换出来。尤其这次事件,没什么好的工具能读 vmfs 文件系统,让我下定决心换了

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

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

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

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

© 2021 V2EX