V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
qizheng22
V2EX  ›  程序员

All In Boom 带来的思考

  •  
  •   qizheng22 · 70 天前 · 6789 次点击
    这是一个创建于 70 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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  
       70 天前
    PVE 呢?
    NevadaLi
        2
    NevadaLi  
       70 天前
    显卡只能直通某一台虚拟机。如果有多台虚拟机,无法共享 GPU 算力。

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

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

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

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

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

    显卡共享算力这个,你买了支持共享共享算力的显卡了吗。
    NevadaLi
        22
    NevadaLi  
       70 天前
    @hez2010 #17 试过了,极慢无比,而且吃很多资源。
    yuantinghg
        23
    yuantinghg  
       70 天前 via Android
    切 PVE 吧
    iloveayu
        24
    iloveayu  
       70 天前
    个人用就 PVE 吧,ESXi 这种黑盒想稳还是得靠原厂 support 。
    povsister
        25
    povsister  
       70 天前
    ESXi 迁移 PVE 用户

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

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

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

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

    是 OP 根本没考虑到没听说过 PVE 吗? 没了 PVE 方案的对比,你正文里的方案对比犹如鸡肋,食之无味弃之可惜。
    Hopetree
        49
    Hopetree  
       70 天前
    最开始 EXSI ,后面换成 PVE ,我感觉 PVE 可玩性更高,也很稳定,EXSI 是商用的,稳定是第一基本不需要质疑
    NevadaLi
        50
    NevadaLi  
       70 天前
    @glcolof #47 原来如此。。
    qizheng22
        51
    qizheng22  
    OP
       70 天前
    @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  
       70 天前
    我的经验是数据远比系统重要。数据跟系统不要耦合。数据一定是放在标准的文件系统上面,不要指望什么软硬 raid 。重要数据手动复制多份冗余。系统无状态,可随时重装。
    8355
        53
    8355  
       70 天前
    可能我会选择 All In Mac Studio / Mac mini
    能稍微安心点
    但是我确实没有 op 这种连续 2 年多的长期使用经验
    xinmans
        54
    xinmans  
       70 天前
    建议 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
       70 天前
    @shentar 赞同。有时候偷懒,软件用 apt install 安装,配置文件在/etc 里。用久了,配置文件里有很多,比如 nginx 。突然 boom 搞起来很麻烦。有些自己都不记得了。
    qizheng22
        56
    qizheng22  
    OP
       70 天前
    @xinmans zfs 很久以前就听说很好,一直没试过,有点不敢。以前用过 brafs 文件系统,感觉也没多大区别。最后还是选择 ext4 ,毕竟这么多年,还是值得信赖。

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