【Windows Server 2008新功能技術文章 】
Windows Server 2008分散式檔案系統
(Distributed File Systems)
◎作者:陳照昌 精誠資訊恆逸教育訓練中心 資深講師
本文版權為精誠資訊股份有限公司恆逸教育訓練中心所有,非經授權,請勿使用。
概述
分散式檔案系統(DFS),從NT時代微軟就已經提供了,但一直沒有很突出的表現,筆者認為是一件很可惜的事。DFS的概念非常好,它將公司所有伺服器中的共用資料夾(Shared Folder),以一個虛擬的樹狀結構表現出來,讓公司的使用者,不用在”網路上的芳鄰”毫無目標的亂找一通了,只要從一個固定的進入點(Namespace Root)進去,便可以找到公司所有的共用資料夾資源。
現在Windows Server 2008的DFS提供了容錯及Site-aware的概念。因為有Site-aware的概念,同一個Site的用戶端會優先連接到自己Site的檔案伺服器,如此一來可以節省WAN的頻寬,並且加快用戶端對檔案伺服器的存取速度。而容錯的概念是,如果用戶端所處的Site中的檔案伺服器掛掉,用戶端可藉由系統自動轉移連接到另一個Site具有
相同共用資料夾的檔案伺服器,當用戶端自己Site的檔案伺服器恢復運作之後,也會自動轉回連接到自己Site的檔案伺服器,以節省WAN的頻寬。
Windows Server 2008在DFS中提供了兩個功能,DFS Namespace及DFS Replication。要完成DFS運作,需要有Active Directory網域環境,參與DFS Replication功能的伺服器必須在相同的Forest(樹系)中,複製的資料夾必須是NTFS格式,如果有安裝防毒軟體,必須和DFS功能相容的防毒軟體,如果有防火牆,那麼DFS可能無法正常運作,您必須得使用dfsrdiag.exe讓DFS Replication定義使用靜態的RPC Port,才可以在防火牆上制訂讓DFS Replication封包通過的規則。
安裝DFS
讓我們開始來架設DFS,體驗一下它的功能。首先,我們必須有Active Directory網域的環境,筆者在DC1(網域控制站)及一台Server1(成員伺服器),兩台電腦都安裝DFS功能。開啟”Server Manager”→ 點選到”Add Roles”。(如圖1)
接著按”下一步”鈕,選取File Server,再按”下一步”鈕2次,選取Distribution File System及DFS Namespace、DFS Replication。(如圖2),接著繼續按”下一步”鈕,隨著畫面指示,便可安裝完成。
圖1
圖2
簡介Namespace
Namespace為公司組織中”共用資料夾”的虛擬樹狀檢視,可以讓使用者從這個地方抓取公司共用資料夾資源,它是將公司所有的共用資料夾資源以UNC的方式組織起來。讓我們認識一下它的名詞:‧ Namespace Server:握有Namespace伺服器。可以是網域控制站(DC)或成員伺服器(member Server)。
‧ Namespace root:為Namespace的進入點,如果是Domain-based的Namespace,可以用建立多台Namespace Servers的方
式,來構成容錯機制。
‧ Folder:用來幫助建構Namespace的結構。讓DFS Namespace看起來有樹狀結構的感覺,方便資料的擺放及尋找。
‧ Folder Targets:是用來指向實際共用資料夾的一種指標。採用UNC名稱。同一個Folder Target,可以指向兩台以上不同的伺服器,以達到容錯機制。
1
建立Namespace Root
讓我們實際來建立它。在DC1的Administrative Tools中,開啟”DFS Management”,選到”Namespaces”,按滑鼠右鍵,選到”New Namespace..”,在Server欄位中→輸入DC1,在Namespace欄位中→輸入Public,在Namespace Type選到Domain-based namespace,然後把它建立起來,建好了Namespace root(如圖3)。
Namespace的名稱不一定要叫做”Public”,可以根據公司的需求自行設定。
圖3
建立Folder
選到Namespace Root(\\\\coho.com\\Public),按滑鼠右鍵→選到”New Folder”,在Name欄位中,輸入software,建立一個Folder起來(如圖4)。
圖4
建立 Folder Targets
選到”Software” Folder,按滑鼠右鍵→選到”New Folder”,在Name欄位中,輸入Office,然後在Folder Targets欄位下,按”Add”鈕,輸入UNC名稱→\\\\DC1\\Office,建立起一個Folder Target,再按一次”Add”鈕,輸入UNC名稱→\\\\Server1\\Office,建立出另一個Folder Target,這個Folder Targets就指向到不同的兩台伺服器了。(如圖5)
筆者註:請事先在DC1及Server1共用出一個資料夾,共用名稱為Office
圖5
DFS Replication
當Folder Target指到不同的兩台檔案伺服器,DFS Replication的功能會跳出來,問您是否要一併建立起DFS Replication的群組(如圖6)。因為同一個Folder Target指到不同檔案伺服器,共用資料夾中的資料要保持一致性,您也可以使用人工拷貝的方式,達到資料一致性,但太麻煩了。所以我們利用這個DFS Replication的功能,來達到資料的一致性。
我們選取”Yes”鈕,就會跳出精靈,引導我們建置完成DFS Replication Group。(如圖7)
當建構好之後,我們在Replication下,就會看到多一個複製群組 coho.com\\public\\software\\office,此複製群組有兩個成員,分別為DC1、Server1,並且它的複製路徑是雙向的(如圖8)。意思就是,我們可以在DC1或Server1修改檔案,它會彼此複製到對方。
圖6
圖8
圖7
1
【Windows Server 2008新功能技術文章 】
測試容錯機制
我們在DC1的C:\\office\\ 放置幾個檔案,您會發現,一小段時間之後,Server1下的C:\\office\\ 也會有相同的檔案出現,這就是DFS Replication 的複製機制發揮作用。我們使用另一台電腦XP1(XP Profession SP2),它是網域的成員電腦,點選”Start”→”Run”→輸入 \\\\coho.com\\public\\software\\office 連入共用資料夾中。(如圖9)
圖10
圖9
點選工具列上”資料夾(Folders)”,再點選左框中的”Office”,然後按滑鼠右鍵→選”內容”,在DFS的頁簽上,您可以看到現在您連入的伺服器。(如圖10)現在把您所連入的伺服器(Server1)的網路卡停用,模擬伺服器當機的效果,再用XP1連入一次,您會發現照樣可以連進去,接著依照上述的作法,找到DFS的頁簽,您會發現現在是由另一台伺服器來服務您,證明容錯機制發生效用!您可以按”Check Status”鈕,來測試提供服務的這些伺服器的狀況喔!(如圖11)
圖11
測試DFSR -- RDC複製機制
讓我們來做點實驗,首先在DC1的C:\\offlice放入一個約90幾Mbytes的檔案,然後在Server1使用”封包捕捉程式”將傳遞的封包捉下來,我們看到DC1總共向Server1傳遞的封包大約有11000多個封包,也就是因為Server1本來並沒有這個檔案,所以DC1將一個完整檔案的傳遞到Server1去。(如圖12)
接著,我們在DC1的C:\\office\\ 修改這個檔案(修改幾個字元),然後把這個檔案存回去,再去觀察Server1上的”封包捕捉程式”總共捉到多少封包,結果是200多個封包而已。(如圖13)
我們在Server1開啟這個檔案,果然看到的是已修改的檔案,證明這個檔案已經更新。(如圖14)
這是因為DFS Replication採用了RDC(Remote Differential Compression)遠端差異壓縮的機制,這個機制對大檔案只修改小部份的狀況特別有效。而且它對欲傳
圖12
1
遞檔案做了壓縮機制,並且只傳遞有修改差異的(Block)區塊,因此可以節省大量的頻寬,並加快檔案的一致性,大約可以減少63.14%的頻寬流量,也可以進行排程及頻寬流量的,對WAN的狀況非常有益處。
圖13
圖14
DFSR通過防火牆機制
DFS Replication做複製時,因為它是採RPC的動態Port,所以在需要經過防火牆的狀況下,會出現問題。
我們可以經由 dfsrdiag.exe 這支程式,來讓DFS Replication使用固定的靜態Port,讓我們來實驗看看。在DC1開啟”命令提示字元”,下達
C:\\> dfsrdiag staticRPC /port:6666 /Member:DC1C:\\> dfsrdiag staticRPC /port:6666 /Member:Server1讓DC1及Server1都使用固定的TCP Port 6666。您可以使用下列指令來觀察
C:\\>dfsrdiag DumpMachineCfg (如圖15)
有需要時,可以到Administrative Tools(管理工具)中的Services(服務),找到”DFS Replication”,把它重新啟動一次。然後在DC1放一個檔案到 C:\\office\\ 中,再到Server1使用”封包捕捉程式”捉取封包來觀察,會發現整個複製行為,會使用TCP port 6666來進行。(如圖16)
圖16
如此一來,您便可以在防火牆上,設定允許封包通過TCP port 6666即可。
圖15
結論
DFS重現江湖,對筆者來說是一件極為高興的事,它完全改善了檔案在異地之間同步化的問題,其效能令人激賞,並且提供了容錯的機
制,令整個公司的共用資料夾分享機制更為完善,希望大家可以盡情享用DFS帶來的好處。
0