Archives mensuelles : novembre 2013

LSI mon amour

Dans un récent article je vous ai parlé de la création d’un SAN iSCSI à base de OmniOS sur un serveur Dell PowerEdge R515.
Et notamment de cette @#!@# de carte PERC H700 qui ne supporte pas le JBOD, ce qui complique la gestion à chaud du remplacement de disques défectueux de notre zpool.

Ces cartes sont des cartes LSI re-brandées Dell (et donc avec un firmware et un bios bridés).
Il est donc possible de gérer ces cartes avec les outils LSI.
Ce que je vais vous détailler tout de suite.

MegaRaid Storage Manager sous Solaris et dérivés

Téléchargement

La dernière version du logiciel est disponible chez LSI.

Il faut donc récupérer :

  1. 13.08.04.01_Solaris_11_MSM.tar.gz
  2. CSA1.5-MegaCli_REL80571.zip

Dans l’archive 13.08.04.01_Solaris_11_MSM.tar.gz il y a l’utilitaire storecli qui est le remplaçant de MegaCLI.
Cependant celui-ci nous remonte des erreurs avec les controlleurs PERC.

Nous installons donc MegaCLI, en lieu et place de storecli.

Installation

Ici sous OmniOS, mais fonctionne de la même manière sous Linux.

$ tar tvfz 13.08.04.01_Solaris_11_MSM.tar.gz

Cela vous donne en sortie :

drwxr-xr-x   0/0        0 May 13 05:10 2013 ./
-rw-r--r--   0/0    24088 Jul 25 07:18 2013 ./readme.txt
drwxr-xr-x   0/0        0 Jul 25 07:23 2013 ./disk/
-rw-r--r--   0/0   35738624 Jul 25 07:19 2013 ./disk/storcli.pkg
-rwxr-xr-x   0/0     5634 Jun  4 08:30 2013 ./disk/install.sh
-rwxr-xr-x   0/0     7086 May 13 05:10 2013 ./disk/license-agreement.txt
-rwxr--r--   0/0   684728 Jul 25 07:19 2013 ./disk/libstorelibir-2.so.17.00-0
-rwxr--r--   0/0   520324 Jul 25 07:19 2013 ./disk/libstorelibir-3.so.2.00-0
-rwxr-xr-x   0/0   147108 Jun 25 05:14 2013 ./disk/libstorelib.so.4.07-0
-rw-r--r--   0/0   1928704 Jul 25 07:20 2013 ./disk/sassnmp-SOL11X86-13.08-0401.pkg
-rwxr-xr-x   0/0   416104 Jun 25 05:14 2013 ./disk/libstorelibir.so.5.06-0
-rw-r--r--   0/0   266143232 Jul 25 07:24 2013 ./disk/MegaRaidStorageManager-SOL11X86-13.08.04.01.pkg
-rw-r--r--   0/0   3421184 Jul 25 07:20 2013 ./disk/sasirsnmp-SOL11X86-13.08-0401.pkg

Les fichiers intéressants sont :

  1. MegaRaidStorageManager-SOL11X86-13.08.04.01.pkg
  2. readme.txt

Pour les extraires :

$ tar xvfz 13.08.04.01_Solaris_11_MSM.tar.gz ./disk/MegaRaidStorageManager-SOL11X86-13.08.04.01.pkg ./readme.txt
$ unzip CSA1.5-MegaCli_REL80571.zip

Puis installations des pkg

sudo pkgadd -d ./disk/MegaRaidStorageManager-SOL11X86-13.08.04.01.pkg
sudo pkgadd -d ./MegaCLI/MegaCli_Solaris/x86/MegaCli.pkg

Lancement du service MSMFramework

$ sudo svcadm disable -t MSMFramework
$ sudo svcadm enable MSMFramework
$ svcs -a | grep -i msm

Le service doit apparaitre online

online         10:00:48 svc:/application/network/vivaldiframework:MSMFramework

Si ce n’est pas le cas, lancer un clear des events

$ sudo svcadm clear MSMFramework

Maintenant avec le client (tous les OS sont supportés) MegaRAID Storage Manager vous devez pouvoir vous connecter sur le serveur pour gérer la carte.
Pour cela renseigner l’IP du serveur contenant la carte PERC, le compte « root » et son mot de passe.
Cet utilitaire vous permetra de gérer vos disques durs et les virtual disks en cas de défaillance d’un disque.

Nota Bene

  • Les ports d’écoute du service sont les suivants : 3071 et 5571 en TCP.
  • Lors de l’installation de la version Windows sur votre poste, n’installer que le client.
  • La version serveur est à réserver pour les serveurs !!

Test MegaCLI

Il y a plein de page sur Google qui vous donnerons une idée de la puissance de MegaCLI pour la gestion des carte LSI (et PERC).

$ sudo /opt/MegaRAID/CLI/MegaCli -adpCount

Retourne le nombre de controlleur PERC LSI.

Activation des Jumbo Frame sous OmniOS

Pour faire suite à l’article sur la création d’un SAN ZFS sous OmniOS, voici comment activer les Jumbo Frame sous OmniOS

Je pars des hypothèses suivantes :

  • les cartes sont des Broadcom Gigabit Ethernet (Broadcom 5709C, driver bnx)
  • les carte bnx0 et bnx1 sont utilisées pour la partie iSCSI.

Activer le Jumbo Frame revient à passer le <a href="http://fr viagra en allemagne.wikipedia.org/wiki/Maximum_Transmission_Unit » title= »MTU »>MTU à 9000 en modifiant le fichier /kernel/drv/bnx.conf.
Ainsi la ligne :

#mtu=1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500;

Devient :

mtu=9000,9000,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500;

Ici on ne modifie que les MTU des cartes bnx0 et bnx1.
Les autres cartes restent avec un MTU de 1500.

Un reboot et un ifconfig plus tard vous affiche :

bnx0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 9000 index 3
        inet 10.10.2.4 netmask ffffff00 broadcast 10.10.2.255
bnx1: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 9000 index 4
        inet 10.10.3.4 netmask ffffff00 broadcast 10.10.3.255
bnx2: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 10.10.1.21 netmask ffffff00 broadcast 10.10.1.255

On voit bien que les MTU des cartes bnx0 et bnx1 sont passés à 9000 et celui de la bnx2 est toujours à 1500.

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