Exportar unitats iscsi en temps real (ietadm)

Objectiu:

En una entrada anterior vam mostrar com configurar un target iscsi en un entorn Debian. Aquest servidor que exporta unitats mitjançant iSCSI utilitzant iSCSI Target Enterprise es pot trobar amb la necessitat d’exportar unitats noves mentre el servei es troba en funcionament. Això pot suposar un problema ja que si parem el servei iscsi-target les sessions actives es tanquen. Afortunadament l’eina ietadm del mateix paquet permet exportar unitats noves en temps d’execució.

Procediment:

El primer que ens caldrà dur a terme es esbrinar quines unitats ja estem exportant en un moment donat. Aquesta informació es troba en /proc/net/iet/volume:

$ cat /proc/net/iet/volume
tid:2 name:iqn.2008-08.com.exemple.servidor:emmagatzematge1
        lun:0 state:0 iotype:fileio iomode:wt path:/dev/vms/os1
        lun:1 state:0 iotype:fileio iomode:wt path:/dev/vms/swap1
tid:1 name:iqn.2008-08.com.exemple.servidor:emmagatzematge2
        lun:0 state:0 iotype:fileio iomode:wt path:/dev/vms/os2
        lun:1 state:0 iotype:fileio iomode:wt path:/dev/vms/swap2

En aquest exemple podem veure que s’exporten dues unitats iscsi, cadascuna d’elles amb dos lun’s. El que ens interessa recordar aquí és que el primer tid lliure és el 3. Aquest valor és el que utilitzarem per crear la nova exportació.

Per crear una nova unitat executem:

$ ietadm --op new --tid=3 --params Name=iqn.2008-08.com.exemple.servidor:emmagatzematge3

Aquesta comanda prepara una exportació nova amb nom: iqn.2008-08.com.exemple.servidor:emmagatzematge3

Els noms es poden triar aleatoriament tot i que existeix un estàndard que no costa massa de seguir.

A aquesta unitat nova hi afegim noves lun’s a exportar. La comanda és la següent:

$ ietadm --op new --tid=3 --lun=0 --params Path=/ruta/al/fitxer/o/dispositiu

iscsi-target permet exportar unitats que provenen d’arxius o de dispositius. És força versàtil i permet una gestió molt lliure.

Si volem afegir una altra lun a la mateixa unitat és molt simple:

$ ietadm --op new --tid=3 --lun=1 --params Path=/ruta/al/fitxer/o/dispositiu

Ja està. Ja podem importar des de màquines remotes aquesta nova unitat.

NOTA: Si aquesta nova unitat ha de perdurar en pròxims inicis del servei iscsi-target serà necessari afegir-la a la configuració que es troba en /etc/ietd.conf. D’altra manera, aquesta unitat no apareixerà de nou.

Per eliminar exportacions el procediment és mot similar. Es recomana, però, mirar si hi ha cap sessió oberta contra les unitats abans d’esborrar-les:

$ cat /proc/net/iet/session

Primer esborrem les luns:

$ ietadm --op delete --tid=3 --lun=0
$ ietadm --op delete --tid=3 --lun=1

i després la unitat:

$ ietadm --op delete --tid=3

Documentació:

Per a més informació es recomana llegir la documentació de ietadm i ietd.conf:

$ man ietadm
$ man ietd.conf