rsnapshot 很慢
為了在我的辦公室備份數據,我使用執行 rsnapshot 的 Raspberry Pi 模型 B(我有一個備用的)。基本上,它每天晚上都會將數據從一堆 smb 掛載文件夾複製到幾個外部硬碟驅動器 (fuseblk)。
我逐漸添加數據進行備份,最近整個過程變得非常緩慢:執行整個操作需要大約 15 小時。
這是副本的日誌(僅在一個磁碟上):
[07/Nov/2018:21:16:05] /usr/bin/rsnapshot -c /etc/rsnapshot.conf Daily: started [07/Nov/2018:21:16:05] echo 28378 > /var/run/rsnapshot.pid [07/Nov/2018:21:16:08] /bin/rm -rf /mnt/Disk1/Backup/Daily.4/ [07/Nov/2018:23:31:33] mv /mnt/Disk1/Backup/Daily.3/ /mnt/Disk1/Backup/Daily.4/ [07/Nov/2018:23:31:33] mv /mnt/Disk1/Backup/Daily.2/ /mnt/Disk1/Backup/Daily.3/ [07/Nov/2018:23:31:33] mv /mnt/Disk1/Backup/Daily.1/ /mnt/Disk1/Backup/Daily.2/ [07/Nov/2018:23:31:33] /bin/cp -al /mnt/Disk1/Backup/Daily.0 /mnt/Disk1/Backup/Daily.1 [08/Nov/2018:02:17:45] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld01 /mnt/Disk1/Backup/Daily.0/./ [08/Nov/2018:02:43:28] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld02 /mnt/Disk1/Backup/Daily.0/./ [08/Nov/2018:02:46:29] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld03 /mnt/Disk1/Backup/Daily.0/./ [08/Nov/2018:02:54:05] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld04 /mnt/Disk1/Backup/Daily.0/./ [08/Nov/2018:02:54:48] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld05 /mnt/Disk1/Backup/Daily.0/./ [08/Nov/2018:02:54:49] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld06 /mnt/Disk1/Backup/Daily.0/./ [08/Nov/2018:02:54:49] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld07 /mnt/Disk1/Backup/Daily.0/./ [08/Nov/2018:03:00:10] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld08 /mnt/Disk1/Backup/Daily.0/./ [08/Nov/2018:03:25:57] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld09 /mnt/Disk1/Backup/Daily.0/./ [08/Nov/2018:03:25:57] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld10 /mnt/Disk1/Backup/Daily.0/./ [08/Nov/2018:03:28:42] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld11 /mnt/Disk1/Backup/Daily.0/./ [08/Nov/2018:03:53:39] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld12 /mnt/Disk1/Backup/Daily.0/./ [08/Nov/2018:03:58:05] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld13 /mnt/Disk1/Backup/Daily.0/./ [08/Nov/2018:04:00:24] touch /mnt/Disk1/Backup/Daily.0/ [08/Nov/2018:04:00:24] rm -f /var/run/rsnapshot.pid [08/Nov/2018:04:00:24] /usr/bin/rsnapshot -c /etc/rsnapshot.conf Daily: completed successfully
現在,我知道 RPi 不快,外部驅動器也不快。不過,問題似乎就在這裡
[07/Nov/2018:21:16:08] /bin/rm -rf /mnt/Disk1/Backup/Dayly.4/
尤其是在這裡
[07/Nov/2018:23:31:33] /bin/cp -al /mnt/Disk1/Backup/Dayly.0 /mnt/Disk1/Backup/Daily.1
請記住,我可能有數以萬計的文件(我在寫的時候數著它們,但我不知道需要多長時間)。(編輯:大約 30 GB 的空間中有 250k 個文件)
關於可能是什麼問題以及我是否/如何解決它的任何想法?
當我在這裡時,我不知道
--relative
$$ … $$
--no-relative``rsync
命令上的選項。老實說,我不記得我是如何做到的,自從我配置它以來已經有一段時間了。鑑於我需要保存樹,我應該只使用relative
嗎?或者這樣可以嗎,因為它有效? -=* 更新 *=-我按照建議做了,並將 USB 驅動器格式化為 ext4。這是操作後的日誌:
[16/Nov/2018:21:16:04] /usr/bin/rsnapshot -c /etc/rsnapshot.conf Daily: started [16/Nov/2018:21:16:04] echo 19966 > /var/run/rsnapshot.pid [16/Nov/2018:21:16:04] /bin/rm -rf /mnt/Disk1/Backup/Daily.4/ [16/Nov/2018:21:18:52] mv /mnt/Disk1/Backup/Daily.3/ /mnt/Disk1/Backup/Daily.4/ [16/Nov/2018:21:18:52] mv /mnt/Disk1/Backup/Daily.2/ /mnt/Disk1/Backup/Daily.3/ [16/Nov/2018:21:18:52] mv /mnt/Disk1/Backup/Daily.1/ /mnt/Disk1/Backup/Daily.2/ [16/Nov/2018:21:18:52] /bin/cp -al /mnt/Disk1/Backup/Daily.0 /mnt/Disk1/Backup/Daily.1 [16/Nov/2018:21:22:25] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld01 /mnt/Disk1/Backup/Daily.0/./ [16/Nov/2018:21:24:19] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld02 /mnt/Disk1/Backup/Daily.0/./ [16/Nov/2018:21:24:27] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld03 /mnt/Disk1/Backup/Daily.0/./ [16/Nov/2018:21:24:41] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld04 /mnt/Disk1/Backup/Daily.0/./ [16/Nov/2018:21:24:44] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld05 /mnt/Disk1/Backup/Daily.0/./ [16/Nov/2018:21:24:44] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld06 /mnt/Disk1/Backup/Daily.0/./ [16/Nov/2018:21:24:45] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld07 /mnt/Disk1/Backup/Daily.0/./ [16/Nov/2018:21:25:04] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld08 /mnt/Disk1/Backup/Daily.0/./ [16/Nov/2018:21:26:04] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld09 /mnt/Disk1/Backup/Daily.0/./ [16/Nov/2018:21:26:04] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld10 /mnt/Disk1/Backup/Daily.0/./ [16/Nov/2018:21:26:20] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld11 /mnt/Disk1/Backup/Daily.0/./ [16/Nov/2018:21:26:58] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld12 /mnt/Disk1/Backup/Daily.0/./ [16/Nov/2018:21:28:54] /usr/bin/rsync -a --stats --relative --delete --no-relative /mnt/Backup/Fld13 /mnt/Disk1/Backup/Daily.0/./ [16/Nov/2018:21:30:03] touch /mnt/Disk1/Backup/Daily.0/ [16/Nov/2018:21:30:03] rm -f /var/run/rsnapshot.pid [16/Nov/2018:21:30:03] /usr/bin/rsnapshot -c /etc/rsnapshot.conf Daily: completed successfully
如您所見,總時間大大減少:15 分鐘 vs. 7 小時。
謝謝大家,我真的很感動。
我留下的唯一疑問是評論中討論的內容:我相信 rsync 會進行增量複製,即使它將 smb 源文件夾視為本地文件夾。其中一些文件夾包含 10k+ 個文件(可能更多,我現在無法簽入)並且不可能在 2 分鐘內複製所有這些文件。
這裡有幾個問題會減慢備份解決方案的速度。
- 您
rsync
用於在兩個“本地”文件系統之間進行複制。僅僅因為其中之一恰好是 SMB 與
rsync
. 如果文件系統作為本地系統的一部分安裝,則rsync
必須將其視為本地。這意味著任何更改的文件都必須從 SMB 網路共享中完全複製,而不僅僅是更改的部分。如果您的文件伺服器可以
rsync
直接執行,請修改備份程序,以便它可以啟動遠端rsync
程序並獲得增量副本的好處。 2. 您正在通過 fuseblk 寫入備份磁碟。我認為這是因為磁碟上有 NTFS 文件系統。如果您可以重新格式化它們以使用本機 Linux 文件系統,例如
ext4
您將看到文件 IO 速度顯著提高。包括rm -rf
那需要很長時間。如果您正在寫入 VFAT,那麼您還會遇到質量時間戳降低的問題,您需要
rsync
相應地發出警告,以免它試圖繼續將其他相同的文件複製到您的備份媒體。我從評論中了解到您確實在使用 NTFS,並且您希望繼續使用它,以便可以在 Windows 下讀取磁碟。另一種方法是將
ext4
磁碟驅動程序安裝到 Windows 中。我使用ext2fs,我覺得它很可靠。