Un cours (4 h) et un TD (3 h) sur les systèmes de fichiers et ZFS : le support de cours, le sujet des travaux pratiques, et les machines virtuelles qui les accompagnent.
Supports
Les travaux pratiques se font dans une machine virtuelle VirtualBox (format OVA) sous FreeBSD.
- Machine virtuelle (avril 2022) ZFS_Training_13.ova 1,3 Gio
- Machine virtuelle (novembre 2022) ZFS_Training_13_1.ova 1,4 Gio
Historique
| Année | Événement |
|---|---|
| 2001 | Début du projet par deux ingénieurs de Sun Microsystems |
| 2005 | Diffusion du code source dans OpenSolaris (licence CDDL) |
| 2006 | Début du portage sous Linux via FUSE incompatibilité déclarée entre la licence CDDL et GPL |
| 2007 | Apple commence son portage sous Mac OS X |
| 2007 | NetApp attaque Sun pour violation de brevet (WAFL) |
| 2008 | ZFS est intégré à FreeBSD 7.0 |
| 2008 | Début d'un portage natif sous Linux (ZFS-on-Linux) |
| 2009 | Rachat de Sun Microsystems par Oracle |
| 2009 | Apple arrête l'intégration de ZFS à OS X le projet MacZFS continue à développer le code |
| 2010 | OpenSolaris est arrêté par Oracle le développement de ZFS continue de façon fermée |
| 2010 | Illumos, un fork d'OpenSolaris est créé par la communauté le développement continue sous licence CDDL les portages de ZFS se basent sur la version d'Illumos |
| 2012 | Introduction de feature-flags(fin des numéros de version) facilite l'évolution du format sur-disque |
| 2013 | Prototype de ZFS pour Mac OS X, basé sur ZFS-on-Linux MacZFS va progressivement céder la place |
| 2013 | Début du projet OpenZFS coordonne le développement et le partage du code entre Illumos et les ports sur les différentes plateformes |
| 2016 | Ubuntu 16.04 inclut par défault ZFS-on-Linux |
| 2019 | FreeBSD rebase son code ZFS de Illumos vers ZFS-on-Linux |
Exemples
Revenir à un checkpoint
# Import the pool read-only until the checkpoint
zpool import -o readonly=on --rewind-to-checkpoint tank
# Rewind the pool to the checkpoint, destroying data
zpool import --rewind-to-checkpoint tank
Envoi incrémental et reprise après interruption
# Envoi d’un flux incrémental de @yesterday à @today, incluant # les snapshots intermédiaires, sur la machine ’remote-host’ # En cas d’erreur de transmission les données sont conservées zfs send -I @yesterday tank/data@today | ssh remote-host zfs recv -s pool/backup # La connexion réseau a été interrompue, récupère # le jeton permettant de reprendre la transmission token=$(zfs get -Hp receive_resume_token pool/backup | cut -f3) # Poursuite de la transmission à partir des informations # contenues dans le jeton zfs send -t $token | ssh remote-host zfs recv -s pool/backup # Ou suppression des données partiellement transférées # si l’on ne souhaite pas poursuivre zfs recv -A pool/backup