Suppression de disque ISCSI avec Multimap
Voici la procédure :
# multipath -ll
36000d3100d11ca000000000000000003 dm-79 COMPELNT,Compellent Vol size=10G features='1 queue_if_no_path' hwhandler='0' wp=rw `-+- policy='service-time 0' prio=0 status=enabled |- 16:0:0:1 sdf 8:80 failed faulty running |- 17:0:0:1 sdk 8:160 failed faulty running |- 19:0:0:1 sdcd 69:16 failed faulty running |- 20:0:0:1 sdcb 68:240 failed faulty running `- 23:0:0:1 sdcc 69:0 failed faulty running
On va donc supprimer complètement le wwid 36000d3100d11ca000000000000000003.
multipath -f 36000d3100d11ca000000000000000003
Jun 24 09:56:02 | 36000d3100d11ca000000000000000003: map in use
lsof /dev/mapper/36000d3100d11ca000000000000000003
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME vgdisplay 8405 root 43r BLK 253,62 0t0 990 /dev/mapper/../dm-62 vgs 24472 root 43r BLK 253,62 0t0 990 /dev/mapper/../dm-62 pvs 28494 root 44r BLK 253,62 0t0 990 /dev/mapper/../dm-62 vgs 31868 root 43r BLK 253,62 0t0 990 /dev/mapper/../dm-62C'est donc le LVM qui est connecté dessus, on peut continuer.
dmsetup suspend /dev/mapper/36000d3100d11ca000000000000000003
dmsetup info /dev/mapper/36000d3100d11ca000000000000000003
Name: 36000d3100d11ca000000000000000003 State: SUSPENDED <<<<==== YES Read Ahead: 256 Tables present: LIVE Open count: 5 Event number: 17 Major, minor: 253, 62 Number of targets: 1 UUID: mpath-36000d3100d11ca000000000000000003
dmsetup clear /dev/mapper/36000d3100d11ca000000000000000003
dmsetup wipe_table /dev/mapper/36000d3100d11ca000000000000000003
multipath -f 36000d3100d11ca000000000000000003
La suppression a dû se dérouler sans erreur.
On peut blacklister l'entrée afin qu'elle ne réapparaîsse pas /etc/multipath.conf :
blacklist { wwid 36000d3100d11ca000000000000000003 }service multipathd reload
On peut ensuite supprimer les devices inutilisés (le device est affiché dans le résultat de la première commande) (Adapter le sdXX) :
echo 1 > /sys/block/sdXX/device/delete
sinon, le message d'erreur suivant apparaît :
sd 5:0:0:1: [sdam] Unit Not Ready sd 5:0:0:1: [sdam] Sense Key : Illegal Request [current] sd 5:0:0:1: [sdam] Add. Sense: Logical unit not supported sd 5:0:0:1: [sdam] Read Capacity(16) failed: Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
Cette procédure est à reproduire sur tous les noeuds du cluster Proxmox. Une fois tous les noeuds purgés, le volume est inutilisé, il peut donc être supprimé.
En script destroyVolume :
#!/bin/bash set -e if [ ! $1 ]; then echo "Manque le device à supprimer (sans /dev/mapper)" exit fi if [ ! -e /dev/mapper/$1 ]; then echo "Device /dev/mapper/$1 inexistant" exit fi DISKS=`multipath -ll $1 | grep "running" | awk '{print $3}'` dmsetup suspend /dev/mapper/$1 dmsetup info /dev/mapper/$1 dmsetup clear /dev/mapper/$1 dmsetup wipe_table /dev/mapper/$1 multipath -f $1 IFS=$'\n' for file in $DISKS; do echo 1 > /sys/block/$file/device/delete done