Du debug de la pile Iscsi dans OpenStack

Bon, OpenStack, c’est «beau», c’est «propre», c’est «libre», mais quand ça merde, tu ne sais jamais pourquoi. Enfin, ce matin, j’ai encore gagné un niveau sur la pile iSCSI ouverte inclus.

En route pour des explications plus complètes.

Comme je l’ai dit, le problème venait de la pile iSCSI. Ce n’est pas la première fois qu’il faut comprendre le fonctionnement de ce composant.

Cette fois, les volumes exportés n’étaient plus disponibles, conduisant à des paniques du noyau et autres joyeusetés.

Après un peu de recherche, voici les commandes qui m’ont permis de réinstancier mes exports iSCSI :

ls -lh /dev/nova-volumes/
lvs
vgs
lvs
ietadm --op new --tid=0 --lun=1 --params Path=/dev/nova-volumes/volume-00000013
cat /proc/net/iet/volume
man ietadm
ietadm --op new --tid=6 --lun=0 --params=Path=/dev/nova-volumes/volume-00000013
cat /proc/net/iet/volume
ietadm --op new --tid=6 --params=Name=iqn.2010-10.org.openstack:volume-00000013
iscsiadm -m discovery -t sendtargets -p openstack
ls /dev/nova-volumes/ietadm --op new --tid=0 --params=Name=iqn.2010-10.org.openstack:volume-00000012
cat /proc/net/iet/volume ietadm --op new --tid=2 --lun=0 --params=Path=/dev/nova-volumes/volume-00000012
ietadm --op new --tid=3 --params=Name=iqn.2010-10.org.openstack:volume-00000013
ietadm --op new --tid=3 --params=Name=iqn.2010-10.org.openstack:volume-00000011
ietadm --op new --tid=3 --lun=0 --params=Path=/dev/nova-volumes/volume-00000011
ietadm --op new --tid=4 --params=Name=iqn.2010-10.org.openstack:volume-00000004
ietadm --op new --tid=4 --lun=0 --params=Path=/dev/nova-volumes/volume-00000004
ietadm --op new --tid=7 --params=Name=iqn.2010-10.org.openstack:volume-00000005
ietadm --op new --tid=7 --lun=0 --params=Path=/dev/nova-volumes/volume-00000005
ietadm --op new --tid=8 --params=Name=iqn.2010-10.org.openstack:volume-0000000c
ietadm --op new --tid=8 --lun=0 --params=Path=/dev/nova-volumes/volume-0000000c
ietadm --op new --tid=9 --params=Name=iqn.2010-10.org.openstack:volume-0000000d
ietadm --op new --tid=9 --lun=0 --params=Path=/dev/nova-volumes/volume-0000000d
ietadm --op new --tid=10 --params=Name=iqn.2010-10.org.openstack:volume-0000000e
ietadm --op new --tid=10 --lun=0 --params=Path=/dev/nova-volumes/volume-0000000e
ietadm --op new --tid=11 --params=Name=iqn.2010-10.org.openstack:volume-0000000f
ietadm --op new --tid=11 --lun=0 --params=Path=/dev/nova-volumes/volume-0000000f
cat /proc/net/iet/volume
iscsiadm -m discovery -t sendtargets -p openstack
iscsiadm -m discovery -t sendtargets -p openstack
iscsiadm -m node -T iqn.2010-10.org.openstack:volume-0000000c -p 195.154.191.209:3260 --login
iscsiadm -m node -T iqn.2010-10.org.openstack:volume-0000000c -p 195.154.191.209:3260 --logout
dmesg
iscsiadm -m node -T iqn.2010-10.org.openstack:volume-0000000c -p 195.154.191.209:3260 --login
mount /dev/sdc1 /mnt/
ls
/mnt/umount /mnt
iscsiadm -m node -T iqn.2010-10.org.openstack:volume-0000000c -p 195.154.191.209:3260 --logout
ps fax
ls /var/lib/nova/instances/
ls /var/lib/nova/instances/instance-00000018/libvirt.xml
view /var/lib/nova/instances/instance-00000018/libvirt.xml
virsh
iscsiadm -m node -T iqn.2010-10.org.openstack:volume-0000000c -p 195.154.191.209:3260 --login
ls /dev/disk/by-path/
iscsiadm -m node -T iqn.2010-10.org.openstack:volume-0000000d -p 195.154.191.209:3260 --login
iscsiadm -m node -T iqn.2010-10.org.openstack:volume-0000000e -p 195.154.191.209:3260 --login
iscsiadm -m node -T iqn.2010-10.org.openstack:volume-0000000f -p 195.154.191.209:3260 --login
iscsiadm -m node -T iqn.2010-10.org.openstack:volume-00000011 -p 195.154.191.209:3260 --login
iscsiadm -m node -T iqn.2010-10.org.openstack:volume-00000012 -p 195.154.191.209:3260 --login
iscsiadm -m node -T iqn.2010-10.org.openstack:volume-00000013 -p 195.154.191.209:3260 --login
iscsiadm -m node -T iqn.2010-10.org.openstack:volume-00000014 -p 195.154.191.209:3260 --login
ls /dev/disk/by-path/

Pour être un peu plus précis, les commandes ietadm --op new --tid=11 --params=Name=iqn.2010-10.org.openstack:volume-0000000f permettent de créer le disque scsi ; ietadm --op new --tid=11 --lun=0 --params=Path=/dev/nova-volumes/volume-0000000f permet d’associer un système de fichier (ou une image disque) dans un lun du disque SCSI ; cat /proc/net/iet/volume iscsiadm -m discovery -t sendtargets -p openstack permet de vérifier que l’export s’est bien déroulé ; iscsiadm -m node -T iqn.2010-10.org.openstack:volume-0000000f -p 195.154.191.209:3260 --login permet enfin d’associer le disque sur la machine, ce qui se vérifie avec ls /dev/disk/by-path/.

Et voilà !

Tagcloud
Ubuntu automontage kernel authentification orgcamp NetworkManager Internet identification PSL Science-Fiction JDLL postfix Opinions Gentoo Éducation Iptables OSM rubber sympa GNU-Linux Educ Libre PlanetUbuntuFr PlanetUbuntu nfs UbuntuFr Mathématiques auto hébergement Python compilation dovecot Mozilla Mandriva Emacs Perso eCryptfs April Drupal beamer automatisation shell DNS Voile Mutt orgmode Société LDAP Réflexions SNCF configuration Épinay redmine sqlite php CAPES Spam OpenVPN CPL dotclear ISN vélo mail installation OpenSSL GCC X.org sudo ArchLinux fail vserver IPv6 Debian Coups de gueule LaTeX Admin Sys Free Parinux RaspberryPi Vie numérique Essai sieve gpg vim fun Randonnée SPF OpenStack Informatique Coup de gueule Lectures Paris Web imap RATP Technique CLI code KDE roundcube Munin