我家用的 PC/服务器上运行着 Windows Server 2008 R2 实例,该实例运行着 Hyper-V/AD/DNS/SCVMM/SQL Server,因此我安装了很多工具。例如,用于记录挂在 SCVMM 上的虚拟机网络的工具。
我是否有一个错误的印象,即服务器(例如 AD)上不应该安装许多用于调试等的工具,而这些工具都应该远程安装(用于远程调试)?
谢谢
答案1
当然,我不想设置这样的生产网络服务器,但如果你乐意将它作为家庭“测试”箱,那么坦率地说,就去做吧。
至于在 DC 上安装应用程序是“错误的” - 这是一种平衡行为,平衡多台服务器的明显成本与可用性,易于支持和工作量。
工作量 这是最简单的一个。无论是否虚拟化,您在一个盒子上安装的应用程序越多,该盒子需要完成的工作就越多,最终它会难以跟上您要求它完成的所有工作。这可能会导致速度变慢甚至出现错误(例如,某个组件“超时”)。
易于支持 也相当容易。如果使用得当,虚拟化可以在一定程度上抵消这一点。一个盒子上的系统越多,来自不同服务的组件以意想不到的方式交互的可能性就越大,并且需要您付出更多努力才能使它们正常工作。
可用性 同样,如果使用得当,虚拟化可以在一定程度上抵消这种影响。这仅仅意味着,如果您在网络上为客户/用户提供服务,那么任何中断这些客户的服务都是一件坏事。这当然是显而易见的。但是...
如果多个应用程序共享同一个盒子,那么该盒子上的任何停机时间都会影响所有这些服务。此外,如果同一个系统中存在两个或多个服务,那么一个服务的中断意味着另一个服务的中断 - 例如,如果您的所有系统都在没有虚拟化的情况下运行,那么需要重新启动的 SQL 服务器补丁将停止所有其他服务的运行,其中一些服务(例如 AD、DNS)是不必要的。
当然,您正在使用虚拟化,但如果您拥有安装了 hyperV 角色的物理 Windows 2008 服务器(而不是实际的 hyperV 服务器),并在物理服务器上与 HyperV 一起安装了其中一项服务,则意味着对该服务的任何修补都需要重新启动(或虚拟化角色所需的任何其他服务/资源中断)都会导致不必要的服务/可用性中断。
这是我所知道的最小化一个(真实或物理)服务器实例上的应用程序数量的三个原因。
答案2
这不是一个对与错的问题。
让情况变得过于复杂是一种糟糕的做法。复杂性增加了故障点,这会增加系统故障的可能性。由于您拥有虚拟化环境,因此最佳做法是将映像专用于单个(或几个相关)任务。
应该有一个用于 AD/DNS 的映像,另一个用于 SCVMM(首先,虚拟化 SCVMM 不是一个好主意),另一个用于 MS SQL。如果您要使用调试和管理工具,它们也应该有自己的 VM。将所有东西分开可以限制故障,包含故障可能造成的损害,并使整个系统更易于维护。
答案3
就我个人而言,我喜欢让域控制器只执行域控制器的职责(加上核心服务,如 DHCP/DNS/WINS)以及其他一些任务。
原因是安全性、稳定性和可靠性。
安全性意味着更少的应用程序 = 更少的潜在漏洞利用途径。稳定性 = 更少的应用程序,因此发生冲突的可能性更小,并且“重新启动以修复应用程序 xyz 的问题”会导致整个域瘫痪。可靠性 = 以上因素的结合,我只是认为如果可能的话,将角色分开会更好。