8.2. Suppression des périphériques de bloc et des métadonnées associées
Pour supprimer en toute sécurité un périphérique de bloc d'un système en cours d'exécution, afin d'éviter une surcharge de la mémoire système et une perte de données, vous devez d'abord supprimer les métadonnées qu'il contient. Traitez chaque couche de la pile, en commençant par le système de fichiers, puis le disque. Ces actions permettent d'éviter de placer votre système dans un état incohérent.
Utilisez des commandes spécifiques qui peuvent varier en fonction du type de dispositifs que vous supprimez :
-
lvremove
vgremove
et sont spécifiques à LVM.pvremove
-
Pour le RAID logiciel, exécutez
mdadm
pour supprimer la matrice. Pour plus d'informations, voir Gestion du RAID. - Pour les dispositifs de blocage cryptés à l'aide de LUKS, il existe des étapes supplémentaires spécifiques. La procédure suivante ne fonctionnera pas pour les périphériques de bloc chiffrés à l'aide de LUKS. Pour plus d'informations, voir Chiffrement des périphériques de bloc à l'aide de LUKS.
Le fait de renumériser le bus SCSI ou d'effectuer toute autre action qui modifie l'état du système d'exploitation sans suivre la procédure décrite ici peut entraîner des retards dus aux délais d'entrée/sortie, à la suppression inattendue de périphériques ou à la perte de données.
Conditions préalables
- Vous disposez d'une pile de périphériques de bloc existante contenant le système de fichiers, le volume logique et le groupe de volumes.
- Vous vous êtes assuré qu'aucune autre application ou service n'utilise le dispositif que vous souhaitez supprimer.
- Vous avez sauvegardé les données de l'appareil que vous souhaitez supprimer.
Facultatif : si vous souhaitez supprimer un périphérique à chemins multiples et que vous ne pouvez pas accéder à ses périphériques de chemin, désactivez la mise en file d'attente du périphérique à chemins multiples en exécutant la commande suivante :
# multipathd disablequeueing map multipath-device
Cela permet aux E/S de l'appareil de tomber en panne, ce qui permet aux applications qui utilisent l'appareil de s'arrêter.
La suppression des périphériques et de leurs métadonnées, couche par couche, garantit qu'aucune signature périmée ne subsiste sur le disque.
Procédure
Démonter le système de fichiers :
# umount /mnt/mount-point
Retirer le système de fichiers :
# wipefs -a /dev/vg0/myvol
NoteSi vous avez ajouté une entrée dans le fichier
/etc/fstab
pour établir une association persistante entre le système de fichiers et un point de montage, vous devez également modifier/etc/fstab
à ce stade pour supprimer cette entrée.Poursuivez les étapes suivantes, en fonction du type de dispositif que vous souhaitez supprimer :
Supprimez le volume logique (LV) qui contenait le système de fichiers :
# lvremove vg0/myvol
S'il ne reste aucun autre volume logique dans le groupe de volumes (VG), vous pouvez supprimer en toute sécurité le VG qui contenait le périphérique :
# vgremove vg0
Supprimer les métadonnées du volume physique (PV) du ou des périphériques PV :
# pvremove /dev/sdc1
# wipefs -a /dev/sdc1
Supprimer les partitions qui contenaient les PV :
# parted /dev/sdc rm 1
Ne suivez les étapes suivantes que si vous souhaitez effacer complètement l'appareil.
Supprimez la table de partition :
# wipefs -a /dev/sdc
Ne suivez les étapes suivantes que si vous souhaitez retirer physiquement l'appareil.
Si vous supprimez un périphérique à chemins multiples, exécutez les commandes suivantes :
Afficher tous les chemins d'accès à l'appareil :
# multipath -l
La sortie de cette commande est nécessaire dans une étape ultérieure.
Rincer les E/S et retirer le dispositif à trajets multiples :
# multipath -f multipath-device
Si le périphérique n'est pas configuré comme périphérique à chemins multiples, ou s'il est configuré comme périphérique à chemins multiples et que vous avez précédemment transmis des E/S aux chemins individuels, videz toutes les E/S en attente sur tous les chemins de périphérique utilisés :
# blockdev --flushbufs device
Ceci est important pour les dispositifs auxquels on accède directement et pour lesquels les commandes
umount
ouvgreduce
n'effacent pas les E/S.Si vous retirez un périphérique SCSI, exécutez les commandes suivantes :
-
Supprimez toute référence au nom de l'appareil basé sur le chemin d'accès, tel que
/dev/sd
,/dev/disk/by-path
ou le numéromajor:minor
, dans les applications, les scripts ou les utilitaires du système. Cela permet de s'assurer que les différents dispositifs ajoutés à l'avenir ne seront pas confondus avec le dispositif actuel. Retirer du sous-système SCSI chaque chemin d'accès au périphérique :
# echo 1 > /sys/block/device-name/device/delete
Ici, le
device-name
est extrait de la sortie de la commandemultipath -l
, si le périphérique a été précédemment utilisé comme périphérique à trajets multiples.
-
Supprimez toute référence au nom de l'appareil basé sur le chemin d'accès, tel que
- Retirer le périphérique physique d'un système en cours d'exécution. Notez que les entrées/sorties vers d'autres périphériques ne s'arrêtent pas lorsque vous retirez ce périphérique.
Vérification
Vérifiez que les périphériques que vous souhaitez supprimer ne sont pas affichés dans la sortie de la commande
lsblk
. Voici un exemple de sortie :# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 5G 0 disk sr0 11:0 1 1024M 0 rom vda 252:0 0 10G 0 disk |-vda1 252:1 0 1M 0 part |-vda2 252:2 0 100M 0 part /boot/efi `-vda3 252:3 0 9.9G 0 part /
Ressources supplémentaires
-
Les pages de manuel
multipath(8)
,pvremove(8)
,vgremove(8)
,lvremove(8)
,wipefs(8)
,parted(8)
,blockdev(8)
etumount(8)
.