求推荐虚拟机做开发环境的方案

2023-04-28 15:25:38 +08:00
 Al0rid4l

最近要换 13600K + 64G 内存, 感觉可以完全把开发环境搬到虚拟机了, 所以来求个方案.

目前是 Win, 因为有游戏需求, 开发环境一套宿主机 Win + Msys2 + 若干语言环境等等, 然后一个 Linux 虚拟机, dotfile 维护一套环境. Linux 下还好, 主要是 Win, 每次重装配环境要装半天, 安装还好, 配置能脚本的也尽量脚本了, 但还是架不住有些东西的配置选项要 GUI 一路点过去, 这波升级配置再来一遍实在有点犯恶心, 所以想要完全迁移到虚拟机. 但仔细想想这事情也好像没那么简单.

整理了下根本需求:

  1. 希望只维护一套开发环境(目前看来这个不太现实, 需要一个 Win, AHK, Everything, VS 等找不到替代品)
  2. 如果必须维护两套(一套 Win 一套 Linux), 那也得是两个虚拟机可以直接打包带走.

其实之前也看过本站很多帖子调研了下, 目前设想的两个大方向:

  1. 宿主机 Win11 + Hyper-V, 但是好像 Hyper-V 的 GPU 直通要 Win Server 的系统.
  2. PVE GPU 直通, 这能打游戏吗? 地平线这样的. 总之不管怎样, 都希望能有个 GPU 直通的方案.

在此基础之上, 又有几个方案:

  1. 宿主机 Win11, 开发环境只在 Linux 虚拟机里搞, VSCode remote 过去. 这个方案开发倒是没什么问题, 但是宿主机上会装些效率工具, 这些个工具要么可编程, 如 AHK, 要么依赖些开发环境, 如 yt-dlp 要 ffpmeg, 还想要个舒服的 Terminal, Logseq 的笔记要 Git 来同步, 这一系列操作下来等于又在宿主机装了半套开发环境了. 于是有了第二套方案, 把整个工作流都塞到虚拟机里, 宿主机只装游戏.
  2. 宿主机 Win11, 一台开发 Win, 一台 Linux
  3. 如果可以打游戏的话就有这套方案, 宿主机 PVE, 一台游戏 Win, 一台开发 Win, 一台 Linux

目前倾向于方案 2 和 3, 但是一个问题就是 PVE GPU 直通游戏效果如何?

或者大家有什么其他方案? 也欢迎分享自己目前用的方案

5666 次点击
所在节点    程序员
27 条回复
cy18
2023-04-28 15:30:41 +08:00
VSCode+Docker...
没法完全满足你的需求,但胜在简单,开发不同的东西还可以用不同的 Docker 镜像环境。
qqjt
2023-04-28 15:48:40 +08:00
我是宿主机 win10 ,vmware 里装 ubuntu ,直通很难搞,建议放弃。windows 系统迁移直接把硬盘接到新主板上开机就好了,再更新一下驱动。
zsj1029
2023-04-28 15:51:24 +08:00
win11+虚拟机 linux 桌面版,两个桌面分开,开发完全切换到 linux 里面
MRG0
2023-04-28 15:56:35 +08:00
我觉得要么是 vmware 这样的虚拟化软件。要么就捡 e3 或 e5 ,开发和游戏分开
xhcarlin
2023-04-28 15:56:55 +08:00
之前用虚拟机,有一次我正常关机虚拟机,结果下一次启动就直接报错了。后来我就尽量用 wsl ,搭配 docker + vscode devcontainer 。
dayeye2006199
2023-04-28 15:57:08 +08:00
我是喜欢用 vagrant 配 hyperv ,宿主机 vscode remote 进去弄。所有的开发都放虚拟机里面,宿主机就跑个 vscode ,浏览器和协作工具用用。

