Affichage des articles dont le libellé est virtualization. Afficher tous les articles
Affichage des articles dont le libellé est virtualization. Afficher tous les articles

jeudi 31 mars 2011

Virtualisation en français facile

Introduction
Comme promis, cet article, le premier d'une série d' articles sur la virtualisation, a pour but d'introduire mon intervention sur le salon irc où nous animons une série de présentation sur divers sujet recouvrant l'informatique du point de vue du logiciel libre et open source.

Définition
Le terme "virtuel" fait référence à quelque chose qui n'est pas réel, physique. En informatique, on appliquera la notion de virtualisation principalement au matériel. Ainsi, virtualiser un matériel donné signifie "simuler" ce matériel par des moyens logiciels. On parlera alors de "machine virtuelle" ou d'"environnement virtuel" (Virtual Environment) pour faire référence au résultat de cette simulation.

Intérêt ( source [1] )

Les raisons qui poussent à l'utilisation de la virtualisation sont nombreuses et relèvent des mobiles autant académiques qu' industriels :
  • utilisation optimale des ressources d'un parc de machines (répartition des machines virtuelles sur les machines physiques en fonction des charges respectives),
  • installation, déploiement et migration facile des machines virtuelles d'une machine physique à une autre, notamment dans le contexte d'une mise en production à partir d'un environnement de qualification ou de pré-production, livraison facilitée,
  • économie sur le matériel par mutualisation (consommation électrique, entretien physique, surveillance, support, compatibilité matérielle, etc.)
  • installation, tests, développements, cassage et possibilité de recommencer sans casser le système d'exploitation hôte
  • sécurisation et/ou isolation d'un réseau (cassage des systèmes d'exploitation virtuels, mais pas des systèmes d'exploitation hôtes qui sont invisibles pour l'attaquant, tests d'architectures applicatives et réseau)
  • isolation des différents utilisateurs simultanés d'une même machine (utilisation de type site central)
  • allocation dynamique de la puissance de calcul en fonction des besoins de chaque application à un instant donné,
  • diminution des risques liés au dimensionnement des serveurs lors de la définition de l'architecture d'une application, l'ajout de puissance (nouveau serveur etc) étant alors transparent.
Principe
Sur un ordinateur normal, on retrouve toujours trois grandes parties:
  • le matériel qui consiste en des éléments électroniques et mécaniques et qui constitue la partie visible de l'ordinateur,
  • le système d'exploitation qui permet de piloter le matériel, d'optimiser, de gérer et d'assurer (dans le sens fiabilité et sécurité) l'accès au matériel (disques durs, lecteurs CD/disquettes, etc) par la troisième couche,
  • une troisième couche qui concerne l'ensemble des applications installées dans ce système d'exploitation et qui sont les principaux points d'interaction avec l'utilisateur. Cette couche est aussi désigné par l'expression "espace utilisateur" en opposition à l'"espace noyau" (qui concerne principalement l'OS).

Grâce à cette organisation, les applications métiers n'ont pas directement accès au matériel, mais plutôt y accèdent via une interface logicielle bien définie (on parle d'API pour Application Programming Interface) proposée par le noyau du système d'exploitation. Cela présente de nombreux avantages comme la simplification de l'écriture des applications métiers ou une meilleure utilisation/protection/répartition des ressources matérielles entre autres choses.

Mais en y réfléchissant de plus près, on pourrait constater qu' en utilisant les différentes interfaces proposée par cette répartition des couches fonctionnelles, on pourrait ainsi tromper les couches supérieures:
  • en mettant un logiciel (hyperviseur) entre le matériel et l'OS, on pourrait présenter à celui-ci, un matériel ayant des caractéristiques différentes des caractéristiques réelles, à charge à ce logiciel d'assurer la conversion. On parle ici d'hyperviseur de type 1.
  • en mettant un logiciel (hyperviseur) entre l'OS et les applications, on pourrait présenter à un autre OS un matériel différent du matériel réel et installer dans ce dernier OS différentes applications. L'ensemble OS + applications + hyperviseur étant vu par l'OS de base comme de simples applications. On parle dans ce cas d'hyperviseur de type 2,
  • toujours en restant entre le système d'exploitation et la couche applicative, on pourrait éviter le niveau supplémentaire d'abstraction proposé par la solution précédente et simplement faire croire aux applications qu'elles tournent dans un OS différent de l'OS réel. On parle d'émulateurs dans ce cas;
  • il existe une troisième catégorie qui est en quelque sorte une variante de la catégorie des machines virtuelles que nous avons appelée "émulateurs". Ce type de machines virtuelles est courant principalement dans les systèmes unix et linux. Il s'agit d'environnement chrooté ou de conteneurs. En effet, dans les systèmes Linux et Unix, tout est fichier, de sorte que même les différentes ressources matérielles ( interfaces réseaux, disques durs, mémoire RAM, etc) sont utilisées suivant cette abstraction. Il est alors possible de rediriger un certain nombre de ressources comme celles-ci vers une application (au sens unix/linux du terme) donnée.
Dans les articles suivants, on verra chaque catégorie plus en détails.

[1] Virtualisation sur wikipedia

mercredi 30 mars 2011

Et si nous contribuons à notre manière à la diffusion des logiciels libres?

Chers tous,
je voudrais vous inviter à assister à la prochaine séance de tutoriel en ligne dans le salon irc de la communauté ubuntu-cm à 17h GMT samedi prochain (02/04/11).
Le sujet de cette séance sera l'utilisation du logiciel de virtualisation Virtualbox d'Oracle.
De plus, tout au long de la semaine, vous trouverez sur mon blog des articles consacrés à la virtualisation en général et à la présentation de la mise en oeuvre des solutions de virtualisation open sources en particulier.

Qu'est ce qu'il faut préparer?
Pour la séance de Samedi, il est nécessaire de disposer:
- d'un ordinateur sur lequel vous avez le droit d'installer un logiciel, équipé de Linux (Ubuntu conseillé). Les détenteurs de machines sous Windows ou Mac sont aussi acceptés, mais souffriront de ne pas pouvoir profiter de l'ensemble des techniques présentées.
- une bonne connexion Internet (permettant notamment l'installation à vitesse raisonnable de logiciels à partir d' Internet) ou à défaut, disposer d'un dépôt ubuntu local
- une image de CD ou de DVD d'ubuntu

Le projet
Cette initiative commune aux communautés linux-cm et ubuntu-cm a pour but de:
- favoriser la diffusion des logiciels libres, linux et ubuntu (en particulier),
- d'aider les étudiants et les professionnels amenés à utiliser les logiciels libres en leur proposant une aide pas à pas sur des sujets choisis soit à la suite d'une demande spécifique, soit par choix personnel d'un intervenant
- d'informer sur les nouvelles techniques de l'informatique, autant qu'elles restent ouvertes et non restrictives (ne comptez pas sur nous pour proposer des ateliers sur des techniques propriétaires ou obligeant à violer les principes des logiciels libres)
- créer un incubateur de projets technologiques communautaire, ouvert à tous ceux qui le souhaitent et en particulier aux étudiants qui trouveront là l'occasion de réaliser une idée qui leur tient à coeur ou tout simplement pour se faire la main et apprendre
- créer un espace de discussion et d'échange d'idée et de compétences
- ...
Votre contribution/participation est la bienvenue, de même que vos suggestions, commentaires, encouragements, etc.


[1] Programme des classrooms