LINUX – Disk & Part

Je ne pensais pas que tenir un blog serait si compliqué. C’est en rédigeant un billet sur un sujet qu’au bout de quelques jours je m’aperçois que j’ai fait de l’encapsulation. Dans un sens, l’encapsulation c’est un peu le quotidien de notre activité de SysAdmin, m’enfin ça à son inconvénient. Du moins de mon point de vu.

C’est un cas de conscience, qui m’a frappé en rédigeant l’article Apps – ITOP. En abordant le sujet des disques et du montage je me suis senti « obligé » d’expliquer comment réaliser cette tâche de base. Vous me direz que c’est inutile, que le web regorge déjà d’article tutoriel et autres. C’est un fait. Bien qu’en me remémorant mes premiers pas dans le monde UNIX, j’ai dû jongler d’onglet en onglet pour répondre à ce besoin et comprendre les commandes que je tapais.

Donc, pourquoi ne pas faire un rapide billet dont la lecture serait facultative pour les utilisateurs intermédiaires (et plus) et à la disposition des néophytes qui découvre UNIX ? (Ouai les noobs quoi ! N’oublions pas qu’en chacun de nous, il y a un noob qui sommeil ou qui a sommeillé ^^’ ).

Je pense répondre ainsi à deux problématiques. Rendre plus léger mes autres articles en mettant en place un système d’article type fil d’Ariane et en dernier lieu rendre efficient la lecture et la découverte d’application ou des SEs GNU.

Prérequis

  • SE : RHEL
  • Apps : 
  • Autres :

Ajouter un Disk

En règle générale, j’ai toujours pour habitude dans le déploiement d’une solution de mettre le moins de chose possible sur le disque système et d’ajouter des disques dédiés avec une ou plusieurs partitions. Cette bonne pratique que je m’impose relève d’une évidence peu importe la famille de SE, Windows ou GNU.

Pourquoi est une évidence de dissocier le disque et les partitions systèmes, de rôle ou application qui seront installés sur un disque dédié ?

En premier lieu, dans le cas de restauration, il sera plus facile de restaurer un fichier (dump) ou un disque au sens fichier du terme (.vmdk sous VMWare) sans impacter le fonctionnement de notre serveur en production. De plus la saturation de l’espace de stockage d’un des disques n’aura pas d’influence sur les autres. Ô combien de fois j’ai pu voir des systèmes à l’arrêt suite à un dump qui a DE-FON-CE l’espace de stockage du disque dédié au système ou à une SGBD ? Bref, faites comme vous voulez c’est votre choix 🙂

Dans la grande majorité des cas, les disques dédiées sont pour un usage autres que le système. Par exemple, le backup de BDD, le stockage des BDDs, des fichiers, d’applications etc.

Nous allouerons ci dessous un disque de 20Go pour un SGBD, type Mariadb ou MySQL.

Dans le respect des bonnes pratiques GNU, je crée un répertoire sous /mnt nommé databases. Rien ne nous empêche de monter notre partition n’importe où. Par convention l’ensemble des points de montage se trouve sous /mnt. Je respecte cette convention car à mon sens c’est le premier endroit qu’un AdminSys irait contrôler.

$ sudo mkdir /mnt/databases

Ajouter un disque

Lancer la commande lsblk pour lister les disques présents détectés par le SE :

$ sudo lsblk

Attention, il est fort probable que nous n’aillons pas vous et moi le même retour console. C’est normal, ne paniquons pas. Pas nique on qui, hein quoi ?

Tout va dépendre du disque que vous allez ajouter à votre VM. Dans mon cas, le disque que j’ai ajouté est en NVMe (normal puisque mon disque physique est un SSD), si j’avais utilisé un disque mécanique, j’aurai choisi SATA. Oui mais alors comment choisir ? Souvent, le système de virtualisation vous oriente vers le bon type de disque à ajouter. Sinon, prenez le temps de bien choisir selon votre système. Dans le pire des cas, vous vous prendrez un message d’erreur et votre socle de virtualisation ne pourra pas créer le disque virtuel.

Partitionner le disque

