开发者社区> 技术小甜> 正文

Active Directory的复制拓扑,Active Directory系列之八

简介:
+关注继续查看


Active Directory的复制拓扑

 
   在前面的博文中我们在域中部署了额外域控制器,而且我们已经知道每个域控制器都有一个内容相同的Active Directory数据库,今天我们要讨论一下额外域控制器在进行Active Directory复制时所使用复制拓扑。
NT4的时代,域控制器被分为两类,PDCBDCPDC是主域控制器的缩写,BDC是备份域控制器的缩写。每个域中只能有一个PDCBDC可以有多个,BDC的目录数据是从PDC复制而来。只有PDC才可以更改域中的用户账号,计算机账号等目录数据,BDC的内容是只读的!这种复制模型我们称为单主复制,这种模型我们并不陌生,类似于DNS服务器的辅助服务器和主服务器的关系。单主复制模型比较简单,管理难度不大,但较容易构成单点故障。
Win2000开始,Active Directory开始使用多主复制的模型,也就是说每个域控制器都可以自主地修改Active Directory的内容,域中不再有PDCBDC的区别了。Win2003使用了和Win2000同样的多主复制模型,而Win2008则在多主复制的基础上又增加了一个RODC,也就是只读域控制器,可以看出Win2008试图在多主复制模型中增加一些单主复制的元素,因为RODC的设计理念显然和BDC是有些关联的。
现在我们知道了Win2003Active Directory中使用了多主复制的模型,也就是任何一个域控制器都可以修改Active Directory。为了维护Active Directory的权威性,显然所有域控制器上的Active Directory内容应该都相同。那么,如果一个域控制器修改了自己的Active Directory,修改的的内容是如何复制到其他域控制器上的呢?这就是我们今天要讨论的内容,Active Directory的复制拓扑!
Active Directory的复制拓扑是一个比较复杂的问题,今天我们只讨论在同一域中域控制器之间的复制拓扑。当域中的域控制器数量发生变化,例如增加或减少了域控制器,域控制器上的进程KCC就会进行Active Directory复制拓扑的计算。KCC被翻译为知识一致性验证器,我们在任务管理器的进程列表中看不到KCC,因为它属于LSACC进程的一部分。KCC可以自动计算出域控制器进行复制时所使用的拓扑,当域控制器数量较少时,KCC倾向于在域中使用环形拓扑进行Active Directory复制,也就是说当一个域控制器的Active Directory内容发生变化时,这个更改不会同时传递给其他所有的域控制器,而是要沿着KCC设计的环形拓扑一一传递下去。而且为了实现冗余以及提高效率,KCC设计的拓扑还是双环拓扑,下图就是一个域控制器的复制拓扑示意图,从图中可以看到,每个域控制器都有两个复制伙伴,Active Directory的复制沿着顺时针和逆时针两个方向进行。
 
域控制器复制Active Directory时,一般会使用“带通知的拉复制”,也就是说,当DC1修改了Active Directory后,DC1会在5分钟内通知自己的复制伙伴DC2,“快来,我的AD中有些新内容”。DC2收到通知后,会启动一个Active Directory的复制请求,以增量复制的方式从DC1Active Directory复制到DC2。如果Active Directory中发生了一些紧急事件,例如用户口令被修改,那么此时域控制器将不受5分钟的时间限制,而是在最短时间内把Active Directory复制给PDC操作主机。如果一个域控制器在一个小时之内都没有收到复制伙伴发来的通知,它就会向复制伙伴发出一个查询,询问复制伙伴是否在线。
我们通过一个实例来观察一下域控制器的复制拓扑,Adtest.com域中有FlorenceFirenzeBerlin三个额外域控制器,我们在Florence打开Active Directory站点和服务,可以看到每个域控制器的复制伙伴。如下图所示,Florence的复制伙伴是BerlinFirenze
 
Firenze的复制伙伴是FlorenceBerlin
 
Berlin的复制伙伴是FlorenceFirenze
 
看完三个域控制器的复制伙伴,我们很容易勾勒出Active Directory的复制拓扑,这是一个标准的双环拓扑,拓扑如下图所示。
 
双环拓扑非常优美,但并非适合所有场合!在域控制器较多的网络中,标准的环形拓扑就不太合适,因为域控制器复制Active Directory时有个严格的限制,那就是从源域控制器到目标域控制器不能超过三个域控制器的间隔。具体来说就是如果DC1Active Directory发生了变化,那么DC1可以复制给DC2DC2可以接着复制给DC3DC3还可以复制给DC4,但DC4就不能再复制给DC5了!因为这时从DC1DC5中间间隔的域控制器已经超过了三个。微软进行这个限制,估计是为了避免在大型网络中进行Active Directory复制时环形拓扑导致的延迟问题,试想一下,如果一个大型网络中有100个域控制器,域控制器复制的平均间隔为5分钟,那么从第一个域控制器复制到最后一个域控制器可能需要大约500分钟!这种延迟是不可接受的,因此在大型网络中KCC会使用网状拓扑,网状拓扑就不像环形拓扑那样有规律了,每个域控制器可能会有多个复制伙伴,看起来并不像环形拓扑那样有规律。域控制器的复制拓扑最好由KCC来规划,当然,也可以自己指定域控制器的复制伙伴,例如我们想指定Florence的复制伙伴,我们可以如下图所示,在Florence上选择“新建Active Directory连接”。
 
如下图所示,Florence可以从域控制器列表中选择自己的复制伙伴。这样一来,我们就完成了对Florence复制伙伴的手工指定。
 
     域控制器的复制拓扑最好由KCC来自动计算,域控制器一旦复制拓扑出现问题,处理时需要相当的耐心,而且要结合DNSSRV记录来进行排错,可能还需要对Active Directory数据进行手工处理。以后有机会我们会介绍一些Active Directory排错的高级工具以及实际案例供大家参考,希望大家都能够处理好这个问题。


















本文转自yuelei51CTO博客,原文链接:http://blog.51cto.com/yuelei/126641,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
29762 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
16921 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
21004 0
阿里云服务器ECS远程登录用户名密码查询方法
阿里云服务器ECS远程连接登录输入用户名和密码,阿里云没有默认密码,如果购买时没设置需要先重置实例密码,Windows用户名是administrator,Linux账号是root,阿小云来详细说下阿里云服务器远程登录连接用户名和密码查询方法
22434 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23615 0
+关注
10140
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载