首先,这篇文章可能充斥着一些主观的断言,并且在某种程度上容易出现错误,但作为这方面的新手,我承担此风险。
我认为的问题
作为多年来一直使用 Windows 操作系统和服务的用户,我遇到过很多情况:在运行操作系统数月/数年、安装和使用软件、游戏、移动文件等之后,操作系统变得有点臃肿,并开始出现性能问题。除了重新安装操作系统这种“经典”耗时耗力的解决方案之外,另一个选择是卸载不需要的产品,运行磁盘清理和碎片整理。但是,即使执行了这些步骤,操作系统也不会像全新安装后那样快速和干净。另一个相关问题是,如果所有软件(大型 .NET 软件、各种移动 SDK、各种软件、游戏、编辑工具、Adobe 软件等)都安装在同一个操作系统“容器”中,那么我相信运行任何已安装的组件都会效率较低,因为所有已安装的其他组件的整体进程都在运行,其中一些最好不要从任务管理器等处强行关闭。
建议的解决方案
关于这一点,我考虑设置一个非常基本的 Windows/Linux 安装,它可以支持 VMWare,并有多台专用机器可用,在运行时您可以为这些机器提供最大资源:例如 .NET 开发机器,或专用移动(例如 Android)开发机器、专用游戏机等。我认为这样做的好处是:整个操作系统的可移植性,您可以轻松拍摄快照,如果“环境”变得臃肿,您可以轻松恢复到以前的稳定状态,而且(如上所述)您在每个虚拟机上都会有几乎干净的 Windows 安装。缺点是共享组件基本上必须存在于每台机器上。
问题是:这个选项可行/有效吗?尝试这样的方法有意义吗?如果在 Windows 系统上采用这种方式,VM 的使用会如何影响物理磁盘碎片?
答案1
这会很高效吗?当然不会。你将占用大量 GB 的空间,仅用于安装各种基本操作系统。
这可行吗?当然可行。这是个好主意吗?这是一个主观问题,你会得到各种各样的答案。
我可以告诉你我确实是通过两种形式来做到这一点的。
第一种形式不太专业,我有一个用于音频编辑的 ubuntu VM(我使用 Ardour)。我安装了 ardour、openSSH 服务器,没有安装其他程序。我甚至删除了一些预装的默认程序(如 open/libreoffice)。然后,当我需要进行一些音频编辑时,我会创建第二个虚拟磁盘,并将与该会话相关的所有数据放在那里。当我要处理其他项目时,我会使用不同的数据磁盘启动 VM。这是一个干净的操作系统,具有多个数据驱动器。
第二种形式更符合您的意思。我在我的机器上运行 Windows Server 2012 R2,然后在其上运行三个 Hyper-V VM。其中两个是我参与的两个独立项目的专用开发服务器(均运行 apache 和 mysql),第三个是私有 TOR 入口节点。(这或多或少是企业世界中服务器经常运行的方式……某种主机内的一堆 VM)。
您似乎建议在虚拟机内运行客户端计算机,为此您将需要进行一些额外的考虑。您的帖子中最吸引我眼球的是您想要一台专用的游戏机。我还没有遇到任何在 3D 图形效果方面表现出色的虚拟化软件,所以要小心。没错,我可以使用 Parallels 在 Mac 上的 Windows 客户端上以中等水平的帧速率玩星际争霸 2……但效果并不好。
在任何虚拟化环境中,由于虚拟化层的存在,速度都会有所减慢。好处是您可以做更多的事情。
TLDR:我建议您将实际的物理机作为游戏装备,然后在其上放置一些虚拟机用于开发等等。