rsnapshot 專用驅動器的最佳檔案系統類型和安裝選項

rsnapshot 專用驅動器的最佳檔案系統類型和安裝選項

我們有一個外部 USB 2 驅動器,用作配置的備份驅動器。我們用快照用於備份。它使用一些標準命令來管理快照:

  1. rm -rf:刪除過期的快照
  2. mv:將較舊的快照移到一個插槽下
  3. cp -al:將最後一個快照複製到新插槽
  4. rsync -a --delete --numeric-ids --relative:同步新快照

從下面的日誌可以看出,大部分時間都花在了rm -rfcp -al步驟上:

[25/Dec/2010:14:00:02] rsnapshot hourly: started
[25/Dec/2010:14:00:02] echo 21012 > /var/run/rsnapshot.pid
[25/Dec/2010:14:00:02] rm -rf /mnt/extdrive/snapshots/hourly.5/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.4/ /mnt/extdrive/snapshots/hourly.5/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.3/ /mnt/extdrive/snapshots/hourly.4/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.2/ /mnt/extdrive/snapshots/hourly.3/
[25/Dec/2010:14:15:48] mv /mnt/extdrive/snapshots/hourly.1/ /mnt/extdrive/snapshots/hourly.2/
[25/Dec/2010:14:15:48] cp -al /mnt/extdrive/snapshots/hourly.0 /mnt/extdrive/snapshots/hourly.1
[25/Dec/2010:14:23:32] rsync -a --delete --numeric-ids --relative /etc /mnt/extdrive/snapshots/hourly.0/sm4/
[25/Dec/2010:14:23:52] touch /mnt/extdrive/snapshots/hourly.0/
[25/Dec/2010:14:23:52] rm -f /var/run/rsnapshot.pid
[25/Dec/2010:14:23:52] rsnapshot hourly: completed successfully

我的問題:

  1. 我目前使用 ext4 作為檔案系統。也許這不是紅帽中可用的最佳選擇。有人有任何可以加快這個過程的建議嗎?

  2. 該分割區的掛載選項是sync,dirsync 1 2。有沒有辦法優化它,因為它僅用於 rsnapshot?當然,推理將不勝感激。

答案1

  1. ext4 沒問題。

  2. 「sync,dirsync」選項可讓資料和元資料更新同步,這對大多數工作負載的效能產生重大負面影響。刪除這些選項很可能會提高效能,但您必須記住在拉扯電纜之前卸載設備,否則您可能會丟失資料(大概這就是為什麼首先添加這些選項的原因,它們不是預設選項,或者也許這是您的發行版為USB 設備所做的某種特殊魔法)。

  3. noatime 停用 atime 更新,這會減少檔案系統的寫入量。或多或少所有應用程式(包括 rsnapshot)都不需要 atime,因此這應該是完全安全的。

  4. data=writeback 減少了日誌記錄的開銷,但代價是稍微增加了斷電時遺失資料的可能性。根據發行版的不同,這可能已經是預設值。

  5. 使用 ext4 也可以完全停用日誌(從核心 2.6.29 開始),儘管我不建議這樣做。這仍然具有 ext4 的所有其他改進,因此這應該比使用 ext2、fwiw 更快。

  6. Barrier=0 禁用屏障,這會提高寫入效能,但代價是增加崩潰時資料遺失的可能性。

答案2

您可以設定 rsnapshot 以保留更多快照(例如 9999 個),並使用 crontab 自行從磁碟中刪除它們。這將使快照的速度更加可預測。

答案3

另請注意,使用--link-dest還會改變如何完成的計劃cp,這可能會顯著影響效能(它基本上只是rm使用hourly.$old,然後同時從來源rsync複製和同步)。hourly.1hourly.0

還有更多討論替代技術在這裡- 基本上將最後一個每小時快照旋轉到新的快照中,mv hourly.$old hourly.0而不是rm-ing 它,並執行cp -aflhourly.1hourly.0最新的操作,但我還沒有嘗試過 - 你必須手動進行旋轉,而不是依賴rsnapshot去做吧

相關內容