Storage

為什麼 robocopy 昨晚導致我的 Windows 2012 伺服器掛起?

  • December 14, 2014

我正在停用充當文件伺服器的舊 2003 伺服器,並且正在嘗試將文件儲存庫遷移到新的 Windows Storage Server 2012 機器。我正在使用 robocopy 複製文件,目前只是進行一些測試執行以查看在我們進行最終更改之前需要多長時間。

第一次執行 robocopy 時,我提供了以下開關: Options : /S /E /COPYALL /PURGE /MIR /MT:128 /R:100000 /W:30 它執行良好(儘管我不推薦 /r 和 /w 開關,因為它需要很長時間才能完成!)我第二次使用以下開關執行它(目標目錄已經包含我第一次執行它時源目標的副本,/MIR 將確保它已更新):選項:/S /E /COPYALL /PURGE /MIR /MT:128 /R:0 /W:0

這導致伺服器在作業開始後大約 5 分鐘掛起。它完全掛起,我不得不手動重啟它以重新啟動它。日誌並沒有給我一個很大的跡象表明出了什麼問題 - 想法是 /mt:128 引起了問題,但我第一次提供了那個開關,這很好。

第二次我將幾個開關更改為 /r:0 和 /w:0 雖然我不認為它們會導致它掛起。

最後是我選擇 /MIR 有問題的事實,因為目標之前已經從源複製過一次 - 我不會這麼想,儘管我認為鏡像的唯一潛在缺點是它會刪除文件不再在源中的目的地。如果有人能闡明哪裡出了問題,它將確保下次我嘗試它時不會出錯。

編輯:我上面提到的開關取自 robocopy 日誌文件,從某種意義上說,它們是對我指定的開關的解釋,它們是:/MIR /COPY:DATSOU /MT:128 /R /W

第二次編輯:有問題的伺服器有一個雙 NIC,使用 Windows Server 內置 NIC 組合進行組合。我覺得這是重要的資訊,我最初發布問題時沒有分享。想對此進行調查。有問題的 NIC 是 Intel(R) 82574L 千兆網路連接。NIC 團隊是“Microsoft 網路適配器多路復用器驅動程序”。

聽起來肯定是網卡驅動程序問題。要查看這是否是雙網卡設置的錯誤,請將 IPG 參數調整為大約 20 毫秒並刪除 /MT:128 參數(因為 /IPG 和 /MT 不兼容)。使用原始文章中的“我指定的開關”行,它看起來像這樣。

/MIR /COPYALL /R /W /IPG:20 /Z

/IPG:20(數據包間間隙)將大大減慢傳輸速度,但提供穩定性。

/Z(可重新啟動模式)對於網路上的副本很重要,以防網路中斷(由壞卡、驅動程序或實際網路問題引起),因為它允許副本從中斷的地方繼續。

如果這成功完成,您的網路驅動程序有問題。問題是您使用的任何驅動程序都無法處理/IPG:0 的吞吐量。

將 NIC 驅動程序作為伺服器掛起的根本原因的最後一根釘子是更換網卡並重新執行導致它掛起的命令。除此之外,您可能還可以拔下其中一個連接,這樣就不會發生多路復用,然後執行產生錯誤的命令。

建議來自 technet 上的 cb42。

http://social.technet.microsoft.com/Forums/en-US/itprovistaapps/thread/9555a996-1301-4f68-b9d3-82a87fc6ba46/

…和 ​​ss64 岩石(只是說!)http://ss64.com/nt/robocopy.html

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