stockage cloud et virtualisation
TRANSCRIPT
Stockage Cloud et Virtualisation
1
Organisation du cours :
18h CM
4 Octobre
8 Novembre
18 Novembre
16 Décembre
5 Avril
18h TP
06 Janvier
13 Janvier
12 Avril
12 Avril
05 Mai
12 Juin
Jacques DELMAS
Responsable de l’UE
Jean Patrick GELAS
Introduction à la virtualisation
2
•Définition d’un processus
•Architecture d’un ordinateur
•La gestion multiprocessus
•Le rôle du système d’exploitation
•Définition de la virtualisation en VM
•Les différentes formes de virtualisation
•L’architecture NUMA
•Analyse de performance
Processus
3
•Suite d’instructions
•Threads d’exécution (au moins 1)
•Un espace mémoire (découpé en 3 zones code + données, pile, Tas)
•Autres (Socket, descripteurs de fichier …)
Architecture d’un PC
4
La mémoire
5
Dans l’idéal elle doit être :
•Rapide
•Non volatile
•Avec un temps d’accès constant
•Bon marché
stratégie de mise en cache
La mémoire
6
Source : Nicolas Louvet (LIF6)
Architecture d’un CPU
7
Source Intel.com architecture d’un CPU i7
Architecture d’un CPU
8
Architecture d’un CPU
9 Source : wikipedia
La gestion multiprocessus
10
Enjeux :
• Partager l’accès aux ressources
• Garantir que le processus et seulement celui-ci accède à sa mémoire
• Arbitrer l’accès au CPU
Multiprocessus : la mémoire
11
Comment partager la mémoire du système
sans modifier le programme à exécuter ?
Multiprocessus : la mémoire
12
•Vider et recharger la mémoire à chaque changement de processus
•Découper la mémoire en zone et allouer une zone à chacun
•Faire de la pagination
Multiprocessus : la pagination
13
Pro
cessus 1
(mém
oire v
irtu
elle
)
Pro
cessus 2
(mém
oire v
irtu
elle
)
Mém
oire
physiq
ue
Traduction de
l’adresse
Multiprocessus : le CPU
14
Un microprocesseur est composé :
• De circuits de calcul
• De registres
• De cache
Les instructions sont de la forme
Code de l’opération Adresse1 Adresse2
Multiprocessus : le CPU
15
Comment passer d’un processus à un autre tout en
garantissant que le processus interrompu pourra
reprendre normalement son traitement quand il sera
à nouveau ordonnancé ?
Multiprocessus : le CPU
16
Réponse :
Pour le processus à décharger :
• Interrompre l’exécution
• Sauvegarder les registres soit en RAM soit dans une zone du
cache dédiée à cet effet
• Invalider les caches de plus hauts niveaux (L1 et L2)
• Copier les caches de plus hauts niveaux dans une zone spécifique
du cache de plus bas niveau (L3)
• Invalider le cache de plus bas niveau
Multiprocessus : le CPU
17
Pour le processus à charger :
• Recharger les registres
• Recharger les caches de plus hauts niveaux
• Relancer l’exécution
OS
18
Le rôle de l’OS :
• Arbitrer et régir l’accès aux ressources matérielles
• Garantir la sécurité des accès
• Organiser les mémoires (RAM et stockage)
L’OS a un accès total aux instructions du CPU (Ring0)
Les applications ont en général (sous Linux, Unix et Windows) un accès
partiel aux instructions (Ring 3)
Les applications lancent un appel système quand elles ont besoin d’une
instruction ne faisant par partie du ring3
La virtualisation en VM
19
Qu’est-ce que la virtualisation en machine virtuelle ?
Réponse :
Faire tourner plusieurs systèmes d’exploitation en temps partagé ou
concurrent sur le même matériel
La virtualisation en VM
20
Quelle différence entre un simple processus et une VM ?
Réponse :
•Une VM peut être vue comme un processus quelconque si l’on
émule une machine x86. Cela nécessite une couche entre l’OS
hôte et l’OS invité translation binaire.
Cependant :
• Se pose les problèmes liés aux performances
• Se pose la question de quel type de drivers à émuler
• Se pose la question de l’accès aux périphériques (ports USB,
réseau …)
Introduction à la virtualisation
21
Les 4 principaux hyperviseurs du marché :
•VMWARE
•Hyper-V
•KVM
•Xen
Virtualisation par
translation binaire
22
Virtualisation par
assistance matérielle
23
Para virtualisation
24
Bilan virtualisation
25
Translation
binaire
Assistance
matérielle
Para
virtualisation
Transparence
OS invité
++ + --
Performance -- + +
Transparence
Matérielle
++ -- ++
Mutli-
architectures
Oui Non Non
Bilan virtualisation
26
Actuellement les 4 principaux hyperviseurs utilisent un mélange des 3
technologies.
Par exemple : VMware (Esxi 5.5)
• Translation binaire : certains contrôleurs de stockage, l’interface réseau e1000
• Para virtualisation : l’interface réseau VMXnet3
• Translation binaire : les instructions CPU
Chaque éditeur adapte son produit afin d’obtenir les meilleures performances tout
en garantissant une bonne stabilité et des fonctions avancées telles que la migration
à chaud de machines ou encore la mise en veille des VMs.
Architecture NUMA
27
Architecture NUMA
28
Quelle est la particularité du modèle NUMA ?
Réponse : la RAM n’a plus un accès en temps constant
Comment peut-on garantir un temps constant pour un accès RAM
d’une VM ?
Réponse : en créant une affinité entre la socket d’exécution et la RAM où elle
est stockée
Evaluation de performances
29
Objectif : mettre un maximum de VM sur un même serveur sans pénaliser les
performances individuelles de chaque VM
Limites au niveau CPU :
• Même si le CPU n’a pas été à 100% sur l’intervalle, certaines Vm ont pourtant
pu attendre
•Le CPU n’est pas qu’une unité de calcul; c’est aussi une pseudo unité de
stockage avec ses caches
Evaluation de performances
30
Impact des interférences de cache sur les
performances. Expérience réalisée sur un
processeur quad-coeurs Nehalem 8M de
cache.