30
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 [email protected] Responsable de l’UE Jean Patrick GELAS [email protected]

Stockage Cloud et Virtualisation

  • Upload
    others

  • View
    9

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Stockage Cloud et Virtualisation

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

[email protected]

Responsable de l’UE

Jean Patrick GELAS

[email protected]

Page 2: Stockage Cloud et Virtualisation

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

Page 3: Stockage Cloud et Virtualisation

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 …)

Page 4: Stockage Cloud et Virtualisation

Architecture d’un PC

4

Page 5: Stockage Cloud et Virtualisation

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

Page 6: Stockage Cloud et Virtualisation

La mémoire

6

Source : Nicolas Louvet (LIF6)

Page 7: Stockage Cloud et Virtualisation

Architecture d’un CPU

7

Source Intel.com architecture d’un CPU i7

Page 8: Stockage Cloud et Virtualisation

Architecture d’un CPU

8

Page 9: Stockage Cloud et Virtualisation

Architecture d’un CPU

9 Source : wikipedia

Page 10: Stockage Cloud et Virtualisation

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

Page 11: Stockage Cloud et Virtualisation

Multiprocessus : la mémoire

11

Comment partager la mémoire du système

sans modifier le programme à exécuter ?

Page 12: Stockage Cloud et Virtualisation

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

Page 13: Stockage Cloud et Virtualisation

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

Page 14: Stockage Cloud et Virtualisation

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

Page 15: Stockage Cloud et Virtualisation

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é ?

Page 16: Stockage Cloud et Virtualisation

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

Page 17: Stockage Cloud et Virtualisation

Multiprocessus : le CPU

17

Pour le processus à charger :

• Recharger les registres

• Recharger les caches de plus hauts niveaux

• Relancer l’exécution

Page 18: Stockage Cloud et Virtualisation

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

Page 19: Stockage Cloud et Virtualisation

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

Page 20: Stockage Cloud et Virtualisation

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 …)

Page 21: Stockage Cloud et Virtualisation

Introduction à la virtualisation

21

Les 4 principaux hyperviseurs du marché :

•VMWARE

•Hyper-V

•KVM

•Xen

Page 22: Stockage Cloud et Virtualisation

Virtualisation par

translation binaire

22

Page 23: Stockage Cloud et Virtualisation

Virtualisation par

assistance matérielle

23

Page 24: Stockage Cloud et Virtualisation

Para virtualisation

24

Page 25: Stockage Cloud et Virtualisation

Bilan virtualisation

25

Translation

binaire

Assistance

matérielle

Para

virtualisation

Transparence

OS invité

++ + --

Performance -- + +

Transparence

Matérielle

++ -- ++

Mutli-

architectures

Oui Non Non

Page 26: Stockage Cloud et Virtualisation

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.

Page 27: Stockage Cloud et Virtualisation

Architecture NUMA

27

Page 28: Stockage Cloud et Virtualisation

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

Page 29: Stockage Cloud et Virtualisation

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

Page 30: Stockage Cloud et Virtualisation

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.