Table des matières
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, là et là, 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
- Bash: block-iscsimple
- Bash/Txt: block-iscsimple.txt
- Zippé: block-iscsimple.zip
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.