Slides

Handout

Historique

Année Événement
2001 Début du projet par deux ingénieurs de Sun Microsystems
2005 Diffusion du code source dans OpenSolaris (license 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 patente (WAFL)
2008 ZFS est intégré FreeBSD 7.0
2008 Début d’un portage native 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 license 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

1
2
3
4
5
# 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 -o readonly=on --rewind-to-checkpoint tank
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Envoi un flux incremental de @yesterday a @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 connection réseau a été interompue, 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 transferees
# si l’on ne souhaite pas poursuivre
zfs recv -A car/backup