Backup

大量文件的完整或增量備份

  • October 17, 2014

我在數量和總文件大小方面都有大量文件。(我們說的是幾 TB)。我想將這些文件/文件夾一次同步到外部備份系統,然後執行一項每日任務,該任務將根據每日更改重新同步備份。更改並不那麼頻繁,但有時我們可能會有大約 300GB 的差異(對於大約 1.5K 文件)。

我一直在考慮將 rsync 或 rdiff-backup 或 rsnapshot 作為一些工具,但我想先用 rsynch 執行一些測試。我對 rsync 有一個主要問題,那就是:

**檢查現有文件的更改需要很長時間。**我們正在談論超過 20 小時,這使得每日備份毫無意義。這是使用 rsync -rvhzP 或 -rvhP。即使沒有添加/更改/刪除文件,它似乎也只是掃描所有文件並持續數小時。

難道我做錯了什麼?我提到的任何其他系統(rdiff-backup 或 rsnapshot)性能會更好嗎?我一直假設它們是基於 rsync 的。

提前致謝。

更新額外資訊: 我們有大約 2600 個目錄和 100k 個文件,總計約 3.5TB,使用rsync version 3.0.9 protocol version 30. 就每日更改而言,通常每天有 10 個文件更改,但它可以在大約 1.5K 文件更改/添加/刪除和大約 300Gb 的容量時達到峰值(儘管這些峰值不是那麼頻繁,並且通常會分散)

假設您的源文件上的修改時間戳是合法的(並且在修改文件時正在更新),我認為您添加-t參數以同步時間是有意義的。Quoth手冊rsync

-t , –times

這告訴 rsync 將修改時間與文件一起傳輸並在遠端系統上更新它們。注意,如果不使用該選項,排除未修改文件的優化無法生效;換句話說,缺少 -t 或 -a 將導致下一次傳輸的行為就像使用了 -I 一樣,從而導致更新所有文件(儘管 rsync 的 delta-transfer 算法將使更新相當有效,如果文件沒有實際上改變了,你最好使用-t)。

基本上,您正在失去rsync可以使用文件的修改時間戳作為標記來指示文件已被修改的優化。如果發送者和接收者之間的修改時間戳不一致,則使用增量複製算法並掃描文件內容。正如您所看到的,對於您所說的這麼大的語料庫,這將是一個漫長的掃描過程。

如果文件更改時文件的修改時間戳沒有更新(出於某種奇怪的原因),那麼這將無效,您必須進行完整文件掃描。如果您需要遠端文件的修改時間戳來反映它們的同步時間,而不是源文件的修改時間戳,那麼這也不是一個可行的解決方案。

不過,我懷疑此選項會從根本上加快您的同步速度。

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