Comment installer et configurer ZFS sur Ubuntu

0
265
Daniel Krason/Shutterstock

Le fichier ZFS Le système 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é qui originaire de Sun Microsystems pour une utilisation 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 d'un ordre de grandeur. Il y a beaucoup plus à ZFS que la simple capacité, aussi ahurissante soit-elle. 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, et ses fonctionnalités de type RAID, de manière native.

Publicité

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.

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

Trouver les options ZFS pendant l'installation

Pendant Ubuntu, installez le “Type d'installation” L'écran vous permet de choisir d'effacer le disque sur lequel vous installez Ubuntu ou de faire autre chose. Cliquez sur “Fonctionnalités avancées” bouton.

Les “fonctionnalités avancées” s'affiche.

Sélectionnez l'option “Effacer le disque et utilisez ZFS” bouton radio et cliquez sur le bouton “OK”

Le “Type d'installation” L'écran affichera l'écran “ZFS sélectionné” pour montrer que vous avez choisi d'utiliser ZFS.

Cliquez sur “Continuer” et terminez l'installation comme d'habitude.

Publicité

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 configurer ZFS pour utiliser le nouveau stockage ? C'est ce que nous verrons ensuite.

Ajout de disques durs supplémentaires

Nous avons installé Ubuntu avec ZFS sur l'unique disque dur de la machine de test que nous avons utilisé 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. La commande lsblk 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

L'option -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 a plusieurs partitions, elles sont toutes répertoriées et la taille de chaque partition est affichée.
  • fstype : le système de fichiers qui est l'un du disque dur ou de la partition .
  • type : 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< /strong> : le point de montage du système de fichiers sur le disque dur ou la partition.

Il existe un tas de périphériques de bouclage squashfs, numérotés de loop0 à loop6. Chaque fois que vous installez une application snap, un de ces pseudo-périphériques est créé. Il fait partie de l'encapsulation et du sandboxing qui entourent chaque application snap.

Publicité

Le premier disque dur est répertorié comme /dev/sda. Il s'agit d'un disque de 32 Go avec cinq partitions, répertoriées sous /dev/sda1 à /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 sous /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 à une piscine. 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 de manière à pouvoir utiliser tout l'espace de stockage de chaque disque dur dans une configuration RAID 0, ou vous pouvez les configurer de manière à ce 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 la plus 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 en panne 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. est. 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.

Publicité

Mais bien sûr, dans la pratique, il y a une limite au nombre de disques que vous voulez 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 seul pool à huit disques. Et rappelez-vous, 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 du pool ZFS commande de gestion.
  • créer : c'est l'action que nous voulons que zpool exécute pour nous.
  • cloudsavvyit : c'est le nom du pool que nous souhaitons créer.
  • < strong>miroir : nous voulons que nos données soient mises en miroir sur tous les disques, ce qui nous donne un pool RAID 1. Omettre le “miroir” L'option 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 pool, et remplacez /dev/sdb et /dev/sdc par les identifiants de vos nouveaux disques durs.

Créer un pool est un peu anti-climacique. Si tout se passe bien, vous êtes renvoyé sans ménagement à l'invite de commande. Nous pouvons utiliser l'action status avec la commande zpool pour voir l'état de notre nouveau pool.

sudo zpool status cloudsavvyit

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

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 fichier /etc/fstab pour les pools ZFS. Par défaut, un point de montage est créé dans le répertoire racine. Il porte le même nom que le pool.

ls/

Publicité

Si vous souhaitez que le point de montage soit créé ailleurs, utilisez l'option -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 souhaitons que d'autres utilisateurs puissent accéder au pool.

Pour y parvenir, nous allons :

  • Créer un répertoire dans le pool.
  • Créez un nouveau groupe.
  • Définissez le nouveau groupe comme propriétaire du groupe de l'annuaire.
  • Ajoutez les utilisateurs qui doivent 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 la commande usermod pour ajouter un utilisateur appelé “dave” au nouveau groupe. L'option -a (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 causera des problèmes, alors assurez-vous d'utiliser l'option -a.

sudo groupadd csavvy1 sudo usermod -a -G csavvy1 dave

Pour que sa nouvelle appartenance à un groupe devienne effective, l'utilisateur doit se déconnecter et se reconnecter.

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

sudo mkdir /cloudsavvyit/data1 Advertisement

La commande chgrp 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 à l'aide de chmod . Les “s” est le bit spécial SGID. Cela signifie que les fichiers et répertoires créés dans le répertoire “data1” répertoire héritera du propriétaire du groupe de ce répertoire.

sudo chmod g+rwsx /cloudsavvyit/data1/

< p>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 ZFS RAID 1.

touchez /cloudsavvyit/data1/new-file.txt

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

ls /cloudsavvyit/data1 -lh

Réussite. Et si nous essayions de créer un autre fichier en dehors de notre zone de stockage data1 ?

touchez /cloudsavvyit/new-file2.txt

< /p>

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.

CONNEXES : Comment utiliser SUID, SGID et Sticky Bits sur Linux

Détruire un pool

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 Publicité

Remplacez “cloudsavvyit” avec le nom de la piscine que vous allez détruire.

Vous n'avez qu'un seul disque dur ?

Si vous n'en avez qu'un disque dur, ou si votre ordinateur possède 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 rappelez-vous, aucun système de fichiers—avec ou sans mise en miroir RAID& #8212 ;signifie que vous pouvez ignorer les sauvegardes.

CONNEXES : Sauvegardes et redondance : quelle est la différence ?