Linux

如何鏡像具有數百萬硬連結的文件系統?

  • September 21, 2013

目前我們有一個大問題:我們需要為我們的一個客戶鏡像一個文件系統。這通常不是一個真正的問題,但它是:

在這個文件系統上,有一個包含數百萬硬連結的文件夾(是的!數百萬!)。rsync需要超過 4 天才能建構文件列表。

我們使用以下rsync選項:

rsync -Havz --progress serverA:/data/cms /data/

有誰知道如何加快這個 rsync 或使用替代品?我們不能使用dd,因為目標磁碟比源磁碟小。

更新: 由於原始文件系統是ext3我們將嘗試dumprestore. 我會及時通知你2date

我們現在已經使用了 ext* dump。效果很好,恢復端甚至不必是 ext*。

我們通過解除安裝設備並使用dump vf - /dev/vg0/opt | gzip -c > /mnt/backup/ext3dump.gz.

在這裡,您可以看到大小、時間、速度和最後的 inode 編號的最後幾行:

DUMP: dumping regular inode 47169535
DUMP: dumping regular inode 47169536
DUMP: Volume 1 completed at: Wed Jun 29 05:42:57 2011
DUMP: Volume 1 54393520 blocks (53118.67MB)
DUMP: Volume 1 took 4:16:43
DUMP: Volume 1 transfer rate: 3531 kB/s
DUMP: 54393520 blocks (53118.67MB)
DUMP: finished in 15403 seconds, throughput 3531 kBytes/sec
DUMP: Date of this level  dump: Wed Jun 29 01:24:29 2011
DUMP: Date this dump completed:  Wed Jun 29 05:42:57 2011
DUMP: Average transfer rate: 3531 kB/s
DUMP: DUMP IS DONE

您需要將雙方升級到 rsync 3。從更改日誌中:

- A new incremental-recursion algorithm is now used when rsync is talking
 to another 3.x version.  This starts the transfer going more quickly
 (before all the files have been found), and requires much less memory.
 See the --recursive option in the manpage for some restrictions.

rsync 3.0.0 發布已經 2 年多了,但不幸的是,大多數企業發行版都基於比這更早的程式碼,這意味著您可能正在使用 rsync 2.6。

作為參考(如果其他人遇到此問題),如果您已經在執行 rsync 3,那麼您正在使用與增量遞歸不兼容的選項。從手冊頁:

   Some options require rsync to know the full file list, so  these
   options  disable the incremental recursion mode.  These include:
   --delete-before,   --delete-after,    --prune-empty-dirs,    and
   --delay-updates.

同樣,雙方都必須執行 rsync 3 才能支持增量遞歸。

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