利用微軟的活動目錄(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。
為了簡化,我們假設在我們的域裡只有Astro、 George、和 Elroy 這三個DC。因為它們使用環形的拓撲,Elroy並不知道 Astro 已經把相同的個性給了George,所以它還想把修改復制到George。但是,在復制發生之前,George 和 Elroy 要比較屬性裡的最新狀態矢量,看到它們都被標記成來自Astro,所以就阻止George 從Elroy拉修改。雖然不拉修改, George 仍用Elroy當前的USN來修改自己當前的USN表,好讓Elroy在下一個復制周期裡,不再把變化傳給George。
如果兩個修改同時發生,會怎麼樣?
您可能已經想到,如果兩個管理員,在不同的DC上,同時對同一個對象的同一個屬性做了修改,這怎麼辦?微軟也想到了這個問題。為了分開這些修改沖突,AD數據庫使用了一套屬性版本號系統。AD數據庫裡的每個屬性都有一個版號,每次屬性被修改時,版本號都更新。屬性版本號在域裡的所有DC上都應當相同。如果DC通過復制接收到屬性的修改,它對打在修改上的屬性版本號和它的數據庫裡的版本號進行比較。然後進行下面的處理:
如果屬性版本號比DC數據庫裡的版本號低,DC就忽略修改。
如果版本號相同(稱為修改沖突),但是兩個版本的屬性值不同,DC就會用具有最後時間標簽的屬性值來打破這個約束。這樣的修改沖突如圖圖 C 所示,而它的解決辦法如圖 D所示。 但是不用擔心,AD服務會給管理員用戶發送一條通知,讓他知道發生了沖突。
更極端的可能性是屬性版本號和時間標簽都相同。這種情況下,微軟選擇按DC的GUID級別高低選出獲勝的修改。因為GUID是絕對唯一的,所以AD使用最高GUID,就打破了限制。
就象您會想到的,微軟在AD時集成了時間同步服務,這樣所有的DC在給它們的目錄修改做標記時,就會使用相同的時間。
圖 C: 在用戶的電話號碼屬性上,發生了修改沖突。
圖 D: 根據兩個屬性值的時間標簽,沖突得到解決。
站點
下面,讓我們就站點(Site)稍做討論。如你所知,你利用活動目錄域和組織單元(OU)來定義你公司的邏輯結構。站點被用來定義你的底層網絡邏輯結構-而且,對於在公司裡通過低速網絡連接進行的域內DC之間的復制,站點可以讓你對流量做一些控制。
活動目錄站點被定義成一個或多個連接好的IP子網的集合。在站點裡的全部子網都要有可靠的、高速的網絡連接,而不能由遠遠分隔,通過低速、不可靠的WAN連接連接起來。你會發現,高速是個相對概念。如果你是一個小型網絡的管理員,那麼對於用128Kbps速率傳輸數據的兩個子網,你可以認為它們之間的連接很好。另一方面,如果你是一個非常大的網絡的管理員,那麼你可能會把所有低於1.5Mbps的連當作是低速連接。
定義站點(Site)
你可能還不知道,在你的企業裡,第一個站點是在你安裝第一個AD DC時,自動建立的。這個站點被賦予缺省名稱Default-First-Site-Name(缺省第一個站點名稱)。對於你的網絡,這可能不是一個非常有說明性的名稱,所以只要你願望,你可以隨時可以給它改名。缺省情況下,你的全部IP子網都包含在這個站點裡。站點的主要用途是對通過低速網絡連接進行的復制流量進行優化,並且幫助客戶查找離他們最近的DC來處理服務請求。
使用預定義的MMC控制台活動目錄站點和服務管理器(Active Directory Sites and Services),你可以在你的企業裡建立附加的站點。下個月,我們會具體研究建立站點和站點對象。站點在活動目錄(AD)裡進行維護,但並不是名稱空間的部分。所以,用戶不能按站點浏覽活動目錄(AD)。站點結構只能用於復制。
站點成員
在你把一個 Windows 2000 活動目錄(AD)域控制器(DC)提升到域控制器狀態時,AD DC就被分配了它的站點信息。缺省情況下,它成為你運行Dcpromo.exe時,AD DC連接的子網所對應的站點的成員。以後,你可以使用活動目錄站點和服務管理器(Active Directory Sites And Services)控制台,修改AD DC的站點成員身份。AD DC的站點所在地決定了它在復制拓撲裡的位置。
AD 客戶計算機從DC取得站點信息。在計算機啟動時,它查詢DNS,獲取它域裡的DC的IP地址。然後它與某個DC聯系。如果DC不在客戶的本地站點裡(根據子網地址),DC會把正確的站點信息傳遞給客戶,這樣客戶就可以對它的站點裡的DC做更有效的DNS查詢。然後,客戶能夠完成與本地DC的認證過程,還可以向本地DC請求服務。因為客戶把這個信息緩存在它的注冊表的這個值下面:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControSet\ Services\NetLogon\Parameter\ DynamicSiteName
所以,只有當客戶的子網發生變化時,才必須重復站點發現過程。
你可以想象得到,這個過程極大地改善了客戶和DC之間的通信,還能減少通過站點間低速的WAN連接進行的與AD有關的流量。你對AD站點的正確規劃,能夠給客戶提供來自離它最近的DC的最新AD資源,而且可以保證站點間復制避開高峰時段,從而保證你的網絡連接不會因為復制流量而飽和。
理解站點間復制
你可以把域的DC放在不同的站點裡,以便對通過低速網絡連接進行的AD復制進行控制。當你在一個新的站點裡安裝第一個DC時,它會自動建立復制連接。叫做站點間連接(intersite link),連接指向域裡已有站點中的現存DC。在圖 E裡,你可以看到一個例子。你在第二個站點裡安裝的其它DC,會在第二個站點裡構成環形拓撲。在一個站點裡做的所有修改都會通過站點間連接復制到其它站點。
因為每個DC都有一份可以寫入的AD數據庫拷貝,所以如果站點間連接中斷,它是無法防止你對你站點裡的DC的AD做修改。只要計算機通信重新建立,在不同站點裡的DC就會通過正常的復制過程進行同步。
圖 E: 在新站裡的第一個DC自動建立復制連接,連接指向域裡其它站點的現存DC。
總結
在這篇文章裡,你已經看到,通過使用AD邏輯結構的不同實體,對你的網絡物理結構進行定義,你可以對AD復制進行估化,從而減少通過低速網絡連接的流量。通過把客戶認證和請求服務都送給離客戶最近的AD DC,站點讓你能夠給用戶提供服務請求的最快響應時間。你要知道,對於在芝加哥的用戶,讓他等待經過緩慢的國際WAN連接,由位於巴黎的DC進行認證,他是不會高興的。