Title: Clustering
1CLUSTERING
2Quest ce que le clustering ?
- Définition
- Méthode permettant daccélérer lexécution dun
programme informatique en divisant celui-ci en
multiples segments exécutés simultanément sur
différentes machines
3Quelques mots de vocabulaire
- Node
- Poste client connecté au réseau et capable
dexécuter du code informatique sous lordre dun
serveur. - Node Server
- Serveur du cluster dordinateurs. Il est
responsable de la répartition du travail entre
les différents postes clients ainsi que de leur
synchronisation. Il récupère également les
erreurs et les résultats des calculs.
4Problématique
- Exécution dune application partagée entre
plusieurs ordinateurs dun réseau - Hétérogénéité des différentes machines (Sun,
GNU/Linux, Windows NT, ) - Partage de la charge
- Temps de latence
5Définition d'un cluster
- Cluster agrégat de machines dans un but de
travail coopératif. Systèmes informatiques
indépendants, à couplage lâche,se comportant
comme un seul système. - Architecture NORMA NO Remote Memory Access
- Ce n'est pas une architecture SMP (machines
parallèles) - Architecture de cluster
- Systèmes en clustering tâches réparties sur
plusieurs machines (les sites web importants). - Logiciels en clustering une seule et une même
tâches est répartie sur chaque machine (calculs).
6Clustering les besoins
- Augmentation de la puissance de traitement
(scalability) on veut que la puissance de
traitement suive de manière linéaire le nombre de
machines du cluster. - Augmentation de la disponibilité (availability)
on veut minimiser les inconvénients liées aux
pannes par la redondance des machines entre
elles. - Calcul Haute-Performance et Partage de charge
configurations à plusieurs dizaines (centaines)
de nœuds.
7Clustering La haute disponibilité
- Assurer un redemarrage rapide en quelques minutes
en cas de problème imprévu - redondance de
machines. - Pas de rupture de service perceptible aux
utilisateurs. - Ce n'est pas de la tolérance de panne
8Architecture physique
9Concepts de base
- L accès réseau cest le point de passage entre
les machines du cluster et les machines de
lextérieur - Le support du système de fichier
- Baie disque partagées (SCSI / Fiber Channel)
- Disques locaux des machines
- Le coeur de calcul n couples mémoire-CPU.
- Ressources matérielles et logicielles nécéssaires
à l éxécution dun service sur un nœud - Un service est démarré sur un nœud que si ce
dernier a accès à l ensemble du groupe de
ressource nécessaire à l exécution du service.
10Clustering Partage de charge
- La fonction de partage de charge peut être
centralisée ou répartie. - Toutes les machines éxecutent le même service
simultanément.
11Schéma général
12Gestion par le réseau
- Systèmes par partage de charge grâce au DNS
multiples IP pour un nom, priorités dans les
entrées - Mais
- - les entrées A sont cachées par les systèmes
- - les entrées MX privilègie un serveur par
rapport à lautre (Haute-Disponibilité).
13Avantages
- Scalability réponse à la demande
- Rajouts de serveurs.
- Administration aisée de n serveurs absolument
identiques en données
14Cadre d'utilisation
- Services à données statiques serveur web,
serveur ftp (en lecture seule). - Services à données dynamiques utilisation d un
système de fichiers cluster . - Problèmatique de la cohérence des données.
- Utilisation dun File System spécifique qui
permettent la concurrence transparente des accès
(Distributed Lock Manager).
15Données partagées
- Solution de partage de charge à données partagées
- Les applications écrites spécifiquement sont très
chères (Oracle Parallel Server) - Solution BdD OpenSource MySQL
- Haute-disponibilité en écriture
- Lecture distribuée
16Clustering Calcul scientifique
- L'ensemble des nodes cumulent leur puissance de
calcul pour arriver à des performance égales à
celles qu'atteignent les super calculateurs. - Ce cluster utilise des applications spécialisées
dans la paraléllisation de calcul à travers une
couche de communication commune. - Il est possible de gérer la mémoire partagée
accessible par l'ensemble des processeurs du
système à travers ses nodes.
17Clustering Stockage de données
- Mise en place d'une vaste capacité de stockage
virtuel afin de répondre à l'augmentation des
flux de données et donc nécessitant une capacité
de stockage supérieure à celle d'un seul disque
dur. - Le fichier est découpé en bloc de taille
raisonnable et stocké par morceau sur plusieurs
disque. - Virtuellement, on a l'impression que l'espace de
stockage illimité et que notre fichier est stocké
en un seul morceau sur un disque unique. - Technologie SAN et NAS
18Clustering Stockage de données
- Le but est de disribuer les données par
l'entremise de plusieurs disques répartis sur les
nodes du cluster stockage combiné. - L'utilisateur peut travailler avec des fichiers
de très grandes tailles, tout en minimisant les
tranferts, dans l'éventualité ou la taille des
blocs adoptée reste raisonnable.
19Les solutions Globales
- Clusters propriétaires IBM, SUN, Hewlet
Packard, Compaq, Fujitsu, .... - Clusters Commerciaux systèmes proposés par des
sociétés de prestations en informatique.
20Clustering Microsoft
- Il répond aux besoins croissants des entreprises
en terme de messagerie éléctronique, de base de
données et depuis quelques années de serveurs web
ou ftp - Microsoft propose deux types de clustering
- Le clustering de service, permettant de réaliser
des cluster d'application et de rendu de service,
c'est à dire un cluster de haute disponibilité, à
tolérance aux fautes. - Le clustering à répartition de charge, c'est à
dire une répartition de charge réseau sur un flux
IP à travers un cluster constitués de 32 nodes au
maximum.
21Clustering Microsoft
- Les inconvénients
- Toutes les applications doivent provenir de
Microsoft. - Les systèmes d'exploitations proposés subissent
trop souvent des correctifs. - Il faut u matériel robuste, puissant et pas très
nombreux(lt32). - Les solutions de clustering Microsoft sont
particulièrement onéreuses.
22Les solutions Microsoft
- Clusters Microsoft Windows 2000 Advanced et
Datacenter Server. - MSCS haute disponibilité
- Network Load Balancing répartition de charge
23Les solutions linux
- Clusters Linux LVS, Beowulf, PVFS, Linux
HA-Project, Alinka, Mosix.
24Avantages Linux
- Mise en place d'un clustering répondant à toutes
les attentes. - Des applications Open Source de cluster son
disponibles sur le réseau Internet. - Quasi gratuité des applications.
25Inconvénients Linux
- Le système n'est pas livré clé en main.
- Il faut un investissement humain considérable
notamment en terme de formation - De bonnes connaissances en informatique, sur le
réseau et le monde Linux.
26clusters dapplication
27Pourquoi des clusters dapplication ?
- Possibilité dutiliser les ressources
matérielles de machines peu utilisées. - Capacités grandissante des réseaux informatiques
- Prix du matériel informatique en constante
baisse. - Compatibilité et hétérogénéité
- Lenteur des réseaux informatique
- Administration système des processus
28Architecture multiprocesseurs
29Architecture multiprocesseurs
- Concepts
- la mémoire physique est accessible depuis tous
les microprocesseurs - le code source résidant en mémoire est lui aussi
visible par tous les microprocesseurs - le noyau se charge de répartir les calculs
importants (et prévus à cet effet) entre les
processeurs
30Exemple darchitecture multiprocesseurs
Répartition de lapplication
Code résident dans la mémoire commune aux trois
processeurs
CPU 1
CPU 2
CPU 3
Mémoire
31Architecture multiprocesseurs
- Bilan
- mise en place aisée
- coût important
- limites de développement
- problème de redondance
- nécessite du code écrit pour être exécuté sur
plusieurs processeurs en parallèle - accès à la mémoire
- accès au code
32Architecture en clusters
33Architecture en clusters
- Concepts
- partage de lexécution dune application entre
plusieurs machine dun réseau - redondance
- haute disponibilité
- accélération des temps dexécution façon
significative - problème de charge réseau échange de messages
- temps de latence
34Architecture en clusters
Application
Echange de messages
Node Server
Node
Node
35Comparaison
- Architecture multiprocesseurs
- coût important
- maximum de 16 processeurs (systèmes Linux)
- calculs rapides
- accès facile à lapplication et à la mémoire
- Architecture en clusters
- utilisation de machines du réseau
- coût de mise en œuvre relativement abordable
- architecture client serveur difficile à mettre en
place - nécessite une bande passante importante
36Comment ça marche ?
- Algorithmes utilisés
- méthode de partage du calcul des boucles
dexécution (for, while) - délégation des calculs
- redondance
- échange de messages
37Partage du calcul des boucles
- Exemple de Programme C séquentiel
- int sum 0
- for (i 0 i lt 1000 i)
-
- sum i 50
-
-
38Partage du calcul des boucles
- Programme partagé dans un cluster de deux
machines
Server Node Node
int nb_node 2 int num_node 0 int sum 0 create_cluster_group ( cal ) for (int i 0 i lt 1000 i nb_node) sum i 20 sum get_result () int nb_node 2 int num_node 1 int sum 0 join_cluster_group ( cal ) for (int inum_node ilt1000 i nb_node) sum i 20 return sum
39Partage du calcul des boucles
- Bilan
- nécessite un code approprié
- écriture des sources plus difficiles
- langages supportés C et Fortran
- partage dinformation sur le réseau
- lapplication fork un processus dune machine
à une autre machine du réseau
40Émission de messages
- Concepts
- application client / serveur
- émission des informations propres à un processus
vers le node client afin que ce dernier puisse
exécuter le code ( fork sur le réseau ) - librairies portables
- bande passante importante
41Émission de messages
- Librairies permettant de passer des messages
- PVM (Parallel Virtual Machine)
- MPI (Message Passing Interface)
- AFAPI (Aggregate Function API)
42PVM (Parallel Virtual Machine)
- Passage de messages
- Librairie libre de droits
- Portable
- Implémentée dans les couches supérieures du
modèle OSI (au dessus des sockets) - Réseaux hétérogènes
43MPI (Message Passing Interface)
- Nouveau standard dans les librairies de passage
de messages - Programmation simplifiée
- Différentes implémentations
- LAM (Local Area Multicomputer) MPI 1.1
- MPICH (MPI CHameleon) MPI 1.1
- AFMPI (Aggregate Function MPI) MPI 2.0
44AFAPI (Aggregate Function API)
- Normalisation de la librairie PAPERS (Purdues
Adapter for Parallel Execution and Rapid
Synchronisation) - Proche du matériel
- Rapide
45Émission de messages
- Bilan
- protocole haut niveau de communication client /
serveur afin dimplémenter les systèmes en
cluster - portable et fonctionnant sur des systèmes
hétérogènes - bande passante (entre 20 et 50 Mbits par seconde)
- demande de faible temps de latence (moins de 200
ms)
46Exemples dutilisation
- Earth Simulator
- Architecture NEC SX
- 640 nodes
- 8 processeurs par node
- 16 Gb de mémoire par node
- 5120 processeurs
- 40 téra instructions par seconde
- 10 téra octets de mémoire
- 700 téra octets de disque dur
47Exemples dutilisation
- ASCI White
- processeur IBM RS6000 SP Power3 à 375 MHz
- 12,3 trillions dopérations par seconde
- 8192 processeurs
- 6 téra octets de mémoire vive
48Les clusters de fichiers
49Les clusters de fichiers
- mise en place de sauvegardes fiables et de gros
volume - sécurité
- redondance
- multi-sites
- pratiques
- facilement administrables
50Les clusters de fichiers
- Exemple MOPI (Mosix)
- Principes
- partage de fichiers entre plusieurs nodes
- fragments de données indépendants
- stockages de fichiers de grande taille
- redondance
- accès transparent aux fichiers
51Les clusters de fichiers
- MFS Mosix File System
- Méthode daccès aux fichiers
- un ou plusieurs serveurs dédiés
- Meta Manager (MM) dont le rôle est de gérer les
fichiers, les segments mémoire, les suppressions,
- Migration des processus
52Structure des fichiers
MetaUnit contrôle les inodes et les
emplacements des fichiers
DataStructure Plus petite unité de stockage (1
Mb à 4 Gb) autonome
53Composants MOPI
Niveau utilisateur et application
Démons Interface shell
Niveau système
54Conclusion clusters de fichiers
- stockage massif de données
- haute disponibilité
- sécurité
- rapidité
55Conclusion
- Le clustering est particulièrement adapté pour
les applications industrielles nécessitant des
temps de calculs importants génome, calculs
dimages 3D, - Il est également utile pour le stockage sécurisé
dun volume important de données. - Ces points font des clusters un axe de
développement très prisé par le monde industriels.
56Bibliographie et sites Internet
- http//clusters.top500.org/
- http//www.sun.com/clusters/
- http//hp-linux.cern.ch/
- http//www.microsoft.com/windows2000/technologies/
clustering/default.asp - http//www.linuxvirtualserver.org/
- http//www.beowulf.org/
- http//www.mosix.org/