Active Directory 域服务 (AD DS) 虚拟化 介绍 Active Directory 域服务 (AD DS) 虚拟化(级别 100)
此文章由人工翻译。 将光标移到文章的句子上,以查看原文。
|
译文
原文
|
适用对象:Windows Server 2012
这些新的虚拟化功能对下列各项提供了更多的支持:公有云和私有云,内部部署和云端都存在 AD DS 某些部分的混合环境,和完全位于内部部署的 AD DS 基础结构。
本文档内容
域控制器的 InvocationID 和其 USN 一起作为一个唯一标识符,该标识符与在每个域控制器上执行的每个写入事务相关联,并且在林中必须是唯一的。
如果一个域控制器在域控制器感知之外及时回滚,并且 USN 重复用于完全不同的事务,则复制将无法聚合,因为其他域控制器会认为他们已经收到了与该 InvocationID 环境下的重复使用的 USN 相关联的更新。
此图中,在复制伙伴检测到 VDC2 已发送最新 USN 值(以前由复制伙伴检测到,表示 VDC2 的数据库已及时不正确地回滚)时,VDC2 上将进行 USN 回滚的检测。
有关 USN 和 USN 回滚的详细信息,包括演示未检测到的 USN 回滚实例的另一个图,请参阅 USN 和 USN 回滚。
如果虚拟机已及时回滚,则此标识符可以通过在虚拟机内运行的服务和应用程序进行采样加以检测。
虚拟机内的 Windows 驱动程序独立地跟踪虚拟机生成 ID。
当管理员从以前的快照还原虚拟机时,来自虚拟机驱动程序的虚拟机生成 ID 的当前值要与 DIT 中的值进行比较。
如果这两个值相同,则正常提交事务。
Windows Server 2012 中引入的这些安全措施使 AD DS 管理员能够受益于在虚拟化环境中部署和管理域控制器的独特优势。
下图显示了当在虚拟化域控制器(在支持虚拟机生成 ID 的虚拟机监控程序上运行 Windows Server 2012)上检测到相同的 USN 回滚时,如何应用虚拟化安全措施。
安全措施确保两个域控制器的复制聚合。
建议你继续使用 Windows Server Backup 或其他基于 VSS 书写器的备份解决方案。
|
---|
如果生产环境中的域控制器意外地还原到快照,建议你向供应商咨询应用程序、托管在该虚拟机上的服务、以及快照还原后验证这些程序状态的指南。 |
有关详细信息,请参阅 虚拟化域控制器安全还原体系结构。
在虚拟环境中,管理员不再需要重复部署使用 Sysprep.exe 准备的服务器映像,将服务器提升为域控制器,然后完成附加配置要求来部署每个副本域控制器。
|
---|
在灾难恢复方案中,使用最新的服务器备份来还原域中的第一个域控制器。 |
-
在新域中快速部署其他域控制器
-
通过使用克隆快速部署域控制器,还原 AD DS 功能,在灾难恢复过程中快速还原业务连续性
-
利用域控制器的弹性配置优化私有云部署,以适应增加的缩放要求
-
在生产部署之前,启用部署和测试新特性和功能来快速设置测试环境
-
通过克隆分支机构中现有的域控制器,迅速满足分支机构中不断增长的容量需求
有关详细信息,请参阅 部署克隆虚拟化域控制器的步骤。
为了让虚拟机监控程序管理员通过复制虚拟域控制器来部署其他域控制器,AD DS 管理员必须选择和授权一个域控制器,然后运行准备步骤,使它作为克隆源。
由于通常在虚拟机监控程序管理员的权限下配置虚拟机,所以虚拟机监控程序管理员可以通过复制已由 AD DS 管理员授权并准备进行克隆的虚拟化域控制器来配置副本域控制器虚拟机。
|
---|
允许管理托管虚拟域控制器的虚拟机监控程序的任何人都必须在环境中高度受信任且要进行审核。 |
通过消除其它重复部署任务,这将减少部署副本虚拟域控制器中包含的步骤数和时间。
克隆域控制器使用以下条件来检测它是另一个域控制器的副本:
-
虚拟机提供的虚拟机生成 ID 值与存储在 DIT 中虚拟机生成 ID 值不同。
注意
虚拟机监控程序平台必须支持虚拟机生成 ID (Windows Server 2012 Hyper-V 支持虚拟机生成 ID)。
-
在下列位置之一存在称为 DCCloneConfig.xml 的文件:
-
DIT 所在的目录
-
%windir%NTDS
-
可移动媒体驱动器的根目录
-
一旦满足条件,它就会进行克隆以将其本身配置为副本域控制器。
PDC 仿真器必须要运行 Windows Server 2012,但它不必在虚拟机监控程序上运行。
|
---|
如果你有一个引用源域控制器属性的架构扩展,且该属性是在上一个对象(计算机对象,NTDS 设置对象)上,可以通过复制该对象来创建克隆,则该属性将不复制和不更新,以引用克隆域控制器。 |
然后,克隆域控制器将准备 AD DS 数据库文件,将其用作副本,它还将清理计算机状态。
有关详细信息,请参阅 虚拟化域控制器克隆体系结构。
克隆组件包括用于 Windows PowerShell 的 Active Directory 模块中的新 cmdlet 和相关的 XML 文件:
-
你可以指定克隆域控制器的设置,如其名称、站点和 IP 地址。
执行的先决条件检查是:
注意
有关详细信息,请参阅 在脱机模式下运行 New-ADDCCloneConfigFile。
-
正准备的 DC 得到克隆授权(是Cloneable Domain Controllers组的成员)
-
PDC 仿真器运行 Windows Server 2012。
-
Get-ADDCCloningExcludedApplicationList 列出的任何程序或服务都包含在 CustomDCCloneAllowList.xml 中(在此克隆组件列表的末尾有更详细的解释)。
-
-
除了用作一个触发器以检测和启动克隆外,它还提供指定克隆域控制器的配置设置的方法。
在所有 Windows Server 2012 计算机上存储 DCCloneConfig.xml 文件的架构和示例文件,位置是:
-
%windir%system32DCCloneConfigSchema.xsd
-
%windir%system32SampleDCCloneConfig.xml
如果你要编辑该文件,那么你必须使用 XML 感知的编辑器,如 Visual Studio、XML 记事本或第三方应用程序(不使用记事本)。
-
-
Get-ADDCCloningExcludedApplicationList – 此 cmdlet 在源域控制器上运行,在开始克隆之前,要确定哪些服务或已安装的程序不在默认支持的列表 (DefaultDCCloneAllowList.xml) 或用户定义的名为 CustomDCCloneAllowList.xml 文件的包含列表中,从而未被用于克隆的影响评估。
若要确定是否可以安全地克隆某个服务或已安装的程序,请评估下列条件:
-
服务或已安装的程序是否受计算机标识(如名称、SID、密码等等)影响?
-
在本地计算机上,该服务或已安装的程序是否存储了可能影响其克隆功能的任何状态?
你必须与应用程序的软件供应商合作,以确定是否可以安全地克隆服务和程序。
注意
在 CustomDCCloneAllowList.xml 文件中配置其他服务或程序之前,请验证你是否具有复制该虚拟机包含的软件的必需许可证。
换句话说,应用程序应要么包含在 CustomDCCloneAllowList.xml 文件中,要么从源域控制器中删除。
下表说明了运行 Get-ADDCCloningExcludedApplicationList 的选项。
参数
说明
<未指定参数>
如果在任何允许的位置已存在 CustomDCCloneAllowList.XML,则将使用该文件来显示剩余的服务和程序(如果列表匹配,则可能没有剩余)。
-GenerateXml
创建 CustomDCCloneAllowList.XML 文件,并填写控制台上列出的服务和程序。
-Force
覆盖现有的 CustomDCCloneAllowList.XML 文件。
-Path
创建 CustomDCCloneAllowList.XML 的文件夹路径。
-
-
你不得更改此文件的位置和内容,否则克隆将会失败。
-
–GenerateXml 参数来生成 XML 文件。
克隆过程会检查以下位置来查找此文件,并使用最先找到的 XML 文件,不管其他文件夹中的内容:
-
以下注册表项:
HKey_Local_MachineSystemCurrentControlSetServicesNTDSParameters AllowListFolder (REG_SZ)
-
DSA 工作目录
-
%systemroot%NTDS
-
按照驱动器号顺序排列的可移动读/写媒体,位于驱动器根目录下
-
以下部署方案支持虚拟域控制器克隆:
-
通过复制源域控制器的虚拟硬盘 (VHD) 文件来部署克隆域控制器。
-
通过使用虚拟机监控程序的导出/导入语义,复制源域控制器虚拟机,部署克隆域控制器。
|
---|
部署克隆虚拟化域控制器的步骤部分中的步骤演示了如何使用 Windows Server 2012 Hyper-V 的导出/导入功能复制虚拟机。 |
-
若要完成以下过程中的步骤,你必须是 Domain Admins 组的成员,或者拥有与分配给 Domain Admins 组成员的权限同等的权限。
-
为此,请右键单击 Windows PowerShell图标,然后单击“以管理员身份运行”。
-
安装了 Hyper-V 服务器角色的 Windows Server 2012 服务器(HyperV1)。
-
安装了 Hyper-V 服务器角色的第二台 Windows Server 2012 服务器(HyperV2)。
注意
-
如果虚拟机管理程序不支持虚拟机生成 ID,并且你已经提供了 DCCloneConfig.xml,则新的 VM 将引导到目录服务还原模式 (DSRM)。
-
但是,你不需要两个 HYPER-V 主机来执行虚拟域控制器克隆。
-
在每个 Hyper-V 服务器(HyperV1 和 HyperV2)上,你必须是本地管理员组成员。
-
例如,如果你在名为 VNet 的HyperV1 上有一个虚拟网络交换机,那么,在名为 VNet 的 HyperV2 上就需要有一个虚拟网络交换机。
-
如果两个 HYPER-V 主机(HyperV1 和 HyperV2)具有不同的处理器,关闭计划要导出的虚拟机(VirtualDC1),那么,请用鼠标右键单击虚拟机,单击设置以及处理器,然后在处理器兼容性下,选择迁移到具有不同处理器版本的物理计算机,最后单击确定。
-
-
要验证 Windows Server 2012 域控制器上是否承载 PDC仿真器角色,要运行以下 Windows PowerShell 命令:
Get-ADComputer (Get-ADDomainController –Discover –Service "PrimaryDC").name –Property operatingsystemversion | fl
有关详细信息,请参阅使用 Ntdsutil.exe 转移或占用FSMO 角色到域控制器。
-
将在 Windows Server 2012 HYPER-V 服务器 (HyperV1) 上托管来宾虚拟域控制器。
注意
-
为了成功克隆,对于用来创建克隆的源域控制器,不能来自已降级的 DC,因为已创建了源 VHD 媒体。
-
在复制 VM 或其 VHD 之前关闭源域控制器。
-
对于正在运行的域控制器的 VHD,不应复制它来创建克隆媒体。
当尝试导入新的 VM 时,这会导致共享问题。
为了更好地了解由 dcdiag 返回的输出,请参阅 DCDIAG 到底做什么......?。
你应选择只托管 Active Directory 集成区域的 DNS 服务器。
父 DNS 区域的管理员应该按需要更新已克隆域控制器的 DNS 委派。
警告
因为 AD LDS 不能感知虚拟机生成 ID,所以克隆含 AD LDS 的域控制器可能会在 AD LDS 配置集上导致 USN 回滚引起的分歧。
以下服务器角色不支持克隆:
-
动态主机配置协议 (DHCP)
-
Active Directory 证书服务 (AD CS)
-
Active Directory 轻型目录服务 (AD LDS)
-
在此过程中,你通过使用 Active Directory 管理中心将源域控制器添加到Cloneable Domain Controllers组中,来授予源域控制器克隆权限。
授予源虚拟化域控制器克隆权限
-
在正在准备克隆域控制器的同域中的任何域控制器 (VirtualDC1) 上,打开“Active Directory 管理中心”(ADAC)、查找虚拟化域控制器对象(域控制器通常位于 ADAC 中的“域控制器”容器中)、右键单击它、选择“添加到组”并在“输入要选择的对象名称”下面键入 Cloneable Domain Controllers,然后单击“确定”。
如果没有找到Cloneable Domain Controllers组,则 PDC 仿真器角色不可能托管在运行 Windows Server 2012 的域控制器上。
注意
在 Windows Server 2012 域控制器上打开 ADAC,打开 Windows PowerShell 并键入 dsac.exe。
Windows PowerShell 等效命令
以下 Windows PowerShell cmdlet 执行与上述步骤中相同的功能:
Add-ADGroupMember –Identity "CN=Cloneable Domain Controllers,CN=Users, DC=Fabrikam,DC=Com" –Member "CN=VirtualDC1,OU=Domain Controllers,DC=Fabrikam,DC=com"
你需要在 New-ADDCCloneConfigFile cmdlet 之前运行 Get-ADDCCloningExcludedApplicationList cmdlet,因为如果 New-ADDCCloneConfigFile cmdlet 检测到已排除的应用程序,则它将不会创建 DCCloneConfig.xml 文件。
确定运行在不评估克隆的源域控制器上的应用程序或服务的步骤
-
在源域控制器 (VirtualDC1) 上,依次单击“服务器管理器”、“工具”和“用于 Windows PowerShell 的 Active Directory 模块”,然后键入以下命令:
Get-ADDCCloningExcludedApplicationList
-
如果不能安全地克隆列表中的应用程序或服务,则必须从源域控制器中删除它们,否则克隆将会失败。
-
–GenerateXML 开关运行该命令,以便在 CustomDCCloneAllowList.xml 文件中配置这些服务和方案。
Get-ADDCCloningExcludedApplicationList -GenerateXml
在源域控制器上运行 New-ADDCCloneConfigFile,同时可以选择为克隆域控制器指定配置设置(如名称、IP 地址和 DNS 解析程序)。
例如,要用静态 IPv4 地址创建名为 VirtualDC2 的克隆域控制器,请键入:
New-ADDCCloneConfigFile –Static -IPv4Address "10.0.0.2" -IPv4DNSResolver "10.0.0.1" -IPv4SubnetMask "255.255.255.0" -CloneComputerName "VirtualDC2" -IPv4DefaultGateway "10.0.0.3" -SiteName "REDMOND"
|
---|
建议在 DCCloneConfig.xml 文件中指定合适的站点作为基于其 IP 地址的克隆域控制器。 |
如果你没有指定名称,则将基于下面的算法生成一个唯一的名称:
-
例如,如源计算机名为 SourceComputer,则将截断为前缀字符串 SourceCo。
-
例如,如果 0047 是在允许的范围内的下一个可用编号,则利用前面示例中的计算机名称前缀 SourceCo,会将用于克隆计算机的派生名称设置为 SourceCo-CL0047。
|
---|
有关详细信息,请参阅 虚拟化域控制器疑难解答。 |
要创建名为 Clone1 的、使用静态 IPv4 设置的克隆域控制器,同时指定首选和备用 WINS 服务器,则请键入:
New-ADDCCloneConfigFile –CloneComputerName "Clone1" –Static -IPv4Address "10.0.0.5" –IPv4DNSResolver "10.0.0.1" –IPv4SubnetMask "255.255.0.0" –PreferredWinsServer "10.0.0.1" –AlternateWinsServer "10.0.0.2"
|
---|
如果仅指定上述参数之一,则克隆将失败,并在 dcpromo.log 中记录错误代码 0x80041005。 |
若要创建名为 Clone2 的、使用动态 IPv4 设置的克隆域控制器,则请键入:
New-ADDCCloneConfigFile -CloneComputerName "Clone2" -IPv4DNSResolver "10.0.0.1"
|
---|
在此情况下,在环境中应该有 DHCP 服务器,这样克隆才可以访问和获得 IP 地址和其他相关网络设置。 |
要创建名为 Clone2 的、使用动态 IPv4 设置的克隆域控制器,同时指定首选和备用 WINS 服务器,请键入:
New-ADDCCloneConfigFile -CloneComputerName "Clone2" -IPv4DNSResolver "10.0.0.1" -SiteName "REDMOND" –PreferredWinsServer "10.0.0.1" –AlternateWinsServer "10.0.0.2"
要创建使用动态 IPv6 设置的克隆域控制器,请键入:
New-ADDCCloneConfigFile -IPv6DNSResolver "2002:4898:e0:31fc:d61:2b0a:c9c9:2ccc"
要创建使用静态 IPv6 设置的克隆域控制器,请键入:
New-ADDCCloneConfigFile –Static -IPv6DNSResolver "2002:4898:e0:31fc:d61:2b0a:c9c9:2ccc"
|
---|
如使用动态 IPv6,则 DNS 解析程序是可选的,但克隆应能够访问子网上启用了 IPv6 的 DHCP 服务器,以获取 IPv6 地址和 DNS 配置信息。 |
这比单独准备每个 VM(例如,通过导入每个副本)效率更高。
有关如何装入脱机磁盘以便在脱机模式下运行 New-ADDCCloneConfigFile cmdlet 的详细信息,请参阅将 XML 添加到脱机系统盘。
如果随后计划使用脱机模式,则可以删除在本地创建的 DCCloneConfig.xml。
要在脱机模式下创建名为 CloneDC1的克隆域控制器,则应在带有静态 IPv4 地址、名为“REDMOND”的站点中键入:
New-ADDCCloneConfigFile –Offline –CloneComputerName CloneDC1 –SiteName REDMOND -IPv4Address "10.0.0.2" -IPv4DNSResolver "10.0.0.1" -IPv4SubnetMask "255.255.0.0" -IPv4DefaultGateway "10.0.0.1" –Static –Path F:WindowsNTDS
要在脱机模式下,使用静态 IPv4 和 IPv6 的静态设置创建名为 Clone2 的克隆域控制器,请键入:
New-ADDCCloneConfigFile –Offline -IPv4Address "10.0.0.2" -IPv4DNSResolver "10.0.0.1" -IPv4SubnetMask "255.255.0.0" –Static -IPv6DNSResolver "2002:4898:e0:31fc:d61:2b0a:c9c9:2ccc" -CloneComputerName "Clone2" -PreferredWINSServer "10.0.0.1" -AlternateWINSServer "10.0.0.3" –Path F:WindowsNTDS
要在脱机模式下,使用静态 IPv4 和 动态 IPv6 设置创建克隆域控制器,同时指定针对 DNS 解析程序设置的 DNS 服务器,请键入:
New-ADDCCloneConfigFile –Offline -IPv4Address "10.0.0.10" -IPv4SubnetMask "255.255.0.0" -IPv4DefaultGateway "10.0.0.1" -IPv4DNSResolver @( "10.0.0.1","10.0.0.2" ) –Static -IPv6DNSResolver "2002:4898:e0:31fc:d61:2b0a:c9c9:2ccc" –Path F:WindowsNTDS
要在脱机模式下用动态 IPv4 和静态 IPv6 设置创建名为 Clone1克隆域控制器,请键入:
New-ADDCCloneConfigFile –Offline -Static -IPv6DNSResolver "2002:4898:e0:31fc:d61:2b0a:c9c9:2ccc" -CloneComputerName "Clone1" -PreferredWINSServer "10.0.0.1" -AlternateWINSServer "10.0.0.3" -SiteName "REDMOND" –Path F:WindowsNTDS
要在脱机模式下用动态 IPv4 和动态 IPv6 设置创建克隆域控制器,请键入:
New-ADDCCloneConfigFile –Offline -IPv4DNSResolver "10.0.0.1" -IPv6DNSResolver "2002:4898:e0:31fc:d61:2b0a:c9c9:2ccc" –Path F:WindowsNTDS
此操作可在域中创建克隆虚拟域控制器。
如果为每个服务器使用不同的凭据,请运行 Windows PowerShell cmdlet 来在不同的 Windows PowerShell 会话中导出和导入 VM。
然而导入后,在克隆 VM 启动前必须从中删除快照。
通过导出然后导入虚拟源域控制器来复制虚拟域控制器
-
HyperV1 上,关闭源域控制器 (VirtualDC1)。
Windows PowerShell 等效命令
Stop-VM –Name VirtualDC1 –ComputerName HyperV1
-
在 HyperV1 上,删除快照然后将源域控制器 (VirtualDC1) 导出到 c:CloneDCs 目录。
注意
删除该快照会将这些 AVHD 全部合并到基本 VHD 中。
Windows PowerShell 等效命令
Get-VMSnapshot VirtualDC1 | Remove-VMSnapshot –IncludeAllChildSnapshots Export-VM –Name VirtualDC1 –ComputerName HyperV1 -Path c:CloneDCsVirtualDC1
-
将 virtualdc1 文件夹复制到 HyperV2 的 c:Import 目录。
-
在 HyperV2 上,使用 Hyper-V 管理器,从文件夹 c:Importvirtualdc1 导入虚拟机(使用 Hyper-V 管理器中的导入虚拟机向导)并删除所有相关的快照。
导入虚拟机时,使用复制虚拟机(创建新的唯一 ID)选项。
Windows PowerShell 等效命令
$path = Get-ChildItem "C:CloneDCsVirtualDC1VirtualDC1Virtual Machines" $vm = Import-VM –Path $path.fullname –Copy -GenerateNewId Rename-VM $vm VirtualDC2
从同一源域控制器创建多个克隆域控制器:
-
UI:在导入虚拟机向导中,为虚拟机配置文件夹、快照存储、智能分页文件夹指定新位置,以及一个面向虚拟硬盘虚拟机的不同的位置。
-
Import-VM cmdlet 的下列参数为虚拟机指定新位置:
$path = Get-ChildItem "C:CloneDCsVirtualDC1VirtualDC1Virtual Machines" Import-VM –Path $path.fullname –Copy –GenerateNewId –ComputerName HyperV2 –VhdDestinationPath "path" –SnapshotFilePath "path" –SmartPagingFilePath "path" –VirtualMachinePath "path"
注意
应该部署不超过推荐数量的同时克隆域控制器,除非已经全面测试过该数量适合你的环境。
-
-
在 HyperV1 上,重启源域控制器 ((VirtualDC1) 使其重新上线。
Windows PowerShell 等效命令
Start-VM –Name VirtualDC1 –ComputerName HyperV1
-
在 HyperV2 上,启动虚拟机 (VirtualDC2) 将其作为域中的克隆域控制器上线。
Windows PowerShell 等效命令
Start-VM –Name VirtualDC2 –ComputerName HyperV2
注意
有关详细信息,请参阅 Microsoft 知识库文章 305476。
如果 DC 没有成功克隆而且已经在 DSRM 中启动,请检查 “事件查看器” 中的日志和 %systemroot%/debug 文件夹中的 dcpromo 日志。
作为最佳实践,你应该使Cloneable Domain Controllers组保持空白,直到你准备执行克隆操作为止,而且你应该在克隆操作完成之后删除成员。
有关如何使用 wbadmin.exe 删除系统状态备份的详细信息,请参阅Wbadmin delete systemstatebackup。
若要登录在 DSRM 中启动的域控制器,使用 .Administrator 并指定 DSRM 密码。
如果克隆可以被再次运行,为了再次尝试克隆,你必须删除 DS 恢复模式标记。
-
使用提升的命令(右键单击 Windows Server 2012 并选择“以管理员身份运行”)打开 Windows Server 2012,然后输入 msconfig。
-
在启动选项卡的启动选项中,清除安全启动(已经选择 Active Directory 修复已启用选项)。
-
得到提示后点击确定然后重新启动。
有关虚拟域控制器的详细疑难解答信息,请参阅虚拟化域控制器疑难解答。