Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Mon livre « Cyberstructure »

Ève

Gérer son contrôleur RAID PERC sur un Dell PowerEdge sous Debian

Première rédaction de cet article le 24 avril 2009
Dernière mise à jour le 28 avril 2009


Faire fonctionner un PC, qu'il soit machine de bureau ou serveur sans écran, avec du logiciel libre n'a jamais été facile. Même si les fabricants affirment tous « supporter (sic) Linux », dans la réalité, un tel « support » nécessite en général de n'utiliser qu'un seul système d'exploitation, en général d'origine commerciale, de charger des pilotes non-libres et de renoncer à certaines fonctions du matériel.

Prenons l'exemple des contrôleurs RAID PERC, livrés sur les serveurs PowerEdge de Dell (tous les essais ici ont été effectués avec un PowerEdge 2970, muni d'un PERC 5/i). Officiellement, il ne marche qu'avec Red Hat. Essayons quand même avec Debian.

Le contrôleur est bien géré par le pilote megaraid_sas. Si on configure le RAID dans le BIOS et qu'on charge ledit pilote, tout va bien. le noyau affiche :

[    4.226361] scsi0 : LSI SAS based MegaRAID driver
[    4.226361] scsi 0:0:0:0: Direct-Access     SEAGATE  ST9146802SS      S206 PQ: 0 ANSI: 5
[    4.226361] scsi 0:0:1:0: Direct-Access     SEAGATE  ST9146802SS      S206 PQ: 0 ANSI: 5
[    4.226361] scsi 0:0:2:0: Direct-Access     SEAGATE  ST9146802SS      S206 PQ: 0 ANSI: 5
[    4.356866] scsi 0:0:8:0: Enclosure         DP       BACKPLANE        1.05 PQ: 0 ANSI: 5
[    4.368366] scsi 0:2:0:0: Direct-Access     DELL     PERC 5/i         1.03 PQ: 0 ANSI: 5
[    4.427331] Driver 'sd' needs updating - please use bus_type methods
[    4.430358] sd 0:2:0:0: [sda] 570949632 512-byte hardware sectors (292326 MB)

et lspci -vvv :

08:0e.0 RAID bus controller: Dell PowerEdge Expandable RAID controller 5
        Subsystem: Dell PERC 5/i Integrated RAID Controller
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV+ VGASnoop- ParErr+ Stepping+ SERR+ FastB2B- DisINTx-
        Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 32 (32000ns min), Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 37
        Region 0: Memory at e00f0000 (32-bit, prefetchable) [size=64K]
        Region 2: Memory at e9fe0000 (32-bit, non-prefetchable) [size=128K]
        Expansion ROM at e9e00000 [disabled] [size=32K]
        Capabilities: <access denied>
        Kernel driver in use: megaraid_sas
        Kernel modules: megaraid_sas

Mais utiliser le contrôleur n'est qu'une partie. On voudrait aussi connaître l'état des disques (pour savoir ceux qu'on doit remplacer), créer des nouveaux disques virtuels sans repasser sous le BIOS, etc. Dell fournit pour cela un logiciel, OMSA. Pour l'installer, on va chercher sur ftp://ftp.sara.nl/pub/outgoing/dell/ :

% wget ftp://ftp.sara.nl/pub/outgoing/dell/binary-amd64/dellomsa_5.4.0-1_amd64.deb
% sudo aptitude install openipmi ia32-libs lib32ncurses5
% sudo dpkg -i dellomsa_5.4.0-1_amd64.deb

Mais l'authentification ne marche pas ensuite. OMSA authentifie normalement via PAM mais le stagiaire qui en un été a développé le cliquodrome chez Dell ne savait pas qu'il existe des machines 64-bits. Il faut donc installer à la main des bibliothèques PAM 32-bits comme bien expliqué en http://blog.zztopping.com/2008/04/29/dell-omsa-debian-64bit/. Je résume le contenu ce cette page Web :

... télécharger les ".deb" ...
% dpkg -x libselinux1_1.32-3_i386.deb ./pam-omsa
... idem pour les autres ...
% sudo cp pam-omsa/lib/libsepol.so.1 /lib32
% sudo cp pam-omsa/lib/libselinux.so.1 /lib32
% sudo cp pam-omsa/lib/security/pam_unix.so /lib32/security
% sudo cp pam-omsa/lib/security/pam_nologin.so /lib32/security
% sudo ldconfig
% sudo emacs /etc/pam.d/omauth

