Affichage des articles dont le libellé est La virtualisation et les conteneurs. Afficher tous les articles
Affichage des articles dont le libellé est La virtualisation et les conteneurs. Afficher tous les articles

Guide d'installation de VMware Workstation Pro 17 : étape par étape 2023.

Posted by IT NISRO 0 commentaires

 

VMware Workstation Pro est un logiciel de virtualisation de système d'exploitation qui permet aux utilisateurs d'exécuter plusieurs systèmes d'exploitation sur un seul ordinateur en même temps. Il est utilisé principalement par les développeurs, les testeurs et les administrateurs système pour créer et tester des environnements virtuels sur leur propre ordinateur. Il prend en charge un grand nombre de systèmes d'exploitation invités, y compris Windows, Linux et macOS, et fournit des fonctionnalités avancées telles que la sauvegarde instantanée, la gestion de réseau et la compatibilité avec les ordinateurs hôtes VMware.








Virtualisation et Streaming d'applications

Posted by IT NISRO 0 commentaires

 La virtualisation d'applications constitue l'un des piliers du monde de la virtualisation, au côté des solutions dédiées à la virtualisation des serveurs, du stockage et des postes clients. Alors que cette dernière permet de virtualiser l'ensemble de l'environnement de travail utilisateur, la virtualisation d'applications, elle, cible tout ou partie des applications métiers et/ou de bureautique.

En fonction des éditeurs, les méthodes employées pour virtualiser les applications varieront du tout au tout. Alors que certaines permettent de les installer et d'accéder à la demande aux applications dans un flux continu de données dit de streaming applicatif, d'autres nécessiteront d'être compilées au préalable dans un package.

La virtualisation d'applications                                                      

La virtualisation d’application consiste à encapsuler dans un même package l’application et son environnement système de manière imperméable au système d'exploitation sur lequel l'application s'éxécute. Ainsi plusieurs applications peuvent tourner sur un même système sans avoir d’incompatibilités de versions de bibliothèques « dll », de clés de registre et il est même possible de faire tourner plusieurs versions d’une même application sur un même système d'exploitation (exemple : applications Microsoft Office). Cette technologie est essentiellement utilisée dans les environnements Windows mais il existe également des outils Linux qui utilisent ce concept (Klik).

Concept de la virtualisation d'application sous windows

Ce schéma présente un exemple de virtualisation d'application sous windows. Une couche de virtualisation est ajoutée entre les programmes virtualisés et le système d'exploitation qui intercepte les appels systèmes (base de registre, disque, applications).
Le système de fichiers et la base de registre virtuels ne sont pas des copies de ceux du système d'exploitation. Ils regroupent uniquement les modifications effectuées par l'application pour qu'elle puisse fonctionner. Si l'application veut altérer la configuration système, elle ne le fera que dans sa copie de la base de registre. De même, elle n'aura accès qu'à ses propres versions de DLL et de fichiers de configuration système. Il n'y a donc pas de conflit avec les autres applications, c'est ce que l'on appelle le concept de bulle.
Plusieurs applications peuvent opérer dans différentes bulles et elles demeurent indépendantes les unes des autres. Une telle garantie d'indépendance entre les applications limite fortement le volume des tests de régression nécessaires en cas de changement de système d'exploitation.

Le Streaming applicatif                                                              

    Cela conciste à n'exporter que la partie "intéraction" de l'application, c'est à dire l'affichage et les intractions clavier/souris. Le programme s'éxécute sur un serveur d'application (ex : Citrix), et un flux de donnée transporte les informations d'intéraction. Il existe aussi des méthodes qui concistent à envoyer tout (exemple : java web start) ou partie du programme (on envoie uniquement les "briques" nécessaires au client, à la demande). Le principal avantages= de cette technologie est l'administration centralisée sur les serveurs d'application. Ainsi, la maintenance est simplifiée et les interventions plus rapides en cas d'incidents. Enfin, les solutions de streaming applicatif utilisent généralement la virtualisation pour sécuriser le système d'exploitation des serveurs d'application (isolation).

Quelques exemples

VMware ThinApp                                                                              

