Comme nous l’avons noté la semaine dernière, Ubuntu 19.10 est officiellement arrivé et il apporte avec lui un certain nombre de fonctionnalités vraiment passionnantes. Bien que la majorité de ces nouvelles options ciblent les utilisateurs d’ordinateurs de bureau, il y a une fonctionnalité particulièrement excitante qui profitera aux utilisateurs d’ordinateurs de bureau et de serveurs. Cette fonctionnalité est le support de ZFS.
Développé à l’origine par Sun Microsystems pour sa distro Solaris Unix, ZFS est une combinaison de système de fichiers 128 bits et de gestionnaire de volume logique qui offre les fonctionnalités suivantes :
- Est évolutif.
- Offre un support pour une capacité de stockage élevée et une compression de données plus efficace.
- Comprend des instantanés et des retours en arrière.
- Supporte les clones de copie sur écriture.
- Fait une vérification d’intégrité continue et une réparation automatique.
- Adressage 128 bits
- Et bien plus encore.
Demandez à n’importe quel administrateur et il conviendra que l’ajout de ZFS est une grosse affaire pour Ubuntu. Pourquoi ? Les fonctionnalités d’instantanés et de retour en arrière valent à elles seules le prix d’entrée (qui, soit dit en passant, est gratuit). Grâce à cette fonctionnalité, les administrateurs peuvent ramener leurs systèmes à un état de fonctionnement (ou à un état incluant des données accidentellement supprimées). C’est tout à fait une affaire.
Bien sûr, les instantanés et les retours en arrière ne sont pas une chose nouvelle. En fait, de nombreuses plateformes ont inclus cet outil depuis des années. Alors peut-être qu’Ubuntu est un peu en retard sur la courbe à ce sujet. Mais pour tous ceux qui utilisent Ubuntu, c’est un cas de « mieux vaut tard que jamais. »
Mais comment fonctionne ZFS sur Ubuntu ? Je suis heureux que vous demandiez. Laissez-moi vous montrer.
A Caveat
Avant de vous plonger dans ceci, sachez que le support ZFS dans Ubuntu 19.10 est expérimental. Bien que je l’ai trouvé incroyablement stable, vous pourriez réfléchir à deux fois avant de l’utiliser dans un environnement de production (jusqu’à ce qu’il ne soit plus répertorié comme « expérimental »).
En outre, notez que le support ZFS n’est actuellement offert que pendant l’installation de la version de bureau. Cela ne signifie pas que vous ne pouvez pas ajouter le support du système de fichiers sur la version serveur, mais ce n’est pas tout à fait aussi simple. Pour cette raison, je ferai la démonstration sur la version de bureau d’Ubuntu 19.10.
Installation
La première étape consiste à activer ZFS au moment de l’installation d’Ubuntu 19.10. Pendant l’installation, vous trouverez une nouvelle option dans la phase Type d’installation (Figure 1).
Figure 1 : Sélection de l’option ZFS pendant l’installation.
Une fois l’installation terminée, redémarrez et connectez-vous.
Si vous utilisez la version serveur d’Ubuntu 19.10, vous pouvez toujours installer le support ZFS avec la commande :
1
|
sudo apt-get install zfsutils-linux
|
Bien sûr, si vous suivez cette voie, vous devrez suivre quelques étapes supplémentaires (comme la création de datasets). Avec l’installation de bureau, vous constaterez que toute votre hiérarchie de répertoires est constituée de datasets ZFS, il y a donc beaucoup moins de travail à faire.
Premiers pas avec ZFS
Une fois que vous vous êtes connecté au bureau, vous voudrez ouvrir une fenêtre de terminal et obtenir une liste de vos datasets. Avec les installations Ubuntu qui n’utilisent pas ZFS, vous travailleriez généralement avec des chemins de répertoire comme /home/jack ou /usr/local/. Ce n’est pas le cas avec les systèmes équipés de ZFS. Au lieu de cela, ils travaillent avec des ensembles de données. Un dataset est un type de système de fichiers qui partage un pool de stockage (le bloc de construction le plus basique de ZFS).
Pour trouver vos datasets, lancez la commande :
1
|
zfs list
|
Comme vous pouvez le voir (dans la Figure 2), chaque répertoire se trouve soit dans le pool bpool (boot) soit dans le pool rpool (root).
Figure 2 : Notre liste de jeux de données.
Travaillons avec le répertoire personnel d’un utilisateur. Dans ce cas, le jeu de données rpool/USERDATA/jack_bwcn4u.
Créer un instantané
La première chose que nous allons faire est de créer un nouvel instantané du répertoire /home/jack (qui, rappelez-vous, est le jeu de données rpool/USERDATA/jack_bwcn4u). Disons que nous voulons créer un snapshot marqué de la date d’aujourd’hui. La commande pour cela serait :
1
|
sudo zfs snapshot rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Ou vous pourriez inclure la commande de date comme suit :
1
|
sudo zfs rollback rpool/USERDATA/jack_bwcn4u@`date +%F`
|
Pour vérifier que votre instantané a été pris, lancez la commande :
1
|
zfs list -t snapshot
|
Vous devriez voir tous les snapshots actuels listés (Figure 3).
Figure 3 : Notre nouvel instantané a été créé.
Rappeler un instantané
Disons que, pour une raison quelconque, un répertoire a été accidentellement supprimé de ce répertoire d’origine. Que faites-vous ? Heureusement, vous avez pris un instantané et vous pouvez faire revenir cet instantané en arrière, de sorte que le répertoire supprimé revienne.
D’abord, supprimons le répertoire ~/Documents avec la commande :
1
|
rm -rf /home/jack/Documents
|
Lancez la commande ls et vous pouvez voir que le répertoire Documents a disparu (Figure 4).
Notre répertoire Documents a été supprimé.
Nous allons maintenant revenir en arrière sur l’instantané de vendredi pour récupérer ce répertoire. Pour ce faire, lancez la commande :
1
|
sudo zfs rollback rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Après la fin de la commande, lancez à nouveau ls pour voir si les documents sont revenus (Figure 5).
Figure 5 : Documents est de retour.
Destruction d’instantanés
Disons que vous avez créé un certain nombre d’instantanés, ou qu’un instantané particulier a des données corrompues ou manquantes. Vous pourriez vouloir supprimer cet instantané. Disons que nous voulons supprimer le snapshot rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19. Pour ce faire, la commande serait :
1
|
sudo zfs destroy rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Une fois que vous avez détruit un snapshot, il ne peut plus être récupéré, donc utilisez cette commande avec précaution. S’il vous arrive d’avoir un snapshot particulièrement important que vous ne voulez pas détruire, vous pouvez placer un hold sur celui-ci. Pour placer un hold sur notre snapshot rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19, vous devez lancer la commande :
1
|
sudo zfs hold keep rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19
|
Maintenant si vous essayez de détruire cet instantané, vous verrez une erreur (Figure 6).
Figure 6 : Impossible de détruire cet instantané.
Pour détruire un instantané conservé, vous devez ajouter l’option -d comme suit :
1
|
<i>sudo zfs destroy -d rpool/USERDATA/jack_bwcn4u@FRIDAY10-18-19</i>
|
C’est tout, l’instantané retenu a disparu.
Et ce sont les bases de la création et de la destruction d’instantanés avec la fonctionnalité ZFS nouvellement ajoutée dans Ubuntu 19.10. Essayez ceci sur un environnement de test et voyez si cela fonctionne bien. Jusqu’à présent, je n’ai découvert qu’un seul problème : lorsque j’ai essayé de revenir en arrière sur un instantané, j’ai dû redémarrer la machine avant que la commande de retour en arrière ne s’exécute avec succès. En dehors de ce problème, tout s’est bien passé avec ZFS et Ubuntu 19.10.
.