あなたの質問がデータの重複排除に関するものであると仮定すると、Linux でそれをサポートするいくつかのファイル システムがあります:
- ZFS、オンライン重複排除 (データが保存されるときに重複排除されるため) を備えていますが、極端なメモリ要件があるため、この機能を実際に使用するのは困難です。
- データが保存された後、合理的に迅速な重複排除を提供する緊密に統合されたプロセスを備えていますが、「唯一の」帯域外重複排除を備えた Btrfs;
- SquashFS ですが、読み取り専用であるため、要件に合わない可能性があります。
XFS はある時点で重複排除を取得する予定であり、Btrfs もオンライン重複排除を取得する予定です。
ウィキペディアのファイル システム比較に注目して、これがいつ変更されるかを確認してください。
S3QL ファイルシステムには、ブロック レベルの重複排除があります。 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
これは、基礎となるストレージが 4 TB 弱を使用していることを示していますが、約 12 TB の重複排除されたデータを保存しています。 (私のアーカイブにはかなりの重複ブロックが含まれています。当然のことながら、そう願っています。) ここでは圧縮レイヤーが無効になっています。真の S3 ストレージを使用していた場合は、有効のままにしていたでしょう。
ファイルシステム自体を管理する SQLite データベースは 1GB 強で、かなり大きいですが、私はこれをフルオンデマンドの本番環境ではなくアーカイブに使用しているので問題ありません。