VMware ThinApp est une solution de virtualisation d'applications qui permet d'exécuter quasiment tous les types d'applications sur la plupart des environnements d'exploitation Windows, sans aucun conflit. Les utilisateurs peuvent ainsi, par exemple, exécuter Internet Explorer (IE) 6 et IE 7 sur le même système d'exploitation sans interrompre leurs opérations en cours.

Architecture de VMWare ThinApp

VMware ThinApp consiste à générer un exécutable (fichier .exe) à partir du programme d'installation du logiciel à virtualiser. Stocké sur un répertoire partagé du réseau ou sur une clé USB, ce fichier sert ensuite à lancer le programme, sans la moindre modification sur la machine hôte. En effet, l'exécutable joue le rôle de conteneur, avec toutes les ressources nécessaires au fonctionnement de l'application (DLL, base de registres virtuelle, etc.). Un seul fichier est donc piloté par un micro-système d'exploitation propriétaire de 300 Ko, et opérationnel sur les plates-formes Windows 32 et 64 bits.

Wine                                                                                                  

Wine est l'acronyme récursif anglophone de « Wine Is Not an Emulator », littéralement Wine n'est pas un émulateur. Parfois, on le considère aussi comme l'acronyme de « WINdows Emulator ». Ce logiciel est une implémentation libre de l'interface de programmation Microsoft Windows bâtie sur X et UNIX (BSD, GNU/Linux), c’est-à-dire qu'il permet d'utiliser sous GNU/Linux ou mac OS des programmes conçus pour fonctionner sous Windows.
Il utilise donc la technologie de virtualisation d'application dans le sens où l'environnement windows est virtualisé (système de fichier, bibliotèques, basede registre...). A noter cependant que les applications windows ne sont pas isolées les unes des autres.

Klik                                                                                                   

Klik est un programme linux qui permet d'utiliser des paquets sans installation. Ces paquets sont constitués d'un seul fichier cmg et peuvent être lancés à partir d'une page Web ou d'une clé USB. Ce fichier cmg est une image compressée du système de fichier cramfs.
Lorsque le paquet est "exécuté" klik monte l'arborescence de fichiers contenue dans l'archive (chroot) et lance le programme.

Fonctionnement de klik

Citrix XenApp                                                                                  

Citrix XenApp (anciennement connu sous le nom de Citrix MetaFrame puis Citrix Presentation Server) est un produit de la société Citrix systems basé sur le protocole Independent Computing Architecture (ICA).
Il s'agit d'un logiciel serveur permettant de déployer des applications ou des services sur un réseau et d'y accéder à distance à partir de clients légers. On parle de « solution d'infrastructure d'accès ».

Par exemple l'installation d'une application se fait sur le serveur et se lance sur celui-ci. L'application s'exécute donc sur le serveur, en utilisant les ressources (CPU, mémoire, espace disque) du serveur. L'affichage et les commandes de clavier/souris sont transmises au poste de travail de l'usager via un réseau local. Cela a pour but de réduire le travail du poste client, permettant ainsi d'utiliser un poste de capacité réduite pour exécuter des applications nécessitant beaucoup de ressources.
Pour lancer une application, on se connecte à un portail web contenant les applications auxquelles on a accès. On peut aussi installer sur le poste client un agent qui servira à afficher les applications disponibles à l'utilisateur.
Le logiciel client initie la connexion au serveur en spécifiant l'application désirée. L'affichage ainsi que les commandes clavier/souris sont transmises via le réseau local en utilisant un protocole appelé ICA. Celui-ci permet un transfert rapide des données grâce à une méthode de compression développée par Citrix.
Ce système permet donc de rendre disponible des applications diverses sans avoir à les installer dans chacun des postes clients qui le nécessitent. On parle ici de streaming applicatif.

Citrix XenApp intégre aussi la virtualisation de manière similaire à VMWare ThinApp. Les applications sont packagées et rendues accessibles sur un serveur dédié ou publiées sur les serveurs d'applications pour être rendues disponibles en streaming via le client lèger.
Le schéma ci dessous représente une architecture typique de la mise en oeuvre de Citrix :




Architecture technique des hyperviseurs

Posted by IT NISRO 0 commentaires

 La virtualisation peut être décrite simplement grâce au schéma suivant :

    image

En effet, le but premier est de faire fonctionner plusieurs systèmes d’exploitations sur le même matériel physique.

Ceci peut avoir plusieurs avantages tels que :

  • économie d’énergie car une seule alimentation est utilisée
  • le système est moins dépendant du matériel : matériel générique
  • le système est donc isolé du matériel ce qui améliore la tolérance aux pannes et offre un meilleur contrôle des ressources
  • la machine virtuelle étant composée de fichiers, sa sauvegarde ou son déplacement se résume à une copie de fichiers.

Architecture de l'hyperviseur VMware vSphere

ESX                                                                                                          

Ci-dessous vous est présenté un schéma détaillant l'architecture ESX ainsi qu'une explication détaillée de chaque partie :

    image

Nous distinguons tout d'abord le matériel physique qui sera utilisé comme ressource pour le système de virtualisation.

Il y a ensuite la partie appelée "VMkernel". Ce dernier est conçu pour gérer et contrôler les ressources physiques du matériel.

Voici un bref descriptif de ce qui compose le VMkernel :

  • Il dispose des ordonnanceurs pour le processeur, la mémoire et les accès disques
  • Les drivers sont génériques et inclus dans l'hyperviseur
  • On y trouve le VMFS (VMware File System): système de fichier distribué et optimisé pour les gros fichiers

Virtual Machine Monitor                                                                          

Voici la partie concernant Virtual Mahine Monitor :

    image

Nous allons donc énoncer ci-après les propriétés de cette partie du noyau :

  • La partie VMM est responsable de la virtualisation des processeurs
  • C'est VMM qui prend le contrôle de la machine virtuelle dès le démarrage
  • En somme, cela permet d'executer plusieurs environnements identiques sur une seule machine

Ressource manager                                                                                 

Voici la partie sur le gestionnaire de ressource :

    image

Dont figure, ci-dessous, les responsabilités au sein du VMkernel :

  • Il a pour charge de partitionner les ressources physiques entre les différentes machines
  • Cela offre la possibilité aux administrateurs de spécifier des réservations et des limites pour les machines virtuelles
  • Enfin, c'est ce ressource manager qui ordonance le temps d'accès au processeur

Periodic Load Balancer                                                                            

Voici la partie sur l'équilibrage de charge périodique :

    image

La gestion du processeur est faite à deux endroits.

En effet, le VMkernel ordonance les processeurs indépendamment tandis que le Periodic Load Balancer prévaut et décide sur quel processeur sera réellement ordonancé la VM.

Sa fonction principale est de garantir une bonne répartition du processeur entre les machines virtuelles. Pour cela, il vérifie toutes les 20 millisecondes l'utilisation du processeur et migre les machines virtuelles en conséquence pour garantir cette bonne répartition.

Virtual SMP                                                                                              

Parlons maintenant du Virtual SMP (Symetric Mutli-Proccessing) :

    image

Virtual SMP permet à une machine virtuelle d’utiliser jusqu’à quatre processeurs physiques en même temps.

Grâce à cela il devient possible de virtualiser les applications gourmandes en processeur (BDD, serveurs de messagerie).

Avant l'implémentation de virtual SMP, un seul processeur était alloué à plusieurs machines.

Service console                                                                                       

Et enfin une brève description des possibilités offertes par le service console:

    image

  • Il offre l'accès en ligne de commande à l’ESX
  • Il offre également un accès web à l’ESX
  • Enfin, il permet depuis cet accès distant de manager et monitorer voire même de créer des machines virtuelles.

Architecture de l'hyperviseur Microsoft Hyper-v R2

Hyperviseur                                                                                             

Ci-dessous vous est présenté un schéma détaillant l'architecture complète de l'hyperviseur ainsi qu'une explication détaillée de chaque partie :

    image

Commençons par la couche la plus basse appelée "Designed for windows server hardware". Il faut comprendre par là que seul le matériel supporté sera uniquement celui précisé explicitement par Microsoft.

Ensuite, intéressons nous de plus près à l'hyperviseur. C'est donc lui qui permet de faire la relation entre le matériel physique et le virtuel.

De plus, il maintient la separation entre partition parente et enfant que je vais décrire par la suite.

Partition parente                                                                                     

Cette partition est la base de l'installation, elle doit être installée obligatoirement en Windows 2008. De plus, c'est la partition parente qui offre les services de virtualisation aux partitions enfants.

La description des partitions est réalisée en deux parties : le mode noyau et le mode utilisateur.

Commençons par le mode noyau :

  • Il contient le VSP (Virtualization services provider) qui permet l'émulation du matériel et de gérer les demandes d'accès à ce dernier.
  • Les drivers natifs sont également présent et assurent la connectivité avec le matériel physique

En ce qui concerne le mode utilisateur, voici une explication de deux points importants :

  • VM Service: cette partie concerne le management des machines virtuelles pour toutes les partitions enfants
  • VM Worker Process : partie qui contient l'ensemble de la configuration des partitions enfants

Partition enfant                                                                                       

La partition enfant, contrairement à la partition parente, n'est pas unique. Il y en a une par machine virtuelle hébergée et gérée par la partition parente.

L'application, le système virtuel mis en place, tourne dans le mode utilisateur de la partition enfant.

Pour le mode noyau, deux points sont à détailler :

  • Les partitions enfants n’ont pas un accès direct au matériel
  • Elles utilisent donc le VSC (Virtualization service client) pour rediriger les demandes d’accès au matériel vers le VSP à travers le VMBUS

Comparaison

Différence entre hyperviseurs                                                                 

Voici un schéma présentant les différences de fonctionnement entre les hyperviseurs des deux concurrents :

    image

Nous avons une comparaison entre deux types d'hyperviseurs qui ont un fonctionnement quelque peu différent en particulier sur la gestion de drivers:

  • Le premier, dit MONOLITIC, est celui utilisé par VMware. Il a la particularité de contenir son propre modèle de driver
  • Le second, utilisé donc par microsoft, est dit MICROKERNELIZED. Dans ce modèle, les drivers sont dans le système d'exploitation invité.

Bilan                                                                                                        

Pour résumer :

  • Chez Vmware, ils sont embarqués dans l’hyperviseur. L’éditeur s’efforce donc de garantir leur parfaite compatibilité, il faut donc toujours vérifier que le serveur et les périphériques (stockage, réseau) sont certifiés et validés pour Vmware.
  • Hyper-V est un composant du système d’exploitation Windows Server. À ce titre, il supporte l’ensemble des matériels et des pilotes actuellement pris en charge par Windows.


Le fonctionnement de Docker

Posted by IT NISRO 0 commentaires

    Docker permet de gérer et administrer des conteneurs basé sur un principe de template de conteneur. La gestion de template de conteneur est un atout majeur de docker qui propose une riche variété de conteneurs pré-existants mais également grâce à la personnalisation, selon l'envie des utilisateurs, de ces environnements isolés.

Docker utilise les services fournis par le kernel linux et se base sur LXC (LinuX Containers) qui est l’implémentation de référence de conteneurs dans Linux. Voici quelques services que Docker utilise :

  • cgroups
  • apparmor / selinux
  • namespaces

Je vais aussi parler des bibliothèques utilisées et mises à disposition par les développeurs de docker comme :

  • libcontainer
  • libswarm
  • libchan

LXC - Linux Containers                                                                            

    LXC est un ensemble d'outils permettant de contrôler les "Linux Containers", un mécanisme léger de système virtuel. LXC implémente des systèmes virtuels complets en partant de chroot, en ajoutant des mécanismes de gestion des ressources et d'isolation à l'infrastructure de gestion de processus existante de Linux. Les Linux Containers (lxc) implémentent :

  • La gestion de ressources via les "cgroups" ou "groupes de contrôle de processus" (implémentés via le système de fichiers /cgroup) ;
  • L'isolation de ressources via les nouveaux drapeaux (flags) de l'appel système clone(2) (capable de créer plusieurs types de nouveaux "namespaces" ou espaces de noms pour des choses telles que les PID et le routage réseau) ;
  • Plusieurs mécanismes d'isolation additionnels (tels que le drapeau -o newinstance du système de fichiers devpts).

Le fonctionnement de Docker

