Ajouter/supprimer des disques dans linux sans rebooter

Dans le monde virtuel que nous vivons, il arrive souvent que nous soyons amené à ajouter ou supprimer un disque à la volée sur un serveur virtuel. Aussi, il n’est jamais aisé de savoir comment procéder sans avoir à redémarrer ladite machine virtuelle.

Heureusement, Linux contient des fichiers qui sont là pour ça. Hourra.

Vous venez donc d’ajouter un disque virtuel à votre machine Linux et vous aimeriez bien qu’il soit reconnu sans avoir à redémarrer. Pour ce faire, identifiez le contrôleur SCSI. En effet, en ajoutant le disque, vous pouvez choisir l’ID du disque. Par exemple 0:3 ou 1:0 etc… Pour paralléliser le trafic et donc améliorer potentiellement les performances, on peut choisir de mettre un disque sur un second contrôleur (1:x au lieu de 0:x). Ensuite, exécutez la commande suivante ou hostx correspond à l’ID de votre contrôleur SCSI (host0 pour 0:x ou host1 pour 1:x):

echo "- - -" > /sys/class/scsi_host/host1/scan

Le tour est joué. dmesg vous indiquera les détails du nouveau disque, fdisk -l vous présentera la table des partitions (vide) de ce disque.

L’inverse est possible aussi. On peut supprimer un disque à chaud. Bien sûr, il faut commencer par démonter le système de fichier qui serait dessus avec umount, et si c’est un volume LVM, il faut déplacer les blocks sur un autre PV, le retirer du VG, puis supprimer le PV, sinon vous aurez des erreurs LVM.

Si dans le processus vous avez supprimez un système de fichier, n’oubliez pas de le retirer de /etc/fstab, sans quoi votre VM se mettra en erreur au redémarrage.

Une fois que vous êtes sûr que votre disque virtuel a été libéré de toute contrainte, vous pouvez le supprimer de la configuration de la VM.

Toutefois, l’inode se référant au disque n’est pas supprimer par les vmware tools. Aussi, vous pouvez exécuter la commande suivante afin de le supprimer (dans l’exemple, pour retirer /dev/sdd):

echo 1 > /sys/block/sdd/device/delete

Le tour est joué.

Attention, bien entendu de supprimer le bon disque autant dans vmware que avec la commande ci-dessus, au risque d’avoir de drôles de surprises sur un système en production…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *