TD:  Virtualisation / Présentation (2022)

I.                Emulation (Qemu)

1)  Accédez au terminal (cd qemuTest)

2)  lancer une image avec Qemu :

qemu-system-x86_64 -smp cores=2 -m 256 image.img    

2.                Hyperviseur (KVM)

1) Accédez au terminal (cd hypervisorr avec l’outil cloud-hypervisor: https://github.com/cloud-hypervisor/cloud-hypervisor)

2) Télécharger l’image et le noyau:

-wget https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img

-qemu-img convert -p -f qcow2 -O raw focal-server-cloudimg-amd64.img focal-server-cloudimg-amd64.raw

-wget https://github.com/cloud-hypervisor/rust-hypervisor-firmware/releases/download/0.4.0/hypervisor-fw

3) Créer la machine virtuelle:

./cloud-hypervisor/target/release/cloud-hypervisor \

        --kernel ./hypervisor-fw \

        --disk path=focal-server-cloudimg-amd64.raw \

        --cpus boot=4 \

        --memory size=1024M \

        --net "tap=,mac=,ip=,mask="

4) Accédez au site https://www.katacoda.com/firecracker-microvm/scenarios/getting-started  (avec l’outil Firecracker)

   

2. Les conteneurs logiciels (Container, Docker)

1)  Accédez au terminal (cd /home/dockerTest/)

2)  Créer le fichier  Dockerfile

FROM nginx:1.11-alpine

COPY index.html /usr/share/nginx/html/index.html

EXPOSE 80

CMD ["nginx", "-g", "daemon off;"]

2)  Créer une image du container

docker build -t my-nginx-image:latest .

3)  lancer une image du container

4)  Vérifier l'exécution du container

docker container rm  redisVM

docker images

docker image rm -f  my-nginx-image

II. Virtualisation XEN

L’objectif de cette séance est d’introduire les concepts de virtualisation et de Cloud et acquérir les différentes notions en relation. Ainsi qu'à étudier au moins une solution Cloud Computing.

-        les avantages et les inconvénients de la virtualisation et du cloud computing.

-        Maitriser les termes de virtualisation et de cloud computing.

-        Comprendre les différences entre les types de virtualisation

-        Maîtriser l'utilisation de base d'une solution cloud (Ex.: Xen)

-        ssh groupX@10.0.0.10 ou X le numéro de groupe (group1, group2, group3, group4)

-        ssh groupX@10.0.0.20 ou X le numéro de groupe (group1', group2', group3', group4')

-        ssh groupX@10.0.0.30 ou X le numéro de groupe (group1", group2", group3", group4")

-         

       Démarrage

La virtualisation permet la mutualisation des ressources physiques pour instancier des machines virtuelles tout à fait isolées mais puisant du même matériel la mémoire, le CPU et les interfaces réseaux nécessaires à leur bon fonctionnement.

Pour parvenir à séparer la couche physique de la couche logicielle, il nous faut utiliser une couche d’abstraction supplémentaire qu’on appelle hyperviseur. Un hyperviseur ou un moniteur de machine virtuelle (virtual machine monitor : VMM) est un logiciel qui crée et exécute les machines virtuelles. C’est ainsi l’hyperviseur qui permettra d’instancier plusieurs machines virtuelles fonctionnants chacune avec son propre système d’exploitation mais partageant les mêmes ressources physiques présentes sur la couche matérielle (CPU, cartes réseaux, RAM, etc.).

Xen est un Hyperviseur. Il est un logiciel développé par l'université de Cambridge au Royaume-Uni.  Il a donné naissance à la société Xensource qui a poursuivi son développement. L’une des particularités de Xen réside dans le fait qu’il permet à partir d'un seul poste physique d'installer et de configurer plusieurs machines virtuelles exécutant différents systèmes d’exploitation. Pour tout téléchargement des versions Xen, veuillez consulter le nouveau site http://www.xenproject.org/.

De nombreux paramètres sont laissés au choix de l'administrateur: le nombre de machines virtuelles, leurs configurations, les paramétrages réseaux des interfaces...etc.

Démarrez votre machine sur le noyau Xen. Pour cela, choisissez dans le menu GRUB la ligne concernée lors du démarrage de la machine.

I.                Création d’une machine virtuelle

Accédez à votre session GroupX où X est votre numéro de groupe.

1)     Listez les serveurs virtuels lancés, à l’aide de la commande xl suivi de l’option adéquate.

La machine virtuelle se compose d’un disque (disque image) qui renferme le système de fichier de la distribution, d’un potentiel initramfs pour l'amorçage du système de fichier et d’un noyau (kernel) pour l’exploitation des ressources matérielles virtualisées (similaire à une machine physique)

