Lorsque les volumes ISCSI vus dans Proxmox sont connus au travers du multimap (exemple si le stockage est sur une baie Compellent), leur suppression n'est pas triviale.

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-62
C'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