V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
qizheng22
V2EX  ›  程序员

All In Boom 带来的思考

  •  
  •   qizheng22 · 2024-09-04 15:03:05 +08:00 · 8972 次点击
    这是一个创建于 366 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 。

    65 条回复    2024-09-09 17:33:25 +08:00
    godall
        1
    godall  
       2024-09-04 15:14:44 +08:00
    PVE 呢?
    swLoXtOtd89pGg8t
        2
    swLoXtOtd89pGg8t  
       2024-09-04 15:27:44 +08:00
    显卡只能直通某一台虚拟机。如果有多台虚拟机,无法共享 GPU 算力。

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

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

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

    但相对的它也就只是个 Linux+webshell ,你 Linux 的使用经验是完全适用的,出了问题你也可以自己搞定。
    hez2010
        17
    hez2010  
       2024-09-04 17:09:51 +08:00
    @NevadaLi Windows Admin Center 了解一下,现在的 Windows Server 早就不需要 rdp 进去管理了。
    hez2010
        18
    hez2010  
       2024-09-04 17:11:37 +08:00
    关于 GPU 虚拟化,如果你用 Hyper-V 的话则可以通过 GPU-PV 来启用 GPU 分区和虚拟化,这样一块 GPU 就可以被多台虚拟机共享了。
    不过 Linux 需要用微软那个 WSL2 的 kernel ,不然没有 GPU 驱动无法调用 Hyper-V 虚拟化出来的 GPU 。
    YongXMan
        19
    YongXMan  
       2024-09-04 17:13:25 +08:00
    两台 ESXI + vsphere 稳定跑了几年了,没有掉过链子。
    Jinnrry
        20
    Jinnrry  
       2024-09-04 17:19:08 +08:00
    PVE + vGPU unlock
    msg7086
        21
    msg7086  
       2024-09-04 17:22:23 +08:00   ❤️ 1
    ESXi 不是一个适合 DIY 的东西。如果掉电了,那是没有 UPS 的锅。如果换证书换炸了,那基本上也是你的锅。ESXi 就是你不动他他就很稳,但是但凡你要搞点什么事,就炸了。这是我从 ESXi 5.5 平台上学来的血泪教训。

    PVE 没有很多痛点,只要你熟悉 Linux ,什么都可以按照你的心思来,一切都在你自己的掌握中。怕存磁盘的文件系统断电爆炸?你可以用 lvm raw device 。需要 snapshot ?你可以用 zfs 。需要高可用? ceph 走起。内核补丁打完要不要重启也是你自己决定,想玩集群也可以玩,热迁移到另一台母鸡上然后滚动重启也是可以做到的。

    显卡共享算力这个,你买了支持共享共享算力的显卡了吗。
    swLoXtOtd89pGg8t
        22
    swLoXtOtd89pGg8t  
       2024-09-04 17:37:26 +08:00
    @hez2010 #17 试过了,极慢无比,而且吃很多资源。
    yuantinghg
        23
    yuantinghg  
       2024-09-04 17:44:35 +08:00 via Android
    切 PVE 吧
    iloveayu
        24
    iloveayu  
       2024-09-04 17:45:27 +08:00
    个人用就 PVE 吧,ESXi 这种黑盒想稳还是得靠原厂 support 。
    povsister
        25
    povsister  
       2024-09-04 17:48:28 +08:00
    ESXi 迁移 PVE 用户

    稍微会玩一点的,搞 AIO 肯定都还是偏向于使用 linux ,那么 pve 可以 lxc 直接以极低的 overhead 跑 linux 就是一个很大优势。
    如果实在需要 guest kernel ,那 pve 也有完善的 vm 支持和模板可以用。

    而且,#21 说的很对,如果你对 linux 熟悉,那你甚至可以把 pve 搞成任何你需要的样子。
    这一点,ESXi ?就是只能当个 hypervisor 用罢了。
    blankmiss
        26
    blankmiss  
       2024-09-04 17:54:54 +08:00
    @Jinnrry 10 系以下的吗
    zbatman
        27
    zbatman  
       2024-09-04 18:01:16 +08:00
    @wheat0r 有啥问题吗这句话
    roidinev
        28
    roidinev  
       2024-09-04 18:45:19 +08:00
    支持 kvm +linux 方案。一切在自己掌控下 也容易更新。就是需要折腾
    hertzry
        29
    hertzry  
       2024-09-04 18:53:14 +08:00 via iPhone
    Hyper-V 能挂载外部设备。
    zyq2280539
        30
    zyq2280539  
       2024-09-04 19:00:23 +08:00
    最近自学了 Linux 运维,感觉底层用 Linux 然后使用 KVM 方式使用虚拟机更方便。😄
    512357301
        31
    512357301  
       2024-09-04 19:20:28 +08:00 via Android
    boot2docker 无敌
    haython
        32
    haython  
       2024-09-04 19:27:45 +08:00
    之前在公司内部用 pve ,虚拟出来几个机器,不知道怎么回事,过一段时间就会把整个公司网络搞挂掉,只要把这个 pve 机器断网或重启就没事了,最后只能卸载了,后来就没出现过了
    LoliconInside
        33
    LoliconInside  
       2024-09-04 20:55:20 +08:00
    @wheat0r
    Hyper-V 确实是第一类 VMM ,直接与硬件交互并调度资源,开启 Hyper-V 功能后,Windows 宿主机本身也是作为一个特权虚拟机运行的(类似 Xen 中的 Domain 0 )。
    VMWare Workstation 、VirtualBox 等方案就是第二类 VMM ,依赖于宿主机操作系统进行硬件资源分配。
    wangsd
        34
    wangsd  
       2024-09-04 23:41:16 +08:00
    @wheat0r 确实是这样,开启 Hyper-V 之后,原来的系统会变成一个运行在其上的虚拟机。
    n2l
        35
    n2l  
       2024-09-04 23:45:06 +08:00 via iPhone
    @haython DHCP 没关吧
    wheat0r
        36
    wheat0r  
       2024-09-05 00:01:43 +08:00
    @zbatman #27 是把 ESXi 从 VMware 家里开除了吗?
    3L99FY8Topz9608o
        37
    3L99FY8Topz9608o  
       2024-09-05 00:02:26 +08:00
    越少越好,只要必要
    hez2010
        38
    hez2010  
       2024-09-05 00:47:05 +08:00
    @NevadaLi Windows Admin Center 是装在网关上用来管理集群的,这个网关的资源你得给够。反正我给了 2 核 4G 的资源给它用起来非常流畅。
    qizheng22
        39
    qizheng22  
    OP
       2024-09-05 00:54:24 +08:00
    目前选择了 Linux+Docker ,除了远程桌面有点蛋疼。大多数远程桌面不支持 Wayland ,Gnome 的 RDP 不能保存会话,退出远程后,所有程序都关了
    4s4IYOLfT1s3InRR
        40
    4s4IYOLfT1s3InRR  
       2024-09-05 08:35:00 +08:00
    上边好几个 v 友都说了 pve 可以解决,非要用 linux+docker ,这不纯若只么,如果只是远程操控自带的 vnc 完全够用
    wyxls
        41
    wyxls  
       2024-09-05 08:50:52 +08:00
    从 OP 需求上看,PVE 比较适合而且灵活,想走 Linux 可以直接创一个 LXC 容器出来,当原生 Linux 用,同时兼容 windows 虚拟机,硬件直通也有基本兼容

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

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

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

    CPU 是 7700K ,48GB 内存

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

    用 EXSI 时,开发环境和基本服务各分 8G 内存,开发机分 16G 内存。用 Linux+Docker 后,一般 20G 就够用了。
    分成不同虚拟机,分配资源还是会有一定浪费,但又不得不留一些剩余。
    shentar
        52
    shentar  
       2024-09-05 10:21:44 +08:00
    我的经验是数据远比系统重要。数据跟系统不要耦合。数据一定是放在标准的文件系统上面,不要指望什么软硬 raid 。重要数据手动复制多份冗余。系统无状态,可随时重装。
    8355
        53
    8355  
       2024-09-05 10:22:37 +08:00
    可能我会选择 All In Mac Studio / Mac mini
    能稍微安心点
    但是我确实没有 op 这种连续 2 年多的长期使用经验
    yb8Qes1Qae01H0xy
        54
    yb8Qes1Qae01H0xy  
       2024-09-05 10:23:01 +08:00
    建议 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
        55
    qizheng22  
    OP
       2024-09-05 10:28:07 +08:00
    @shentar 赞同。有时候偷懒,软件用 apt install 安装,配置文件在/etc 里。用久了,配置文件里有很多,比如 nginx 。突然 boom 搞起来很麻烦。有些自己都不记得了。
    qizheng22
        56
    qizheng22  
    OP
       2024-09-05 10:30:37 +08:00
    @xinmans zfs 很久以前就听说很好,一直没试过,有点不敢。以前用过 brafs 文件系统,感觉也没多大区别。最后还是选择 ext4 ,毕竟这么多年,还是值得信赖。

    硬盘直通是好办法,存储盘直通没问题。但是有时想让其他虚拟机共享 SSD 的速度。直通的话只有一个虚拟机能用了。硬盘有限,其他虚拟机就只能用虚拟磁盘。
    zephyru
        57
    zephyru  
       2024-09-05 10:38:56 +08:00
    我装了一圈后,选择了 windows+VMWare Workstation
    选择 windows 还是简单,方便维护,家用的稳定性其实也差不多说的过去
    不过长时间开机内存占用会维持在高位,重启,也算是正好应对差不多每几个月一次的更新
    之前用 wsl 体验不佳,所以也不怎想用 Hyper-V 感觉也没什么明显优势
    seven123
        58
    seven123  
       2024-09-05 10:44:46 +08:00
    ESXI 几年了,只要自己不乱搞,稳得很
    qizheng22
        59
    qizheng22  
    OP
       2024-09-05 10:53:18 +08:00 via iPhone
    @zephyru win 系统开发的话有点烦。项目目录要设置排除目录,虽然一般 ide 会自己做了这个工作。各种环境变量配起来比 linux 烦琐。还有经常改 hosts ,不像 linux 直接 vi /etc/hosts 。不过 win 下的远程桌面体验没得说。但现在的远程开发工具基本都只支持 ssh 连 linux
    qizheng22
        60
    qizheng22  
    OP
       2024-09-05 10:55:12 +08:00 via iPhone
    @seven123 确实稳,不过后面换机器,考虑到它不支持大小核利用,还是尽早切换出来。尤其这次事件,没什么好的工具能读 vmfs 文件系统,让我下定决心换了
    XXOO133
        61
    XXOO133  
       2024-09-05 11:07:41 +08:00
    PVE 可替代,楼上几位都说了,另外,作为过来人,建议你还是不要把系统装 U 盘了,我之前 PVE 装 U 盘里,用了 3 年多,前段时间还在坛子里说可靠,结果近几个月出现问题了,重启有时候起不起来,后面系统还是换装到固态硬盘了。
    zzxCNCZ
        62
    zzxCNCZ  
       2024-09-05 11:38:19 +08:00
    all in boom 总有一天会 boom ,提前做好恢复准备就好,pve 虚拟机导出一份备份,虚拟机系统使用硬盘直通挂盘,哪天 boom 了恢复起来也很快
    Ackvincent
        63
    Ackvincent  
       364 天前
    搞个双机热备好了,除了费电没什么毛病。
    hez2010
        64
    hez2010  
       361 天前
    @NevadaLi pve 自带的那个只是 vm 管理工具,而 Windows Admin Center 是整个集群的服务器管理工具,vm 管理只是其中的一个功能。
    swLoXtOtd89pGg8t
        65
    swLoXtOtd89pGg8t  
       360 天前
    @hez2010 #64 pve 也有 cluster ,不过确实不好用。。。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5276 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 07:40 · PVG 15:40 · LAX 00:40 · JFK 03:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.