管理活动目录站点:第一部分


利用微软的活动目录(AD)复制 , 你能够更好地控制网络流量 , 减轻站点的负担 。请认真阅读这套由两部分组成的教程 , 它们介绍了如何为你自己的域配置AD目录复制系统 。
在Windows 2000 活动目录(AD)环境里 , 你可以使用站点(Site)把网络物理地划分开 , 从而优化AD复制 。通过理解微软是如何在你的域里实现AD复制 , 你能够更有效地对把你的网络划分成AD站点 , 从而减少通过低速网络连接的网络流 。
这篇文章是关于活动目录站点的两篇系列文章的第一部分 , 在这篇文章里 , 我们要研究缺省的AD站点内(intra-site)复制的配置,以及信息如何被复制 。在系列的第二部分 , 我们要研究如何对自己的站点进行安装设置 , 对通过网络进行的AD复制流进行优化 。
活动目录复制
在活动目录(AD) 域控制器(DC)安装到域里时 , 活动目录会建立缺省的复制模板 , 并且在活动目录之间自动建立起一个环形的复制拓扑 , 建立的依据是确保复制流量沿着最有效的路径进行 。你可以沿着环的任意方向把变化复制到AD 。
因为在AD里所有的DC的地位都相等 , 都包含可以写入的AD数据库备份 , 因此在实现多主机复制系统时 , 有一些潜在的挑战面对着微软 。在你可能考虑到的问题里 , 有些是:
DC如何把复制流量控制在最小?
DC如何保持所有的数据库拷贝同步?
如果DC从两个复制伙伴得到相同的修改 , 会怎么样?
如果两个修改同时发生 , 会怎么样?
那么就让我们按顺序来看看这些问题 。
DC如何把复制流量控制在最小?
为了把网络流保持在最小 , AD的复制在每-属性(per-attribute )的基础上进行 。简单地说 , 这就是指如果一个属性发生了变化(比如 , 用户的电话号码) , 那么只有这个小小的变化被复制到你的域里的其它DC上 。你可以想象 , AD的每属性复制 , 和把整个数据库拷贝都通过网络传递比起来 , 更加有效率 , 需要网络带宽也更少 。
DC如何保持所有的数据库拷贝同步?
AD DC 使用一套更新顺序数字(USN)系统对彼此间流动的AD数据库的不同版本进行校验和同步 。每当一个DC对它的数据库做了修改 , 它就用一个USN来标识这个修改 。在它通知其它DC它有一个修改需要复制时 , 它还把与被修改的属性相关联的USN通知给其它DC 。
每个DC都维护了一个表格 , 里面保存着它从环里它的每个复制伙伴那里收到的最高的USN数字 。如果一个DC收到了一个修改的通知 , 而与修改相关联的USN值要比在它的表里的记载的USN值高 , 那么它就向复制伙伴请求所有插入的修改 。你可以在图 A 和 图B 里看到这个过程 。
图 A:活动目录变化通知里包括更新顺序数字USN 。
图 B:AD 数据库使用USN在多主机环境里控制同步 。
更多问题
如果DC从两个复制伙伴得到相同的修改 , 会怎么样?

就象我们前面讲过的 , 在一个域里的AD 的DC使用环形拓扑进行复制 。您能会想 , 有没有可能 , 一个DC从不止一个复制伙伴那里接收到相同的目录修改呢?为了能区别开这些重复 , 防止修改在复制环里传播得没完没了 , AD不但使用USN对不同数据库版本进行同步 , 而且还用它来确定“源头写” 。“源头写”是在一台DC本地进行的修改 , 通过复制得到的个性不是源头写 。源头写的USN被写入属性 , 和属性一起被复制 。
为了说明这个机制是如何作用的 , 让我们来看一个简单的例子:假如名为 Astro的DC对某个属性做了修改 。它就把新的USN给了这个修改 。在这个例子里 , 我们假设USN为516 。然后它把新值写到属性里 , 同时给属性值把USN代码写到叫做最新状态矢量的一个东西里 。Astro这个DC把修改复制给它的两个复制伙伴:名为George 和 Elroy的DC 。

推荐阅读