Comment installer et configurer ZFS sur Ubuntu – CloudSavvy IT
Agence web » Actualités du digital » Comment installer et configurer ZFS sur Ubuntu – CloudSavvy IT

Comment installer et configurer ZFS sur Ubuntu – CloudSavvy IT

Le système de fichiers ZFS offre des capacités énormes, une mise en miroir RAID et des mécanismes anti-corruption dès la sortie de la boîte. Apprenez à installer Ubuntu avec ZFS et à créer un pool en miroir.

Qu’est-ce que ZFS ?

ZFS est un système de fichiers avancé créé par Sun Microsystems pour être utilisé avec leur système d’exploitation Solaris. Suite à l’acquisition de Sun par Oracle en 2009, ZFS appartient désormais à Oracle Corporation.

Cependant, dans un acte d’altruisme typique, à partir de 2005, Sun a publié une version open source de ZFS. Inévitablement, cela a été porté sur Linux où il a gagné en visibilité. La version open source de ZFS – openZFS – est gérée et maintenue par le projet OpenZFS.

ZFS est un système de fichiers haute capacité et tolérant aux pannes. ZFS signifiait à l’origine Zettabyte File System. L’architecture ZFS est basée sur 128 bits au lieu des 64 bits plus courants des autres systèmes de fichiers. Être capable de travailler avec des valeurs numériques plus grandes est l’un des facteurs qui ont rendu ZFS capable de gérer des zettaoctets de stockage. Pour vous donner une idée de ce que cela signifie, un zettaoctet équivaut à un milliard de téraoctets.

De nos jours, ZFS prend en charge le stockage de fichiers jusqu’à 256 zébioctets. Un zébioctet (270 octets) est plus grand qu’un zettaoctet (1021 octets), mais pas par ordre de grandeur. Il y a bien plus avec ZFS que la simple capacité, aussi ahurissant que cela puisse être. ZFS fonctionne comme son propre gestionnaire de volume et contrôleur RAID. Il possède des fonctions intégrées telles que la copie conforme en écriture qui protègent vos données contre la corruption. Il combine des fonctionnalités qui offrent le regroupement, le clonage et la copie de systèmes de fichiers, ainsi que ses fonctionnalités de type RAID, de manière native.

Ubuntu propose ZFS depuis quelques années maintenant, mais toujours avec des avertissements et des mises en garde. Dans Ubuntu 20.10, les avertissements ont été supprimés. Canonical prend officiellement en charge ZFS, mais uniquement dans les configurations de disque complet. Pour obtenir cette prise en charge, vous devrez installer ZFS lors de l’installation d’Ubuntu. Les options ZFS sont toujours cachées, mais elles sont là et plus seulement pour les intrépides ou les téméraires.

Avec Ubuntu 21.10 attendu en octobre 2021, c’est le bon moment pour voir comment l’offre ZFS dans Ubuntu évolue.

Comment installer et utiliser ZFS sur Ubuntu (et pourquoi vous le voudriez)

Recherche des options ZFS pendant l’installation

Pendant l’installation d’Ubuntu, l’écran « Type d’installation » vous permet de choisir d’effacer le disque sur lequel vous installez Ubuntu ou de faire autre chose. Cliquez sur le bouton « Fonctionnalités avancées ».

Bouton Fonctionnalités avancées sur l'écran Type d'installation

La boîte de dialogue « Fonctionnalités avancées » apparaît.

Options ZFS dans la boîte de dialogue Fonctionnalités avancées

Sélectionnez le bouton radio « Effacer le disque et utiliser ZFS », puis cliquez sur le bouton « OK ».

L’écran « Type d’installation » affichera « ZFS sélectionné » pour indiquer que vous avez choisi d’utiliser ZFS.

Notification "ZFS sélectionné" sur l

Cliquez sur le bouton « Continuer » et terminez l’installation comme d’habitude.