Le paquet LXC combine ces mécanismes du noyau Linux pour fournir un conteneur en espace utilisateur, un système virtuel léger avec une isolation et un contrôle des ressources complets pour une application ou un système entier. Les Linux Containers prennent une approche complètement différente des technologies de virtualisation des hyperviseurs, qui ont débuté en bootant des systèmes virtuels séparés sur du matériel émulé et ensuite ont essayé de réduire leur surcharge (overhead) via la paravirtualisation que nous avons pu voir avec les hyperviseurs de type 1 et des mécanismes similaires. Au lieu d'améliorer l'efficacité d'une isolation complète, LXC se base sur un mécanisme efficace (la gestion de processus de Linux) et a ajouté l'isolation, résultant en un mécanisme de virtualisation évolutif et portable à la façon de chroot, capable de supporter simultanément des milliers de systèmes émulés sur un seul serveur, tout en fournissant des possibilités de virtualisation légère aux routeurs et aux smartphones.

LXC est suffisamment petit pour gérer facilement un conteneur avec de simples lignes de commandes et assez complet pour être utilisé pour d'autres besoins.

Cgroups                                                                                                   

    Les cgroups - groupes de contrôle - ont pour but de contrôler les ressources systèmes utilisées par un ou plusieurs processus. Les processus sous contrôle sont affectés dans des groupes sur lesquels agissent des contrôleurs de ressources. Chaque contrôleur gère un type de ressources :

  • cpuset : allocation CPU (numéro CPU/core CPU).
  • cpuacct : consommation CPU (nombre de cycles).
  • memory : contrôle de la mémoire vive et de la mémoire swap.
  • devices : contrôle l’accès aux périphériques.
  • blkio : contrôle l’accès aux périphériques de type bloc (ex: disque dur).
  • net_cls : contrôle l’accès aux périphériques réseau.

AppArmor                                                                                                

AppArmor (Application Armor) est un module de sécurité crée à l'origine par Immunix. Depuis 2009, Canonical maintient le développement du code ( Novell s'en est occupé après Immunix et avant Canonical). Ce module de sécurité a été dans le noyau principal depuis sa version 2.6.36. AppArmor restreint les possibilités des programmes. AppArmor utilise les chemins de fichiers pour vérifier les restrictions de programme.

Security-Enhanced Linux                                                                         

    Security-Enhanced Linux (SELinux) est une alternative à AppArmor, crée par la National Security Agency (NSA). Il opère sur les outils de l'espace utilisateur du noyau. SELinux donne aux programmes (principalement les démons et les applications de serveur). SELinux peut aussi être utilisé pour contrôler les droits de l'utilisateur. Il n'utilise pas les chemins de fichier comme AppArmor, à la place SELinux utilise le système de fichiers pour noter les exécutables quand il vérifie leurs permissions. C'est ce qui fait que SELinux ne peut pas apporter de protection partout, c'est-à-dire tous les systèmes de fichiers, tandis que AppArmor le peut.

Namespaces                                                                                            

    Il existe différents types d'espace de noms (ou namespaces) chaque type d'espace de noms s'applique à une ressource spécifique. Et, chaque espace de noms crée des barrières entre les processus. Ces obstacles peuvent être à différents niveaux. Voici quelques types d'espace de noms que docker utilise :

  • pid : isole les processus (pid : Process ID).
  • net : permet la gestion des interfaces réseaux (net : networking)
  • ipc : gére les accès inter-processus (ipc : InterProcess Communication)
  • mnt : gestion des points de montage (mnt : mount)
  • uts : utilisé pour isoler le noyau et identificateurs de version (UTS : Unix Timesharing System)

Libcontainer                                                                                            

    Libcontainer est une bibliothèque écrite en Go pour la création de conteneurs avec des espaces de noms, les groupes de contrôle, les capacités et les contrôles d'accès du système de fichiers. Cette librairie a été développée pour faire le travail de lxc tout en simplifiant l'installation de docker. Elle vous permet de gérer le cycle de vie du conteneur, effectuer des opérations supplémentaires après que le container soit créé.


Docker

Libswarm                                                                                                 

    Décrit comme « une boite à outils pour créer des services réseaux », l'interêt de libswarm est de simplifier les déploiements d'applications Docker dans des configurations multi-nœuds, les nœuds pouvant tourner sur des distributions Linux différentes.

