各位先進好:
小弟最近架好了DFS及設定複寫、轉介也有設定。A Server為第一目標,B Server為最後
共用資料夾為 \ad\adm
假設a使用者連到 A Server\adm\,b使用者卻連到 B server\adm
請問上述假設會成立嗎?
如果會成立,a使用者開啟 A Server\adm\a.txt,b使用者開啟B server\adm\a.txt
那兩個使用者若都有做存檔動作,複寫後不就會出現後蓋前的情況。
請問該如何避免呢?
DFS 只能使用在靜態檔案的異地複寫, 不能用在線上動態變更的檔案複寫, 因為 DFS 並沒有複製所有 File System 的狀態旗號到異地去, 目前已知他不會傳遞 File Lock, Exclsuvie Write...等信號給對方, 所以兩地對於同一檔案的狀態認知並不一致.
若分別從兩個不同的 DFS 進入點, 去編輯同一個檔案, 將會造成檔案毀損. 而 DFS 為了避免檔案發生毀損, 他會在發生此狀況時, 將兩邊都編輯過的檔案標示為 Conflict, 同時停止兩邊對這個檔案的複寫動作. (這將會導致這個檔案不再被複寫到對方去, 除非你手動刪掉其中一邊的檔案, 才能重新恢復此檔案的複寫)
r大:
那動態變更的檔案若不能使用複寫,那DFS也不能使用了嗎?因為不能確定 DFS 進入點,兩邊的檔案就有可能不一致。
請問能固定DFS進入點都是從A Server嗎?
若要做到A Server故障不會影響到使用者,不就只能在下班時間,將檔案備份到B Server,當A Server故障時,再將B server的DFS啟用。(小弟把A Server關機,B Server 的DFS就不能啟用了,使用者的網路連線也斷了)
還是有其他的作法呢?
要維持檔案一致性, 必須所有人都從單一的 Namespace UNC 進入, 如下圖, 左邊是 Namespace Root, 右邊則是個別主機上面的 Share Folder:
從 Namespace Root 進來之後, DFS 會自己去選擇最佳的一個 Share Folder 來存取檔案, 這時候你才能躲開上面所述: 同時在不同主機上面編輯的衝突問題.
DFS Namespace 可以被設計成 Cluster, 所以可以具有容錯能力, 避免單一主機故障; 但不幸的是, 不管是單機或 Cluster, 所有地區的人都只能使用這個入口的話, 代表你有些人必須透過較慢的 WAN 連線進入, 不能直接使用各地的 Local 主機去存取檔案.
其實這個架構, 就是早期 Sharepoint OneDrive 的架構, 所以微軟叫你直接買 Sharepoint 雲端硬碟比較快; 因為 DFS 常常有 Conflict 的問題要解決, 除此之外, 還有 Staging 和 Orphaned file 的問題, 也可能需要靠手動查修.
Sharepoint 雲端 24hr 都有專責的工程師在解決這些問題, 但企業自建的 DFS Namespace, 可能沒有足夠的技術能力可以排除障礙. 舉例: 你要怎麼計算主機上的 Staging Area 是否足夠你的檔案複寫用?
而且 Azure 雲端有超大頻寬可以用; 企業自家建的 WAN 網路可能頻寬會被 DFS 塞爆.
謝謝r大詳細的解說,感恩