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排錯的高級工具以及實際案例供大家參考,希望大家都能夠處理好這個問題。
本文出自 “嶽雷的微軟網絡課堂” 博客,請務必保留此出處http://yuelei.blog.51cto.com/202879/126641
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章