Grappe de calculs hétérogène sous Debian et SLES (LVS vserver and co)
Bonjour,
Le département Recherche de la branche
Marine vient d'acquérir des serveurs HP pour effectuer des calculs CFD
(OpenFoam + code maison), hydrodynamique (Hydrostar for Exprts du docteur
Chen), de structure (avec Abaqus de Simulia ou NXNastran de Siemens PLM),
de propagation de fissures (saphir code maison) et de feu (code google?
).
Depuis 2 ans et demi, tout ceci est
centralisé sur un Proliant G5 de 64Go de RAM sous SLES (SLES11 SP1
depuis le 12 décembre (*)).
Jeudi dernier, nous retirions du rack
un IBM P630 (pseries 4 CPUS Power 4+)(**) pour faire de la plcae et installer
l'après midi même une palanquée de serveurs Proliant G7 à base de
pocesseurs AMD Opteron magny-Cours.
Je suis chargé de configurer et administrer
tout cela. Nous avons donc :
à ma gauche quelques utilisateurs pressés
d'utiliser le nouveau système
à ma droite du matériel nouveau
dont la puissace est d'un ordre de grandeur plus importante que ce qui
tourne actuellement puisque on y trouve :
6 serveurs P165 G7 32Go RAM,
2 CPUS de 12 coeurs chacun (144 coeurs auu total le Proliant
G5 fait 4 x 4 coeurs)
1 serveur 2U 16Go RAM 2
CPUS 8 coeurs avec 6 disques 7200tpm de 500Go
1 serveur 1 CPU 8 coeurs, 8 Go
et une licence SLES pour installer les logiciels commerciaux (pour ne pas
dire privateurs) qui ne sont qu'en rpm.
Je voudrais, dans ce premier message,
décrire l'architecture globale de cet ensemble et vous demander ce que
vous en pensez.
Tout d'abord Debian GNU/Linux partout
(exception faite de la machine pour les produits-paquets commerciaux)
J'envisage d'installer directement squeeze
(amd64) en commençant par 5 des 6 serveurs de calculs.
Les machines sont dans un domaine nis
(drhpc) contrôlé par deux P630 sous Debian
Un sous réseau interne est créé en connectant
tout le monde sur 2 commutateurs administrables 3Com 24 ports gigabits
(reliés entre eux stacked comme on dit chez 3Com)
Pour les systèmes de fichiers : les
répertires des utilisateurs restent pour l'instant sue le Poliant G5 :
export nfs avec automount.
Pour les caculs volumineux chaque utilisateur
dispose de /bigsr/nom qui est obtenu par automount :
chaque serveur exporte
/bigsl Sur la machine 1 je crée un répertoire machin pour
l'utilsateur machin, je fais de même pour l'utilisateur truc mais sur la
mchine 2, etc
Dans /etc/auto.master :
/homes /etc/auto.home
/bigsr /etc/auto.bigsr
et /etc/auto.home
# @(#) /homes mapping for automount
(imhs est le nom sur le réseau interne duu G5 qui exporte /homes
)
* -rw,hard,intr,nosuid,rsize=8192,wsize=8192
imhs:/homes/&
Pour /etc/auto.bigsr j'aimerais
mettre :
# @(#) /bigsr mapping for automount
* -rw,hard,intr,nosuid,rsize=8192,wsize=8192
imss,im01,im02,im03,im04,im05:/bigsl/&
( Je mets les noms des machines sur
le sous-réseau interne )
Jusque là, ce n'est pas super complique
mais mes utilisateurs voudraient un nom ( une adresse) unique et obtenir
un environnement complet.
D'autre part, il me semble que 24 coeurs
pour toutes les sessions et tous les calculs c'est un peu du gâchis.
J'ai donc imaginé un certain nombre de classes de sessions (pour se connecter
et les calculs )
la classe a (accès, all) 2CPUS
24 coeurs pour ceux qui veulent lancer make -j 24
la classe b (bis) 1 CPU 12 coeurs
la classe c (classqiue) 1/2 CPU 6
coeurs
la classe d (développement) spéciale,
ne sera implémentée qu'à la demande.
Dans cette optique les différents environnements
sont réalisés par des créations de vservers.
Règles de nommage :
nom (externe) IP
nom (interne) IP
serveur de calcul 1 : drhpc_m01
10.67.24.130 im01 192.168.1.130
ia01
192.168.1.131
ib11 192.168.1.132
ib21
192.168.1.133
ic11
192.168.1.134
ic21
192.168.1.135
ic31
192.168.1.136
ic41
192.168.1.137
Pour la machine 2 on commence à 140.
Our un vserver l'interface externe
(eth0) orte le numéro 10.67.24.xxx, l'interface interne (qui peut être
bond0) 192.168.xxx et le contexte sera le numéro xxx (pour pouvoir s'y
retrouver ).
Sur la machine 2 par exemple
vserver a02 build -m debootstrap
--context 141 --hostname drhpc_a02.eua.bvcorp.corp --interface
a02=eth0:10.67.24.141/24 --interface bond0:192.168.141/24 --cpusetcpus
0-23 -- -d squeeze -m http://ftp.fr.debian.org
On installe les paquets dans a02, (Comment
faire pour ne pas avoir de gdm ? )
Pour les autres vservers on utilise
-m clone et on ajuste les contextes et IPs noms ..
En répétant ce processus sur 5 serveurs
(j'en garde un sous le coude), on obtient
5, 10 et 20 machines vservers de 24,
12 et 6 coeurs respectivement.
Pour accéder à tout celà, j'envisage
d'utiliser LVS, répartition de charge IP, pour le port 22 (ssh). en espérant
que cela soit suffisant pour les accès XWindows (ssh -X) et pour le ftp
(sftp avec FileZilla). Les utilisateurs sont en très grande majorité
sous Windows XP (le système corporate, imosé) et utilisent Putty et Xming.
Je voudrais donc installer ipvsadm et
ldirectord sur les deux P630 qui restent (servent déjà de serveurs NIS)
et créer des vservers drhpc_a, drhpc_b, .. qui seront les points d'entrée
de la grappe de calculs. En fait je pense qu'il n'est pas nécessaire
de créer des vservers pour attacher des IP à l'interface orientée vers
le LAN. J'avoue ne pas avoir compris comment créer eth0:virta, ...
et si c'est raisonnable.
Puis /sbin/ipvsadm-restore sessions_ssh
avec le fichier (4 serveurs mis
en route )
-A -t drhpc_a:22 --scheduler wlc
--persistent
-a -t drhpc_a:22 --real-server
ia01 --gatewaying --weight 24
-a -t drhpc_a:22 --real-server
ia02 --gatewaying --weight 24
-a -t drhpc_a:22 --real-server
ia03 --gatewaying --weight 24
-a -t drhpc_a:22 --real-server
ia04 --gatewaying --weight 24
-A -t drhpc_b:22 --scheduler wlc
--persistent
-a -t drhpc_b:22 --real-server
ib11 --gatewaying --weight 12
-a -t drhpc_b:22 --real-server
ib21 --gatewaying --weight 12
-a -t drhpc_b:22 --real-server
ib12 --gatewaying --weight 12
-a -t drhpc_b:22 --real-server
ib22 --gatewaying --weight 12
..
-a -t drhpc_b:22 --real-server
ib25 --gatewaying --weight 12
etc ..
Donc je mets dans /etc/hosts
10.67.24.190 drhpc_a
10.67.24.191 drhpc_b
..
et comment est-ce que j'attache ces
IPs à l'interface sur le LAN de la machine LVS ?
Qu'en pensez-vous ?
Est-ce que cela tient la route ?
Désolé d'avoir été aussi long (comme
l'avait dit Pascal )
Mes excuses par avance pour les fautes
de frappe mais je suis obligé de travailler avec la loupe à cause de problèmes
de rétine oculaire.
Notes
(*) Sont sympas chez Süse Novell
: ils n'annoncent même pas à leurs clients quand un Service Pack
sort (en juin) et préviennent fin novembre que le support SLES11
se termine le 15 décembre.
(**) cette machine étatit sous AIX 5.1
un système où la commande ping est dans /etc et le fichier nsswitch.conf
s'appelle autrement. Mais depuis que j'ai pu installer un noyau
Linux halc10 2.6.32-bpo.3-powerpc64
#1 SMP Tue Mar 16 11:14:53 UTC 2010 ppc64 GNU/Linux
sur deux machines comparables je me
suis dit qu'elles pouvaient encore servir.
Cordialement,
Regards,
Mit freundlichen Grüßen
مع تحياتي الخالصة
F. Petitjean
Ingénieur civil du Génie Maritime
---
"Q: When do
I need xml ?
A: When I need a
new buzz word for my resume."
-- From the W3 XML page.
Reply to: