多年来,VMware和微软这两家公司都一直在提供虚拟化服务。VMware在这个市场至今已摸爬滚打了十多年,而微软进入服务器虚拟化领域的时间比较短。
IT环境通常由许多物理IT部件组成,其中包括托管运行活动目录(Active Directory)服务的服务器。活动目录域控制器是顺畅运行IT操作环境所需要的关键服务器。作为虚拟化路线图的一部分,企业必须确保每一种物理IT资源都正在被虚拟化,以便降低成本。这也包括对物理域控制器进行虚拟化。
活动目录域控制器不仅有助于IT操作环境的顺畅运行,它们还是提供验证和授权服务的一个关键组成部分。在如今的生产环境中,几乎所有的网络应用程序都使用活动目录作为验证提供方。对这些关键服务进行虚拟化之前,我们必须考虑许多方面。
这时候,通用的“最佳实践”指南可以派得上用场,解释了若干最佳实践,明确你对VMware或Hyper-V上的活动目录域控制器进行虚拟化时,应该做哪些事、不该做哪些事:
禁用时间同步功能
活动目录域控制器是在Windows时间服务的帮助下,处理时间同步的一种内置机制。虚拟化平台还为虚拟机提供了时间服务,不过建议禁用每一个虚拟域控制器上的时间同步功能,让活动目录可以管理虚拟域控制器之间的时间同步。
不要拍取快照
快照功能是为开发和测试目的而设计的。拍取快照是为了可以恢复到之前的配置状态,这是快照过程的一部分。快照要求在创建快照文件之前,让虚拟机处于已保存状态。
1. 第一步,作为快照过程的一部分,让虚拟域控制器处于已保存状态,这确保了停机时间最短;如果差异磁盘文件变得太大,这会带来显著影响。
2. 其次,我们从来不想恢复到虚拟域控制器的之前配置。如果你这么做,这可能会导致该域控制器上的活动目录数据库的副本不一致。
注意:通过在Windows Server 2012中引入一项新的实时快照合并(Live Snapshot Merge)功能,微软的Hyper-V解决了快照引起的停机问题。
禁用域控制器上的磁盘缓存功能
至于“禁用虚拟域控制器中所有磁盘驱动器的策略标签上的磁盘写缓存功能”这个设置,建议为使用可扩展引擎存储(ESE)技术的所有服务设置该选项,以免任何数据丢失。
禁用磁盘缓存可以确保数据实际上被写入到磁盘上,而不是将数据保存在非易失性内存中;而出现电源故障,或者主机服务器崩溃时,非易失性内存中的数据可能会丢失。
不要暂停
不建议暂停虚拟域控制器,如果虚拟域控制器暂停时间较长,超过活动目录的逻辑删除时间范围(Tombstone timeframe),就更不要暂停。暂停可能会导致虚拟域控制器不同步,还会给活动目录环境带来延迟对象(lingering object)。
当被删除对象在为活动目录的逻辑删除时间范围设置的时间段(一般是80天或160天,具体取决于所使用的操作系统)内没有被复制到所有活动目录域控制器时,就会出现延迟对象。
总是为虚拟域控制器配置固定磁盘或直通磁盘
建议配置固定磁盘或直通磁盘类型,以便用于存储域控制器的数据库(NTDS.DIT)和日志文件,那样域控制器就能更高效地运行。如果采用其他类型的一种磁盘(比如差异磁盘虚拟硬盘),将降低虚拟域控制器的性能。
注意:直通磁盘这种磁盘是微软Hyper-V的一项特性,它与VMware虚拟化平台中的Raw磁盘可以相提并论。
不要克隆域控制器虚拟机
大多数虚拟化技术供应商都提供了克隆虚拟机这个选项,以便快速部署。不过,我们强烈建议避免克隆安装的域控制器系统,除非你在使用Windows Server 2012,它提供了自己的克隆功能。不然,如果你非要进行克隆,我们会建议使用SysPrep.exe工具,该工具通过删除重复的安全标识符(SID),让操作系统作好了准备。
千万不要使用虚拟化产品的导出功能
在导出过程可以导出相关文件之前,导出功能会让域控制器处于已保存状态。然后恢复运行虚拟机,以提供服务。
由于显而易见的原因,我们强烈建议:除非绝对有必要,否则不要暂停域控制器的服务。暂停这些服务可能会导致使用活动目录作为验证提供方的网络应用程序出现停机。
禁用或配置自动开启操作
虚拟机可以配置成万一虚拟化主机出现任何故障,虚拟机能自动开启。微软Hyper-V和VMware都提供了这个功能。
自动开启操作功能避免了人工干预,但它对活动目录域控制器来说不是一个好的选项/功能。所有虚拟域控制器不得配置成万一虚拟化主机出现故障,可以自动重启。
采用这个选项会导致域控制器启动出现延迟。比如说,子域控制器在根域控制器启动运行之前根本不应该开启。因此,建议禁用该选项,或者为属于子域一部分的虚拟机域控制器的初始启动设置延迟。
禁用虚拟域控制器的故障恢复策略
活动目录是一种多主机复制技术。在活动目录复制技术的帮助下,所有域控制器保留着活动目录数据库的一致副本。默认情况下,活动目录域控制器自带容错和负载平衡机制,提供了验证和授权服务。
所以,如果虚拟域控制器在集群环境中运行,最佳实践是,禁用所有的故障恢复策略,阻止虚拟域控制器自动跨集群移动。
在物理机器上至少让一个DNS和域控制器运行
认为这是一条最佳实践的几个原因如下:
1. 活动目录与DNS是紧密整合的两大组件。为生产环境中运行的网络应用程序解析域名,势必需要DNS。DNS可以托管运行在服务器上,而服务器上有没有安装活动目录服务则没有关系。如果DNS服务托管在域控制器上,那么建议让至少一台DNS服务器在物理环境中运行,避免针对在虚拟化基础设施外面运行的网络应用程序提供的域名解析服务出现任何中断。
2. 牢记一点:微软故障切换集群(Failover Clustering)服务要求使用集中式活动目录域控制器,用于验证目的。如果你对所有域控制器进行虚拟化,故障切换集群可能无法正常工作,或者无法提供故障切换服务。因此,建议在物理环境中让至少一个域控制器运行,那样故障切换集群可以如期正常工作。
3. 虚拟化主机还要求使用DNS服务器服务。建议在虚拟化主机上配置DNS设置,以便使用外部DNS服务器,那样万一所有虚拟域控制器都停止运行,域名解析仍能正常进行。
在多个主机上托管虚拟域控制器
明白这一点很重要:虚拟化主机(虚拟域控制器在虚拟化主机上面运行)也可能出现软硬件故障。虚拟化主机停止运行后,应该不会导致所有虚拟活动目录域控制器停止运行。
一条最佳实践就是,如果可能的话,将安装的虚拟域控制器分散在多个虚拟化主机上,以避免服务出现任何中断。
结论
我们在本文中了解了在虚拟化平台上运行的活动目录域控制器方面的若干通用的最佳实践。我们还明白了虚拟域控制器方面应该做什么事、不该做什么事。