Windows 使用虚拟机隔离不同生产环境,怎样做能兼顾性能与优雅?

342 天前
 jemz

考虑到使用的程序类型比较杂,一方面很难在主系统中让它们保持“秩序”,即方便统一管理;另一方面也很难保证它们对系统的操作不会引发隐性问题。因此想要将不同生产环境下的软件隔离开来。

例如,我想到的初步方案为,配置多个 Windows 虚拟机,在虚拟机 A 内只安装不得不装的国产软件(如 QQ 之类),在虚拟机 B 内只配置编程生产环境(如 VS Code, PyCharm 之类),在虚拟机 C 内只安装 LaTeX 编辑与编译相关软件,以此类推。考虑到性能,把游戏安装在主系统中。

但是这样操作,不仅每台虚拟机都装一个 Windows 系统,会造成存储上的浪费;而且不符合我对优雅的期待(不然还不如不隔离,出问题直接用配置好的脚本重装)。

大家有没有过这样的想法,是如何解决的?求教,谢谢!

4255 次点击
所在节点    Windows
39 条回复
yinmin
342 天前
以前有一个软件 sandboxie 买过专业版用了好多年,比虚拟机轻很多。现在这个软件还在,只是换了维护者了。
dogfight
342 天前
没人关心 op 需要看下心理医生吗?还是我来到精神病院了??哈哈
akira
341 天前
存储 不值钱。。凡是通过加存储空间能解决的问题,这个方案一般都是最划算的方案了。。
felixcode
341 天前
就用个电脑都这么折腾,有什么优雅的
deorth
341 天前
链接克隆
qwerzl
341 天前
linux 的话有 docker 可以用...Windows 可能会麻烦一点
ikas
341 天前
windows 自带沙盒加上配置文件
每个配置指定不同的文件夹目录,配合 vhdx 挂载
https://learn.microsoft.com/en-us/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-configure-using-wsb-file

<Configuration>
<MappedFolders>
<MappedFolder>
<HostFolder>C:\SandboxScripts</HostFolder>
<SandboxFolder>C:\Users\WDAGUtilityAccount\Downloads\sandbox</SandboxFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
<MappedFolder>
<HostFolder>C:\CodingProjects</HostFolder>
<SandboxFolder>C:\Users\WDAGUtilityAccount\Documents\Projects</SandboxFolder>
<ReadOnly>false</ReadOnly>
</MappedFolder>
</MappedFolders>
<LogonCommand>
<Command>C:\Users\WDAGUtilityAccount\Downloads\sandbox\VSCodeInstall.cmd</Command>
</LogonCommand>
</Configuration>
documentzhangx66
341 天前
Windows 、虚拟机、生产环境,这几样不沾边的东西,放在一起,能优雅就奇怪了。

正确的做法是:

1.开发、调试的 Windows 环境,专机专用,不要与虚拟化服务器、生产环境混在一起。

2.如果生产要用 Windows ,请使用 Windows Server 版本,同样也是专机专用。

3.虚拟化,对于企业级生产,用 VMware vSphere ( ESXi )+ 存储备份一体机方案。个人用 PVE ( Proxmox Virtual Environment ),追求开关机速度与灵活性。
1014982466
341 天前
花里胡哨,追求干净国产软件用精简版 /去广告版就完事了。外国软件绝大部分都能便携化运行。
而且善意提醒:Windows 开 Hyper-v 或者一切基于它的( sandbox, WSL, WSA )都会导致主系统也被虚拟化然后性能尿崩
yijiangchengming
341 天前
我目前使用了 WSL+Hyper-v 虚拟机+Sandbox-Plus+WSA 。WSL 用于配置 Linux 和 docker 开发环境,各个环境之间互相隔离。Sandbox-Plus 用于安装国产毒瘤,Hyper-V 虚拟机用于软件 Win 测试以及 Win 开发环境。WSA 用于国产毒瘤。所有数据均在 D 盘,主系统 C 盘挂了不影响数据。
MiketsuSmasher
341 天前
可以换 Linux 做主系统,国产软件用 Wine🐶
Wine 在设计上就能满足楼主“隔离不同生产环境”的需求:使用 WINEPREFIX 环境变量决定 Wine 实例的位置,把国产软件放到一个 prefix 里面,把生产环境放到另一个 prefix 里面,日常使用靠 Shell 脚本设置环境变量来切换。
虽然每一个 prefix 也都要占用空间,但也就每个 700MB~1GB 左右,存储占用会小很多(当然具体占用取决于你往里面装什么东西)。
而且 Wine 不是虚拟机,是直接转换 Windows 程序的系统调用,只要不玩游戏,性能几乎没有损失。
当然问题也是有的,Wine 的兼容性,以及楼主可能觉得换个主系统、配置上述内容要比去看心理医生麻烦🐶
kenvix
341 天前
@wangkun025 分情况讨论,有些程序不放到隔离环境真不行,比如深信服 aTrust 会把宿主的网络栈给炸了
自定义 WSB 文件的 Windows Sandbox 做这个正合适
chenjies
341 天前
vmware 的 windows 虚拟机里面我用 cpu-z 测过单核和多核分数,和宿主机是一样的。日常用一个虚拟机装国产软件,除了硬件加速有问题外,日常使用没有感觉到问题。都上 vmware 虚拟机了,在路由设置下基于 mac 的 ip 段,在宿主机设置内网白名单。vmware 并不能隔绝内网扫描设备。
boshok
340 天前
突然想起十几年前在网吧用过一个沙箱软件,可以把 QQ 、文档编辑器等常用软件带着走,生成的文件好像在云上,网吧机器重启不影响。
ssdold
339 天前
@boshok 冰点还原
boshok
339 天前
@ssdold #35 冰点是网吧、学校机房用的。我说的是自己用的一个云端存储的软件,界面类似 QQ ,里面包含自己常用的软件,软件配置或文档的状态都是在云端,老高级了。
czmbbbb
339 天前
使用 sandboxie 吧。https://scoop.sh/#/apps?q=sandboxie
可以做到一个 app 开一个虚拟路径,也可以好几个 app 共享一组虚拟路径。
abc8678
337 天前
最近在用银行笔试的客户端,不想装在主力系统上,于是装了双系统。平时备份了 VHDX ,直接添加到启动菜单,重启切换。没想到它检测磁盘环境是 vhdx ,也认为这是虚拟机
ju0594
320 天前
@boshok 云端软件平台

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

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

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

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

© 2021 V2EX