Vagrantfile check-in 一份进项目 repo ,别人用都可以复制这个开发环境。
810244966
2023-04-28 16:02:32 +08:00
我是用虚拟机装了一些环境 mysql 、redis 之类的,然后 win11 里就直接下 ide 开发,游戏也是同时打,感觉并没有差异,代码都在 git 上,重装系统也只是重新下载 ide ,导入之前 ide 的配置,。而且现在硬盘足够大感觉重装系统已经是几年一次的行为了。个人认为没必要为了这么低的频率去在虚拟机里开发,(比较麻烦,性能有损失)
imoru
2023-04-28 16:36:00 +08:00
我觉得可以考虑使用 GPU-P 而不是直通 gpu,宿主机安装 Windows server2022 然后虚拟机里安装 win11 和 linux,我现在就是使用这个方案,
可以参考这个设置方式 https://forum.level1techs.com/t/2-gamers-1-gpu-with-hyper-v-gpu-p-gpu-partitioning-finally-made-possible-with-hyperv/172234
iawes
2023-04-28 16:38:07 +08:00
宿主机装 Linux ,然后用 qemu+kvm ,虚拟机想怎么直通都行,甚至可以直通 osx
angryfish
2023-04-28 16:41:14 +08:00
个人觉得 win 宿主机+一个 linux 虚拟机就行了。linux 虚拟机直接装界面那种。linux 的开发直接在 linux 。windows 的就用 windows 。像数据库,redis 这些中间件,放 docker ,win 和 linux 公用
Daeyn
2023-04-28 16:45:00 +08:00
玩游戏需求的话那还是 win11+hyper-v linux 虚拟机最稳
zedpass
2023-04-28 16:58:37 +08:00
pve 直通可以玩游戏的,或者你直接宿主机用 Linux ,然后 kvm 直通显卡;
我目前宿主机使用 deepin ,显示输出使用核显; kvm 直通 RTX 2070S 给 win 11 ,然后再买一个 KVM 切换器接到同一个显示器,玩游戏的话就使用切换器一键切换到 win
documentzhangx66
2023-04-28 17:06:01 +08:00
1.虚拟机要拿来办公或开发,RECC 内存条是必须的,不然普通内存条如果出问题,机器不一定能及时报警或蓝屏来提醒,这会导致数据损坏的积累。

2.一旦确定要上了 RECC 内存条,就需要用志强 CPU ,以及服务器主板。这种东西有便宜的,也有贵的。但无论如何,都比较耗电。

3.如果你显示器超过 4 个,虚拟化宿主机器一定要装显卡,不一定要多好,但一定要有独立显卡。我以前的虚拟化服务器,没配独显,跳板机是 4 显示器时,远程桌面还算顺畅,后来扩展到 10 显示器,远程桌面直接 PPT 。

4.i9 是拿来打游戏的,当虚拟化物理机,不合适。

5.无论 CPU 还是 GPU 或者存储介质,一旦上了虚拟化,性能就大降。虚拟化的优势是方便,代价是牺牲一部分性能。
luoxiang
2023-04-28 17:28:51 +08:00
我是主机 win10ltsc ,开发用 vmware 免费版装的 win7 ,觉得隔离开比较方便备份和无病毒的担心
shangyu7
2023-04-28 17:48:52 +08:00
Linux 没有 gpu 需求的话方案 1 更好吧
masterjoess
2023-04-28 17:55:25 +08:00
再组一台桌机或者二手服务器
配亮机卡
linux qemu kvm 或者 PVE

玩游戏 AIO 方案折腾玩玩可以, 但终究还是有点不设实际的
klarkzh
2023-04-28 18:14:19 +08:00
我现在是 pve ,虚拟一个 win ,显卡和一块固态直通用来玩游戏和杂七杂八操作,再虚拟一个 ubuntu server 。整个机器扔在一边 24 小时开机。然后随便找个 nuc 或者 Mac mini 日常使用,有需求就远程或者显示器切换输入源,如果游戏画质要求不高就用 parsec ,安装一个 zerotier 不在家也能连上 win 虚拟机。
onikage
2023-04-28 18:47:50 +08:00
方案 1: 直接 host 上 linux, 游戏买个 steamdeck 就好.
方案 2: 或者在 kvm 里面显卡直通
毕竟游戏时间还是少数.

以前是方案 2, 目前是方案 1. kvm 切换起来还是麻烦.
LoveMyself546
2023-04-28 20:20:50 +08:00
* 如果是想将现有的 win 环境迁移到虚拟机,可以用 diskgenius ,里面有个功能可以直接将当前的系统转换成虚拟机磁盘直接运行
* 我现在的方案就是 vs idea 这些用不到 gpu 的工具都装虚拟机里面,因为有时跑一些项目要用到 gpu ,所以宿主机装了个 pycharm
dann73580
2023-04-28 20:33:35 +08:00
PVE 直通 GPU 基本上没什么大问题,还是挺好用的。记得参照官方最新的教程,很快就能跑起来了。

值得注意的点是,记得手动修改下虚拟出来的主板信息,不能用默认的虚拟机模板,否则会被部分有反作弊措施的游戏检测到是跑在虚拟机里的。这是我用 PVE 打游戏事遇到唯一一个坑。

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

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

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

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

© 2021 V2EX