ブロックのコンテンツごとにファイルを保存するファイルシステムを探しています。そのため、同様のファイルは1ブロックしか使用しません。これはバックアップ用です。これは、zbackupなどのブロックレベルのバックアップストレージが提案するものと似ていますが、透過的に実行できるLinuxファイルシステムが必要です。
あなたの質問がデータ重複排除についてであると仮定すると、Linuxでそれをサポートするファイルシステムがいくつかあります。
[〜#〜] xfs [〜#〜] はある時点で重複排除を取得することになっており、Btrfsもオンライン重複排除を取得することになっています。
Wikipediaのファイルシステムの比較 に注目して、これがいつ変更されるかを確認してください。
S3QL filesystem にはブロックレベルの重複排除があります。 S3クラウドストレージソリューションとして宣伝されていますが、ローカルストレージでも非常にうまく機能します。
以下は、バックアップ/アーカイブサーバーの一部の例です。
s3qlstat /path/to/some/archives
Directory entries: 12430247
Inodes: 6343756
Data blocks: 1357349
Total data size: 12.4 TB
After de-duplication: 3.84 TB (30.92% of total)
After compression: 3.71 TB (29.84% of total, 96.52% of de-duplicated)
Database size: 1.29 GiB (uncompressed)
Cache size: 0 bytes, 0 entries
Cache size (dirty): 0 bytes, 0 entries
Queued object removals: 0
このファイルシステムが使用する基礎となるストレージ
df -h /var/s3ql/part-of-archive
Filesystem Size Used Avail Use% Mounted on
/dev/sde 6.0T 3.8T 2.0T 66% /var/s3ql/part-of-archive
これは、基になるストレージが4TB弱を使用しているが、約12TBの重複排除されたデータを格納していることを示しています。 (私のアーカイブには、非常に多くの重複したブロックが含まれています。当然のことながら、私は願っています。)圧縮層はここでは無効になっています。真のS3ストレージを使用している場合は、有効のままにしておきます。
ファイルシステム自体を管理するSQLiteデータベースは1GBを少し超えるだけです。これは非常に大きいですが、これをフルオンデマンドの高い運用環境での使用ではなくアーカイブに使用しているので問題ありません。