et, dans ce dernier fichier :

auth       required     /lib32/security/pam_unix.so nullok
auth       required     /lib32/security/pam_nologin.so
account    required     /lib32/security/pam_unix.so nullok

Je suppose que ça doit aussi marcher avec LDAP mais je n'ai pas encore testé.

L'application de gestion du contrôleur RAID est alors accessible depuis la machine en https://127.0.0.1:1311/ (HTTPS seulement). Il faut accepter le certificat bidon. Un navigateur très riche est nécessaire, vue la surutilisation de gadgets divers. En raison d'une bogue SSL, le serveur HTTPS ne marche pas avec Konqueror (20930:error:140773F2:lib(20):func(119):reason(1010):s23_clnt.c:578:).

Si on veut se connecter depuis une autre machine, je suppose qu'on peut demander au serveur HTTP d'écouter sur d'autres adresses IP mais c'est peu sûr. La solution que je préfère est de faire un tunnel avec SSH en tapant ssh -L 1311:127.0.0.1:1311 MONSERVEURPOWEREDGE -N et d'utiliser ensuite un Firefox local qui se connecte à https://127.0.0.1:1311/ (j'ai utilisé le même port).

N'importe quel utilisateur PAM peut alors se loguer. root a tous les droits, mais on peut aussi se loguer avec un autre compte (et, je crois, configurer ses autres comptes pour avoir des privilèges particuliers sur le contrôleur RAID).

OMSA vient aussi avec des programmes en ligne de commande comme omreport  :

% omreport chassis
Health

Main System Chassis

SEVERITY : COMPONENT
Ok       : Fans
Ok       : Intrusion
Ok       : Memory
Ok       : Power Supplies
Ok       : Processors
Ok       : Temperatures
Ok       : Voltages
Ok       : Hardware Log
Ok       : Batteries

ou :

% omreport storage  vdisk controller=0 
List of Virtual Disks on Controller PERC 5/i Integrated (Embedded)

Controller PERC 5/i Integrated (Embedded)
ID                  : 0
Status              : Ok
Name                : Virtual Disk 0
State               : Ready
Progress            : Not Applicable
Layout              : RAID-5
Size                : 272.25 GB (292326211584 bytes)
Device Name         : /dev/sda
Type                : SAS
Read Policy         : No Read Ahead
Write Policy        : Write Back
Cache Policy        : Not Applicable
Stripe Element Size : 64 KB
Disk Cache Policy   : Disabled

ID                  : 1
Status              : Ok
Name                : Databases
State               : Ready
Progress            : Not Applicable
Layout              : RAID-5
Size                : 1,115.50 GB (1197759004672 bytes)
Device Name         : /dev/sdb
Type                : SAS
Read Policy         : No Read Ahead
Write Policy        : Write Back
Cache Policy        : Not Applicable
Stripe Element Size : 64 KB
Disk Cache Policy   : Disabled

Avec l'interface Web, je peux maintenant voir l'état des disques, créer un nouveau disque virtuel, etc.

D'autre part, Dell fournit un autre programme en ligne de commande, MegaCli, pour interroger le contrôleur RAID. On peut le trouver en ligne sous forme d'un RPM. alien ne peut convertir ce RPM :

dpkg-gencontrol: error: current host architecture 'amd64' does not appear in package's architecture list (i386)
dh_gencontrol: command returned error code 65280

mais, comme indiqué dans l'article Some useful MegaCli commands/quick debian howto, on peut tout simplement extraire les exécutables :

% rpm2cpio MegaCli-1.01.39-0.i386.rpm | cpio -idmv
# cp ./opt/MegaRAID/MegaCli/MegaCli64 /usr/local/sbin/MegaCli

Outre l'article cité ci-dessus, on peut trouver une documentation très sommaire sur MegaCli.

Une fois MegaCli installé, on peut s'en servir, par exemple pour du monitoring régulier comme le fait ce script Perl qui teste l'état de la batterie et envoie un message en cas de problème.

Quelques articles sur ce sujet :

Merci à Jean-Édouard Babin pour ses suggestions.

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)