1)  Réalisez une copie de ces fichiers dans votre dossier local :

# Cp /home/domOwnCloud.tar.gz .

2)     Décompressez les dossiers et accédez au dossier domOwnCloud (tar –xvvf domOwnCloud.tar.gz).

3)     Décrire la composition de base de la machine virtuelle ?

4)     Décrire le fichier de configuration « description.ovf »

5)     Créer la machine virtuelle domOwnCloud moyennant l’outil xl.

 

II.             Manipulation d’une machine virtuelle

Après avoir créé la machine virtuelle, vous allez manipuler quelques commandes des outils natifs comme « xl » xen pour vous familiariser avec xen.

-          Démarrez la machine virtuelle que vous avez créée précédemment. Pour cela utilisez les commandes de xl, décrites en tapant « xl ».

1)      Une fois que vous avez lancé la machine, vérifiez qu’elle est bien lancée. Quel est l'ID de cette machine virtuelle ?

2)      xl list, xl info : quelle est l’effet de ces commandes ?

3)      Quelle commande permet de voir les ressources machines consommées par chacun des domaines invités ?

-          Récupérez le mode console sur cette machine lancé.

-          Créez quelques dossiers et fichiers sur cette machine virtuelle et exécutez quelques commandes Unix.

-          Sortez de la machine virtuelle (en appuyant sur ctrl + alt gr + ] ou ctrl + $ ), sauvegardez la machine à l’aide d’une commande xl.

-     Accédez au service crée, testez le service déployé et commentez la qualité du service fournie.

-      Accédez en SSH à la machine domOwnCloud

ssh root@addressIP

password: virtuor

-          Arrêtez la machine virtuelle moyennant l’outil xl.

-          Affichez la liste des machines virtuelles exécutées. Vérifiez que la machine est bien arrêtée.

-          Redémarrer la machine à partir du fichier sauvegardé. Que remarquez-vous ?

 

III.           Manipulation de l’exécution de la machine virtuelle

-        Augmentez la capacité mémoire de la machine virtuelle à 1100Mo (ressource mémoire allouée).

1)      Une fois que vous avez lancé la machine, vérifiez qu’elle est bien lancée. Quel est la capacité perçus de la mémoire vive?

2)      Utilisez l’option adéquate de l’outil xl pour réduire à chaud la mémoire allouée de la machine virtuelle de 300Mo et mentionnez à chaque fois sur une échelle de 1 à 5 la Qualité d’expérience QoE du service fournie et la qualité du service QoS (dans notre cas on prendra en considération que le délai).

-        Remettez la valeur initiale de la mémoire alloué

1)     Quelle est le rôle de xenstore?

2)     Une fois que vous avez lancé la machine, affichez les informations relatives à la machine avec xenstore-ls

III. Virtualisation des liens

I.                Mise en place d’une architecture SDN

 

1)     Réalisez une copie de ces fichiers dans votre dossier local :

# tar -xvvf /home/domONOS.tar.gz

2)     Décompressez les dossiers et accédez au dossier ONOS. Décrire la configuration de base de la machine

3)     Créer la machine virtuelle du contrôleur SDN ONOS

4)     Accédez en SSH à la machine ONOS

ssh virtuor@addressIP

password: virtuor

5)     Lancer le contrôleur SDN ONOS

6)     Décrire trois commandes qui vous semblent pertinentes

7)     Extraire le fichier  tar -xzvf onos-1.3.0.root.tar.gz sous le /home/virtuor

II.             Déploiement d’un contrôleur SND Onos avec un simulateur de réseau Mininet

 

1)     Extraire le fichier  tar -xzvf onos-1.3.0.root.tar.gz sous le /home/virtuor

2)     Lancez le contrôleur ONOS avec la commande

a.     sudo bin/onos-service adresseIP

b.     accédez à l’interface http://addressIP:8181/onos/ui/login.html# après avoir lancer deux applications : onos-openflow et onos-app-fwd

onos> feature:install onos-app-fwd

onos> feature:install onos-openflow

3)     Lancer la machine de simulation Mininet après l’avoir copier dans votre session

tar -xvvf /home/domMininet.tar.gz

 4)     Accédez en SSH à la machine ONOS

ssh virtuor@addressIP

password: virtuor

5)     A quoi correspond cette commande « «mn  --topo linear,2  --arp --controller=remote,ip= adresseIP » et affichez son résultat

6)     Réaliser quelques captures de l’interface ONOS monitoring concernant les flux lors d’un simple ping entre les hôtes. Que remarquez-vous ?