iT邦幫忙

0

DFS複寫疑問?

  • 分享至 

  • xImage

各位先進好:
小弟最近架好了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
那兩個使用者若都有做存檔動作,複寫後不就會出現後蓋前的情況。
請問該如何避免呢?

froce iT邦大師 1 級 ‧ 2023-09-15 16:25:09 檢舉
https://learn.microsoft.com/zh-tw/windows-server/storage/dfs-replication/dfsr-faq#------dfs---------

請勿在有多個使用者在不同伺服器上同時更新或修改相同檔案的環境中使用 DFS 複寫。

當多個使用者同時需要在不同的伺服器上同時修改相同的檔案時,請使用 Windows SharePoint Services 的檔案簽出功能,以確保只有一次只有一個使用者能處理檔案。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
Ray
iT邦大神 1 級 ‧ 2023-09-15 22:13:38
最佳解答

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就不能啟用了,使用者的網路連線也斷了)
還是有其他的作法呢?

Ray iT邦大神 1 級 ‧ 2023-09-18 21:14:15 檢舉

要維持檔案一致性, 必須所有人都從單一的 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大詳細的解說,感恩

我要發表回答

立即登入回答