Le disques que nous avons ajouté précédemment est bien présent (nvme0n2). Sélectionnons le et créons notre partition.

$ sudo fdisk /dev/nvme0n2

Afficher les caractéristiques du disque (optionnel) en tapant « p« .

Créer une nouvelle partition avec « n » puis « p » pour créer un partition primaire. Laisser les paramètres par défaut, pas besoin de créer d’autres partitions, une nous suffira.

Afficher les caractéristiques du disque (optionnel) en tapant « p« .

Enregistrer les modifications et créer la partition, « w« .

Vérifier que la partition est bien présente avec de nouveau la commande lsblk ou fdisk

$ sudo fdisk -l
ou
$ sudo lsblk

Notre partition nvme0n2p1 est bien présente sous le disque nvme0n2.

Formater un disque

Je souhaite un disque au format XFS. Les commandes sont les mêmes suivant le format que vous souhaitez, ces dernières sont à adapter selon le type que vous voulez. Attention toutefois à bien choisir votre format selon se que vous souhaitez faire.

$ sudo mkfs.xfs /dev/nvme0n2p1

Notre partition est formatée. Vous noterez sur la capture l’argument -f, tout simplement j’ai foiré ma capture d’écran et j’ai donc du forcé le reformatage de la partition nvme0n2p1. Comme quoi…

Monter un disque

La partition est prête, il ne reste plus qu’à la monter. Deux possibilités

  • Manuellement
  • Automatiquement

Manuellement c’est bien pour les tests, mais au prochain reboot et c’est le drame. Il est nécessaire de modifier le fichier fstab.

J’ai pour principe de monter les partitions par leurs UUID et non pas par leurs chemins. Je trouve, c’est mon point de vue cette méthode plus sécurisée et fiable.

Afficher les UUIDs des partitions et copier la valeur de l’UUID qui correspond à la partition nvme0n2p1.

$ sudo blkid

Ouvrez le fichier fstab et modifier comme ci-dessous le fichier

$ sudo vim /etc/fstab

Dans les options, j’ai choisi d’effectuer un check du disque au démarrage avec l’argument « 2« . Vous pouvez le passer à « 0 » pour ne pas effectuer de checkdisk (fsck)

Deux possibilités encore à cette étape, monter la partition manuellement pour ne pas reboot votre serveur avec les commandes

$ sudo systemctl daemon-reload
$ sudo mount -o rw /dev/nvme0n2p1 /mnt/databases

Ou alors un petit reboot, ce qui permet de vérifier que la partition sera bien montée au démarrage

$ sudo init 6

Démonter un disque

A l’inverse de la section précédente, il suffira si le fichier fstab a été modifié pour monter le disque automatiquement au démarrage de commenter la ligne ou la supprimer pour que ce dernier ne se monte pas automatiquement.

Nous pouvons aussi démonter le disque manuellement. Ce qui est par exemple le cas de la partition /boot après l’application des mises à jours de notre bécane. Nous utiliserons la commande umount.

$ sudo umount /mnt/databases

Si vous voulez vérifier que votre partition est bien démontée, faite un affichage du répertoire /mnt/databases et ce dernier ne vous retournera que . ou .. .

Conclusion

Que dire, que dire… Nous savons dorénavant ajouter, monter et démonter des partitions sur un disque dédié.

L’un des points de vigilance comme abordé plus haut reste le type de disque que vous avez ajoutés qui va faire varier son nommage (NVME, SCSI, SATA, IDE, ect). De bien choisir son format de disque. On ne choisit pas le format de disque EXT4 parce que le nom est plus cool que XFS et que 4 c’est forcément mieux que EXT3.

Nous pourrions passer un bon moment à discuter de cette thématique. Le stockage regorge de sujet passionnant est complexe de haut et bas niveau.

Je reviendrai dans un autre billet sur la technologie LVM qui à mon sens a su révolutionner le MCO des systèmes GNU.

Le mot de la fin

Je télébadge mon disque et fourvière ma partition /OnNeSeBatPasICI. Vous ne pouvez pas, il n’y a Johnny CADILLIAC en XFS.

Erwan GUILLEMARD