Techniques et enjeux de virtualisation

Réseau avancé et virtualisation
Plan
●
1. Virtualisation
●
1.1 Notions autour de la virtualisation
●
1.2 Mécanismes nécessaires à la virtualisation
●
2. Réseau : VLAN
●
3. Exemple au SCI
1. Virtualisation
1.1 Notions autour de la virtualisation
Virtualisation
●
Création de « fausses » versions d'un matériel,
d'un OS, d'un stockage ou d'un réseau
●
●
●
Consiste à faire fonctionner plusieurs OS sur une
même machine
Objectif : améliorer le passage à l'échelle,
réduire l'utilisation des ressources
Avantages
●
Transparence, isolation, partage, manipulation des
images (sauvegarde, copie, restauration, gel,
migration, etc.)
Virtualisation
●
Inconvénients
●
Émulation (= imitation)
●
●
●
●
Remplacer un élément matériel par un élément logiciel
(nécessite une connaissance totale)
= traduction du code émulé
Différent de la simulation = implémentation d'un modèle
abstrait (connaissance partielle)
Différent de la virtualisation = peut utiliser les
ressources de la machine hôte sans modifier ce que le
système invité fait (la virtualisation peut utiliser
l'émulation)
Virtualisation
●
Types de virtualisation
●
Matérielle, bureau, logiciel, mémoire, stockage,
données, réseau
Virtualisation materielle (ou
plateforme)
●
●
Faire tourner un OS pour une guest machine
(virtuelle) sur une host machine (réelle)
Logiciel qui tourne sur la machine réelle =
hyperviseur
●
●
Virtualisation complète ou partielle (si on
n'implèmente pas tout, parfois des problèmes pour
des programmes)
Paravirtualisation = on ne simule pas
l'environnement matériel => les programmes
hébergés doivent être modifiés
Paravirtualisation
●
●
Pourquoi ? Exécuter des tâches en env. virtuel
prend des ressources => on utilise des hooks
pour exécuter des tâches en réel
Inconvénients
●
●
Il faut porter l'OS avec l'API de la para-virtualisation
Avantages
●
Gain de performance
Virtualisation du bureau
●
●
(Virtual Desktop Infrastructure)
Le bureau est une application cliente qui vient se connecter sur
un serveur (sauvegarde + stockage + protection des données +
mise à jour sont gérées ailleurs)
●
●
●
●
Exemple : X window et des terminaux
Avantages : les machines clientes peuvent être plus légères, on peut
accéder à son environnement de bureau de n'importe quel endroit,
maintenance du bureau plus simple,
Exemple : remote administration
Inconvénients : équipements « locaux » (imprimantes, cartes sons),
accès réseau (connectivité + bande passante)
Virtualisation mémoire
●
Virtualisation mémoire
●
●
●
La mémoire de chaque machine est agrégée dans une mémoire
commune
Gestion à faire : accès à la mémoire (ajout, lecture), suppression
de la mémoire, assignation de la mémoire aux noeuds (joue sur
les performances)
Mémoire virtuelle (dans les OS)
●
●
= une application croit avoir toute la mémoire pour elle (flat
memory, plus que la mémoire de l'ordinateur)
Espace mémoire divisé en pages virtuelles, table de
correspondance des pages virtuelles vers pages réelles, pages
réelles peuvent être en mémoire ou sur disque (swapping)
Virtualisation stockage
●
Abstraction stockage logique et physique
●
●
Réplication (data protection features), accès
homogène à des données hétérogènes
NAS = Network-Attached Storage
●
Avantages : migration des données transparente,
utilisation plus efficace (plutôt que de recherche des
ressources disponibles)
Virtualisation données
●
●
Abstraction des systèmes (bases de données,
dépôts de fichiers, sites web, etc.) avec
sérialisation, format, etc.
But
●
Accès (virtuel) depuis un endroit logique
●
Transformation possible des données
●
Fédération des données sous un seul système
Virtualisation réseau
●
Création d'un réseau virtuel
●
Externe
–
●
But : placer des entités physiquement proches dans des
réseaux différents (VLAN), ou placer des entités
physiquement éloignées dans un même réseau (VPN)
Interne
–
But : tester les applications réseau, recréer des
conditions réseaux, etc
Virtualisation services
●
Émuler des services pour enlever des contraintes de
développement et de test (fonctionnalités non encore
développées dans un logiciel, fonctionnalités qui
évoluent, etc)
●
Virtualiser une partie seulement du système
●
Comment fonctionne la virtualisation des services ?
●
Enregistrement de dialogues réels (ou logs)
●
Examen des interfaces proposées entre les composants
●
Manuellement (approche boîte noire par exemple)
Cloud computing
●
Accès via le réseau (à la demande et en libre-service) à des
ressources virtuelles et mutualisées
●
Avantage = continuité de service
●
Mécanismes
●
●
●
Application qui fournit le service, plate-forme qui exécute,
infrastructure qui supporte la plate-forme, données
Flexibilité : Séparation en couches, Isolation des services (pour
permettre un remplacement dynamique)
SAAS (software as a service), PAAS (platform), IAAS
(infrastructure), DAAS (data)
Cloud computing
●
●
●
●
Pile : clients / services / application / plateforme /
stockage / infrastructure
Exemple : google apps, dropbox (stockage)
Conséquences : grands acteurs vont se développer
(investissement important pour IAAS, data-centers)
Avantage
●
Mutualisation = gain économique, évolutivité des services,
peu d'investissement, flexible (peu dépendant du matériel
), fiable (résistance aux pannes)
Cloud computing
●
Inconvénients
●
Perte de la maîtrise des données (localisation,
sécurité), perte du contrôle des applications
SAAS
●
●
SAAS (dans le cloud) = un logiciel est découpé
en services, services de bases combinés pour
former un service de haut niveau
Exemple :
●
●
quand un jeu sauvegarde ses musiques dans un
format perso => non isolé
Quand un jeu utilise des .mp3, éventuellement à
partir d'une URL => isolé
PAAS
●
PAAS (dans le cloud)
●
●
Le client maintient ses applications
L'environnement d'exécution et l'infrastructure sont
dans le cloud (infrastructure masquée)
IAAS
●
IAAS (dans le cloud)
●
●
●
Fourniture de machines (virtuelles ou physiques) ou
autres équipements
Images dans un dépôt de fichiers d'images
virtuelles
L'utilisateur configure/installe ses machines
DAAS
●
DAAS (dans le cloud) = les données sont mises
à dispositio
●
●
La plateforme de sauvegarde n'a plus d'importance
Qualité des données (sécurité, redondance,
performances, disponibilité)
1.2 Mécanismes derrière la virtualisation
Mécanismes derrière la
virtualisation
●
●
Émulation
Snapshots = sauvegarde d'un état à un instant t (sert pour d'autres
mécanismes)
●
●
●
●
●
●
Reverting
Problème de sauvegarde des snapshots : espace mémoire (sauvegarde
disque dur), temps de sauvegarde, bande passante
Téléportation = le snapshot est exécuté par un autre hyperviseur
Failover = basculement automatique sur un hyperviseur de secours, à
partir du dernier état cohérent (utilise un heartbeat)
Load balancing
Redondance passive, active
2. Réseau - VLAN
VLAN
●
VLAN = Virtual LAN
●
●
●
●
Séparation d'un réseau physique en différents domaines de broadcast (niveau
2 de la couche OSI)
Créé pour la performance initialement (dans le prolongement du gain
concentrateurs => commutateurs qui s'occupe des trames normales, l'objectif
était ensuite de réduire les domaines de broadcast de la méthode d'accès)
Se fait via des switchs ou des routeurs
Mécanisme de séparation
●
Par port
●
Par adresse source (MAC ou IP)
●
Par marquage (tagging) des paquets : 802.1Q (appelé dot1q)
–
–
Ajout d'un champ de 32 bits entre l'adresse MAC source et le champ type (Ethernet 2) /
longueur (802.3)
Rappel : fusion de ces deux standards en 1997 en 802.3x
VLAN
●
Tagging
●
TPID = tag protocol ID = 16 bits = 0x8100 pour les trames marquées
●
TCID = tag control ID = 16 bits
–
–
–
●
●
PCP = priority code point = 3 bits : équivalent à la priorité du traffic
DE = drop eligible = 1 bit = peut-on détruire ces trames ?
VID = VLAN identifier = 12 bits = indique à quel VLAN la trame appartient
Remarque sur les VID
●
0x000 et 0xFFF sont réservés
●
0x001 est souvent utilisé pour un VLAN de maintenance
Double tagging
●
Permet aux FAI d'utiliser un VLAN en interne, sur des traffics qui sont déjà
marqués (ajoute un champ supplémentaire au niveau MAC)
VLAN
●
Multiplexage = trunk
●
●
Un trunk est un câble par lequel plusieurs VLAN différents passent
Définitions
●
VLAN natif = VLAN par défaut
●
Trames natives = trames destinées au VLAN natif
●
Port trunk = port qui envoie et reçoit les trames marquées sur tous les
VLAN, sauf sur le VLAN natif
–
●
En fait, ce sont les seuls ports qui ajoutent les tags
Fonctionnement
●
●
●
Les trames pour le VLAN natif ne sont pas marquées
Si une trame non marquée est reçue sur un port trunk, on la marque
avec le VLAN natif
Si une trame est marquée, elle est envoyée normalement pour son VLAN
VLAN
●
Avantages
●
Simplifier la gestion
●
Séparer les flux
●
●
●
Optimiser la bande passante (en réduisant le
domaine de broadcast)
Sécurité (logique)
Remarques
●
On peut attribuer le VLAN en fonction du protocole
source
VLAN
●
Remarques
●
Private VLAN = on interdit aux switchs de
communiquer autrement que par le uplink, et on
place une entité qui contrôle
–
●
Exemple : hôtel
VPN = Virtual Private Network
–
–
Plusieurs entités distantes connectées par un tunnel au
travers d'un réseau (alors qu'un VLAN est un LAN)
Protocole de tunneling, sécurité (confidentialité +
authentification, IPSec + SSL/TLS + SSH)
VLAN
●
Avant la configuration d'un VLAN
●
●
●
Soit VLAN désactivé
soit VLAN activé avec un VLAN par défaut qui contient tous les ports : chaque
équipement d'un port peut envoyer un paquet sur tous les autres ports
Configuration d'un nouveau VLAN (VLAN 2)
●
Enlever du VLAN par défaut les ports concernés par le VLAN 2
●
Si un seul équipement utilise le VLAN
–
●
Si plusieurs équipements utilisent le VLAN
–
–
–
●
Pas besoin de tagger, juste de forwarder sur le bon port
Il faut tagger les ports concernés
La plupart des VLAN doivent inclure les ports uplinks (reliant les switchs entre eux) pour que la
communication entre switchs se fasse bien
Les tags ne sont pas forcément maintenus tout au long du réseau
Remarque
●
Toujours garder un VLAN d'administration, pour éviter que l'admin perde la
connectivité (nécessiterait une réinitialisation des paramètres de base du switch)
VLAN
●
Exemple sur d'anciens routeurs Cisco
●
Activation
–
●
switchport trunk encapsulation dot1q
Exemple sur Linux : outils vconfig et iproute
●
vconfig add eth0 vid
●
iproute link add link eth0 eth0.vid type vlan id vid
●
vconfig rem eth0.vid
●
iproute link delete eth0.vid
●
tcpdump -i eth0 -v vid
3. Exemple au SCI