ReLoad

Thierry Jaouen ~ WikiBlog
"Rien à foutre d'être lu, tant que je peux me relire."

Outils pour utilisateurs

Outils du site


blog:2014:06:23:xen_un_script_iscsi

Xen: un script iSCSI

Après avoir vu comment mettre en place une petite infrastructure iSCSI , on va exploiter cela à partir de l'environnement Xen .

L’intérêt principal étant de pouvoir :

  • migrer facilement et rapidement des machines virtuelles d'un Dom0 à l'autre.
  • exploiter les ressources matériels de serveurs (avec peu ou pas de disque)

Nativement, Xen ne sait pas gérer les disks iSCSI, et c'est bien dommage.
J'ai trouvé des scripts, et , pour faire le job.

Mais, ils sont un peu trop limités ou instables a mon goût, donc j'ai écrit un script pour ça.

~~READMORE~~

Le script

Son nom: block-iscsimple

Qualité

Ces principales qualités par rapport a d'autres que j'ai pu tester:

  • Rapide et supporte les accès concurrents
  • Permet aussi d'importer les disks selon le numéro de “Lun”
  • Gère automatiquement le début et la fin de session (“login”/“logout”)

Télécharger le script

Installation

Devenir “root”, copier le script dans “/etc/xen/scripts/” , et le rendre exécutable… soit:

$ su
# cp block-iscsimple /etc/xen/scripts/
# chmod a+x /etc/xen/scripts/block-iscsimple

Un disk iSCSI pour un DomU

Pré-requis

Ne configuré pas le client/Initiator iSCSI pour qu'il importe automatiquement les disks: le script va s'en charger lui-même.

Toutefois, avant de importer des disks via le script, ils doivent avoir été “découvert”.

Exemple:

# iscsiadm --mode discovery --type sendtargets --portal <Adresse-du-portail>

… plus précisément, sous Debian, on doit retrouver les “IQN” correspondant là dedans: “/etc/iscsi/nodes/

Configuration

Syntaxe de base:

iscsimple:<IQN>,...

Où:

iscsimple: Le préfix obligatoirement pour explicitement utiliser le script de “block” nommé “block-iscsimple”
<IQN> Le nom du disk iSCSI selon la convention “IQN”…
… les paramètres classiques (voir la doc de Xen)

Dans la configuration du DomU, on rajoutera ce disk comme ceci :

root      = '/dev/xvda2 ro'
disk      = [
                'phy:/dev/vg0/domu-disk,xvda2,w',
                'phy:/dev/vg0/domu-swap,xvda1,w',
                'iscsimple:iqn.2014-06.fr.thierry-jaouen:partage1-sn-00000001,xvdb1,w'
            ]

Maintenant, on devrait pouvoir démarrer le DomU.

En cas d'erreur, consulter les log de /var/log/syslog ou de /var/log/xen/xen-hotplug.log .

Syntaxe spéciale pour les "Lun"

Chaque disk iSCSI est importé par son “IQN” et un numéro de “Lun”.
Chaque couple “IQN”+“Lun” identifie un disk unique.

Par défaut, le “Lun” est fixé à zéro.

Avec “block-iscsimple” , on peut définir un autre numéro de “Lun”…

La syntaxe a respecter:

lun<Numero>@iqn.......

Où “<Numero>” , varie entre 0 et le maximum supporté par la cible. (max 8 je crois…)

Exemple de configuration pour DomU :

root      = '/dev/xvda2 ro'
disk      = [
                'iscsimple:lun0@iqn.2014-06.fr.thierry-jaouen:domu-disk-sn-00000001,xvda2,w',
                'iscsimple:lun1@iqn.2014-06.fr.thierry-jaouen:domu-swap-sn-00000001,xvda1,w',
            ]

Voila.

blog/2014/06/23/xen_un_script_iscsi.txt · Dernière modification : 2014/06/24 14:07 de thierry