Lors de la mise à niveau d'une instance VPS sur Vultr, un système de fichiers Linux est automatiquement redimensionné. Lors de l'exécution de FreeBSD avec le système de fichiers ZFS avancé, un travail manuel est requis. Ce guide suppose que notre compte vient d'être mis à niveau pour inclure plus d'espace de stockage et décrit les étapes de redimensionnement d'un volume ZFS. Dans cet exemple, nous supposons une installation de FreeBSD ou TrueOS avec ZFS comme système de fichiers racine. Ce didacticiel devrait fonctionner pour des systèmes d'exploitation similaires, tels que FreeNAS.
Tout d'abord, nous aurons une idée de la taille et de la disposition du disque dur. À partir d'ici, nous supposerons que notre disque dur est le périphérique "vtbd0", le premier disque dur d'une installation FreeBSD. Pour découvrir la taille et la disposition de vtbd0, nous utilisons la gpart
commande.
gpart show
Nous verrons une ligne indiquant la taille du disque et son état. L'état que nous verrons à la fin de la première ligne après le redimensionnement du disque est "corrompu". Après cette ligne d'état, trois lignes nous indiqueront les partitions présentes sur le lecteur, les systèmes de fichiers utilisés et la taille de chaque partition. La première partition sera probablement une partition de «démarrage du BIOS», la seconde est notre volume ZFS, et la troisième est souvent un espace d'échange. C'est la disposition que nous supposerons pour les besoins de cet exemple. Chaque partition se voit attribuer un numéro d'index. Dans ce cas, les numéros d'index sont "1" pour la partition de démarrage du BIOS, "2" pour le volume ZFS et "3" pour le swap. La mise en page et les numéros d'index peuvent différer.
La prochaine chose que nous devons faire est de récupérer la disposition du disque afin qu'il ne s'affiche plus comme "corrompu". Exécutez la commande suivante:
gpart recover vtbd0
Nous devrions immédiatement voir un message disant "vtbd0 récupéré". Vérifiez à nouveau l'état du lecteur en exécutant à gpart show
nouveau. L'étape suivante consiste à gérer la partition de swap. Si notre partition de swap vient après notre pool ZFS sur le lecteur, cela peut gêner l'augmentation du volume ZFS. Nous prendrons le swap hors ligne et supprimerons la partition de swap en exécutant:
swapoff -a
gpart delete -i 3 vtbd0
Ces commandes désactivent l'espace de swap et suppriment la partition "3" (la partition de swap). Assurez-vous d'exécuter gpart show
avant d'exécuter gpart delete
pour vous assurer que vous supprimez la bonne partition.
Notre prochaine étape consiste à redimensionner la partition ZFS. Nous pouvons adopter l'une des deux approches ici. Si nous décidons que nous n'avons pas du tout besoin d'espace de swap, nous pouvons prendre tout l'espace libre sur le lecteur et l'affecter à notre partition ZFS en exécutant:
gpart resize -i 2 vtbd0
Alternativement, si nous voulons continuer à utiliser l'espace d'échange, nous pouvons modifier un peu la commande de redimensionnement. Supposons que la partition ZFS est actuellement de 10 Go et nous voulons la redimensionner à 20 Go. Nous exécuterions:
gpart resize -i 2 -s 20g vtbd0
Le paramètre "-s 20g" indique à gpart de redimensionner la deuxième partition à 20 Go. Nous pouvons confirmer que cette action s'est terminée avec succès en exécutant gpart show
. La gpart show
commande nous montrera également combien d'espace est disponible à la fin du lecteur pour une nouvelle partition de swap.
À ce stade, la vérification de la taille de notre pool de stockage ZFS affichera toujours la taille précédente.
zpool list
Pour indiquer au système de fichiers de se développer et de prendre en charge l'intégralité de la deuxième partition de notre lecteur, exécutez ce qui suit:
zpool online -e tank vtbd0p2
La commande ci-dessus redimensionne le pool de stockage ZFS nommé "tank" et prend en charge la seconde partition entière du disque dur. Le "p2" à la fin de la ligne indique que nous travaillons avec la deuxième partition et, si la disposition de votre lecteur est différente, le nombre après le "p" devra correspondre à l'index de partition ZFS. N'oubliez pas que vous pouvez afficher l'index de partition avec gpart show
.
À ce stade, nous avons presque terminé. Si vous n'avez pas besoin d'espace d'échange, votre configuration est terminée. Exécutez zpool list
pour confirmer que le pool de stockage est de taille appropriée et plus grande.
Sinon, vous avez laissé de l'espace à la fin du lecteur pour une partition de swap. Nous pouvons rajouter de l'espace d'échange en exécutant quelques commandes. Tout d'abord, nous créons un nouvel espace de swap:
gpart add -t freebsd-swap -s 1g -i 3 vtbd0
Cette commande crée une partition de swap de 1 Go. La nouvelle partition est ajoutée à notre disque dur et porte le numéro d'index "3". Notre prochaine étape consiste à activer l'espace de swap afin que notre système d'exploitation puisse utiliser la nouvelle partition.
swapon /dev/vtbd0p3
Encore une fois, le "p3" à la fin de la ligne indique que notre partition de swap a été affectée à l'index "3". Si nous avons utilisé un index différent, le nombre doit être modifié pour refléter le numéro d'index de swap dans la sortie générée par gpart show
. Nous pouvons confirmer que l'espace d'échange est activé et fonctionne en exécutant la commande:
swapctl -l -h
Cela montrera que 1 Go d'espace de swap est utilisé.
Enfin, un mot de prudence. La suppression / l'ajout d'un espace d'échange modifie le libellé de la partition d'échange. Cela signifie que l'entrée de swap dans le /etc/fstab
fichier ne sera plus considérée comme valide. Par conséquent, l'espace d'échange ne sera pas activé après le redémarrage du système d'exploitation. Pour éviter ce problème, ouvrez le /etc/fstab
fichier et recherchez la ligne qui monte l'espace d'échange. Assurez-vous que le début de la ligne répertorie la partition que nous venons de créer, /dev/vtbd0p3
en tant que périphérique d'échange.