Re: Grappe de calculs hétérogène sous Debian et SLES (LVS vserver and co)
----- Mail d'origine -----
De: francois petitjean <francois.petitjean@bureauveritas.com>
À: debian-user-french@lists.debian.org
Envoyé: Sat, 18 Dec 2010 20:40:01 +0100 (CET)
Objet: 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.
bonjour,
pour ce genre de casse tete prière de voir avec le frère tuck et de ne pas faire
le coup du père françois ... ;)
et pour la doc :
http://www.calvin.edu/~adams/research/microwulf/
http://www.calvin.edu/~adams/research/microwulf/sys/microwulf_notes.pdf
bref, en l'occurence il s'agit tout simplement de monter un microwulf ...
meme si la doc date un peut, le fond est toujours valable ...
désolé, mais j'ai pas les moyens ni les connaissances pratiques pour suivre ....
slt
bernard
Reply to: