最近要换 13600K + 64G 内存, 感觉可以完全把开发环境搬到虚拟机了, 所以来求个方案.
目前是 Win, 因为有游戏需求, 开发环境一套宿主机 Win + Msys2 + 若干语言环境等等, 然后一个 Linux 虚拟机, dotfile 维护一套环境. Linux 下还好, 主要是 Win, 每次重装配环境要装半天, 安装还好, 配置能脚本的也尽量脚本了, 但还是架不住有些东西的配置选项要 GUI 一路点过去, 这波升级配置再来一遍实在有点犯恶心, 所以想要完全迁移到虚拟机. 但仔细想想这事情也好像没那么简单.
整理了下根本需求:
其实之前也看过本站很多帖子调研了下, 目前设想的两个大方向:
在此基础之上, 又有几个方案:
目前倾向于方案 2 和 3, 但是一个问题就是 PVE GPU 直通游戏效果如何?
或者大家有什么其他方案? 也欢迎分享自己目前用的方案
1
cy18 2023-04-28 15:30:41 +08:00
VSCode+Docker...
没法完全满足你的需求,但胜在简单,开发不同的东西还可以用不同的 Docker 镜像环境。 |
2
qqjt 2023-04-28 15:48:40 +08:00
我是宿主机 win10 ,vmware 里装 ubuntu ,直通很难搞,建议放弃。windows 系统迁移直接把硬盘接到新主板上开机就好了,再更新一下驱动。
|
3
zsj1029 2023-04-28 15:51:24 +08:00
win11+虚拟机 linux 桌面版,两个桌面分开,开发完全切换到 linux 里面
|
4
MRG0 2023-04-28 15:56:35 +08:00
我觉得要么是 vmware 这样的虚拟化软件。要么就捡 e3 或 e5 ,开发和游戏分开
|
5
xhcarlin 2023-04-28 15:56:55 +08:00
之前用虚拟机,有一次我正常关机虚拟机,结果下一次启动就直接报错了。后来我就尽量用 wsl ,搭配 docker + vscode devcontainer 。
|
6
dayeye2006199 2023-04-28 15:57:08 +08:00 via Android 1
我是喜欢用 vagrant 配 hyperv ,宿主机 vscode remote 进去弄。所有的开发都放虚拟机里面,宿主机就跑个 vscode ,浏览器和协作工具用用。
Vagrantfile check-in 一份进项目 repo ,别人用都可以复制这个开发环境。 |
7
810244966 2023-04-28 16:02:32 +08:00
我是用虚拟机装了一些环境 mysql 、redis 之类的,然后 win11 里就直接下 ide 开发,游戏也是同时打,感觉并没有差异,代码都在 git 上,重装系统也只是重新下载 ide ,导入之前 ide 的配置,。而且现在硬盘足够大感觉重装系统已经是几年一次的行为了。个人认为没必要为了这么低的频率去在虚拟机里开发,(比较麻烦,性能有损失)
|
8
imoru 2023-04-28 16:36:00 +08:00 1
我觉得可以考虑使用 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 |
9
iawes 2023-04-28 16:38:07 +08:00
宿主机装 Linux ,然后用 qemu+kvm ,虚拟机想怎么直通都行,甚至可以直通 osx
|
10
angryfish 2023-04-28 16:41:14 +08:00
个人觉得 win 宿主机+一个 linux 虚拟机就行了。linux 虚拟机直接装界面那种。linux 的开发直接在 linux 。windows 的就用 windows 。像数据库,redis 这些中间件,放 docker ,win 和 linux 公用
|
11
Daeyn 2023-04-28 16:45:00 +08:00 via iPhone
玩游戏需求的话那还是 win11+hyper-v linux 虚拟机最稳
|
12
zedpass 2023-04-28 16:58:37 +08:00 1
pve 直通可以玩游戏的,或者你直接宿主机用 Linux ,然后 kvm 直通显卡;
我目前宿主机使用 deepin ,显示输出使用核显; kvm 直通 RTX 2070S 给 win 11 ,然后再买一个 KVM 切换器接到同一个显示器,玩游戏的话就使用切换器一键切换到 win |
13
documentzhangx66 2023-04-28 17:06:01 +08:00 1
1.虚拟机要拿来办公或开发,RECC 内存条是必须的,不然普通内存条如果出问题,机器不一定能及时报警或蓝屏来提醒,这会导致数据损坏的积累。
2.一旦确定要上了 RECC 内存条,就需要用志强 CPU ,以及服务器主板。这种东西有便宜的,也有贵的。但无论如何,都比较耗电。 3.如果你显示器超过 4 个,虚拟化宿主机器一定要装显卡,不一定要多好,但一定要有独立显卡。我以前的虚拟化服务器,没配独显,跳板机是 4 显示器时,远程桌面还算顺畅,后来扩展到 10 显示器,远程桌面直接 PPT 。 4.i9 是拿来打游戏的,当虚拟化物理机,不合适。 5.无论 CPU 还是 GPU 或者存储介质,一旦上了虚拟化,性能就大降。虚拟化的优势是方便,代价是牺牲一部分性能。 |
14
luoxiang 2023-04-28 17:28:51 +08:00
我是主机 win10ltsc ,开发用 vmware 免费版装的 win7 ,觉得隔离开比较方便备份和无病毒的担心
|
15
shangyu7 2023-04-28 17:48:52 +08:00
Linux 没有 gpu 需求的话方案 1 更好吧
|
16
masterjoess 2023-04-28 17:55:25 +08:00
再组一台桌机或者二手服务器
配亮机卡 linux qemu kvm 或者 PVE 玩游戏 AIO 方案折腾玩玩可以, 但终究还是有点不设实际的 |
17
klarkzh 2023-04-28 18:14:19 +08:00 via iPhone
我现在是 pve ,虚拟一个 win ,显卡和一块固态直通用来玩游戏和杂七杂八操作,再虚拟一个 ubuntu server 。整个机器扔在一边 24 小时开机。然后随便找个 nuc 或者 Mac mini 日常使用,有需求就远程或者显示器切换输入源,如果游戏画质要求不高就用 parsec ,安装一个 zerotier 不在家也能连上 win 虚拟机。
|
18
onikage 2023-04-28 18:47:50 +08:00
方案 1: 直接 host 上 linux, 游戏买个 steamdeck 就好.
方案 2: 或者在 kvm 里面显卡直通 毕竟游戏时间还是少数. 以前是方案 2, 目前是方案 1. kvm 切换起来还是麻烦. |
19
LoveMyself546 2023-04-28 20:20:50 +08:00
* 如果是想将现有的 win 环境迁移到虚拟机,可以用 diskgenius ,里面有个功能可以直接将当前的系统转换成虚拟机磁盘直接运行
* 我现在的方案就是 vs idea 这些用不到 gpu 的工具都装虚拟机里面,因为有时跑一些项目要用到 gpu ,所以宿主机装了个 pycharm |
20
dann73580 2023-04-28 20:33:35 +08:00
PVE 直通 GPU 基本上没什么大问题,还是挺好用的。记得参照官方最新的教程,很快就能跑起来了。
值得注意的点是,记得手动修改下虚拟出来的主板信息,不能用默认的虚拟机模板,否则会被部分有反作弊措施的游戏检测到是跑在虚拟机里的。这是我用 PVE 打游戏事遇到唯一一个坑。 |
21
zx900930 2023-04-29 03:12:23 +08:00
@documentzhangx66 1. ecc 不是必须的,特别是对 OP 这种个人开发用途而言。 ecc 真正有点用是存储用 zfs 之类 cache 写 ram 里的怕丢数据,或者就是需要大规模高精度计算。不要把 data center 的思维带到 homelab 花冤枉钱。
2. 如果 vm 都要装桌面环境或者一堆 windows vm 那确实有必要上个独显。否则可以完全不要独显甚至核显,完全 headless 。 第一次安装走主板上的 com 口通过 serial port 输出,配置好网络 interface 以后就可以通过 webui 和 ssh 访问了。 |
22
documentzhangx66 2023-04-29 03:30:02 +08:00
@zx900930
我在前面提了,当需求是办公或开发,RECC 是必须的。不然万一遇到了内存条故障,积累损失会让文件逐渐损坏,这种损坏即使有版本控制,修复代价也很大,因为它的 debuff 特性是积累式损坏。 但你在 21 楼,说是个人用途。在个人用途的情况下,的确如你所述,RECC 是否必须,就不一定了,因为这取决于数据重要性,以及机器成本。比如海量的电影数据,坏掉几个分散的 KB 甚至 MB ,我都觉得无伤大雅,毕竟电影视频文件,一般自带纠错。 |
23
yrj 2023-04-29 06:13:21 +08:00
楼主,太巧了,我和你有同样的困惑,且咱俩思考的流程方案都是一样的。我也考虑过 pve 这种方案,把显卡通给一台虚拟机,但感觉切换机器太麻烦了。hyperv 虽然不能直通,但好像可以 GPU 加速。但我还是觉得应该用宿主机直接看视频玩游戏啥的。否则怕成 ppt 。为此我前两天还发了个关于虚拟容器应用的帖子。目前我的想法更倾向远程开发的方式,软件还是安装在宿主机。
|
24
esee 2023-04-29 11:22:09 +08:00
@documentzhangx66 哪有这么夸张,你开发环境当高可用生产环境来用?
|
25
Al0rid4l OP @yrj 仔细考虑下来发现根本问题是我无法完全把日常使用和开发环境分离开来, 比如我刷刷油管 b 站, 偶尔有些视频想要抓下来就得 yt-dlp, yt-dlp 吧就得给它配个 ffmpeg, 想用起来舒服点吧还得整个 Win terminal, 遇到抓不下来的还得弄个 Insomnia/Postman 之类的请求工具看看原因, 有时候遇到网络问题也得用些工具检查
于是变成宿主机还是得装些开发相关的工具, 同时虚拟机还得维护一套, 这时候什么方案都显得有些失去意义 所以我还是倾向于把整个日常使用和开发都塞到一个虚拟机或者两个虚拟机里, 能一点开发工具都不沾完全分离的只有游戏, 可以装宿主机 当然我也可以弄两台电脑, 一台打游戏一台开发, 不过游戏机通常配置也比较高, 只拿来打游戏感觉好亏啊 |
26
documentzhangx66 2023-04-29 19:10:59 +08:00
|
27
ModerRAS 2023-07-09 09:52:12 +08:00 via iPhone
要是 pve 直通 gpu 的话,可能玩游戏会有一些小 bug ,就像是一开麦就越来越卡之类的,玩游戏突然掉帧之类的,还得踩一下坑解决一下。
如果你用 gpu 主要是 cuda 之类的炼丹环境,win11 配 wsl2 其实就可以解决,效率可能低一点但是不会少很多,至少还有 90%多的性能。坑在有时候 wsl2 的虚拟机 CPU 会在你休眠唤醒之后莫名其妙一直满着。 |