ZFS
ZFS est populaire dans le monde des serveurs, des NAS (comme FreeNAS / TrueNAS), de la virtualisation, et même chez les particuliers qui veulent un stockage résilient. C'est est un système de fichier (à l'instar de NTFS pour windows, EXT4, FAT32 etc...) mais également un gestionnaire de volume (comme LVM par exemple).
Pour le dire simplement :
- un gestionnaire de volume organise le stockage physique (un ou plusieurs disques durs).
- un système de fichiers organise la manière dont les blocs de données sont écrits, lus et supprimés dans ces volumes.
ZFS dépasse largement les limites des autres systèmes de fichiers, que ce soit en termes de performance ou de fonctionnalités.
Ce qui nous intéresse le plus :
- ses fonctionnalités de gestion des instantanés (snaphsot), permettant de rapidement revenir en arrière en cas de problème
- sa gestion des grappes de disques et ses équivalent au RAID (Z-Mirror, RAIDZ1, RAIDZ2, RAIDZ3)
- sa reconstruction automatique des données corrumpues (via le scrubbing)
- ses performance avec son cache RAM (ZFS ARC)
- ses notifications en cas d'erreur
Structure
ZFS dispose d'une structure particulière :
- vdev (virtual device) : une grappe de disques (physiques ou virtuel)
- zpool : un ensemble de disques physiques ou virtuels en volume simple, Z-mirror ou RAIDZ. Un zpool peut englober plusieurs vdev mais pas l'inverse.
- dataset : un système de de donnée dans un zpool. Chaque dataset peut avoir ses propres options (compression, quotas, permissions, etc.).
Il existe plusieurs types de dataset :
- file system : un système de fichier, ZFS par défaut, monté comme un volume sans quota de stockage.
- zvol : un "disque virtuel" avec un quota d'espace, que vous pouvez formater/partitionner comme vous le souhaitez. Il sera utilisable comme un disque physique.
- snapshot : un état figé d’un autre dataset à un instant donné. Ils peuvent etre créés manuellement ou via des outils de sauvegarde. Ils peuvent etre montés pour parcourir les données dans leur état au moment du snapshot.
Pourquoi ZFS vs les autres ?
Intégrité des données
ZFS vérifie automatiquement que les données stockées ne sont pas corrompues. Chaque bloc de données est accompagné d’une empreinte (checksum) qui permet à ZFS de détecter toute altération, même minime. Et s’il y a un problème, il peut souvent le réparer automatiquement, si une copie saine existe ailleurs dans le système.
RAID intégré
ZFS propose son propre système de gestion de volumes (vdev). Vous pouvez créer un pool de stockage (zpool) en combinant plusieurs disques, un peu comme avec le RAID classique, mais de façon plus souple. Par exemple :
- Z-mirror => equivalent du RAID 1
- RAIDZ1 => équivalent du RAID 5 (tolérance à 1 panne disque)
- RAIDZ2 => équivalent du RAID 6 (tolérance à 2 pannes disque)
- RAIDZ3 => (tolérance à 3 pannes disque)
ZFS gère cela directement, pas besoin de logiciel RAID externe.
Snapshots et clones
ZFS permet de créer des snapshots, c’est-à-dire des captures instantanées de l’état d’un système de fichiers à un moment donné. Ces snapshots prennent très peu d’espace et peuvent être créés automatiquement et fréquemment. Vous pouvez aussi faire des clones : des copies modifiables d’un snapshot.
Compression et déduplication
ZFS peut compresser les données à la volée (transparente pour l’utilisateur), ce qui permet d’économiser de l’espace disque. Il propose aussi la déduplication (éliminer les doublons), mais cette fonctionnalité consomme beaucoup de mémoire et n’est pas recommandée pour tous les usages.
Voilà, à présent vous savez pourquoi ZFS est Ze système de fichiers à déployer sur votre NAS.