我在一所大学工作,目前我们正负责建立一个新的计算机集群。对我们来说,这就像呼吸一样,非常简单。不过,这个集群很特别。它将由 5 个不同的部门共享。每个部门都有自己的软件许可证、自定义设置和规格。这促使我们决定为每个部门使用虚拟机,并在主机桌面上为每个部门设置一个快捷方式。之所以选择这种方式,主要是因为我们已经为每个部门准备好了图像,因此制作虚拟机非常简单,无需从头开始构建。
如果就此打住,这不会太难,但进一步复杂化的是,我们在 Windows Active Directory 网络上运行 Windows 计算机。如果您不熟悉 Active Directory,那么它基本上只是一个大型登录服务器,用于跟踪每个人及其内容。话虽如此,我们运行的许多应用程序都需要特定用户登录才能访问其用户配置文件。我知道这很愚蠢,因为开发这些程序的人不必在大学里安装它们。使用 Active Directory,我们网络上的每台计算机都加入我们的“域”,这使我们能够管理它们而不必访问每台计算机。
现在我们讨论的是 50 台计算机,每台计算机有 5 台虚拟机,将它们全部加入域根本行不通,因为当各部门需要更多软件时,我们仍然需要能够轻松更新它们。但我们需要让虚拟机可以使用用户配置文件,以便他们可以使用所需的程序。如果您确切知道谁在登录,这很容易,但我们必须依靠使用环境变量来查看要将哪个用户配置文件安装到虚拟机上的通用配置文件中。
所以我的问题很广泛,但是有没有更好的方法来做到这一点,而我们还没有看到?
另外,有没有办法告诉 vmplayer 仅挂载当前用户的配置文件?
我希望我解释得足够清楚,但如果您有任何问题,请提出!
答案1
听起来你不像是一个集群...听起来你有 50 台与域相连的 PC,你想在这些 PC 上运行虚拟机。
你说得对,管理虚拟机的更新会很困难,尤其是因为它们大部分时间都不会开机。你可以在组策略中使用软件部署工具来管理设置,这样做是可行的,但在课程开始时启动它们会花一点时间,因为它会更新软件。
如果你说,你的软件需要特定的 AD 用户登录,这也可能会导致问题。虽然你可以轻松地将虚拟机设置为自动登录到该特定用户,但这样用户就不会有自己的设置/驱动器。
处理这个问题最简单的方法是使用一个终端服务器(或 5 个终端服务器),每个人都登录该服务器,然后你只需要让其中一个服务器保持最新状态。但这需要花钱购买硬件。
我看到大多数实验室的做法是在每节课之前重新映像计算机。我的大学使用 ghostcast,由实验室中的一台额外 PC 控制,它可以同时启动所有 PC 并发送包含该实验室正确软件的映像。然后他们只需在一台计算机上管理映像即可。
答案2
我完全看不出您不应该将这些机器加入域的原因。是什么让您认为这会因它们是虚拟机而以某种方式改变?我们是否遗漏了什么重要的东西?
记住仅仅因为有人在设计会议上说了“虚拟”或“云”,并不会发生任何神奇的事情。如果在虚拟化成为现实之前将它们加入到域中是有意义的,那么现在也同样有意义。
无论如何,AD 应该让这一切变得更容易。它远不止“一个大型登录服务器”:
- 为虚拟客户机创建虚拟机模板,或者使用类似的Windows 部署服务创建一个中心“图像”来部署给每位客人。
- 根据此模板创建虚拟客户机,并将其加入到域(这可以自动化)。
- 使用 AD 中的软件部署组策略将每个部门的自定义软件部署到其虚拟客户端上。如果需要,也可以部署到主机上。
- 只需登录域名帐户即可继续您的一天,而不必担心创建帐户和配置文件等。
我在大学环境中工作,我们基本上做了我上面概述的所有事情,而且效果很好。