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
IPv6 PlanetUbuntu Informatique dovecot Python Hadopi identification OSM Randonnée Paris Opinions Parinux Réflexions SNCF Société roundcube sieve wifi Mandriva DNS eCryptfs vélo jeu Essai Mutt Coups de gueule compilation Admin Sys sympa Vie numérique PSL sudo auto hébergement Coup de gueule bash configuration Mozilla Web Spam Libre PlanetUbuntuFr postfix April Science-Fiction nfs GPS Internet orgmode JDLL GNU-Linux X.org Debian debug OpenStack AdminSys Dédibox CPL fail Lectures automatisation ArchLinux imap OpenVPN LaTeX ssh KDE dotclear vacance NetworkManager kernel identi.ca Amis Drupal redmine RATP Educ Emacs shell UbuntuFr loop automontage beamer Ubuntu Épinay mail code Iptables Voile LDAP cli vserver Fedora fun Technique Perso Morvan SPF authentification Gentoo installation