Cygwin 用於大數據傳輸的 RSYNC
我正在使用 Cygwin 的 rsync 進行從老化的 HP MSA 1000 到連接到不同伺服器的新 DAS 的大規模數據傳輸。我有一個以只讀模式在遠端伺服器上執行的守護程序和一個將文件寫入磁碟的本地副本。
我的其中一台伺服器是一個圖像儲存庫,其中包含分佈在大約 300 個目錄中的超過一百萬個文件。每個文件平均只有幾百千字節。與其他任何盒子相比,這個盒子更容易出現問題。
rsync 程序將工作一段時間——有時是 20 分鐘,有時是一小時——然後它會簡單地退出並以給定的文件名閒置。
我已驗證遠端伺服器上的文件沒有損壞,並且文件已在本地驅動器上成功創建。我在 -vv 模式下執行 rsync 客戶端,它什麼也不返回。我檢查了守護程序創建的日誌。我查看了界面上的網路使用率,它處於空閒狀態。我查看了 AV 設置,看看是否有任何問題。我什至更新到最新版本的 Cygwin。
為了保持這種聯繫,我需要做什麼?
編輯:
客戶端系統正在使用命令
rsync.exe server::Drives/f/Repo/ /cygdrive/T/Repo --archive -P -vv
伺服器正在使用命令 rsync.exe –daemon –no-detach –config “rsyncd.conf”
rsyncd.conf 的內容:
use chroot = false strict modes = false hosts allow = 192.168.100.9 log file = c:/rsyncd.log uid=0 gid=0 [Drives] path = /cygdrive read only = yes
編輯:
文件伺服器為2003,陣列上的磁碟類型為GPT,陣列大小約為4 TB。
編輯:
陌生人.. 看起來該過程可靠地出錯了大約 175,000 個文件。當我選擇同一個目錄時,Rsync 執行良好,它一次有一個問題。
編輯:
rsync version 3.0.9 protocol version 30 Copyright (C) 1996-2011 by Andrew Tridgell, Wayne Davison, and others. Web site: http://rsync.samba.org/ Capabilities: 64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints, no socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace, append, ACLs, xattrs, iconv, symtimes
當使用 Cygwin 從同一組文件轉到 Linux 安裝時,也會發生類似的故障。然而,它直到比正常時間晚了幾個小時才發生。
你沒有說總數據量,所以我不能確定,但我之前在相當大小的儲存庫上使用過 rsync。到目前為止,我還沒有遇到這個特定的問題。不過,我的絕大多數使用是在 Linux/Unix 設備上,只有偶爾的 Windows 執行。
要弄清楚實際發生了什麼,您可能想嘗試使用其他
-v
參數執行 rsync,看看您是否可以獲得足夠的詳細資訊來了解它在掛起時在做什麼。如果這沒有幫助,您可能會考慮在strace
or下執行 rsyncltrace
。作為一種解決方法,您可以嘗試
--include-from=FILE
指定要包含的目錄列表,然後列出您提到的 300 個目錄。我不確定這是否會遇到您所看到的相同問題。如果這不起作用,您可以遍歷目錄列表並分別使用以下內容進行 rsync:
for DIR in $(cat file_of_dirs); \ do rsync.exe server::Drives/f/Repo/$DIR /cygdrive/T/Repo --archive -P -vv; \ done
(為 bash/bourne shell 編寫,因為你說你已經安裝了 Cygwin。可以在一行末尾沒有尾隨斜杠的情況下完成。)
顯然,這並不能回答為什麼 rsync 會為您掛起的問題,但它應該讓您的文件再次同步。