Linux

儲存和備份2億個小文件

  • November 9, 2011

我的磁碟是 RAID 10 中的 10x1TB SAS 7200 RPM,帶有帶有高速記憶體/BBU 的 MegaRaid 9260 硬體控制器。這會產生 4.6TB RAID 10 卷。hdparm -t(當設備為空時)導致 500MB/s。

RAID 塊大小為 64KB,文件系統塊大小為 2KB(我將其更改為最小塊大小和 4KB 塊大小)。

目錄模式是 /data/x/yz/zyxabc.gz

我正在使用 EXT4 併計劃遷移到 XFS。作業系統是 RHEL 6。


到目前為止,它工作得很好。工作負載是 99% 的讀取,在正常情況下它可以讀取高達 300 個文件/秒。問題是備份。用 scp 備份需要 6 天。rsync 甚至更慢。DD 的速度約為 2MB/s。如果我拍攝快照、備份它然後刪除它,LVM 快照可能是一種選擇。數據一致性對我來說非常重要。

每個文件大約 0.5-4KB。如果我將所有文件都儲存在數據庫中,我會看到備份性能提高嗎?我還有什麼其他選擇可以解決在合理的視窗中備份這麼多小文件的問題?

我打算搬到 XFS

在這種情況下,你最好預購成噸的百憂解。:-) XFS 在這種模式上很糟糕(很多小文件),唉。

如果您正在考慮更改 FS ,那麼在這種情況下, Reiser3是唯一值得嘗試的選擇,IMO。隨著notail您獲得更少的 CPU 成本,w/o notail— 更少的磁碟空間成本。

64 K 的 RAID 塊也超出了理智 - 為什麼會以如此微小的模式溢出磁碟 I/O 隊列?增加而不是減少!有大量的同時 I/O 不會受到傷害。

現在說到備份,可以提到 COW FSes。例如 Btrfs 或 Nilfs。LVM-2 快照可能也可以,因此您可以嘗試將其與遷移到 Reiser3 結合使用。但我想 COW FSes 有更多機會為您提供所需的東西。

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