Stockage Cloud et Virtualisation

Preview:

Citation preview

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

Jacques.delmas@univ-lyon1.fr

Responsable de l’UE

Jean Patrick GELAS

Jean-patrick.gelas@univ-lyon1.fr

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.

Recommended