Si vous avez plusieurs disques durs installés sur votre ordinateur, vous pourrez choisir comment vous voulez qu’ils soient utilisés par ZFS. Ubuntu proposera une configuration suggérée, mais vous pouvez ajuster les choses à votre guise.

Mais que se passe-t-il si vous ajoutez des disques durs une fois que vous avez installé Ubuntu ? Comment configurez-vous ZFS pour utiliser le nouveau stockage ? C’est ce que nous verrons ensuite.

Nous avons installé Ubuntu avec ZFS sur le seul disque dur de la machine de test que nous avons utilisée pour rechercher cet article. Nous avons ajouté deux disques durs supplémentaires, donnant à l’ordinateur trois disques durs au total. Ubuntu était installé sur un disque dur et les deux nouveaux disques étaient vierges, non formatés et non montés.

La première chose que nous devons faire est d’identifier comment Ubuntu fait référence aux nouveaux disques durs. Les lsblk La commande répertorie tous les périphériques de bloc installés sur votre ordinateur. Nous pouvons être précis sur les colonnes de sortie que nous voulons voir dans les résultats.

lsblk -o name,size,fstype,type,mountpoint

Les -o (sortie) est suivie des colonnes que nous voulons voir. Nous avons choisi:

  • Nom: Le nom qu’Ubuntu utilise pour désigner le disque dur.
  • Taille: La taille du disque dur. Si le disque dur comporte plusieurs partitions, elles sont toutes répertoriées et la taille de chaque partition est affichée.
  • typefs: le système de fichiers qui correspond au disque dur ou à la partition.
  • taper: indique si la ligne fait référence à un disque, une partition, un lecteur de CD-ROM ou un pseudo-périphérique de bouclage.
  • point de montage: Le point de montage du système de fichiers sur le disque dur ou la partition.

Il y a un tas de squashfs périphériques de bouclage, numérotés loop0 parloop6. Chaque fois que vous installez une application snap, un de ces pseudo-périphériques est créé. Cela fait partie de l’encapsulation et du sandboxing qui s’enroule autour de chaque application snap.

Le premier disque dur est répertorié comme /dev/sda. C’est un disque de 32 Go avec cinq partitions dessus, répertorié comme /dev/sda1 par /dev/sda5. Ils sont formatés de différentes manières. C’est le lecteur qui était dans l’ordinateur lorsque nous avons installé Ubuntu.

Nos deux nouveaux disques durs sont répertoriés comme /dev/sdb et /dev/sdc. Ce sont aussi des disques de 32 Go, mais ils ne sont pas formatés et ils ne sont pas montés.

Pools, RAID 0, RAID 1

Pour utiliser les nouvelles rives dures, nous les ajoutons à un bassin. Vous pouvez ajouter autant de disques que vous le souhaitez à un pool. Il y a deux façons de faire ça. Vous pouvez configurer le pool pour pouvoir utiliser tout l’espace de stockage de chaque disque dur dans une configuration RAID 0, ou vous pouvez les configurer pour que le pool n’offre que la quantité d’espace de stockage du plus petit disque dur du pool, dans une configuration RAID 1.

L’avantage du RAID 0 est l’espace. Mais la configuration préférée (et très fortement recommandée) est RAID 1. RAID 1 met en miroir les données sur tous les disques du pool. Cela signifie que vous pouvez avoir une panne de disque dur et que le système de fichiers et vos données sont toujours en sécurité et que votre ordinateur est toujours fonctionnel. Vous pouvez remplacer le lecteur endommagé et ajouter le nouveau lecteur à votre pool.

En revanche, avec RAID 0, une seule panne de disque dur rend votre système inutilisable jusqu’à ce que vous remplaciez le disque endommagé et effectuiez une restauration à partir de vos sauvegardes.

Plus vous avez de disques dans un pool RAID 1, plus il est robuste. Le minimum dont vous avez besoin pour RAID 1 est de deux disques. Une panne dans l’un ou l’autre des lecteurs serait un inconvénient, mais pas une catastrophe. Mais une panne des deux disques durs en même temps serait bien sûr un problème plus important. La réponse semble donc être de mettre en commun autant de disques durs que possible.

