Professional Documents
Culture Documents
ESX-ESXi
Travail de Bachelor
Session 2010
4
4
4
5
1 Gnralits
1.1 nonc du projet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 Organisation du temps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Introduction aux performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
6
6
7
2 Notions importantes
2.1 Virtualisation VMware . . . . . . . . . . . .
2.1.1 Organisation Infrastructure . . . . .
2.1.2 ESX-ESXi . . . . . . . . . . . . . . .
2.1.3 vMotion . . . . . . . . . . . . . . . .
2.1.4 HA . . . . . . . . . . . . . . . . . . .
2.1.5 DRS . . . . . . . . . . . . . . . . . .
2.1.6 VMware Tools . . . . . . . . . . . .
2.1.7 Virtual Hardware Version . . . . . .
2.1.7.1 Identifier la version utilise
2.2 Architecture x86 . . . . . . . . . . . . . . .
2.2.1 Gestion de la mmoire . . . . . . . .
2.2.1.1 La mmoire physique . . .
2.2.1.2 La mmoire virtuelle . . . .
2.2.1.3 La pagination . . . . . . . .
2.2.1.4 La segmentation . . . . . .
2.2.1.5 Segmentation & Pagination
2.2.2 ISA . . . . . . . . . . . . . . . . . .
2.2.3 Les privilges sur x86 . . . . . . . .
2.2.4 Virtualisation x86 . . . . . . . . . .
2.2.4.1 Paravirtualisation . . . . .
2.2.4.2 Binary Translation . . . . .
2.2.4.3 Intel VT & AMD V . . . .
2.2.5 Hyper-Threading . . . . . . . . . . .
2.3 Rseau de stockage . . . . . . . . . . . . . .
2.3.1 Host Bus Adapter . . . . . . . . . .
2.3.2 Fibre Channel . . . . . . . . . . . . .
2.3.3 LUN . . . . . . . . . . . . . . . . . .
2.3.4 Raw Device Mapping . . . . . . . . .
PENAS Cdric
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
8
8
9
10
11
11
12
12
14
15
16
16
17
17
19
20
21
23
23
24
25
25
26
27
28
29
30
30
31
26 juin 2010
2.4
Performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4.1 SLA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 Matriel disposition
3.1 HEPIA . . . . . . . .
3.2 CTI . . . . . . . . .
3.2.1 Rseaux . . .
3.2.2 Stockage . . .
31
31
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
33
33
35
36
39
4 Outils utiliss
4.1 VMware vCenter Server . . . . . . . . .
4.1.1 Introduction . . . . . . . . . . . .
4.1.2 Pr-requis hardware minimum . .
4.1.3 Recommandations . . . . . . . .
4.1.4 Ports utiliss . . . . . . . . . . .
4.1.5 Installation . . . . . . . . . . . .
4.2 VMware vSphere Client . . . . . . . . .
4.2.1 Introduction . . . . . . . . . . . .
4.2.2 Pr-requis hardware minimum . .
4.2.3 Recommandations . . . . . . . .
4.2.4 Installation . . . . . . . . . . . .
4.3 Esxtop + perfmon . . . . . . . . . . . .
4.4 Nagios . . . . . . . . . . . . . . . . . . .
4.4.1 Installation . . . . . . . . . . . .
4.4.2 Configuration . . . . . . . . . . .
4.4.2.1 Fichier principal . . . .
4.4.2.2 Les utilisateurs . . . . .
4.4.2.3 Les priodes de temps .
4.4.2.4 Les contacts . . . . . .
4.4.2.5 Les groupes de contacts
4.4.2.6 Les htes . . . . . . . .
4.4.2.7 Les groupes dhtes . .
4.4.2.8 Les services . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
41
41
41
41
42
42
43
43
43
44
44
44
45
45
45
45
46
46
47
47
48
48
49
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
SMP
. . .
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
50
50
50
52
53
53
55
56
57
57
59
59
60
60
61
62
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
26 juin 2010
5.2.4
6 Labo TD
6.1 Serveur Nagios
6.1.1 Nagios .
6.1.1.1
6.1.2 NTP . .
. . . . . . . . . . . . .
. . . . . . . . . . . . .
Problmes rencontrs
. . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7 Stage au CTI
7.1 Migration vCenter . . . . . . . . . . . . . . . . . . . . .
7.2 CPU . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2.1 Choix du systme dexploitation . . . . . . . . .
7.2.2 Benchmarking . . . . . . . . . . . . . . . . . . . .
7.3 Hitachi : Replication True Copy . . . . . . . . . . . . . .
7.3.1 Problmatique . . . . . . . . . . . . . . . . . . .
7.3.2 Mise en place . . . . . . . . . . . . . . . . . . . .
7.3.3 Fonctionnement . . . . . . . . . . . . . . . . . . .
7.3.4 Exemple concret . . . . . . . . . . . . . . . . . .
7.3.4.1 Cration dune paire de synchronisation
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
62
62
64
.
.
.
.
65
65
65
65
66
.
.
.
.
.
.
.
.
.
.
67
67
68
68
69
70
70
71
72
72
72
8 Conclusion
77
A Annexes
A.1 Configuration Nagios du labo . . . .
A.1.1 Priodes de temps . . . . . .
A.1.2 Contacts & Groupes . . . . .
A.1.3 Htes . . . . . . . . . . . . .
A.1.3.1 Firewall Clavister .
A.1.3.2 Serveurs DNS . . . .
A.1.3.3 Serveurs de fichiers .
A.1.3.4 Serveur Nagios . . .
A.1.3.5 Imprimante . . . . .
A.1.3.6 Routeur UNIGE . .
A.1.3.7 Serveur Web . . . .
A.1.4 Groupes dhtes . . . . . . .
A.1.5 Services . . . . . . . . . . . .
A.2 Exemple de greffon Nagios . . . . . .
78
78
78
79
80
80
80
80
81
82
82
83
83
84
85
PENAS Cdric
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
26 juin 2010
Avant-propos
Conventions Typographiques
Afin de faciliter la lecture de ce document, il nous faut dfinir les quelques rgles typographiques
suivantes qui seront appliques :
Structure du document
Ce mmoire de diplme se divise en 8 chapitres :
1. Gnralits
Introduction au projet de diplme et son droulement
2. Notions importantes
Description de toutes les notions importantes connatre qui ont t utilises dans ce projet
3. Matriel disposition
Rcapitulatif des infrastructures et du matriel utilis
4. Outils utiliss
Description des outils qui ont t utiliss lors de ce travail de diplme
5. Analyse & optimisation des performances
Guide pratique sur le monitoring et lanalyse des performances
6. Labo TD
Description du travail ralis lHEPIA
7. Stage au CTI
Description du travail ralis au CTI
8. Conclusion
Remerciements
Je tiens remercier M. Grald LITZISTORF pour mavoir propos ce projet de diplme et mavoir
suivi dans mon travail tout au long des huit semaines en me conseillant de la meilleure faon possible.
Je remercie galement M. Philippe LOUTAN de mavoir accueilli au CTI et de mavoir permis dtudier
la virtualisation dans un environnement professionnel. Et plus particulirement, M. Christian DELACOMBAZ pour mavoir suivi durant 5 semaines et pour mavoir fourni de prcieux conseils et pour
son aide dans certaines parties de ce travail.
CHAPITRE 1. GNRALITS
Gnralits
1.1
nonc du projet
La problmatique des performances dun systme dinformation reste prsente dans le quotidien
des activits de lingnieur systme ; quil sagisse datteindre un niveau de qualit suffisant pour les
utilisateurs ou pour optimiser les investissements consentis.
Les spcialistes saccordent aujourdhui reconnatre que lutilisation dune couche de virtualisation
augmente la complexit de lensemble et rend donc lanalyse des performances plus difficile.
La finalit de cette tude vise la bonne matrise des performances dune architecture virtualise avec
VMware ESX-ESXi, afin den identifier les goulets dtranglement ainsi que les ventuelles opportunits
doptimisation.
1.2
Organisation du temps
Ce travail de diplme sest tal sur huit semaines et a t ralis dans deux cadres totalement
diffrents.
Les deux premires semaines ont t consacres la recherche de documentations et un tour dhorizon
sur ce qui est possible de faire dans le domaine des performances en virtualisation. Cette partie sest
droule au laboratoire de transmission de donnes de lHEPIA (6).
Les cinq semaines suivantes se sont passes en stage au CTI (7) qui est le centre des technologies
de linformation de ltat de Genve. Elles auront eu pour but danalyser la faon dont la virtualisation est utilise en entreprise, quelles sont les contraintes, les technologies utilises et bien entendu
mettre un maximum en pratique ce qui a t ralis durant les deux premires semaines.
La dernire semaine de ce projet de diplme a t nouveau ralise HEPIA, afin de finaliser le
mmoire et terminer dtudier quelques points thoriques.
HEPIA
CTI
HEPIA
Temps
1
Semaines
PENAS Cdric
26 juin 2010
CHAPITRE 1. GNRALITS
1.3
PENAS Cdric
26 juin 2010
Notions importantes
2.1
Virtualisation VMware 1
VMware est une socit qui a dmarr en 1998 et qui a acquis normment dexprience dans la
virtualisation. Aujourdhui, elle est lun des leaders dans ce domaine, grce VMware vSphere 4 qui
est actuellement leur dernier produit sorti sur le march.
Il sagit en ralit plus dune suite doutils, car elle regroupe plusieurs composants dont certains ont
t utiliss pour ce projet de diplme.
On retrouve parmi ceux-ci :
VMware ESX/ESXi est le systme dexploitation, appel hyperviseur, sinstallant sur le matriel physique et qui permet de remplir son rle de couche de virtualisation en prsentant aux
machines virtuelles du "matriel" virtualis.
VMware vCenter Server est un serveur central dans linfrastructure de virtualisation, car il
permet de regrouper la configuration et ladministration de tous les ESX/ESXi disponibles.
VMware vSphere Client est un client avec un GUI sinstallant sur un poste de travail et qui
permet dadministrer soit directement ESX/ESXi, soit de passer par VMware vCenter Server
pour administrer un groupe dESX/ESXi.
VMware vSphere Web Access est une interface web dadministration des machines virtuelles
et qui permet galement de faire du remote console, principalement sur ESX.
En parallle nous avons des mcanismes qui sont utiliss par ces diffrents outils, afin damliorer les
performances des ESX/ESXi et des machines virtuelles.
VMware Virtual SMP est une fonctionnalit permettant une machine virtuelle dutiliser
plusieurs CPU physique simultanment.
VMware vMotion est une fonctionnalit permettant une machine virtuelle de migrer dun
hte ESX/ESXi vers un autre sans arrt de la machine ni dinterruptions 2 .
VMware High Availability (HA) est une fonctionnalit permettant davoir de la haute disponibilit pour une machine virtuelle.
1. http: // www. vmware. com/ pdf/ vsphere4/ r40/ vsp_ 40_ intro_ vs. pdf
2. http: // www. tdeig. ch/ vmware/ sandmeier_ M. pdf
PENAS Cdric
26 juin 2010
2.1.1
Organisation Infrastructure
Nous retrouvons donc dans une infrastructure de virtualisation tous les outils cits en 2.1 avec
quelques nouvelles notions qui font leur apparition comme :
Datacenter
Hosts
Cluster
Resource Pool
Cluster
ESX/ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX/ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
Cluster
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX / ESXi
ESX/ESXi
ESX / ESXi
Cluster
Resource Pool 1
Resource Pool 2
NAS
Machines Virtuelles
SAN
iSCSI
Fibre Channel
26 juin 2010
2.1.2
ESX-ESXi 3
VMware ESX/ESXi est la partie principale dun host, puisquil sagit de lhyperviseur qui sert de
couche de virtualisation. Il sinstalle directement sur le matriel comme un systme dexploitation traditionnel. Son noyau est bas sur la distribution Linux Redhat 7.3 et dispose dune grande partie des
commandes de cet OS.
Ce systme dexploitation se compose de 3 parties principales :
Applications
Applications
OS invit
OS invit
VMM
VMM
Hyperviseur ESX/ESXi
Service
Console
VMkernel
Matriel
Physique
NIC
RAM
CPU
HDD
PENAS Cdric
10
26 juin 2010
2.1.3
vMotion 4
La fonctionnalit de vMotion permet de migrer une machine virtuelle dun host vers un autre sans
devoir lteindre ( chaud) et cela thoriquement sans interruption de services.
ESX/ESXi
VM
ESX/ESXi
vMotion
VM
VM
VM
VM
VM
2.1.4
HA 5
La fonctionnalit de High Availability (HA) permet davoir de la haute disponibilit des machines
virtuelles. Dans le cas o un host ESX/ESXi tomberait en panne, le mcanisme soccupe de dplacer
automatiquement les VMs touches sur un autre host grce au vMotion.
Pour que ceci puisse fonctionner, il faut obligatoirement que les hosts soient mis en cluster et que
le HA soit activ manuellement via VMware vCenter Server.
CLUSTER
VM
VM
VM
VM
VM
VM
VM
VM
VM
ESX/ESXi
ESX/ESXi
ESX/ESXi
PENAS Cdric
11
26 juin 2010
2.1.5
DRS 6
CPU 90%
CPU 10%
VM
VM
VM
VM
VM
VM
ESX/ESXi
VM
ESX/ESXi
CPU 10%
VM
ESX/ESXi
2.1.6
VMware Tools 7
Une des particularits de VMware, par rapport dautres solutions de virtualisation, est de pouvoir
installer une suite doutils appels VMware tools . Ces VMware tools sinstallent directement sur
lOS invit et sont disponibles pour les systmes dexploitation suivants :
Windows
Linux
FreeBSD
Netware
Ils permettent damliorer les fonctionnalits des systmes invits et des interactions entre les invits
et les htes. Ils permettent, par exemple, dteindre proprement un OS invit depuis lhte ou encore
de copier des fichiers entre linvit et lhte.
Ces VMware tools se divisent en quatre parties :
VMware Device Drivers
Peut-tre ce qui est le plus important dans les VMware tools savoir les drivers. Tout comme
6. http: // www. vmware. com/ pdf/ vsphere4/ r40/ vsp_ 40_ intro_ vs. pdf (p.15-16)
7. http://www.virtuatopia.com/index.php/Understanding_and_Installing_VMware_Tools
PENAS Cdric
12
26 juin 2010
VMwareUser.exe (Windows)
vmware-user (Linux, FreeBSD et Solaris)
Il se lance normalement automatiquement ds quune interface graphique est prsente dans le
systme invit. Il permet par exemple de faire du copier-coller entre la remote console et le desktop de lhte.
Il amne galement une gestion de la souris et de la rsolution pour les systmes Linux tout
comme VMware Tools Service pour Windows.
PENAS Cdric
13
26 juin 2010
2.1.7
Le Virtual Hardware est un composant qui vient en supplment des VMware Tools dans lequel on retrouve tout le matriel virtuel utilis par VMware. Il contient galement les drivers associs
chaque composant et quelques fonctionnalits.
Avec VMware Virtual Infrastructure 3.5 ce composant Virtual Hardware tait disponible en version
4 et avec larrive de vSphere 4, il est pass en version 7. A noter aussi quil est possible de faire fonctionner une version 4 sous vSphere 4 mais pas linverse avec une version 7 sous VMware VI 3.5. Passons
prsent aux changements, que la nouvelle version apporte, dont voici une liste non exhaustive :
USB : Intgration dun controller USB qui tait dj prsent dans VMware Workstation, mais
pas dans ESX 3.5.
Hot Plug support : Permet de rajouter chaud aux VMs de la mmoire, des vCPUs ainsi que
des priphriques. Il faut nanmoins que le systme dexploitation le supporte. Voir la liste des
OS avec leurs compatibilits (FIG 2.1.7).
PENAS Cdric
14
26 juin 2010
Systme dexploitation
Windows Server 2008 Datacenter Edition x64
Windows Server 2008 Datacenter Edition x86
Windows Server 2008 Enterprise Edition x64
Windows Server 2008 Enterprise Edition x86
Windows Server 2008 Standard Edition x64
Windows Server 2008 Standard Edition x86
Windows Server 2008 Web Server x64
Windows Serve 2008 Essential Business Server Premium x64
Windows Server 2008 Essential Business Server Standard x64
Windows Server 2008 Small Business Server Premium
Windows Server 2008 Small Business Server Standard
Windows Server 2003 Enterprise Edition x64
Windows Server 2003 Enterprise Edition x86
Hot-Add Memory
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Oui
Hot-Add CPU
Oui
Non
Non
Non
Non
Non
Non
Non
Non
Non
Non
Non
Non
VMXNET Generation 3 : Nouveau controller rseau qui permet dapporter des amliorations,
comme la gestion de lIPv6, optimisation du trafic rseau etc...
8-way SMP : Dans les versions prcdentes vSphere 4, une VM ne pouvait se voir allouer que
quatre vCPUs au maximum. Avec la nouvelle version, nous pouvons aujourdhui monter jusqu
huit vCPUs pourvu que lOS les supporte.
VMDirectPath : Permet damliorer les performances des vCPU lorsque ceux-ci ont besoin de
faire beaucoup daccs aux priphriques I/O en permettant la VM de sadresser directement
au hardware de lhte.
Serial Attached SCSI (SAS) virtual devices : Permet le support des configurations en
clustering de Windows Server 2008.
IDE virtual device : Permet le support des anciens systmes dexploitation qui ne grent pas
les pilotes SCSI.
2.1.7.1
Sous vSpere Client, il suffit de se mettre sur la vue dun cluster, puis daller sur longlet Virtual
Machines . Il devrait normalement y avoir une colonne "VM Version" (FIG 2.8). Si ce nest pas le
cas, il suffit de faire un clique droit sur le haut dune colonne et de lajouter.
PENAS Cdric
15
26 juin 2010
2.2
2.2.1
Architecture x86
Gestion de la mmoire
Dans cette section, la gestion de la mmoire sera dcrite de manire globale et trs synthtique. Le
but ntant pas de faire un cours dtaill, mais de rafrachir la mmoire du lecteur sur les principes
de base. Les chiffres qui seront utiliss pour les exemples seront en rapport direct avec le type de
processeurs utiliss dans ce projet de diplme, savoir des processeurs Intel 64bits.
Mmoire centrale
0xFFFFFFFFFFFFFFFF
CPU
Intel Xeon E5430
Socket LGA771
64bits
Bus d'adresses
Registres
Mot X
64bits
64bits
Mmoire
cache
12MB
Bus de donnes
Mot 1
0x0000000000000000
PENAS Cdric
16
26 juin 2010
2.2.1.1
La mmoire physique 8
La mmoire centrale physique dun systme qui est plus couramment surnomme Mmoire RAM ,
peut tre vue comme une suite de blocs (des mots) composs de 1, 2, 4, 8 octets selon larchitecture
disposition, dans notre cas 64 bits soit 8 octets.
La quantit de mmoire utilisable est dfinie par la grandeur du bus dadresses qui relie le processeur la mmoire (FIG 2.9). Il peut donc adresser 264 mots ce qui aujourdhui ne fixe aucune limite,
puisquaucune carte mre actuelle ne pourrait supporter autant de mmoire RAM.
Il sagit plus prcisment de mmoire de type DRAM 9 qui travaille conjointement avec une mmoire
cache se trouvant lintrieur du processeur et qui est de type SRAM 10 , beaucoup plus rapide daccs
mais galement plus chre.
Lorsque le processeur dsire accder un mot mmoire, il le recherche dabord dans ce cache et
sil ne sy trouve pas, il le recherchera en mmoire centrale.
2.2.1.2
La mmoire virtuelle 11
Dans les systmes rcents, la gestion de la mmoire est faite par le systme dexploitation avec
laide dune partie du processeur appele MMU 12 .
Mmoire centrale
Systme
Mmoire centrale
0
Systme
Mmoire centrale
0
Systme
Processus 1
Processus 1
Processus 2
Lancement de
processus
Processus 3
Arrt de
P2 et P3
Processus 4
Processus 4
2^64-1
2^64-1
2^64-1
PENAS Cdric
17
26 juin 2010
dexploitation considre lespace dadressage dun processus comme tant inscable et du coup il est
oblig de le charger entirement en mmoire pour pouvoir lexcuter.
Ce qui nous embte, cest que si les "trous" laisss entre les processus en mmoire centrale sont trop
petits pour accueillir un nouveau processus, il faudra faire de la place. Une solution envisageable est
de lancer une dfragmentation pour boucher ces "trous", mais cest une tche longue raliser.
Un autre problme est que si un processus dpasse la capacit de la mmoire, il ne pourra pas tre
excut. Mais, la plus grosse difficult, dans une architecture de ce type, est quil faut toujours savoir ladresse exacte o doit tre charg un processus, ce qui implique une connaissance pousse de la
mmoire.
MMU
CPU
Adresses
logiques
Adresses
physiques
RAM
SWAP
Disque Dur
PENAS Cdric
18
26 juin 2010
MMU
Adresses
Logiques
Segmentation
Adresses
Linaires
Processeur
Pagination
RAM
Adresses
Physiques
La pagination 13
La pagination est un mcanisme qui permet de dcouper la mmoire ainsi que les processus, respectivement en cadre de pages et en pages qui sont des blocs de taille fixe (4Ko pour les x86). Avec
cette mthode le systme dexploitation pourra charger en mmoire centrale des morceaux de processus
(FIG 2.13) et par consquent utiliser lespace disponible dune meilleure faon.
Mmoire centrale
0
11
N-1
page 1
page 1
page 2
page 3
page 3
page 4
page 2
...
page 4
2^64-1
PENAS Cdric
19
26 juin 2010
est aujourdhui intgr au CPU) qui contient les relations entre les adresses virtuelles et les adresses
physique (FIG 2.14). Cette relation est mise jour continuellement par le systme dexploitation afin
de savoir exactement o se trouve chaque page dans la mmoire.
Table des pages
Numro page
Numro de cadre
CPU
1
y
2
Numro page
Dplacement
Adresse linaire
= num + dp
Numro de cadre
Mmoire RAM
Dplacement
Adresse physique
= cadre + dp
Cadre 0
Cadre 0
Cadre y
La segmentation 14
Segment
Pile
Segment
Code
Segment
Pile
Segment
Code
Processus
Segment
Tas
Segment
Donnes
Segment
Donnes
Segment
Tas
PENAS Cdric
20
26 juin 2010
Base
k0
CPU
k3
Dplacement
Segment
Adresse logique
= seg + dp
k6
<
Adresse invalide
oui
non
Numro de cadre
Mmoire RAM
Dplacement
Adresse physique
= cadre + dp
Cadre 0
Cadre 0
Cadre y
2.2.1.5
Dans les architectures modernes comme x86 ou x86_64, les deux mcanismes de segmentation et
pagination sont utiliss conjointement.
Il faut voir la segmentation comme une structuration de lespace dadressage dun processus et la
pagination comme un moyen pour adapter la mmoire virtuelle la mmoire physique.
Un processus est donc dcoup en segments de diffrentes longueurs (une table des segments par
processus) et ces segments sont dcoups leur tour en pages (une table des pages par segment)
(FIG 2.17). Cest pourquoi, le MMU est compos dune partie de segmentation et dune autre pour la
pagination (FIG 2.12).
PENAS Cdric
21
26 juin 2010
Mmoire virtuelle P1
Mmoire RAM
Mmoire virtuelle P2
OS
OS
OS
P1 - Seg P - Page 2
Segment
Donnes
Segment
Pile
P1 - Seg C - Page 1
Segment
Tas
P2 - Seg D - Page 2
P1 - Seg C - Page 3
Segment
Code
P2 - Seg P - Page 3
P1 - Seg T - Page 2
Segment
Code
P1 - Seg P - Page 1
Segment
Pile
P2 - Seg D - Page 2
Segment
Donnes
P1 - Seg D - Page 3
Segment
Tas
P2 - Seg C - Page 1
P1 - Seg T - Page 1
Taille
k0
CPU
k3
Segment
Dplacement
Numro page
k6
<
Adresse invalide
Adresse logique
= seg + dp
Numro de cadre
0
1
oui
non
Numro page
Dplacement
Adresse linaire
= num + dp
Mmoire RAM
Cadre 0
x
k
Numro de cadre
Dplacement
Adresse physique
= cadre + dp
Cadre 0
Cadre y
PENAS Cdric
22
26 juin 2010
2.2.2
ISA 15
Lacronyme ISA vient de langlais pour instruction set architecture et est utilis pour dsigner
larchitecture dun processeur du point de vue du programmeur. Elle comprend plusieurs informations,
comme un jeu dinstructions que le processeur peut excuter, un ensemble de registres visibles par le
programmeur, une organisation de la mmoire et des entres-sorties, etc...
Voici une petite liste de quelques exemples dISAs :
2.2.3
x86
x86-64
PowerPC
MIPS
ARM
Motorola 68k
IBM System/360
IBM System/370
Sur un processeur de la famille x86, chaque instruction de base ne sexcute pas avec les mmes
privilges. Ces protections ont t mises en place notamment pour viter quune instruction naccde
une partie de la mmoire qui ne devrait tre accessible que par le systme dexploitation.
Il existe en tout quatre niveaux diffrents de privilges qui se reprsentent la plupart du temps sous
forme danneaux sincluant les uns dans les autres en partant de lanneau 0 (ring 0 ), qui possde le
plus de privilges pour arriver lanneau 3 (ring 3 ), qui est celui par dfaut possdant des privilges
restreints (FIG 2.19).
Ring 3
Applications utilisateurs
Ring 2
Ring 1
Ring 0
1
PENAS Cdric
23
26 juin 2010
2.2.4
Virtualisation x86 17
La virtualisation est ne dans les annes 70 dans un centre de recherche IBM Grenoble. Elle tait
alors pratique sur des mainframes de type IBM System/360-370 et tait bien plus complique que ce
que nous connaissons aujourdhui, car elle faisait intervenir des technologies non seulement logicielles,
mais galement matrielles.
RING 3
Applications
Applications
RING 3
RING 2
RING 2
RING 1
Systme d'exploitation
de la machine virtuelle
RING 0
Hyperviseur (VMM)
Systme d'exploitation
Matriel physique
Matriel physique
Architecture
virtualise
Architecture
classique
RING 1
RING 0
PENAS Cdric
24
26 juin 2010
le meilleur des cas que le ring 1 pour le Guest OS. Cest ici que nous avons donc un problme, car les
instructions x86 ne sont de base pas prvues pour la virtualisation. Il se trouve que dix-sept dentre
elles, qui sont de niveau critique, ne gnrent pas dinterruptions lorsquelles sont excutes en ring
1. Il nest bien videmment pas envisageable de les laisser sexcuter, car elles pourraient accder et
modifier les ressources matrielles, ce qui provoquerait leffondrement du systme tout entier.
Pour pallier ce problme, les trois mthodes suivantes ont t mises en place.
2.2.4.1
Paravirtualisation 18
La paravirtualisation est une technique qui offre aux machines virtuelles une interface logicielle quasiment identique au matriel rel. Elle permet davoir des VMM beaucoup plus lgers et datteindre des
performances proches du matriel rel avec les machines virtuelles. Par contre, il y a un sacrifice non
ngligeable pour arriver cela. Le Guest OS doit pralablement tre modifi, afin de fonctionner avec
un VMM paravirtualis, ce qui implique lutilisation dOS dont il est facile de se procurer le code source.
Il sagit donc dune premire mthode qui a de grands avantages, mais qui reste complique et longue
mettre en uvre. Elle ne peut videmment pas tre utilise par les produits VMware, puisquils
utilisent le principe de la full virtualisation qui sappuie sur les principes de Binary Translation et de
Intel VT & AMD V.
2.2.4.2
Binary Translation 19
La Binary Translation tait la seule technique utilise par VMware jusqu la version 3.x dESX.
Elle est appele Software Technique par opposition la technologie VT-x dIntel qui est appele
Hardware Technique et que nous expliquerons dans la prochaine section.
Son principe est assez simple comprendre. Les instructions x86 de la machine virtuelle vont tre
traduites avant leur premire excution par un composant traducteur , qui se trouve dans le VMM,
dans un sous-ensemble dinstructions x86. Ainsi, toutes les instructions privilgies qui agissaient sur
le matriel physique et qui nous posaient problme jusque-l, seront remplaces par des instructions
non privilgies nagissant que sur le matriel virtualis (FIG 2.22).
Il faut peut-tre aussi prciser que ce principe ne sapplique quau code du noyau, le code utilisateur
est excut directement par le processeur. Il est donc vident quavec cette mthode, les applications
utilisateurs auront de meilleures performances que les applications faisant des appels systmes. Lorsque
la traduction est termine, le code est plac dans un cache, afin de pouvoir tre rutilis et viter les
overhead dus la Binary Translation.
Lorsque la BT est utilise, ESX utilise le principe de la segmentation (2.16) pour la gestion de la
mmoire, ce qui nest plus utilis par les OS actuels au profit de la pagination (2.14). Il ny a donc
aucun souci, mais avec larrive des architectures 64 bits, Intel et AMD ont supprim la segmentation
au niveau du matriel, ce qui rend la Binary Translation impossible. Il faudrait une implmentation
supplmentaire, pour la gestion mmoire, au niveau du VMM, mais loverhead serait alors considrable
et rduirait grandement les performances.
18. http://fr.wikipedia.org/wiki/Paravirtualisation
19. http: // www. vmware. com/ files/ pdf/ software_ hardware_ tech_ x86_ virt. pdf (p.3-4) , http: // www.
vmware. com/ pdf/ asplos235_ adams. pdf (p.2-5)
PENAS Cdric
25
26 juin 2010
nexti:
nexti:
prime:
BT
notPrime: xor
ret
Les deux technologies Intel et AMD sont trs similaires, cest pourquoi, nous ne verrons ici que la
premire qui est la plus rpandue.
Avec Intel VT, des nouvelles instructions, dites de virtualisation, ont vu le jour savoir (VM Entry, VM Exit, VM Launch, VM Resume et dautres instructions de contrle). Les deux premires sont
celles qui ont la plus grande importance pour la comprhension du fonctionnement de VT.
Comme nous lavons vu, un OS est fait pour fonctionner sur un ring 0 et si ce nest pas le cas,
certaines instructions posent un problme. Cest donc ce niveau que VT apporte une amlioration
en faisant tourner les Guest OS sur un ring 0. Mais comment est-ce possible si ce ring est dj utilis
par le VMM ?
Ring 3
Ring 2
Ring 1
VMX root
(VMM)
PENAS Cdric
26
(p.5-6) ,
http://en.wikipedia.org/wiki/
26 juin 2010
lequel, il existe deux modes. Le premier est le VMX root et le deuxime le VMX non-root (FIG 2.23).
Le VMM sexcute sur le mode root qui se trouve sur un ring 0 disposant des comportements classiques
dune architecture x86. Il peut donner la main une machine virtuelle en provoquant un VM entry
et cest alors que la VM en question peut excuter son code librement. Le Guest OS sexcute sur le
mode non-root sur un ring 0 et lorsquune instruction privilgie est excute, un VM exit survient ce
qui rend la main au VMM, qui peut alors faire ce qui est ncessaire pour traiter lexcution de cette
instruction en lappliquant sur le matriel virtualis. Une fois ceci ralis, il peut nouveau rendre la
main la VM en faisant un nouvel VM entry (FIG 2.24).
Applications
Ring 3
OS invit
OS invit
Ring 0
VM exit
Applications
VM entry
VMX root
2.2.5
Hyper-Threading 21
LHyper-Threading est une technologie propritaire dIntel datant de 2002 qui implmente le Simultaneous Multi Threading (SMT) . Elle nest disponible que pour une certaine catgorie de processeurs Intel dont voici la liste :
Atom
Core i3
Core i5
Core i7
Itanium
Pentium 4
Xeon CPUs
PENAS Cdric
27
26 juin 2010
Cette technologie permet damliorer les performances de calculs dans un microprocesseur en crant
pour chaque cur du processeur physique, deux processeurs virtuels. Ainsi, lOS aura limpression
davoir deux fois plus de processeurs sa disposition et pourra, par consquent, excuter autant de
tches simultanment quil y a de processeurs logiques et donc repartir sa charge de travail (FIG 2.25).
Petit bmol, pour pouvoir utiliser de faon optimale lhyper-threading, il faut non seulement que lOS
supporte plusieurs processeurs, mais galement que lOS ait subi une optimisation directement au
niveau de son code source, afin de grer correctement le multi-threading. Si ce nest pas le cas, Intel
dconseille lutilisation de cette technologie qui pourrait amener des performances ngatives. Cette
technologie est correctement prise en compte partir des versions Windows XP et Windows 2003
Server.
Processeurs
physique
Sans
Hyper-threading
Thread 2
Processeurs
logiques vus par l'OS
Excution
Thread 1 Thread 2
Thread 1
temps
ad
re
Avec
Hyper-threading
Th
Th
re
ad
Thread 2
Thread 1
temps
2.3
Optimisation de lutilisation du processeur, car les donnes lui sont envoyes en masse.
Amlioration de la gestion des codes multi-thread
Meilleur temps de raction et temps de rponse
Augmentation du nombre dutilisateurs dans le cas dun serveur par exemple
Rseau de stockage 22
Un rseau de stockage SAN (Storage Area Network) est un rseau ddi permettant de faire du
stockage avec un accs trs haut dbit.
Le SAN nest pas confondre avec un NAS (Network Attached Storage) qui est une ressource de
stockage directement connecte un rseau ethernet et qui peut supporter plusieurs systmes de fichiers rseau diffrents, comme CIFS (Common Internet File System) de Microsoft, NFS (Network File
22. http://en.wikipedia.org/wiki/Storage_area_network
PENAS Cdric
28
26 juin 2010
System) de UNIX ou encore AFP (AppleShare File Protocol) de Apple. Une fois connect, il apparatra
sur les diffrentes machines du rseau comme un serveur de fichiers partags.
Dans le cas dun SAN, les machines du rseau voient les espaces disques des baies de stockage comme
sils taient leurs propres disques durs. Elles ont donc accs cet espace en mode block, un peu comme
cela serait le cas avec un disque dur ATA ou SCSI.
Un serveur accde lespace disque de stockage travers des HBA (Host Bus Adapter) en utilisant un protocole comme SCSI ou Fibre Channel. Dans le cadre du CTI et comme dans la plupart des
cas, cest le Fibre Channel qui est utilis.
Les points forts du SAN par rapport au NAS sont :
La scalabilit de lespace de stockage. Si un espace disque devient insuffisant, il suffit simplement
dajouter un disque ou alors directement un baie.
Il y a entre les serveurs et les baies de stockage un mcanisme daccus de rception permettant
de sassurer que les transferts se sont raliss correctement.
La redondance peut tre assure en dupliquant les baies de stockage.
Le SAN fonctionne dans un environnement htrogne.
2.3.1
Un Host Bus Adapter (HBA) ou contrleur de bus en franais, est une carte dextension qui est
utilise pour connecter un serveur ou un poste client un bus externe, et dans notre cas, un rseau
de stockage. On retrouve plusieurs types diffrents de HBA dont notamment des HBA SCSI et HBA
Fibre Channel mais il existe galement des HBA Ethernet, USB ou encore Firewire.
23. http://fr.wikipedia.org/wiki/Contr%C3%B4leur_h%C3%B4te_de_bus
PENAS Cdric
29
26 juin 2010
50:00:51:e3:63:a4:49:01
Exemple de WWN
2.3.2
Fibre Channel 24
Fibre Channel est le protocole standard utilis dans les rseaux SAN, car il permet une connexion
haut dbit entre le serveur et son espace de stockage. Son nom peut porter confusion et nous faire
croire quil utilise de la fibre optique. Il sagit, en fait, dun protocole fonctionnant en srie qui ne
ncessite que deux conducteurs physiques et qui peut, par consquent, utiliser des supports comme de
la paire torsade, du cble coaxial ou de la fibre optique.
Ce protocole supporte actuellement quatre dbits diffrents (1 Gbit/sec, 2 Gbit/sec 4 Gbit/sec et
8 Gbit/sec) et il utilise trois topologies diffrentes savoir :
2.3.3
LUN 25
Un LUN pour Logical Unit Number est un identifiant dunit logique qui est, en fait, un pointeur
vers un espace disque. Il est en gnral dfini par sa taille en GO et par les WWN des HBA des serveurs
qui y ont accs.
Un administrateur de rseau SAN peut effectuer du LUN Masking 26 , ce qui consiste restreindre
laccs un LUN, afin quil ne soit visible que de certains serveurs.
Le nombre de LUNs quun serveur peut grer dpend fortement du systme dexploitation.
24. http://en.wikipedia.org/wiki/Fibre_Channel
25. http://fr.wikipedia.org/wiki/LUN
26. http://www.sansecurity.com/faq/lun-masking.shtml
PENAS Cdric
30
26 juin 2010
Systme dexploitation
AIX
HP
Linux
IBM
Windows
ESX
Nombres de LUNs
64000
16000
256
64000
256
2563
2.3.4
Lorsquon dcide dutiliser un LUN avec un ESX/ESXi, par dfaut ce LUN va tre format en
VMFS et certaines fois, nous voudrions utiliser un autre systme de fichiers. La solution est le Raw
Device Mapping qui permet dutiliser un LUN directement depuis une VM en (lecture/criture).
ESX/ESXi
VM 1
VMFS
2.4
2.4.1
Performances
SLA 27
Le Service Level Agreement (SLA) est un document qui dfinit la qualit de service requise entre
un prestataire et un client.
27. http://fr.wikipedia.org/wiki/Service_Level_Agreement
PENAS Cdric
31
26 juin 2010
Dans le cadre des performances au sein mme dune entreprise, il dfinit la qualit minimale attendue
pour un service spcifique et pour les performances dun systme informatique physique ou vrituel.
Cest donc ce document qui servira de base pour la configuration des systmes VMware dans une
infrastructure de virtualisation.
PENAS Cdric
32
26 juin 2010
Matriel disposition
Avant de dbuter, il est ncessaire de faire le tour du matriel utilis dans les diffrents cadres de
travail durant ce projet de diplme.
3.1
HEPIA
Serveurs publics
DNS tdeig.ch
129.194.184.84
WEB-FTP www.tdeig.ch
129.194.184.80
PKI ca.tdeig.ch
SSL
Serveurs privs
Fichiers - 10.1.1.1
Serveurs DNS
Images - 10.1.1.2
129.194.4.6
Nagios - 10.1.1.5
DMZ
Switch Catalyst X
129.194.4.32
Imprimante - 10.1.0.22
129.194.8.7
129.194.184.82
129.194.184.81
129.194.184.1
HEPIA
Intranet Labo
Switch Catalyst X
10.1.0.0/16
129.194.184.0/22
UNIGE
Switch
10.1.0.1
Firewall
Clavister
DHCP Server
Salle A409
PC Dell
PC ASUS (ESXi)
Switchs
33
26 juin 2010
Le reste des serveurs, se trouvant au laboratoire, sont privs et par consquent accessibles uniquement en local. Cest le cas du serveur sur lequel tourne lapplication Nagios qui a t monte dans le
cadre de ce projet de diplme.
Les machines utilises 1 pour la virtualisation avec VMware disposent de la configuration hardware
suivante :
Carte mre 2 : Gigabyte GA-G33M-S2L
Processeur : Intel Core2Duo 3Ghz, 6Mb de cache et FSB de 1333Mhz
Mmoire : 4GB DDR800
Sur ces machines est installe la version 4 ESXi build 208167.
1. http://www.tdeig.ch/vmware/Montage_PC_Gigabyte.pdf
2. http://www.tdeig.ch/vmware/motherboard.pdf
PENAS Cdric
34
26 juin 2010
3.2
CTI
Linfrastructure dont dispose le CTI pour la virtualisation est dcrite de manire globale sur limage
3.2.
SITE ACA
Rack Standalone
Rack ESX
Chassis 1
Chassis 1
x6
x6
LAN : 10 GB/s
x 12
x 12
Chassis 2
Chassis 2
LAN : 1 GB/s
x 12
SITE
x 12
LAN : 56 GB/s
Chassis 3
LAN : 56 GB/s
Chassis 3
x 12
NHP
x 12
vCenter
Chassis 4
Chassis 4
x 12
x 12
SAN : 4 GB/s
SAN
SAN
F/B
F/A
x 16
x 16
Hitachi USP V
Hitachi USP V
LUNs Stockage
Command device
Command device
Replication
True
Copy
Command device
Command device
LUNs Stockage
PENAS Cdric
35
26 juin 2010
Nb Cores : 8
Nb NICs : 6
Nb HBA : 5
CHSSIS
IBM BLADE CENTER H
3.2.1
Rseaux
Les interfaces rseau dun ESX sont configures pour permettre nimporte quel rseau virtuel de
les utiliser. Ainsi, nous obtenons de la redondance grce aux six ports disponibles (FIG 3.5).
PENAS Cdric
36
26 juin 2010
PENAS Cdric
37
26 juin 2010
CHSSIS
IBM HS21
IBM HS21
eth0
eth1
eth2
eth3
eth4
eth5
hba0
hba1
eth0
eth1
eth2
eth3
eth5
eth4
hba0
hba1
x12
...
56 GB/s
4 GB/s
11 GB/s
Fabric A
LAN
SAN
Hitachi USP-V
VLAN 503
Applicatif
Fabric B
Hitachi USP-V
VLAN 101
Administratif
PENAS Cdric
38
26 juin 2010
3.2.2
Stockage
Une des particularits du stockage dans linfrastructure de virtualisation du CTI est quaucune des
machines ESX na despace de stockage local. Tous les fichiers se trouvent sur des baies de stockage
Hitachi USP-V (Universal Storage Platform V) dont la datasheet 3 est disponible sur le site officiel
dHitachi. Ces baies sont les derniers modles proposs par cette marque et proposent des performances
de haute qualit.
3. http://www.hds.com/assets/pdf/hitachi-datasheet-usp-v.pdf
PENAS Cdric
39
26 juin 2010
VMware cluster
ESX 2
ESX 1
VM 1
VM 4
VM 2
VM 5
VM 3
VM 6
x12
...
HITACHI USP-V
LUN DATA 1 TB
FICHIERS ESX
FICHIERS ESX
Service Console
Service Console
LUN DATA 1 TB
VM 5
.vmx (cong)
.vmdk (disque)
.vswp (swap)
LUN DATA 1 TB
LUN DATA 1 TB
VM 1
Systmes de chiers
.vmx (cong)
.vmdk (disque)
VMFS3
.vswp (swap)
LUN DATA 1 TB
LUN DATA 1 TB
EXT3
PENAS Cdric
40
26 juin 2010
Outils utiliss
4.1
4.1.1
Introduction
vCenter est un service qui permet de centraliser ladministration dhtes ESX/ESXi. Il permet de
manager les htes, ainsi, que les machines virtuelles qui tournent sur ceux-ci. Il y a une possibilit
davoir plusieurs vCenter et les regrouper. Nous pouvons, avec cette mthode, se connecter sur un seul
vCenter qui verra et managera tous les autres vCenter et leurs ressources associes.
4.1.2
vCenter Server peut tre install soit sur une machine physique, soit sur une machine virtuelle,
pourvu quil ait accs une base de donnes compatible. Il faut respecter les exigences minimales
suivantes :
2 CPUs Intel ou AMD avec au minimum une frquence de 2.0Ghz, plus si la base de donnes est
locale.
3GB de RAM, plus si la base de donnes est locale. Il faut galement compter un supplment de
128MB 1.5GB pour le VMware vCenter Management Webservices qui est un service sexcutant
en parallle.
Un espace de stockage dau minimum 2GB, plus si la base de donnes est locale.
Microsoft SQL Server 2005 Express au minimum. Dautres bases de donnes SQL sont galement
envisageable (Oracle par exemple).
Une connexion gigabit est conseille.
4.1.3
Recommandations
Pour des performances optimales, il faut respecter les suggestions suivantes proposes par VMware :
Jusqu 50 ESX/ESXi et 250 VMs
Produit
vCenter Server
PENAS Cdric
41
CPUs
2
CPUs
4
Mmoire
4GB
Mmoire
4GB
Disque
3GB
Disque
3GB
26 juin 2010
4.1.4
CPUs
4
Mmoire
8GB
Disque
3GB
Ports utiliss
80 : Utilis pour accder linterface web de vCenter. Par dfaut redirig sur le port HTTPS
443.
389 : Utilis par LDAP pour la gestion des groupes de vCenter.
443 : Utilis par dfaut pour la communication entre vCenter et vSphere Client. galement
utilis pour laccs linterface web, depuis un navigateur, et pour la connexion un SDK, par
exemple.
636 : Utilis par SSL pour les vCenter utilisant la notion de groupe.
902/903 : Utilis par dfaut pour la communication avec les htes ESX/ESXi. galement utilis
entre vCenter et vSphere Client pour laffichage de la console des VMs.
8080 : Utilis par les Webservices en HTTP
8443 : Utilis par les Webservices en HTTPS
4.1.5
Installation 1
Nous allons voir ici linstallation ralise au CTI, mais avant de dbuter, il faut sassurer de respecter
les points suivants :
1. Sassurer davoir la configuration hardware minimale dcrite en 4.1.2.
2. Disposer dune base de donnes compatible et fonctionnelle.
3. Il ne doit pas y avoir de NAT 2 entre le serveur vCenter et les htes quil contrle.
4. Le serveur vCenter doit appartenir un domaine plutt qu un groupe de travail, sans quoi, il
ne sera pas capable de dtecter automatiquement tous les domaines.
5. Le nom de la machine excutant vCenter ne doit pas dpasser 15 caractres.
6. Assigner une IP statique au vCenter ainsi quun DNS 3 valide.
Dans notre cas, nous avons la configuration suivante :
Une fois tout ceci vrifi, linstallation peut dbuter en lanant autorun.exe contenu dans les fichiers
dinstallation de VMware vCenter Server.
Plusieurs composants seront alors installs, afin que tout fonctionne correctement :
1. http: // www. vmware. com/ pdf/ vsphere4/ r40/ vsp_ 40_ esx_ vc_ installation_ guide. pdf
2. Network Address Translation
3. Domain Name System
PENAS Cdric
42
26 juin 2010
VMware vCenter Server Un service Windows, qui permet de manager les diffrents serveurs
ESX/ESXi.
Microsoft.NET 3.0 SP1 Framework Utilitaire pour vSphere Client et quelques fonctionnalits lies la base de donnes.
VMware vCenter Orchestrator Module qui fournit plusieurs outils au vCenter, afin damliorer le management des systmes virtualiss.
Microsoft SQL Server 2005 Express Cette base de donnes est optionnelle, car, comme nous
lavons dj prcis, nous pouvons en utiliser une autre, comme Oracle.
Nous trouverons galement dautres outils dans linstallation de vCenter comme :
vCenter converter Permet de virtualiser des machines physiques ou de convertir des machines
virtuelles fonctionnant sous une version dESX/ESXi vers une autre version.
vCenter Update Manager Permet de mettre jour la scurit et les diffrents patchs des
ESX/ESXi et de leurs machines virtuelles.
Lors de linstallation, plusieurs informations vous seront demandes. Pour la plupart, il faudra laisser
la valeur par dfaut.
1. Le nom dutilisateur et lorganisation : Mettre des informations cohrentes avec le reste de linfrastructure.
2. La licence vCenter : Entrez la cl que vous avez reue de la part de VMware.
3. Dossier dinstallation vCenter : Par dfaut.
4. Standalone ou groupe : Savoir si le vCenter fait parti dun groupe, afin de raliser une hirarchie
de management, ou sil est tout seul. Nous linstallerons en Standalone.
5. FQDN 4 du vCenter grant le groupe : Aucun dans notre cas.
6. Port LDAP : Par dfaut, mais utile que si le vCenter fait parti dun groupe.
7. Infos de la base de donnes : Aucune info car nous utilisons la base de donnes par dfaut.
8. Diffrents ports utiliss par vCenter : Nous avons laiss tous les ports par dfaut.
4.2
4.2.1
vSphere Client sinstalle sur une machine Windows et est un client qui permet de se connecter
un vCenter Server ou directement un ESX/ESXi afin de les administrer grce une interface
graphique.
4.2.2
vSphere Client peut tre install soit sur une machine physique soit sur une machine virtuelle.
Il faut respecter les exigences minimales suivantes :
4. Full Qualified Domain Name
PENAS Cdric
43
26 juin 2010
4.2.3
Recommandations
Pour des performances optimales, il faut respecter les suggestions suivantes proposes par VMware :
Jusqu 50 ESX/ESXi et 250 VMs
Produit
vSphere Client
4.2.4
CPU
1
Mmoire
200MB
Disque
1GB
CPU
1
Mmoire
500MB
Disque
1GB
CPU
1
Mmoire
500MB
Disque
1GB
Installation
Linstallation se fait tout simplement partir dautorun.exe qui a servi installer vCenter. Nous
avons laiss toutes les options par dfaut.
Attention : Host Update Utility nest installer que si larchitecture virtualise nutilise pas
de clusters. Autrement, il faut privilgier vCenter Update Manager, pour la gestion des mises jour.
4.3
Esxtop + perfmon
Esxtop est loutil par excellence utiliser pour monitorer les performances dun ESXi. Nous pouvons le coupler perfmon (Windows), pour un rendu graphique des donnes.
Comment utiliser esxtop ?
http: // www. vmware. com/ pdf/ vsphere4/ r40/ vsp_ 40_ resource_ mgmt. pdf (p.159-171)
Les compteurs utiles au niveau du CPU sont %RDY et %USED
http://communities.vmware.com/docs/DOC-5240
Comment interprter les compteurs esxtop ?
http://communities.vmware.com/docs/DOC-9279
Utilisation de perfmon
PENAS Cdric
44
26 juin 2010
http://www.zebulon.fr/astuces/221-optimiser-vista-avec-le-rapport-de-performances.html
http://communities.vmware.com/docs/DOC-5100
4.4
Nagios
Le monitoring dun rseau est une tche assez complexe et parfois complique mettre en uvre,
surtout sur de grandes infrastructures. Il existe, bien videmment, plusieurs palettes doutils permettant de le faire et grce auxquels nous pouvons, par exemple, connatre ltat dune machine (ping),
effectuer une requte HTTP, pour savoir si un serveur web fonctionne, ou encore, visualiser les proprits dun disque, afin de savoir la place libre restante.
Mais le problme est que ces actions sont assez simples raliser, lorsque le rseau est de petite
taille et quil ny a pas beaucoup de services, alors que, dans le cas contraire, cela devient rapidement
ingrable. Cest pourquoi Nagios est utilis dans le domaine professionnel afin de monitorer les performances dun rseau.
Avec son aide, les tches fastidieuses de monitoring rseau sont faites automatiquement et priodiquement. Il est possible dassigner autant de tches que nous le souhaitons un composant du rseau.
Il les excutera et nous signalera le moindre problme (par e-mail), selon des critres fixs.
Une fois matris, il devient vite indispensable pour nimporte quel ingnieur rseau.
4.4.1
Installation
Linstallation ralise dans le cadre du labo de transmission de donnes a t faite sur un Ubuntu
Server 10.04 et, par consquent, Nagios se trouve dans les dpts officiels, ce qui facilite la procdure,
puisquil faut simplement installer le paquet nagios3 .
sudo apt-get install nagios3
Il devrait galement installer Apache2, si ce nest pas dj fait. Pour terminer, un mot de passe
pour le compte nagiosadmin vous sera demand. Il sagit du compte principal pour la gestion de
Nagios.
Pour une installation manuelle vous pouvez suivre le tutoriel officiel ladresse suivante : http:
//nagios.sourceforge.net/docs/3_0/quickstart-ubuntu.html
Une fois linstallation termine, la page principale de Nagios devrait tre accessible via le lien http:
//localhost/nagios3/
4.4.2
4.4.2.1
Configuration
Fichier principal
PENAS Cdric
45
26 juin 2010
cfg_dir=/etc/nagios3/conf.d/
Extrait de nagios.cfg
Dans notre cas, tous nos fichiers de configurations seront dans le rpertoire /etc/nagios3/conf.d/ .
Afin de valider une configuration, Nagios nous met disposition la commande suivante qui nous
permet de dtecter les incohrences :
sudo nagios -v /etc/nagios3/nagios.cfg
4.4.2.2
Les utilisateurs
Ensuite, les permissions de cet utilisateur peuvent tre modifies dans le fichier /etc/nagios3/cgi.cfg
en ajoutant le nom de cet utilisateur aux lignes commenant par authorized_for . Elles sont au
nombre de sept et correspondent aux autorisations suivantes :
authorized_for_system_information
authorized_for_configuration_information
authorized_for_system_commands
authorized_for_all_services
authorized_for_all_hosts
authorized_for_all_service_commands
authorized_for_all_host_commands
4.4.2.3
Les priodes de temps servent dfinir quand est-ce quun service doit tre surveill. Ainsi, on
peut, par exemple, dire Nagios de ne contrler laccs Web quaux heures de travail.
Pour crer une nouvelle priode de temps, il faut ajouter ou diter, par exemple, un fichier /etc/nagios3/conf.d/timeperiods.cfg qui contiendra des heures de travail :
define timeperiod{
timeperiod_name heures_travail
alias
Heures de travail
monday
07:00-17:00
tuesday
07:00-17:00
wednesday
07:00-17:00
PENAS Cdric
46
26 juin 2010
thursday
saturday
}
07:00-17:00
07:00-17:00
Extrait de timeperiods.cfg
4.4.2.4
Les contacts
Un contact est une personne physique que Nagios pourra contacter, pour lui signaler les incidents
ventuels.
Pour crer un contact, il faut ajouter ou diter, par exemple, un fichier /etc/nagios3/conf.d/contacts.cfg
comme ceci :
11
define contact{
contact_name
dupont
alias
Henry Dupont
service_notification_period heures_travail
host_notification_period
heures_travail
service_notification_options w,u,c,r
host_notification_options
d,u,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email
henry.dupont@domaine.net
pager
+32336254324
}
Extrait de contacts.cfg
Il est galement possible de regrouper les contacts et davertir, par exemple, un groupe complet au
lieu de samuser paramtrer pour chaque contact.
Un nouveau groupe peut tre dfini dans un fichier /etc/nagios3/conf.d/contacts_group.cfg
comme ceci :
PENAS Cdric
47
26 juin 2010
define contactgroup{
contactgroup_name
alias
members
}
admins
Administrateurs du reseau
dupont, smith, toto
Extrait de contacts_group.cfg
Il suffit simplement de prciser pour le paramtre members quels sont les contacts qui font partis
de ce groupe.
4.4.2.6
Les htes
Les htes sont les quipements du rseau qui seront monitors comme les postes fixes, les routeurs,
les serveurs etc...
Pour plus de clart et pour faciliter la maintenance, nous pouvons spcifier un hte par fichier. Par
exemple, si nous avons une machine sur laquelle tourne un serveur web, on pourra crer le fichier
/etc/nagios3/conf.d/serveur_web.cfg :
define host{
use
host_name
alias
address
check_command
}
generic-host
webserver
Serveur Web
192.168.x.x
check-host-alive
Extrait de serveur_web.cfg
Avec ce fichier, le serveur web sera ping priodiquement grce la commande check-host-alive .
4.4.2.7
Pareil que pour les contacts, nous pouvons dfinir des groupes dhtes pour, par exemple, limiter
des zones du rseau comme une DMZ.
Il faudra donc crer un fichier /etc/nagios3/conf.d/hostgroups.cfg dans lequel nous pourrons
placer un groupe DMZ :
define hostgroup{
hostgroup_name dmz
alias
Serveurs de la DMZ
contact_groups admins
members
webserver, mailserver
}
Extrait de hostgroups.cfg
PENAS Cdric
48
26 juin 2010
4.4.2.8
Les services
Les services sont le dernier point important de la configuration de Nagios. Comme nous lavons vu,
un hte est ping pour tester sa disponibilit mais rien de plus. Ces services permettront de monitorer
un hte sous diffrents aspects, par exemple, tester un port, vrifier le hardware, rcuprer sa configuration etc...
Si nous dsirons tester le port 80 du serveur web en effectuant une requte HTTP, nous pourrons
crer un fichier /etc/nagios3/conf.d/services_web.cfg :
define service{
use
generic-service
host_name
webserver
service_description Test HTTP
check_command
check_http
}
Extrait de services_web.cfg
PENAS Cdric
49
26 juin 2010
5.1
Performances gnrales
Avant de dbuter avec lanalyse des performances du CPU ou bien de la RAM, il faut prendre en
compte quelques aspects gnraux, qui peuvent galement influencer sur les performances du systme
virtualis. Il y a donc quelques points respecter et surveiller, afin que la base de notre systme soit
optimise au maximum.
Nous allons galement voir quels sont les outils qui peuvent nous permettre de surveiller de faon
globale le systme et de dtecter les ventuels problmes.
5.1.1
Les diffrents points globaux respecter et contrler sur tous systmes ESX/ESXi, sont les
suivants :
1. Valider le hardware de la machine hbergeant ESX/ESXi en sassurant quil respecte la configuration minimale conseille par VMware 1 dont notamment pour ESX/ESXi 4 :
Processeur 64-bits
2GB de RAM minimum
VMkernel
Virtual CPU
ESX 1.0-2.5
32-bit
32-bit
ESX 3.0
32-bit
32-bit & 64-bit
ESX 3.5
32-bit
32-bit & 64-bit
ESX 4.0
64-bit
32-bit & 64-bit
PENAS Cdric
50
http: // www.
26 juin 2010
3. Vrifier que le Service Console dispose dassez de ressources (256MB de RAM minimum
mais 512MB pour un fonctionnement optimal). Dans le cas contraire, nous pouvons observer les
symptmes suivants (exemples) :
Mauvais temps de rponse du vSphere Client (Pas assez de mmoire)
Impossible de se loguer dans le service console (Pas assez despace disque)
4. Utiliser des systmes dexploitation compatibles.
http: // www. vmware. com/ pdf/ vsphere4/ r40/ vsp_ compatibility_ matrix. pdf (p.17-19)
5. Toujours installer la dernire version des VMware tools sur le Guset OS et la maintenir jour,
surtout aprs une mise jour de lESX/ESXi.
Voir section 2.1.6
7. Dsactiver les crans de veille et autres animations Windows sur les machines virtuelles. Sur
Linux, dsactiver le server X, sil nest pas utilis. Toutes ces fonctionnalits consomment de la
ressource CPU non ngligeable.
9. Dconnecter tous les priphriques non utiliss sur lhost et sur les guest comme :
10. Programmer les backups et les scans antivirus dans des heures creuses comme le milieu de la
nuit. appliquer, aussi bien pour les ESX/ESXi que pour les VMs.
PENAS Cdric
51
26 juin 2010
5.1.2
Dtection de problmes
Il est vident quil faut optimiser au maximum un systme en production et le monitorer mais
partir de quel moment pouvons nous considrer quun problme existe ?
En rgle gnral, il existe des SLA (2.4.1) dans chaque entreprise qui dfinissent quels sont les seuils
critiques pour la production. Il est vident que pour une ressource, comme le CPU, le seuil critique
sera pratiquement toujours au mme niveau pour tout systme informatique, mais pour une ressource
moins critique, comme lespace de stockage, la limite critique peut varier.
Il faut donc sappuyer sur ces SLA, afin dutiliser au mieux les outils de monitoring disposition.
Dans le cadre du stage au CTI, les deux outils utiliss sont :
Nagios pour un monitoring constant et pour le dclenchement dalertes.
vSphere Client + vCenter pour un monitoring ponctuel et global.
Ce que nous pouvons conseiller, daprs les nombreuses lectures effectues, cest dutiliser trois outils
pour cibler un problme. Les deux premiers sont ceux utiliss au CTI, mais il faudrait en rajouter un
troisime et qui reste loutil le plus puissant, pour le monitoring en temps rel, qui est Esxtop.
Ce dernier est parfois laiss de ct, car peut-tre un peu plus lourd utiliser, comme il na pas
dinterface graphique avec de jolis compteurs. Mais, il reste nanmoins loutil le plus intressant, car il
donne accs des compteurs auxquels les deux autres outils nont pas accs et le taux de rafrachissement est plus lev, donc plus prcis.
Symptmes
Exemples
- Faible dbit
- Temps de rponse lev
Sens d'investigation
Problme
possible
Exemples
- Saturation du CPU
- Accs mmoire importants
Observer le problme
avec vSphere Client
Conrmation du problme
et
ressource associe
Exemples
- Mauvaise rpartition de
charge
- Capacit mmoire max
atteinte
Dduction
Exemples
- Mmoire insusante
- Mauvaise conguration
Cause du problme
52
26 juin 2010
5.1.2.1
Le monitoring sous Nagios se fait grce des greffons, qui ne sont rien dautre que des scripts,
programmes ou autres qui peuvent tre dvelopps par nimporte qui.
La seule contrainte est que ces greffons doivent retourner certains codes prcis pour que Nagios puisse
les comprendre et les utiliser. Il existe en tout quatre codes :
0
1
2
3
:
:
:
:
OK
WARNING
CRITICAL
UNKNOWN
Pour exemple de greffon utilis par Nagios, vous trouverez en annexe le code source du programme C
qui permet de tester le ping avec check_ping (Annexe A.2)
Nagios va ensuite excuter tous les greffons priodiquement et nous reporter les tats qui sont retourns. Ce sont ces tats qui dfiniront si une alerte doit tre dclenche. La vue offerte par Nagios
pour le monitoring des services, nous permet davoir une vision globale sur ltat de tous ces services
(FIG 5.3)
vSphere Client nous offre quelques vues globales de linfrastructure virtualise qui sont intressantes pour se donner une ide rapide de la sant des machines htes, sur lesquelles sont excuts les
ESX/ESXi.
Par exemple, nous pouvons obtenir une vue nous fournissant lutilisation des ressources globales dont
dispose le cluster (5.4).
PENAS Cdric
53
26 juin 2010
CLUSTER
CLUSTER
SANTE GLOBALE
PENAS Cdric
54
26 juin 2010
CLUSTER
5.1.2.3
Loutil Esxtop nous fournit un certain nombre de compteurs qui nous permettent de monitorer les
ressources du systme. Nous pouvons trs facilement modifier la vue quil nous fournit, grce des
options et nous pouvons galement exporter les donnes dans des fichiers comme, par exemple, .csv .
PENAS Cdric
55
26 juin 2010
s2
Pour obtenir de laide sur les touches disponibles, il suffit de presser la touche "h".
Ce qui nous donnera la liste suivante :
c affiche les compteurs relatifs au CPU
m affiche les compteurs relatifs la RAM
d affiche les compteurs relatifs aux disques
n affiche les compteurs relatifs aux interfaces rseau
v affiche les compteurs relatifs aux disques des VMs
V valable pour les autres vue et permet de ne voir que les VMs
Il existe bien videmment dautres options mais qui sont moins importantes.
Afin de rcuprer toutes les donnes produites par Esxtop, nous pouvons les exporter dans un fichier qui sera lisible avec par exemple Perfmon ou Excel grce la commande suivante :
esxtop -b -d 2 -n 100 > capture.csv
Loption -d dfinit le taux de rafrachissement, ici fix 2 secondes et -n dfinit le nombre ditrations
qui seront effectues, ici 100. Cela nous produira donc une capture de 2 100 = 200[s].
5.2
Processeur (CPU)
Avant de se lancer dans la configuration ou lanalyse des performances dun processeur virtualis, il
convient de comprendre quels sont les diffrents types de virtualisation et quelles sont les consquences
quelles peuvent avoir sur le systme.
La virtualisation nest pas confondre avec lmulation. Sur cette dernire, toutes les instructions
sont excutes par une partie logicielle qui porte le nom dmulateur. Elle permet de pouvoir excuter
du code, qui nest normalement pas fait pour tre lanc sur la machine hte. Par exemple, du code
prvu pour une architecture x86 pourrait trs bien tre excute sur du PowerPC. Par contre, il ne
sagit l nullement de virtualisation, car ce procd ne revient qu crire un logiciel qui mule et
reproduit le comportement de larchitecture de destination, acceptant les mme entres et fournissant
normalement un rsultat similaire.
Contrairement ceci, la virtualisation du CPU possde deux modes dexcution comme nous lavons
dj voqu (2.2.4). Les instructions peuvent tre directement excutes par le processeur physique,
lorsquil sagit dinstructions non privilgies, alors que, dans le cas contraire, la couche de virtualisation prend la main pour les excuter, cette fois ci, par le processeur virtuel.
Il est donc vident quun overhead d la virtualisation ne sera prsent que dans le cas dune excution
dinstruction privilgie.
PENAS Cdric
56
26 juin 2010
5.2.1
VMware propose galement au niveau de CPU quelques bonnes pratiques respecter, afin doptimiser les performances. Lorsquun problme survient ce niveau du hardware, il faut donc, tout
dabord, vrifier que les diffrents points suivants sont respects :
Toujours activer les Vmware Tools.
Voir section 2.1.6
Utiliser la dernire gnration de processeurs qui permettent damliorer les performances grce
la technologie VT (Intel) ou V (AMD).
Voir section 2.2.4.3
Dans la mesure du possible, associer certaines tches un seul vCPU pour viter les
overhead dus au changement de vCPU lors du traitement.
Utiliser le moins de vCPU possible, ne pas mettre plusieurs vCPU pour une application ou
plus particulirement un OS qui naccepte pas le multi-threading.
Ne pas laisser des vCPU inutiliss, car ils consomment de la ressource en excutant lidle loop
de lOS invit.
5.2.2
Monitorer le CPU
Nous avons pu voir dans la section 5.1.2.3 quil y a un grand nombre de compteurs disponibles pour
chaque ressource et en particulier pour le CPU. Limportant, ici, est de faire le tri et de bien savoir
lesquels sont importants et permettent de diagnostiquer un ventuel problme des systmes physiques
et virtuels.
VMware nous fournit donc une liste 4 des compteurs, qui daprs eux sont les plus importants et
cest sur cette base que le monitoring des systmes a t ralis.
3. http: // www. vmware. com/ pdf/ Perf_ Best_ Practices_ vSphere4. 0. pdf (p.11-12, 19-22)
4. http://communities.vmware.com/docs/DOC-5240
PENAS Cdric
57
26 juin 2010
Nous avons donc deux compteurs CPU qui se mettent en avant par rapport aux autres :
%RDY qui indique le pourcentage de temps quun groupe ou une VM passe attendre la ressource CPU pour pouvoir excuter ses tches.
%USED qui indique le pourcentage de ressource CPU utilise par un groupe ou une VM.
Ces deux compteurs peuvent bien videmment tre monitorer via vSphere Client et Esxtop.
PENAS Cdric
58
26 juin 2010
5.2.3
Avec laide et lanalyse des 2 compteurs vus dans la section prcdente, nous pouvons dtecter les
principaux problmes qui ont un lien avec la ressource CPU. Il est vident que nous ne pouvons pas
fournir une liste exhaustive de tous les problmes qui pourraient survenir sur un systme virtualis
mais la liste suivante comporte les 5 problmes qui sont le plus frquemment observs selon VMware :
Symptmes
Le problme de saturation peut tre dtecter grce aux deux compteurs %USED et %RDY. Si
lutilisation de la ressource CPU de lhte est en permanence en dessus des 75% ou que les pics
en dessus des 90% sont trop frquent, alors il existe une saturation de lhte.
Causes
La principale raison pour laquelle peut survenir une saturation du systme hte, est que les VMs
qui tournent dessus demandent plus de ressources que disponible. Plusieurs scnarios peuvent
amener ce problme dont voici les principaux :
Lhte possde un petit nombre de VMs, avec chacune une grande demande en CPU.
Lhte possde un grand nombre de VMs, avec une demande CPU qui peut tre leve ou
faible peu importe.
Solutions
Pour corriger ce problme, nous pouvons envisager plusieurs solutions.
Dans un premier temps, si lhte ESX/ESXi ne peut pas tre mis en cluster, il faut rduire le
nombre de VMs quil possde ou alors en migrer certaines sur un second hte ce qui revient
faire du load balancing manuellement. Il convient bien videmment danalyser au pralable les
compteurs des VMs, afin de dtecter celles qui demandent le plus de ressource CPU.
PENAS Cdric
59
26 juin 2010
satur.
Le matriel virtuel que possde une VM a galement une influence directe sur les performances.
Si une VM est configure pour utiliser 3 vCPU alors que lOS ne le supporte pas et bien, ce sera
de la ressource gaspille, puisquen diminuant le nombre de vCPU de la VM nous libreront
de la ressource pour les autres VMs.
Si aucune de ces solutions ne fonctionne, nous pouvons toujours limiter manuellement une
VM en ressource CPU. En effet, il arrive que certaines applications ne soient pas de bonnes
candidates la virtualisation et quelles consomment normment de ressources.
5.2.3.2
Symptmes
Pareil que pour la saturation de lhte, mais au niveau de la VM. Si le compteur %USED de la
charge CPU dune VM dpasse constamment les 75% ou a trop de pics au dessus des 90% alors
nous pouvons affirmer quune saturation de linvit existe.
Causes
La saturation du systme invit provient du fait que le systme dexploitation ou une des applications qui tournent dessus consomme toute la ressource CPU qui a t fournie la VM par
lhte ESX/ESXi. Cest le cas avec notamment des applications de calculs intensifs qui prennent
toute la ressource disponible.
Solutions
Si la VM ne dispose pas dj du maximum de ressources quil peut lui tre allou, nous pouvons
lui ajouter des vCPU pour autant que le systme dexploitation invit le permette.
Si lapplication, qui cause la saturation du systme invit, le permet, nous pouvons lancer une
seconde VM faisant tourner la mme application et faire du load balancing entre les deux.
Pour certaines applications, il est utile de maintenir jour les versions car certains patchs
peuvent amliorer la comptabilit avec la virtualisation, ce qui est un des problme principal
pour des applications anciennes.
5.2.3.3
Symptmes
Lorsque quune machine virtuelle est configur avec plusieurs vCPU et que nous observons quun
seul des vCPUs est utilis.
Causes
PENAS Cdric
60
26 juin 2010
Plusieurs raisons peuvent tre la cause de ce problme, mais pour la plupart, il ne sagit que de
problmes de compatibilit ou de mauvaise configuration.
Si nous pouvons observer le vCPU0 travailler seul, alors il se peut que le systme dexploitation
invit ne supporte pas de multiple processeurs. Il faut alors se rfrer la documentation du
systme dexploitation install pour confirmer.
Certains systmes dexploitation permettent dassigner un seul cur une application. Si votre
systme comporte cette fonctionnalit, il faut vrifier que la configuration est correcte.
Enfin, il existe encore beaucoup dapplications qui ne sont pas prvues pour tre virtualises ou
qui ne supporte tout simplement pas le multi-threading. Dans ce cas, il faut se renseigner sur
les mises jour possible ou sur les produits quivalents qui pourraient corriger ces problmes.
Solutions
Le systme dexploitation invit doit tre tudi un minimum avant dtre install et surtout
virtualis. Il faut au moins se renseigner sur la configuration maximale quil peut supporter et
donc configurer les VMs en fonction.
Les documentations des applications qui souhaitent tre virtualises doivent galement tre
parcourues pour sassurer de la compatibilit et se renseigner si lutilisation du CPU est optimis.
5.2.3.4
Symptmes
La faible utilisation dun processeur nest normalement pas un problme mais si elle est coupl
une mauvaise performance dune application, il faut le prendre comme un signal dalarme et
donc investiguer.
Causes
Ce problme peut survenir cause des raisons suivantes :
Le systme de stockage peut avoir un taux de rponse anormalement lev et donc provoquer
une utilisation des CPUs trop faible.
Lapplication peut avoir besoin de systmes externes comme une base de donnes et il se peut,
au mme titre que le stockage, quil y ait un mauvais temps de rponse.
Pour en revenir au nombre de vCPUs, il se peut que lapplication ne soit pas optimise pour
tire profit des tous les vCPUs qui lui ont t allous.
Solutions
PENAS Cdric
61
26 juin 2010
En ce qui concerne le mauvais temps de rponse des systmes externes comme le stockage ou
les bases de donnes, le problme ne vient en gnral pas de lhte ESX/ESXi, ni des VMs
mais plutt dun problme au niveau du rseau ou alors de performances au niveau du systme
en question.
Si le problme vient dune incompatibilit entre lapplication est le nombre de vCPUs, il suffit
juste den enlever et de relancer un test de performances.
5.2.3.5
Symptmes
La forte utilisation du pCPU0 par rapport aux autres pCPUs sur un systme utilisant le SMP
peut tre dtecte lorsque le pCPU0 a une activit disproportionne par rapport lactivit des
autres.
Causes
Ce problme ne survient en gnral que sur un hte ESX car il a un lien direct avec le Service
Console . En effet, il est rattach au pCPU0 et ne fonctionne que sur celui-ci. Plusieurs agent de
management sexcutent dans le Service Console et donc lutilisation du pCPU0 est fortement
lie avec lactivit des ces agents.
Il est vident que cette forte utilisation du pCPU0 a un impacte sur les performances globales
de lESX car il sagit de ressource en moins pour les VMs.
Solutions
Pour corriger ce problmes, nous pouvons reduire le nombre dagents en arrtant tous ceux qui
ne sont pas indispensable. Mais il faut tudier cette solution au cas par cas, car il est impossible
de prvoir lavance ceux qui ne seront pas utiliss.
5.2.4
5.2.4.1
1. Slectionner la VM configurer
2. Clique droit -> Edit virtual machine settings -> Options -> CPU/MMU Virtualization.
3. Faire le choix entre les options suivantes :
Automatic laisse ESX choisir la meilleure option. La faon dont le choix est fait dpend
fortement du type de processeur. On retrouve une grille de ces choix ladresse suivante
http://communities.vmware.com/docs/DOC-9882.
6. http: // www. vmware. com/ pdf/ Perf_ Best_ Practices_ vSphere4. 0. pdf (p.22)
PENAS Cdric
62
26 juin 2010
Les choix de lutilisateur qui a cr une machine virtuelle, ainsi que les choix dESX/ESXi peuvent
tre observs partir dune fichier de logs aprs avoir dmarr au moins une fois la VM ( /vmfs/volumes/datastore1/nom_machine_virtuelle/vmware.log ). Ainsi nous obtenons quelque chose
qui ressemble ceci :
Jun
Jun
Jun
Jun
Jun
25
25
25
25
25
16:10:52.536:
16:10:52.536:
16:10:52.536:
16:10:52.536:
16:10:52.536:
vmx|
vmx|
vmx|
vmx|
vmx|
Extrait de vmware.log
La premire ligne nous donne les modes disponibles (BT = Binary Translation, HV = Intel VT).
La deuxime ligne sont les choix fait par lutilisateur sur la VM par ordre de priorit.
La troisime ligne sont les prfrences de lOS invit.
PENAS Cdric
63
26 juin 2010
Activer lhyperthreading 7
2. Activer lhyperthreading dans le BIOS. Le nom utilis par les constructeurs peut tre Logical
Processor ou alors tout simplement Enable Hyperthreading .
7. http: // www. vmware. com/ pdf/ vsphere4/ r40/ vsp_ 40_ resource_ mgmt. pdf (p.19)
PENAS Cdric
64
26 juin 2010
CHAPITRE 6. LABO TD
Labo TD
6.1
Serveur Nagios
6.1.1
Nagios
Problmes rencontrs
Aprs linstallation, la configuration de Nagios peut tre vrifie avec la commande suivante :
sudo nagios3 v /etc/nagios3/nagios.cfg
Ce qui fixe lowner et le groupe du fichier root et donne la permission de lecture tout le
monde.
sudo chmod uog+rwx /var/lib/nagios3
PENAS Cdric
65
26 juin 2010
CHAPITRE 6. LABO TD
6.1.2
NTP 1
Afin que les heures prsentes sur les logs de Nagios soient toujours justes, il a fallu installer et
configurer un client NTP sur le serveur Nagios (10.1.1.5), qui se synchronisera avec le serveur NTP de
lUNIGE.
Le client, par dfaut sur Ubuntu, est ntpdate et cest par consquent celui qui a t install.
Il faut ensuite le configurer pour quil aille chercher les infos lUNIGE, en ditant /etc/default/ntpdate , comme ceci :
NTPDATE_USE_NTP_CONF=no
NTPSERVERS="129.194.184.1"
Contenu de ntpdate
A ct de a, il faut un dmon qui lance la synchronisation intervalle rgulier. Cest la tche de
ntp , qui sinstalle avec la commande suivante :
sudo aptget install ntp
server 129.194.184.1
Contenu de ntp.conf
Et pour terminer redmarrer le service :
sudo /etc/init.d/ntp restart
1. http://blog.nicolargo.com/2010/03/installation-dun-serveur-ntp-sous-ubuntu.html
PENAS Cdric
66
26 juin 2010
Stage au CTI
7.1
Migration vCenter
Le premier travail effectu au CTI a t la migration de vCenter dun Microsoft Windows Server
2003 32bits sur un Microsoft Windows Server 2008 64bits.
CORNE
NEWCORNE
Changement de
machine
RAM: 32GB
PENAS Cdric
67
26 juin 2010
Le point important, respecter ici, est de ne pas activer le HA, ni le DRS au moment de la cration
des clusters, mais une fois que toutes les machines ESX ont t ajoutes correctement, afin quelles
puissent tre configures toutes en mme temps.
7.2
CPU
7.2.1
Comme nous lavons dj expliqu, le choix du systme dexploitation que nous dsirons virtualiser
a une importance toute particulire sur les performances CPU.
En effet, certains systmes sont limits et ne peuvent pas supporter autant de CPU que lon souhaiterait.
Pour illustrer ceci, nous avons install Microsoft Windows Server 2003 et un Microsoft Windows Server 2008 . Les tests ont t effectus sur les IBM Blade HS21 donc il y a 8 cores disposition.
Deux VMs ont t cres avec chacune huit vCPUs. Sachant que le premier OS, qui est galement
le plus ancien, ne gre que quatre CPU au maximum, nous pouvons facilement nous douter du rsultat. Par contre, le second les gre entirement.
PENAS Cdric
68
26 juin 2010
7.2.2
Benchmarking
En ce qui concerne le benchmarking, VMware recommande certains logiciels, notamment les logiciels de PassMark 1 parmi lesquels se trouvent le trs clbre BurnInTest .
Pour effectuer nos tests, nous avons utilis PerformanceTest 7.0 en version dvaluation.
Nous avons donc lanc ce benchmark sur trois systmes diffrents sur des blades IBM HS21 :
1. Windows Server 2008 en natif
2. Windows Server 2008 virtualis
3. Windows Server 2003 virtualis
Voici les rsultats obtenus en ce qui concerne les performances CPU :
Integer (Op/s)
Floating (Op/s)
Prime (P/s)
Multimedia (Mat/s)
Compression (Oct/s)
Cryptage (Oct/s)
Win 2008
3261.1 M
4898.2 M
1423.0 K
26.8 M
11737.2 K
33.5 M
VM (Win 2008)
3085.5 M
4700.6 M
1380.0 K
26.2 M
11445.3 K
32.3 M
VM (Win 2003)
508.1 M
1976.6 M
1073.1 K
8.8 M
5879.0 K
16.7 M
PENAS Cdric
69
26 juin 2010
La conclusion que nous pouvons tirer de ce test, est que la virtualisation pratique avec prudence
et avec des choix rflchis, fournie des performances proche dun systme natif. au contraire, si elle est
utilise sans avoir pris la peine de se renseigner sur les bonnes pratiques mettre ne place, elle amne
des performances plus que dsastreuses.
7.3
Nous avons pu voir en 3.2.2 que le systme de stockage Hitachi, dont dispose le CTI, permet davoir
des performances leves mais ct de cela, ces baies permettent de mettre en place un mcanisme
appel Replication True Copy .
Il a t tudi et mis en place durant le stage et donc, nous allons en expliquer les principes et la
configuration ralise.
7.3.1
Problmatique
En analysant linfrastructure de stockage 3.2.2 utilise pour la virtualisation avec VMware, nous
pouvons vite nous rendre compte que les baies Hitachi et le rseau SAN sont des lments principaux
et surtout indispensables de cette infrastructure. A partir de cet instant, il devient obligatoire de se
demander ce qui se passerait si la baie de stockage, o se situent les fichiers des diffrentes VMs, venait
avoir un problme la rendant totalement indisponible ?
VMware cluster
ESX 2
ESX 1
VM 1
VM 2
VM 4
VM 5
x12
...
VM 6
VM 3
Hitachi USP-V
70
26 juin 2010
7.3.2
Mise en place
Afin de mettre en place ce mcanisme, il nous faut quelques pr-requis au niveau hardware et software.
Tout dabord, il nous faut obligatoirement deux baies (de mme type), afin quil y ait un sens
cette installation.
Ensuite il faut prvoir sur la baie secondaire autant de LUNs que nous souhaitons sauvegarder et
en plus 2 LUNs supplmentaires par baie qui serviront de command device qui est une spcificit
du mcanisme. Ces Command Device sont des LUNs spciaux, qui permettent de transmettre des
commandes la baie via un logiciel. Et pour terminer, deux machines virtuelles qui nous serviront
installer ce fameux logiciel Hitachi.
VMware cluster
ESX 1
ESX 3
ESX 2
ESX 4
ESX X
VM 1
VM 4
VM 7
VM 10
VM 13
VM 2
VM 5
VM 8
VM 11
VM 14
VM 6
VM 9
VM 12
VM de
contrle 2
VM de
contrle 1
CMD
CMD
CMD
CMD
S-VOL
Hitachi True copy
S-VOL
P-VOL
Hitachi USP-V
P-VOL => R/W
S-VOL => R
Hitachi USP-V
P-VOL => R/W
S-VOL => R
PENAS Cdric
71
26 juin 2010
7.3.3
Fonctionnement
7.3.4
7.3.4.1
Exemple concret
Cration dune paire de synchronisation
VMware cluster
ESX 1
ESX 2
ESX 3
ESX 4
ESX Z
VM 1
VM 4
VM 7
VM 10
VM 13
VM 2
VM 5
VM 8
VM 11
VM 14
VM 3
VM 6
VM 9
VM 12
ESX Y
ESX X
VM de
contrle 2
VM de
contrle 1
03:99
04:10
0B:87
0C:40
CMD
CMD
CMD
CMD
02:76
0B:86
PENAS Cdric
72
26 juin 2010
/etc/horcm0.conf
HORCM_MON
#ip_address service
localhost 7000
/etc/horcm1.conf
poll(10ms)
timeout(10ms)
1000
3000
HORCM_CMD
# serial 78362 USP-V Acacias
#dev_name
dev_name
\\.\CMD-78362:/dev/sd/
dev_name
HORCM_MON
#ip_address service
localhost 7001
poll(10ms)
1000
timeout(10ms)
3000
HORCM_CMD
# serial 78371 USP-V NHP
#dev_name
dev_name
\\.\CMD-78371:/dev/sd/
dev_name
HORCM_LDEV
#dev_group
dev_name
synchro1
vm1
HORCM_LDEV
#dev_group dev_name
synchro1
vm1
HORCM_INST
#dev_group ip_address
synchro1
localhost
service
7001
HORCM_INST
#dev_group ip_address
synchro1
localhost
service
7000
ESX X
ESX Y
VM de
contrle 1
VM de
contrle 2
03:99
04:10
0B:87
0C:40
CMD
CMD
CMD
CMD
02:76
0B:86
PENAS Cdric
73
26 juin 2010
/etc/horcm0.conf
HORCM_MON
#ip_address
localhost
service
7000
poll(10ms)
1000
HORCM_CMD
# serial 78362 USP-V Acacias
#dev_name
dev_name
\\.\CMD-78362:/dev/sd/
timeout(10ms)
3000
dev_name
11
13
HORCM_LDEV
#dev_group
synchro1
dev_name Serial#
vm1
78362
CU:LDEV(LDEV#) MU#
02:76
15
17
HORCM_INST
#dev_group
synchro1
ip_address
localhost
service
7001
horcm0.conf
Ligne 3-5 : On dfinit ici linstance du fichier courant, donc dans notre cas, linstance horcm0
grce son IP et le port qui sera utilis.
Ligne 7-10 : On dfinit ici le chemin daccs du Command Device, qui est mont sur la VM.
Ligne 12-14 : On dfinit ici le dpart de la paire de synchronisation en spcifiant un nom de
groupe auquel appartient la paire (au choix), nom de LUN (au choix), numro de srie de la baie,
identifiant du LUN.
Ligne 16-18 : On dfinit ici la deuxime instance se trouvant sur la VM 1, grce au groupe de la
paire, son IP et le port quelle utilise.
Le horcm1.conf sera configur de la mme faon en gardant bien lesprit quil va grer le Command
Device lautre bout de la paire de synchronisation, qui se trouve sur la baie NHP.
/etc/horcm1.conf
HORCM_MON
#ip_address
localhost
service
7001
poll(10ms)
1000
timeout(10ms)
3000
10
12
HORCM_CMD
# serial 78371 USP-V NHP
#dev_name
dev_name
\\.\CMD-78371:/dev/sd/
HORCM_LDEV
#dev_group
dev_name Serial#
PENAS Cdric
dev_name
CU:LDEV(LDEV#) MU#
74
26 juin 2010
14
16
18
synchro1
HORCM_INST
#dev_group
synchro1
vm1
78371
ip_address
localhost
0B:86
service
7000
horcm1.conf
A prsent que les fichiers de configuration sont prts sur les deux VMs, nous allons pouvoir crer
la paire de synchronisation. Il faut peut-tre juste rappeler que les instances 10 et 11 ne seront pas
utilises, car elles serviront seulement dans le cas o la VM de contrle 1 serait indisponible.
VMware cluster
ESX 1
ESX X
ESX 2
ESX 3
ESX 4
ESX Z
VM 1
VM 4
VM 7
VM 10
VM 13
VM 2
VM 5
VM 8
VM 11
VM 14
VM 3
VM 6
VM 9
VM 12
ESX Y
Instance 10
Instance 11
Instance 0
Instance 1
VM de
contrle 1
VM de
contrle 2
03:99
04:10
0B:87
0C:40
CMD
CMD
CMD
CMD
P-VOL
S-VOL
02:76
0B:86
Paire de synchronisation
Hitachi True Copy
PENAS Cdric
75
26 juin 2010
Group
synchro1 nom_ESX(L)
synchro1 nom_ESX(R)
PAIR
PAIR
NEVER
NEVER
100
100
b86
276
Ce qui est important de vrifier dans ce retour, cest la colonne status qui nous donne le statut de la
paire, et la colonne %, qui nous indique le taux de synchronisation. Nous remarquons galement que
le premier LUN 02 :76 est en P-VOL (Primary-Volume) pour indiquer la source et que le second LUN
0B :86 est en S-VOL (Secondary-Volume) pour indiquer la destination.
Nous sommes donc prsent dans la situation dcrite sur limage (FIG 7.9)
PENAS Cdric
76
26 juin 2010
CHAPITRE 8. CONCLUSION
Conclusion
Comme nous avons pu le voir tout au long de ce travail de diplme, la virtualisation reste un
domaine complexe ds quil sagit de comprendre tous les mcanismes qui entrent en jeu. Les notions
qui y sont rattaches sont galement nombreuses et ne sont pas toujours simples saisir, ce qui ne
facilite pas lapprentissage.
Nanmoins, la virtualisation a tendance se populariser et devenir indispensable pour ceux qui
en ont compris les avantages et qui savent la matriser. Dans certains domaines du monde professionnel, on en arrive presque navoir plus que des systmes virtualiss et, cest l, tout lenjeu de
comprendre et savoir comment configurer ces systmes pour une optimisation parfaite.
Dans ce projet de diplme, je pense avoir fait le tour des principaux outils de management/monitoring (Nagios, vCenter, Esxtop) et des points importants respecter lors de lutilisation de VMware
vSphere4 , essentiellement au niveau du CPU. Il est vident que ce domaine est en perptuelle volution et, par consquent, de nouveaux outils et de nouvelles dcouvertes voient le jour quotidiennement.
Ce projet maura galement permis de pouvoir travailler et me familiariser avec du matriel professionnel grce laide de M. Christian DELACOMBAZ (CTI), que je tiens encore remercier. Ainsi,
mes connaissances, des produits VMware et de matriels professionnels, tels que les Hitachi USPV et les IBM BladeCenter H , se sont vue enrichies.
Cette tude sera sans doute un bon point de dpart pour les personnes dsirant manager et optimiser une infrastructure virtualise, afin dacqurir les bases importantes.
PENAS Cdric
77
26 juin 2010
ANNEXE A. ANNEXES
A
A.1
A.1.1
Annexes
Configuration Nagios du labo
Priodes de temps
###############################################################################
# timeperiods.cfg
###############################################################################
10
12
14
16
18
20
22
24
26
28
# This defines a timeperiod where all times are valid for checks,
# notifications, etc. The classic "24x7" support nightmare. :-)
define timeperiod{
timeperiod_name 24x7
alias
24 Hours A Day, 7 Days A Week
sunday
00:00-24:00
monday
00:00-24:00
tuesday
00:00-24:00
wednesday
00:00-24:00
thursday
00:00-24:00
friday
00:00-24:00
saturday
00:00-24:00
}
# Here is a slightly friendlier period during work hours
define timeperiod{
timeperiod_name workhours
alias
Standard Work Hours
monday
09:00-17:00
tuesday
09:00-17:00
wednesday
09:00-17:00
thursday
09:00-17:00
friday
09:00-17:00
}
30
32
34
36
38
40
PENAS Cdric
78
26 juin 2010
ANNEXE A. ANNEXES
saturday
}
42
44
46
48
50
A.1.2
00:00-24:00
###############################################################################
# contacts.cfg
###############################################################################
10
12
###############################################################################
###############################################################################
#
# CONTACTS
#
###############################################################################
###############################################################################
14
# In this simple config file, a single contact will receive all alerts.
16
18
20
22
24
26
define contact{
contact_name
penas
alias
Penas Cedric
service_notification_period 24x7
host_notification_period
24x7
service_notification_options w,u,c,r
host_notification_options
d,r
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
email
cedric.penas-villamisar@etu.hesge.ch
}
28
30
32
34
36
###############################################################################
###############################################################################
#
# CONTACT GROUPS
#
###############################################################################
###############################################################################
38
40
42
define contactgroup{
PENAS Cdric
79
26 juin 2010
ANNEXE A. ANNEXES
contactgroup_name
alias
members
}
44
46
A.1.3
A.1.3.1
10
12
14
Htes
Firewall Clavister
define service {
use
generic-service
host_name
clavister
service_description Test DHCP
check_command
check_dhcp
}
#
#
#
#
#
Serveurs DNS
define host{
use
host_name
alias
display_name
address
parents
}
A.1.3.3
# a host definition for the gateway of the default route
define host {
use
generic-host
host_name clavister
alias
Routeur_Firewall vers lexterieur
address
10.1.0.1
parents
router_unige
}
A.1.3.2
1
admins
Nagios Administrators
penas
generic-host
dns
Serveur DNS
Serveur DNS
129.194.184.84
clavister
Serveurs de fichiers
10
12
14
define host{
use
host_name
alias
display_name
address
parents
}
PENAS Cdric
generic-host
; Name of host template$
fileserver1
Serveur de fichiers1
Serveur de fichiers1
10.1.1.1
clavister
80
26 juin 2010
ANNEXE A. ANNEXES
16
18
20
22
define host{
use
host_name
alias
display_name
address
parents
}
generic-host
; Name of host template to use
fileserver2
Serveur de fichiers2
Serveur de fichiers2
10.1.1.2
clavister
24
26
28
30
32
34
36
38
40
define service{
use
host_name
service_description
check_command
}
define service{
use
host_name
service_description
check_command
}
A.1.3.4
1
11
13
#
#
#
#
#
generic-service
; Name of servi$
fileserver1
Espace disque
check_all_disks!20%!10%
generic-service
; Name of servi$
fileserver2
Espace disque
check_all_disks!20%!10%
Serveur Nagios
define host{
use
generic-host
host_name
nagios
alias
Serveur Nagios
display_name
Serveur Nagios
address
127.0.0.1
parents
clavister
}
15
17
19
21
23
25
#define
#
#
#
#
#
service{
use
host_name
service_description
check_command
}
PENAS Cdric
generic-service
; Name of service template to use
nagios
Disk Space
check_all_disks!20%!10%
81
26 juin 2010
ANNEXE A. ANNEXES
27
29
31
33
35
37
generic-service
nagios
Current Users
check_users!2!5
39
41
43
45
47
49
generic-service
nagios
Total Processes
check_procs!250!400
51
53
57
59
61
define service{
use
host_name
service_description
check_command
}
A.1.3.5
1
Imprimante
define host{
use
host_name
alias
display_name
address
parents
}
A.1.3.6
generic-service
; Name of service template to use
nagios
Current Load
check_load!5.0!4.0!3.0!10.0!6.0!4.0
generic-host
printer
Imprimante A408
Imprimante A408
10.1.0.22
clavister
Routeur UNIGE
define host{
use
host_name
PENAS Cdric
generic-host
router_unige
82
26 juin 2010
ANNEXE A. ANNEXES
alias
display_name
address
}
A.1.3.7
Serveur Web
define host{
use
host_name
alias
display_name
address
parents
clavister
}
A.1.4
Routeur UNIGE
Routeur UNIGE
129.194.184.1
generic-host
web
Serveur Web
Serveur Web
129.194.184.80
Groupes dhtes
# Some generic hostgroup definitions
11
13
define hostgroup {
hostgroup_name lan
alias
Equipements du reseau LAN du labo
members
nagios, fileserver1, fileserver2, clavister, printer
}
15
17
19
define hostgroup {
hostgroup_name dmz
alias
DMZ
members
web, dns
}
21
23
25
define hostgroup {
hostgroup_name unige
alias
Reseau UNIGE
members
router_unige
}
27
33
35
#define hostgroup {
29
31
PENAS Cdric
83
26 juin 2010
ANNEXE A. ANNEXES
37
39
41
43
45
47
#
hostgroup_name ssh-servers
# alias
SSH servers
# members
localhost
#
}
# nagios doesnt like monitoring hosts without services, so this is
# a group for devices that have no other "services" monitorable
# (like routers w/out snmp for example)
#define hostgroup {
#
hostgroup_name ping-servers
# alias
Test du ping pour tous
# members
*
#
}
A.1.5
Services
# check all is alive
#define service {
# hostgroup_name all
# service_description ISALIVE
# check_command
check-router-alive_4
# use
generic-service
# }
10
12
14
16
18
20
22
24
26
28
30
32
34
PENAS Cdric
84
26 juin 2010
ANNEXE A. ANNEXES
A.2
1
11
13
15
17
19
21
23
25
27
29
31
33
35
37
/*****************************************************************************
*
* Nagios check_ping plugin
*
* License: GPL
* Copyright (c) 2000-2007 Nagios Plugins Development Team
*
* Description:
*
* This file contains the check_ping plugin
*
* Use the ping program to check connection statistics for a remote host.
*
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*
*****************************************************************************/
"common.h"
"netutils.h"
"popen.h"
"utils.h"
39
41
43
45
47
49
51
53
PENAS Cdric
85
26 juin 2010
ANNEXE A. ANNEXES
57
59
61
63
65
67
69
char *warn_text;
71
73
75
77
79
81
83
85
int
main (int argc, char **argv)
{
char *cmd = NULL;
char *rawcmd = NULL;
int result = STATE_UNKNOWN;
int this_result = STATE_UNKNOWN;
int i;
setlocale (LC_ALL, "");
setlocale (LC_NUMERIC, "C");
bindtextdomain (PACKAGE, LOCALEDIR);
textdomain (PACKAGE);
87
89
91
93
95
97
99
101
103
105
107
/* If ./configure finds ping has timeout values, set plugin alarm slightly
* higher so that we can use response from command line ping */
#if defined(PING_PACKETS_FIRST) && defined(PING_HAS_TIMEOUT)
alarm (timeout_interval + 1);
#else
alarm (timeout_interval);
#endif
109
PENAS Cdric
86
26 juin 2010
ANNEXE A. ANNEXES
113
115
117
119
121
123
125
127
129
#ifdef PING6_COMMAND
if (address_family != AF_INET && is_inet6_addr(addresses[i]))
rawcmd = strdup(PING6_COMMAND);
else
rawcmd = strdup(PING_COMMAND);
#else
rawcmd = strdup(PING_COMMAND);
#endif
/* does the host address of number of packets argument come first? */
#ifdef PING_PACKETS_FIRST
# ifdef PING_HAS_TIMEOUT
asprintf (&cmd, rawcmd, timeout_interval, max_packets, addresses[i]);
# else
asprintf (&cmd, rawcmd, max_packets, addresses[i]);
# endif
#else
asprintf (&cmd, rawcmd, addresses[i], max_packets);
#endif
131
133
135
if (verbose >= 2)
printf ("CMD: %s\n", cmd);
/* run the command */
this_result = run_ping (cmd, addresses[i]);
137
139
141
143
145
147
149
151
153
163
if (display_html == TRUE)
printf ("<A HREF=%s/traceroute.cgi?%s>", CGIURL, addresses[i]);
if (pl == 100)
printf (_("PING %s - %sPacket loss = %d%%"), state_text (this_result), warn_text,
pl);
else
printf (_("PING %s - %sPacket loss = %d%%, RTA = %2.2f ms"),
state_text (this_result), warn_text, pl, rta);
if (display_html == TRUE)
printf ("</A>");
165
155
157
159
161
PENAS Cdric
87
26 juin 2010
ANNEXE A. ANNEXES
167
169
171
173
if (verbose >= 2)
printf ("%f:%d%% %f:%d%%\n", wrta, wpl, crta, cpl);
175
177
179
181
return result;
183
}
185
187
189
191
193
195
197
199
201
203
205
207
209
211
213
if (argc < 2)
return ERROR;
for (c = 1; c < argc; c++) {
if (strcmp ("-to", argv[c]) == 0)
strcpy (argv[c], "-t");
if (strcmp ("-nohtml", argv[c]) == 0)
strcpy (argv[c], "-n");
}
215
217
219
while (1) {
c = getopt_long (argc, argv, "VvhnL46t:c:w:H:p:", longopts, &option);
if (c == -1 || c == EOF)
break;
221
PENAS Cdric
88
26 juin 2010
ANNEXE A. ANNEXES
223
225
227
229
231
233
235
237
239
241
243
245
247
249
251
253
255
257
259
261
263
265
267
269
271
273
275
277
switch (c) {
case ?: /* usage */
usage5 ();
case h: /* help */
print_help ();
exit (STATE_OK);
break;
case V: /* version */
print_revision (progname, NP_VERSION);
exit (STATE_OK);
break;
case t: /* timeout period */
timeout_interval = atoi (optarg);
break;
case v: /* verbose mode */
verbose++;
break;
case 4: /* IPv4 only */
address_family = AF_INET;
break;
case 6: /* IPv6 only */
#ifdef USE_IPV6
address_family = AF_INET6;
#else
usage (_("IPv6 support not available\n"));
#endif
break;
case H: /* hostname */
ptr=optarg;
while (1) {
n_addresses++;
if (n_addresses > max_addr) {
max_addr *= 2;
addresses = realloc (addresses, sizeof(char*) * max_addr);
if (addresses == NULL)
die (STATE_UNKNOWN, _("Could not realloc() addresses\n"));
}
addresses[n_addresses-1] = ptr;
if ((ptr = index (ptr, ,))) {
strcpy (ptr, "");
ptr += sizeof(char);
} else {
break;
}
}
break;
case p: /* number of packets to send */
if (is_intnonneg (optarg))
max_packets = atoi (optarg);
else
usage2 (_("<max_packets> (%s) must be a non-negative number\n"), optarg);
break;
case n: /* no HTML */
display_html = FALSE;
break;
case L: /* show HTML */
PENAS Cdric
89
26 juin 2010
ANNEXE A. ANNEXES
display_html = TRUE;
break;
case c:
get_threshold (optarg, &crta, &cpl);
break;
case w:
get_threshold (optarg, &wrta, &wpl);
break;
}
279
281
283
285
287
289
c = optind;
if (c == argc)
return validate_arguments ();
291
293
295
297
299
301
if (addresses[0] == NULL) {
if (is_host (argv[c]) == FALSE) {
usage2 (_("Invalid hostname/address"), argv[c]);
} else {
addresses[0] = argv[c++];
n_addresses++;
if (c == argc)
return validate_arguments ();
}
}
303
305
307
309
311
313
315
317
319
321
323
if (wpl == UNKNOWN_PACKET_LOSS) {
if (is_intpercent (argv[c]) == FALSE) {
printf (_("<wpl> (%s) must be an integer percentage\n"), argv[c]);
return ERROR;
} else {
wpl = atoi (argv[c++]);
if (c == argc)
return validate_arguments ();
}
}
if (cpl == UNKNOWN_PACKET_LOSS) {
if (is_intpercent (argv[c]) == FALSE) {
printf (_("<cpl> (%s) must be an integer percentage\n"), argv[c]);
return ERROR;
} else {
cpl = atoi (argv[c++]);
if (c == argc)
return validate_arguments ();
}
}
325
327
329
331
333
PENAS Cdric
90
26 juin 2010
ANNEXE A. ANNEXES
}
335
337
339
341
343
345
347
if (max_packets == -1) {
if (is_intnonneg (argv[c])) {
max_packets = atoi (argv[c++]);
} else {
printf (_("<max_packets> (%s) must be a non-negative number\n"), argv[c]);
return ERROR;
}
}
349
351
353
355
357
}
359
361
363
365
367
369
int
get_threshold (char *arg, float *trta, int *tpl)
{
if (is_intnonneg (arg) && sscanf (arg, "%f", trta) == 1)
return OK;
else if (strpbrk (arg, ",:") && strstr (arg, "%") && sscanf (arg, "%f%*[:,]%d%%", trta,
tpl) == 2)
return OK;
else if (strstr (arg, "%") && sscanf (arg, "%d%%", tpl) == 1)
return OK;
371
373
}
375
377
379
381
int
validate_arguments ()
{
float max_seconds;
int i;
383
385
387
PENAS Cdric
91
26 juin 2010
ANNEXE A. ANNEXES
389
}
else if (wpl == UNKNOWN_PACKET_LOSS) {
printf (_("<wpl> was not set\n"));
return ERROR;
}
else if (cpl == UNKNOWN_PACKET_LOSS) {
printf (_("<cpl> was not set\n"));
return ERROR;
}
else if (wrta > crta) {
printf (_("<wrta> (%f) cannot be larger than <crta> (%f)\n"), wrta, crta);
return ERROR;
}
else if (wpl > cpl) {
printf (_("<wpl> (%d) cannot be larger than <cpl> (%d)\n"), wpl, cpl);
return ERROR;
}
391
393
395
397
399
401
403
405
407
if (max_packets == -1)
max_packets = DEFAULT_MAX_PACKETS;
409
411
413
415
417
419
if (n_addresses == 0) {
usage (_("You must specify a server address or host name"));
}
421
423
return OK;
425
}
427
429
431
433
int
run_ping (const char *cmd, const char *addr)
{
char buf[MAX_INPUT_BUFFER];
int result = STATE_UNKNOWN;
435
437
441
443
439
PENAS Cdric
92
26 juin 2010
ANNEXE A. ANNEXES
if (verbose >= 3)
printf("Output: %s", buf);
445
447
451
453
455
457
459
461
463
465
467
469
471
473
}
475
477
479
481
483
485
487
489
491
PENAS Cdric
93
26 juin 2010
ANNEXE A. ANNEXES
493
}
}
495
}
497
501
503
if (warn_text == NULL)
warn_text = strdup("");
505
507
return result;
509
511
513
515
517
519
521
523
525
527
529
531
533
535
537
539
541
543
int
error_scan (char buf[MAX_INPUT_BUFFER], const char *addr)
{
if (strstr (buf, "Network is unreachable") ||
strstr (buf, "Destination Net Unreachable")
)
die (STATE_CRITICAL, _("CRITICAL - Network Unreachable (%s)"), addr);
else if (strstr (buf, "Destination Host Unreachable"))
die (STATE_CRITICAL, _("CRITICAL - Host Unreachable (%s)"), addr);
else if (strstr (buf, "Destination Port Unreachable"))
die (STATE_CRITICAL, _("CRITICAL - Bogus ICMP: Port Unreachable (%s)"), addr);
else if (strstr (buf, "Destination Protocol Unreachable"))
die (STATE_CRITICAL, _("CRITICAL - Bogus ICMP: Protocol Unreachable (%s)"), addr);
else if (strstr (buf, "Destination Net Prohibited"))
die (STATE_CRITICAL, _("CRITICAL - Network Prohibited (%s)"), addr);
else if (strstr (buf, "Destination Host Prohibited"))
die (STATE_CRITICAL, _("CRITICAL - Host Prohibited (%s)"), addr);
else if (strstr (buf, "Packet filtered"))
die (STATE_CRITICAL, _("CRITICAL - Packet Filtered (%s)"), addr);
else if (strstr (buf, "unknown host" ))
die (STATE_CRITICAL, _("CRITICAL - Host not found (%s)"), addr);
else if (strstr (buf, "Time to live exceeded"))
die (STATE_CRITICAL, _("CRITICAL - Time to live exceeded (%s)"), addr);
if (strstr (buf, "(DUP!)") || strstr (buf, "DUPLICATES FOUND")) {
if (warn_text == NULL)
warn_text = strdup (_(WARN_DUPLICATES));
else if (! strstr (warn_text, _(WARN_DUPLICATES)) &&
asprintf (&warn_text, "%s %s", warn_text, _(WARN_DUPLICATES)) == -1)
die (STATE_UNKNOWN, _("Unable to realloc warn_text"));
return (STATE_WARNING);
}
545
return (STATE_OK);
PENAS Cdric
94
26 juin 2010
ANNEXE A. ANNEXES
547
549
551
553
void
print_help (void)
{
print_revision (progname, NP_VERSION);
555
557
559
561
printf ("\n\n");
563
print_usage ();
565
printf (_(UT_HELP_VRSN));
printf (_(UT_EXTRA_OPTS));
567
printf (_(UT_IPv46));
569
571
573
575
577
579
581
585
587
589
591
593
595
597
printf ("\n");
printf ("%s\n", _("THRESHOLD is <rta>,<pl>% where <rta> is the round trip average travel
"));
printf ("%s\n", _("time (ms) which triggers a WARNING or CRITICAL state, and <pl> is the")
);
printf ("%s\n", _("percentage of packet loss to trigger an alarm state."));
printf ("\n");
printf ("%s\n", _("This plugin uses the ping command to probe the specified host for
packet loss"));
printf ("%s\n", _("(percentage) and round trip average (milliseconds). It can produce HTML
output"));
printf ("%s\n", _("linking to a traceroute CGI contributed by Ian Cass. The CGI can be
found in"));
printf ("%s\n", _("the contrib area of the downloads section at http://www.nagios.org/"));
#ifdef NP_EXTRA_OPTS
printf ("\n");
printf ("%s\n", _("Notes:"));
PENAS Cdric
95
26 juin 2010
ANNEXE A. ANNEXES
599
printf (_(UT_EXTRA_OPTS_NOTES));
#endif
printf (_(UT_SUPPORT));
601
}
603
605
607
609
void
print_usage (void)
{
printf (_("Usage:"));
printf ("%s -H <host_address> -w <wrta>,<wpl>%% -c <crta>,<cpl>%%\n", progname);
printf (" [-p packets] [-t timeout] [-4|-6]\n");
}
PENAS Cdric
96
26 juin 2010