Libchan                                                                                                   

    Libchan est une bibliothèque réseau ultra-légère qui permet aux services réseaux de communiquer de la même manière que les goroutines communiquent en utilisant des canaux :

  • Simple message passing
  • Synchronisation pour la programmation parallèle
  • Nesting : les canaux peuvent envoyer (vers) des canaux
Libchan gère les options de transport suivantes :
  • In-memory Go channel
  • Unix socket
  • Raw TCP
  • TLS
  • HTTP2/SPDY
  • Websocket




La virtualisation et les conteneurs

Posted by IT NISRO 0 commentaires

     La virtualisation consiste à faire fonctionner un ou plusieurs systèmes d'exploitation / applications comme un simple logiciel, sur un ou plusieurs ordinateurs - serveurs/système d'exploitation, au lieu de ne pouvoir en installer qu'un seul par machine. Ces ordinateurs virtuels sont appelés serveur privé virtuel (Virtual Private Server ou VPS) ou encore environnement virtuel (Virtual Environment ou VE). La virtualisation de systèmes d'exploitation est une technique consistant à faire fonctionner en même temps, sur un seul ordinateur, plusieurs systèmes d'exploitation comme s'ils fonctionnaient sur des ordinateurs distincts.

Historique                                                                                               

     Le principe de la virtualisation existe depuis de nombreuses années, elle a commencé dans les années 1970 sur des machines IBM, les premières arrivées de la virtualisation dans le monde des PC’s ont eu lieu dans les années 80, notamment pour émuler des machines de type Dos/Windows sur des Macs ou des machines Unix, ou pour émuler des ordinateurs personnels (Amiga, Atari…) ou consoles de jeux (Nintendo, Sega…) sur des machines à caractères plus professionnel (PCs). Aujourd’hui il existe de nombreuses solutions permettant de faire tourner un système d’exploitation sur un autre, ou en même temps qu’un autre, en fonction du type de virtualiseur utilisé. Ici nous allons parler des deux types d'hyperviseurs


Hyperviseur                                                                                             

L'hyperviseur est la manière la plus courante, aujourd'hui, de simuler des espaces de travail avec des systèmes d'exploitations différents. Il existe deux types d'hyperviseurs.

Type 1

Un hyperviseur de type 1 est un système d'exploitation très léger qui permet de gérer l’accès des systèmes d'exploitation invités à la plate-forme matérielle. On parle aussi de "paravirtualisation" car l'hyperviseur et le système d'exploitation invité coopèrent, l'hyperviseur capture les appels système de l'invité et les transmet au matériel. Les systèmes hôtes auront « connaissance » de leur état par l’utilisation de pilotes particuliers. Voici quelques exemples d'hyperviseur de type 1 :

  • VMWare VSphere,
  • Microsoft Hyper-V,
  • Citrix Xen Server,
  • Oracle VM Server,
  • KVM

Type 2

Un hyperviseur de Type 2 est un logiciel qui s'exécute à l'intérieur d'un autre système d'exploitation. Un système d'exploitation invité s'exécutera donc en troisième niveau au-dessus du matériel. Les systèmes d'exploitation invités n'ayant pas conscience d'être virtualisés, ils n'ont pas besoin d'être adaptés. Quelques exemples de tels hyperviseurs sont :

  • VMware Server,
  • VMware Workstation,
  • VMware Fusion,
  • l'hyperviseur open source QEMU,
  • les produits Microsoft Virtual PC et Virtual Server,
  • VirtualBox
  • Parallels Workstation et Parallels Desktop.

La virtualisation et les conteneurs


Les conteneurs                                                                                        

    Docker est une plateforme de virtualisation par conteneur qui permet de créer des conteneurs qui vont uniquement contenir une ou plusieurs applications. On parle aussi d'environnement virtuel ou Operating system-level virtualisation. Empaquetées sous forme de conteneurs, ces applications pourront ainsi être facilement déployées sur n'importe quel systèmes exécutant docker, chaque conteneur restant parfaitement indépendant. Ceci va permettre de construire des systèmes complets de démonstration, de test et de développement à moindre coût et très rapidement, tout en disposant de plateformes logiquement similaires aux systèmes cibles. On pourra simuler plusieurs environnements de test, développement, production, etc.

Membres

Formulaire de contact

Nom

E-mail *

Message *