Mais bien sûr, dans la pratique, il y a une limite au nombre de disques que vous souhaitez ou pouvez vous permettre d’allouer à un seul pool. Si vous disposez de huit disques durs de rechange, la configuration de deux pools RAID 1 à quatre disques constitue probablement une meilleure utilisation du matériel qu’un pool unique à huit disques. Et rappelez-vous qu’un pool RAID 1 ne peut offrir que le stockage du plus petit disque dur du pool, alors essayez toujours d’utiliser des disques de la même taille dans un seul pool.

Création d’un pool RAID 1

Nous avons identifié nos nouveaux disques durs comme /dev/sdb et /dev/sdc . Pour créer un pool ZFS RAID 1, nous utilisons cette commande :

sudo zpool create cloudsavvyit mirror /dev/sdb /dev/sdc

Les composants de la commande sont :

  • sudo: Nous modifions la configuration du système, nous devons donc utiliser sudo pour obtenir les privilèges root.
  • zpool: Il s’agit de la commande de gestion de pool ZFS.
  • créer: C’est l’action que nous voulons zpool à réaliser pour nous.
  • cloudsavvyit: C’est le nom du pool que nous souhaitons créer.
  • miroir: Nous voulons que nos données soient mises en miroir sur tous les disques, ce qui nous donne un pool RAID 1. L’omission de l’option « miroir » crée un pool RAID 0.
  • /dev/sdb: Le premier de nos nouveaux disques durs.
  • /dev/sdc: Le deuxième de nos nouveaux disques durs.

Remplacez « cloudsavvyit » par le nom que vous souhaitez appeler votre piscine, et remplacez /dev/sdb et /dev/sdc avec les identifiants de vos nouveaux disques durs.

Ajout des nouveaux disques durs à un nouveau pool RAID 1

Créer une piscine est un peu anti-climatique. Si tout se passe bien, vous êtes renvoyé sans ménagement à l’invite de commande. Nous pouvons utiliser le status agir avec le zpool commande pour voir l’état de notre nouveau pool.

sudo zpool status cloudsavvyit

Vérification de l'état de la nouvelle piscine

Notre nouveau pool a été créé, il est en ligne, nos deux nouveaux disques sont dans le pool, et il n’y a aucune erreur. Tout ça a l’air super. Mais où est la piscine ? Voyons si lsblk nous montrera où il a été monté.

lsblk -o name,size,fstype,type,mountpoint

État des nouveaux disques durs dans le pool ZFS

Nous pouvons voir que nos nouveaux disques durs /dev/sdb et /dev/sdc ont été partitionnés avec deux partitions chacun, mais aucun point de montage n’est répertorié pour eux. Les pools ne sont pas montés comme les disques durs ordinaires. Par exemple, il n’y a pas d’entrée dans le /etc/fstab fichier pour les pools ZFS. Par défaut, un point de montage est créé dans le répertoire racine. Elle porte le même nom que la piscine.

ls /

Le point de montage du pool ZFS dans le répertoire racine

Si vous voulez que le point de montage soit créé ailleurs, utilisez le -m (point de montage) lorsque vous créez le pool et indiquez le chemin d’accès à l’endroit où vous souhaitez que le point de montage soit créé. Vous pouvez également donner un nom différent au point de montage.

sudo zpool create -m /path/to/mount-point-name cloudsavvyit mirror /dev/sdb /dev/sdc

Donner aux utilisateurs l’accès au pool

Le pool existe, mais seul l’utilisateur root peut y stocker des données. Ce n’est pas ce dont nous avons besoin, bien sûr. Nous voulons que d’autres utilisateurs puissent accéder à la piscine.

