Windows

將文件/權限複製到沒有 SMB 的另一台伺服器?

  • April 22, 2015

對於我遇到的問題的診斷,我真的需要能夠在 Windows 伺服器之間複製文件——包括不使用 smb的 NTFS 權限。有沒有現成的方法來做到這一點?如果我在 Linux 上工作,我只會使用 tcp 流或 SSH。我看過的 SSH 實現不執行 NTFS 權限,而且我還沒有看到任何原始 tcp 流。

背景:

我正在預置一個 DFS 共享,該共享將用於從 2003r2 文件伺服器遷移到 2012r2 伺服器。我有幾 TB 的數據需要移動。

我已經使用 iperf 排除了網路級別的問題。我們正在獲得 800 兆位或更高的吞吐量。我還禁用了防病毒軟體並遵循其他標準性能故障排除步驟。

一種完全避免 SMB 但可能相當難以建構的方法是基於 iSCSI。

Windows 2012r2 可以是 iSCSI 目標,Windows 2003r2 可以充當客戶端。因此,您可以在目標上設置一個卷,並通過 iSCSI 呈現它,然後通過您的客戶端系統連接到它,然後將捲直接安裝在 Windows 2003r2 機器上。然後,您可以使用本地複制工具(即 robocopy)進行預播。

您真的應該向我們提供更多資訊,尤其是關於您為什麼要首先避免 smb/cifs 的資訊。

無論如何,假設你不能真正使用 smb,你有兩種可能性:

  • 按照 Zoredache 的建議,使用較低級別的協議 (iSCSI) 導出遠端文件系統,然後使用 robocopy 複製所需的數據;
  • 在兩台伺服器上安裝 cygwin 並使用 rsync 複製所需的文件。

讓我詳細說明第二種方法(rsync)。一個月前,我需要將大約 200 GB 從 Windows 2003 文件伺服器遷移到新的 Linux+Samba 設置,而無需停機。我的解決方案是使用 rsync 增量同步兩個文件伺服器,最後同步步驟非常簡短,在此期間原始共享處於只讀模式。

我遇到了以下問題:

  1. 起初,ACL 沒有同步。解決方案是將-A選項傳遞給 rsync 命令;
  2. 之後,ACL 同步但方式錯誤(分配給文件的 uid 錯誤)。解決方法是首先將新的Linux伺服器連接到域並正確配置windbind,以便呼叫getent passwd返回域使用者列表;
  3. 數據傳輸很慢。事實證明,CygWin 的 SSH 實現相當緩慢。為了解決這個問題,我在獨立守護程序模式下配置了執行 Windows 的 rsync 實例,而不需要 SSH。

ene 結果是 Linux 機器上幾乎完美的 ACL 副本(一些細微差別是由於 SMBACL 和 Posic ACL 的不同)。

您處於一個有點相似但更好的位置:您的兩個文件伺服器都是基於 Windows 的,我想它們在同一個域中。這意味著他們可以使用相同的 RID 訪問相同的使用者數據庫 - 換句話說,您在複製 ACL 時應該不會遇到問題。此外,rsync 是一個非常高效和通用的工具,它在增量複製文件時應該沒有問題。

然而,在做所有這些之前,請真正重新考慮為什麼(以及是否)您不能使用 SMB/CIFS 進行文件傳輸。你真的,真的真的確定嗎?如果是這樣,為什麼?

引用自:https://serverfault.com/questions/684723