Zfs Internals
manu@gandi.net - beorn@gandi.net
ZFS
Quelques rappels
- zfs n'est PAS qu'un filesystem
- zfs gère les médias de stockage au niveau block
- zfs est un FS et un gestionnaire de medias virtuels
- zfs utilise les ressources mémoire qu'on lui donne
- zfs stocke le schéma de stockage sur les médias
- zfs est multiplateforme (solaris,illumos,linux,freebsd)
Quelques points importants
Un espace de stockage mutualisé
- Il n'y a pas de partitions mais éventuellement des quotas
- Tout est mutualisé : blocks, mémoire, cache...
- Thin provisioning (analogie du mkdir)
Zfs et intégrité des données
Modèle d'intégrité
- Tout write() est Copy On Write
- Tout est transactionnel ( pas de journalisation et rollback en cas de problême)
- Tout est "checksumé" : pas de corruption silencieuse, pas de mauvaise metadonnée
La philosophie des écritures ZFS
Optimiser à tout prix les IO des HDDs
- Transformer les write() en write() linéaires
- Flush sur disques séparé des read() et des write()
- Regroupement des write()
- Utilisation du SLOG pour les écritures synchrones
La philosophie des écritures ZFS
Transformer du CPU en IOPS
- Compression des données (lzjb... pas trop gzip)
- Allocation intelligente des blocs de taille variable
- Parallélisation quasi totale des tâches
- Déduplication ? ... ou pas.
La vie des écritures
Zio write() (hors dedup et gang )
(A)Synchronous write()
La philosophie des lectures ZFS
Transformer de la mémoire en IOPS
- Adjustable Replacement Cache (ARC) == RAM
- L2ARC == SSD
- Cache vs Tiering
La vie des lectures
Zio read() ( hors dedup et gang )
Merci
manu@gandi.net
beorn@gandi.net
←
→
/
#