Pour y parvenir nous allons :

  • Créez un répertoire dans le pool.
  • Créez un nouveau groupe.
  • Définissez le nouveau groupe comme étant le propriétaire du groupe du répertoire.
  • Ajoutez des utilisateurs qui ont besoin d’accéder au stockage de données au nouveau groupe.

Ce schéma offre une grande flexibilité. Nous pouvons créer autant de répertoires de stockage de données que nécessaire, avec différents groupes qui les possèdent. Donner aux utilisateurs l’accès aux différentes zones de stockage est aussi simple que de les ajouter aux groupes appropriés.

nous utiliserons groupadd pour créer un groupe d’utilisateurs. Notre groupe s’appelle « csavvy1 ». Nous utiliserons ensuite le usermod commande pour ajouter un utilisateur appelé « dave » au nouveau groupe. Les -a L’option (ajouter) ajoute le nouveau groupe à la liste des groupes existants dans lesquels se trouve l’utilisateur. Sans cette option, l’utilisateur est supprimé de tous les groupes existants et ajouté au nouveau. Cela posera des problèmes, alors assurez-vous d’utiliser le -a option.

sudo groupadd csavvy1
sudo usermod -a -G csavvy1 dave

Créer un groupe d'utilisateurs et y ajouter un utilisateur

Pour que sa nouvelle appartenance au groupe devienne effective, l’utilisateur doit se déconnecter puis se reconnecter.

Nous allons maintenant créer un répertoire dans le pool, appelé « data1 ».

sudo mkdir /cloudsavvyit/data1

Les chgrp La commande nous permet de définir le propriétaire du groupe du répertoire.

sudo chgrp csavvy1 /cloudsavvyit/data1

Enfin, nous allons définir les autorisations de groupe en utilisant chmod . Le « s » est le bit spécial SGID. Cela signifie que les fichiers et répertoires créés dans le répertoire « data1 » hériteront du groupe propriétaire de ce répertoire.

sudo chmod g+rwsx /cloudsavvyit/data1/

Création d'un répertoire et définition de la propriété et des autorisations de son groupe

Notre utilisateur s’est déconnecté et reconnecté. Essayons de créer un fichier dans le nouveau répertoire de stockage de données de notre nouveau pool RAID 1 ZFS.

touch /cloudsavvyit/data1/new-file.txt

Et voyons qu’il a été créé.

ls /cloudsavvyit/data1 -lh

Création d'un nouveau fichier dans le répertoire de stockage de données du pool ZFS

Succès. Et si nous essayions de créer un autre fichier en dehors de notre zone de stockage data1 ?

touch /cloudsavvyit/new-file2.txt

L'utilisateur ne peut pas créer de fichiers en dehors de la zone de stockage de données qui lui est allouée

Cela échoue comme prévu. Nos autorisations fonctionnent. Notre utilisateur ne peut manipuler que les fichiers du répertoire de stockage de données auquel il a été autorisé à accéder.

Comment utiliser SUID, SGID et Sticky Bits sur Linux

Détruire une piscine

Soyez prudent avec cette commande. Assurez-vous d’avoir des sauvegardes avant de continuer. Si vous êtes sûr de le vouloir vraiment et que vous avez vérifié que vous avez d’autres copies des données dans le pool, vous pouvez détruire un pool avec cette commande :

sudo zpool destroy cloudsavvyit

Remplacez « cloudsavvyit » par le nom du pool que vous allez détruire.

Vous n’avez qu’un seul disque dur ?

Si vous n’avez qu’un seul disque dur, ou si votre ordinateur a plusieurs disques durs mais que leur taille varie trop pour former un pool utile, vous pouvez toujours utiliser ZFS. Vous n’obtiendrez pas la mise en miroir RAID, mais les mécanismes intégrés de protection contre la corruption et les données restent des fonctionnalités intéressantes et convaincantes.

Mais n’oubliez pas qu’aucun système de fichiers, avec ou sans mise en miroir RAID, signifie que vous pouvez ignorer les sauvegardes.

Sauvegardes vs redondance : quelle est la différence ?