活动目录系列之十三:AD的复制

       通过前面十二次的讲座,其实我们一直在探讨活动目录的逻辑结构较多,今天我们来谈一谈有关AD的复制问题。其实对于每一个DC,都会有一个数据库文件,它就是AD数据库,详见活动目录系列之一:基本概念

    AD数据库分四个目录分区,如下图所示:
活动目录系列之十三:AD的复制
其中在森林级别复制的是前两个分区,即架构分区和配置分区。而在域级别复制的是域分区。应用程序分区是一个可选复制,可以自己配置,在这里不讨论。

(一)站点内部的复制
       如果单域环境,同时存在多台DC,此时每台DC都会同步森林及域级别的三个分区。如果多域环境,同时存在多台DC,此时便会存在多路复制拓朴。如下图所示:

活动目录系列之十三:AD的复制
    上图有三种复制拓朴,第一路是森林级别的复制,在所有的DC之间复制;第二路是域A的域分区的复制拓朴,在所有域A的DC之间复制;第三路是域B的域分区的复制拓朴,在所有域B的DC之间复制。如果在上图的DC之中还存在GC,则上面的复制拓朴还会改变,因为GC是一个特殊的角色,它将拥有所有域的域分区对象及对象属性的子集。
    其实大家也都看到了,我们的复制拓朴是一个双向环(保证容错),而这个环是由每台DC上的KCC进程自动生成的。
    附:KCC:是一个进程,或翻译成“知识一致性校验”,它用来检查当前的AD环境,用于生成环形的复制拓朴。
    如果在上图中再加入新的DC,KCC会再次计算,生成新的环。当然我们自己也可以自定义,各位可以参考下面第二个图可完成。如下图所示:
活动目录系列之十三:AD的复制
    如:通过KCC,在A1和A2之间创建一个连接对象,A2就叫做A1的直接复制伙伴。如下图所示:
  活动目录系列之十三:AD的复制
  注意:这个连接对象是自己产生的。若自定义,可以在此完成。
AD的复制有三种复制方式
a.更改通知的方式:如果A1上创建了一个帐号test,则它会15秒后通知A2,然后3秒后通知A3、再3秒后通知A4。如果A2收到通知后就会从A1把数据要过来写到自己的数据库中。这是拉复制。
b.紧急复制:如密码修改、帐户锁定策略等。修改后就马上联系复制伙伴。没有时间延迟。
c.每隔1小时复制:检查是否有数据复制遗漏。   

      其实在上述环中复制允许的路数不能超过3,即A1把数据复制给A2,A2再复制给A3,A3再复制给A4,就再不能间接复制给A5了,也就是说中间只能跳3跳。这个目的其实是不让复制的时间过长。大家可以仔细观察上面复制拓朴就满足这个条件。

(二)站点间的复制
    如果你的企业位于两地或多地,试想根据上面的复制情况,不言而喻,DC之间的复制流量很大,这个流量要跨越WAN,我们不希望这样。怎么办呢,我们要控制复制。因此我们只能建站点,当然建站点的好处我们也可以控制用户的登录流量。详见<活动目录系列之四:单域环境的实现(多站点)--基本配置>。这样我们便可以按计划进行AD的复制,同时这里复制还是压缩的,基本上是原来流量的15%左右吧。

    下面我们来比较一下站点内和站点间复制的特点:
活动目录系列之十三:AD的复制
 
(三)同域内复制冲突问题
有三种冲突:属性冲突、删除的容器冲突和RDN冲突
属性冲突:是指同一个对象的相同属性在两台DC上改的不同。
删除的容器冲突:在某个容器内添加对象或将对象转移到此容器内,但这个容器已经在另一个DC上被删除了。(在第一台DC上删除的容器还没有复制到这个DC之前):此时该对像会被移动一个叫lostandfound的夹中,这个夹你需要打开“高级”来查看到,你可以再把这个对象移到其它容器。
RDN冲突:是指你在两台DC上建两个同名用户。此时时间上后建的那个用户名会被改名。其实两个都存在。
 
属性值冲突的解决办法:会以戳值最高为优先。
AD会根据对象的属性戳(stamp)来解决冲突的问题,它包括三个数据:
版本号码:初始为1,为最先比较者。
修改时间:若版本号相同,此修改时间较后的优先。
DC的GUID:若上修改时间相同,会比较GUID。高的优先。
Repadmin  /showmeta  DN   可以查看用户或OU的版本号
 
     最后问各位一个问题,AD在复制的时候,究竟复制那些东西呢?其实有两个:数据库本身的复制和SYSVOL之间的复制,而SYSVOL如果复制不成功,会造成组策略不生效。有关组策略问题,各位可以参考本站的《组策略系列》
    AD的复制是一个很重要的话题,在你的企业里,如果控制不好,会造成域用户登录有问题或很慢。希望今天的内容能为各位的企业环境的管理带来一些帮助! 









本文转自 jary3000 51CTO博客,原文链接:http://blog.51cto.com/jary3000/126201,如需转载请自行联系原作者
上一篇:MyBatis Generator(MBG)设计哲学与致歉


下一篇:Nginx运维管理脚本