GNU/Linux et Multipath IO (MPIO)

Configuration des serveurs initiateurs

Rappel

Dans notre architecture, le service SAN est assuré par un serveur OmniOS, offrant un partage iSCSI d’un volume ZFS.

  • Les initiateurs (client iSCSI) sont des serveurs Linux (Host CloudStack)
  • Le volume ZFS constitue le « Primary Storage » du cluster CloudStack.

Schema


|-----------|                    |----------|                     |--------------|
|           |--10.10.12.1.2 -----| SWITCH 1 |-------10.10.12.1.1--|              |
|           |                    |----------|                     |              |
|  Host 1   |                                                     |   Primary    |
|           |                    |----------|                     |   Storage    |
|           |--10.10.12.2.2 -----| SWITCH 2 |-------10.10.12.2.1--|              |
|-----------|                    |----------|                     |--------------|

iSCSI

Installation des paquets

# apt-get install open-iscsi
# service open-iscsi restart

Découverte des targets

# iscsiadm  -m discovery -t st -p 10.12.1.1
10.12.1.1:3260,2 iqn.2010-08.org.illumos:02:cc900a8d-1801-e829-9203-9beb8009934b
10.12.2.1:3260,2 iqn.2010-08.org.illumos:02:cc900a8d-1801-e829-9203-9beb8009934b
# iscsiadm  -m discovery -t st -p 10.12.2.1
10.12.2.1:3260,2 iqn.2010-08.org.illumos:02:cc900a8d-1801-e829-9203-9beb8009934b
10.12.1.1:3260,2 iqn.2010-08.org.illumos:02:cc900a8d-1801-e829-9203-9beb8009934b

Ces commandes ont pour effet de créer les répertoires correspondant aux targets trouvés dans le répertoire « /etc/iscsi/nodes/ ».
C’est à partir des infos contenus que les targets pourront être montées automatiquement à chaque reboot.

Connexion aux targets

# iscsiadm -m node --targetname "iqn.2010-08.org.illumos:02:cc900a8d-1801-e829-9203-9beb8009934b" --portal "10.12.1.1:3260" --login

Configuration du Multipathing (MPIO)

Une fois vos disques iSCSI attachés, nous allons configurer le « multipath IO (MPIO).

Installation du paquet

# apt-get install multipath-tools
# service multipath-tools restart

Configuration du multipathing

Editer le fichier /etc/multipath.conf
En voici une configuration minimale

devices {
        device {
                vendor                  "SUN"
                product                 "COMSTAR"
                path_grouping_policy    multibus
        }
}

multipaths {
        multipath {
                wwid 3600144f0000000000000527263940001
                alias PrimaryStorage
        }
}

Pour connaitre les paramètres vendor, product et wwid de votre disque iSCSI, lancez la commande :

# multipath -ll
3600144f0000000000000527263940001 dm-0 SUN,COMSTAR
size=3.1T features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 7:0:0:0 sdb 8:16 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
  `- 8:0:0:0 sdc 8:32 active ready running

L’instruction *alias* vous permet une utilisation human friendly du device.

Une fois cette configuration terminée, relancez le service multipath-tools.
Puis la commande :

# multipath -ll
PrimaryStorage (3600144f0000000000000527263940001) dm-0 SUN,COMSTAR
size=3.1T features='0' hwhandler='0' wp=rw
|-+- policy='round-robin 0' prio=1 status=active
| `- 7:0:0:0 sdb 8:16 active ready running
`-+- policy='round-robin 0' prio=1 status=enabled
  `- 8:0:0:0 sdc 8:32 active ready running
root@host-kvm-01:~#

Utilisation du « disque »

Montage du disque et formatage

# dmesg
# cfdisk /dev/dm-0
# mkfs.ext4 /dev/dm-1
# mount /dev/dm-1 /opt/primary

Check devmapper

# ls -al /dev/mapper/
total 0
drwxr-xr-x  2 root root     100 Nov  7 17:43 .
drwxr-xr-x 13 root root    3220 Nov  7 17:43 ..
crw------T  1 root root 10, 236 Nov  7 17:42 control
lrwxrwxrwx  1 root root       7 Nov  7 17:43 PrimaryStorage -> ../dm-0
lrwxrwxrwx  1 root root       7 Nov  7 17:43 PrimaryStorage-part1 -> ../dm-1

On voit bien que notre disque iSCSI est présenté par son alias PrimaryStorage.
La partition créée est PrimaryStorage-part1.

Configuration automatique à chaque boot

Si tout ce passe bien, vous pouvez :

  1. Modifier la configuration de /etc/iscsi/iscsid.conf et mettre node.startup = automatic
  2. Modifier votre /etc/fstab en y ajoutant la ligne :
# iSCSI
/dev/mapper/PrimaryStorage-part1          /opt/primary    ext4    defaults,auto,_netdev 0 0
Ce contenu a été publié dans linux, Mes docs. Vous pouvez le mettre en favoris avec ce permalien.

2 réponses à GNU/Linux et Multipath IO (MPIO)

  1. ScanX77 dit :

    Sympa l’article 🙂
    Je n’ai pas regardé la doc mais est-il possible de faire qqch de plus sympa que du round-robin (genre ALUA)?
    Bonne continuation.

Répondre à hugues Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.