En supposant que votre question porte sur la déduplication des données, il existe quelques systèmes de fichiers qui le prennent en charge sous Linux :
- ZFS, avec déduplication en ligne (donc les données sont dédupliquées au fur et à mesure qu'elles sont stockées), mais avec des exigences de mémoire extrêmes qui rendent la fonctionnalité difficile à utiliser dans la pratique ;
- Btrfs, avec "uniquement" une déduplication hors bande, mais avec des processus étroitement intégrés qui permettent une déduplication raisonnablement rapide après le stockage des données ;
- SquashFS, mais cela ne correspond probablement pas à vos besoins car il est en lecture seule.
XFS est censé obtenir la déduplication à un moment donné, et Btrfs est également censé obtenir la déduplication en ligne.
Gardez un œil sur la comparaison des systèmes de fichiers de Wikipédia pour voir quand cela change.
Le système de fichiers S3QL a une déduplication au niveau des blocs. Il est présenté comme une solution de stockage cloud S3, mais il fonctionne également très bien sur le stockage local.
Voici un exemple d'une partie de notre serveur de sauvegardes/archives
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
Le stockage sous-jacent utilisé par ce système de fichiers
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
Cela me dit que le stockage sous-jacent utilise un peu moins de 4 To, mais qu'il stocke environ 12 To de données dédupliquées. (Mes archives contiennent beaucoup de blocs dupliqués. Sans surprise, j'espère.) La couche de compression est désactivée ici; si j'utilisais le véritable stockage S3, je l'aurais laissé activé.
La base de données SQLite qui gère le système de fichiers lui-même fait un peu plus de 1 Go, ce qui est assez volumineux, mais comme je l'utilise pour l'archivage plutôt que pour une utilisation en production à forte demande, c'est bien.