OpenVZ
Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.
OpenVZ
Développeur Andrey Savochkin
Dernière version 3.0 (le avril 2006)
Environnement Linux (Au sens strict, Linux est le nom du noyau de système d'exploitation libre, multitâche, multiplate-forme et multi-utilisateur de type UNIX créé par Linus Torvalds, souvent...)
Type Virtualisation (La virtualisation consiste à faire fonctionner sur un seul ordinateur plusieurs systèmes d'exploitation comme s'ils fonctionnaient sur des ordinateurs distincts. On appelle serveur...)
Licence GNU/GPL
Site Web (Un site Web est un ensemble de pages Web hyperliées entre elles et mises en ligne à une adresse Web. On dit aussi site Internet par métonymie, le World Wide Web reposant sur Internet.) OpenVZ (OpenVZ est une technologie de virtualisation de niveau système d'exploitation basée sur le noyau Linux. OpenVZ permet à un serveur physique d'exécuter de...).org

OpenVZ est une technologie (Le mot technologie possède deux acceptions de fait :) de virtualisation de niveau système d'exploitation basée sur le noyau Linux (Le noyau Linux est un noyau de système d'exploitation de type UNIX. Le noyau Linux est un logiciel libre développé essentiellement en C par une large communauté de contributeurs. Formellement,...). OpenVZ permet à un serveur physique (La physique (du grec φυσις, la nature) est étymologiquement la « science de la nature ». Dans un sens général et ancien, la physique désigne la connaissance de...) d'exécuter de multiples instances de système d'exploitation isolés, connus sous le nom de serveurs privés virtuels (VPS) ou environnements virtuels (VE).

En comparaison aux machines virtuelles telles que VMware (VMware, Inc. est une société filiale d'EMC Corporation, fondée en 1998, qui propose plusieurs produits propriétaires liés à la virtualisation d'architectures x86. C'est...) et aux technologies de paravirtualisation telles que Xen, OpenVZ offre moins de flexibilité dans le choix du système d'exploitation : le système d'exploitation invité et hôte doivent être de type Linux (bien que les distributions de Linux peuvent être différentes dans des VEs différents). Cependant, la virtualisation au niveau OS d'OpenVZ offre une meilleure performance, une meilleure scalabilité (i.e. évolution), une meilleure densité (La densité ou densité relative d'un corps est le rapport de sa masse volumique à la masse volumique d'un corps pris comme référence. Le corps...), une meilleure gestion de ressource dynamique (Le mot dynamique est souvent employé désigner ou qualifier ce qui est relatif au mouvement. Il peut être employé comme :), et une meilleure facilité d'administration que ses alternatives (Alternatives (titre original : Destiny Three Times) est un roman de Fritz Leiber publié en 1945.). Selon le site Web d'OpenVZ, cette méthode de virtualisation introduirait une très faible pénalité sur les performances : 1 à 3% de pertes seulement par rapport à un ordinateur (Un ordinateur est une machine dotée d'une unité de traitement lui permettant d'exécuter des programmes enregistrés. C'est un...) physique.

OpenVZ est la base de Virtuozzo, un produit propriétaire fourni (Les Foúrnoi Korséon (Grec: Φούρνοι Κορσέων) appelés plus communément...) par SWsoft, Inc. OpenVZ est distribué sous la Licence publique générale GNU (La Licence publique générale GNU, ou GNU GPL pour GNU General Public License en anglais, est une licence qui fixe les conditions légales de distribution des logiciels libres du projet GNU. Richard Stallman et Eben...) version 2.

OpenVZ comprend le noyau Linux et un jeu de commandes utilisateurs.

Noyau

Le noyau d'OpenVZ est un noyau Linux modifié qui ajoute la notion d'environnement (L'environnement est tout ce qui nous entoure. C'est l'ensemble des éléments naturels et artificiels au sein duquel se déroule la vie humaine. Avec...) virtuel. Le noyau fournit la virtualisation, l'isolement, la gestion de ressource, et le checkpoint/restart.

Virtualisation et isolement

Un VE est une entité séparée, et du point (Graphie) de vue (La vue est le sens qui permet d'observer et d'analyser l'environnement par la réception et l'interprétation des rayonnements lumineux.) de son propriétaire, il ressemble à un vrai serveur physique. Chaque VE a ses propres :

Fichiers
Les bibliothèques système, applications, /proc et /sys virtualisés, verrous virtualisés, etc.
Utilisateurs et groupes
Chaque VE a son propre utilisateur root, ainsi que ses propres utilisateurs et groupes.
Arborescence de processus
Chaque VE voit seulement ses propres processus (à partir de l'init). Les Identifiant (En informatique, on appelle identifiants (également appelé parfois en anglais login) les informations permettant à une personne de...) de processus (PID) sont virtualisés, de telle sorte que le PID de la tâche init est 1, tel qu'il devrait l'être.
Réseau (Un réseau informatique est un ensemble d'équipements reliés entre eux pour échanger des informations. Par analogie avec un filet (un réseau est un « petit...)
Interface (Une interface est une zone, réelle ou virtuelle qui sépare deux éléments. L’interface désigne ainsi ce que chaque élément a besoin de connaître de l’autre...) réseau virtuelle, qui permet à un VE d'avoir ses propres adresses IP, aussi bien qu'un ensemble (En théorie des ensembles, un ensemble désigne intuitivement une collection d’objets (les éléments de l'ensemble), « une multitude qui peut être comprise comme un tout », comme...) de règles Netfilter (iptables) et de routage (En informatique, le terme routage désigne le mécanisme par lequel les données d'un équipement expéditeur sont acheminées jusqu'à leur destinataire en...).
Périphériques
Si nécessaire, on peut accorder à n'importe quel VE l'accès à de vrais périphériques comme des interfaces réseau, des ports séries, des partitions de disque (Le mot disque est employé, aussi bien en géométrie que dans la vie courante, pour désigner une forme ronde et régulière, à l'image d'un palet — discus en latin.), etc.
IPC
Mémoire partagée (Dans un contexte de la programmation concurrente, la mémoire partagée désigne un large bloc de mémoire vive qui est accédé par différentes unités de calcul au sein d'un ordinateur...), sémaphores, file d'attente de messages.

Gestion des ressources

Comme tous les VEs utilisent le même noyau, la gestion des ressources est d'importance primordiale. Chaque VE doit rester dans ses limites et ne pas affecter d'autres VEs.

La gestion des ressources d'OpenVZ est composée des trois éléments suivants : des quotas disque à deux niveaux, un scheduler fair CPU, et des beancounters utilisateurs. Toutes ces ressources peuvent être modifiées pendant le temps (Le temps est un concept développé par l'être humain pour appréhender le changement dans le monde.) d'exécution d'un VE, sans avoir à rebooter. Il est par exemple possible d'allouer à chaud plus de mémoire (D'une manière générale, la mémoire est le stockage de l'information. C'est aussi le souvenir d'une information.) à un VE, en changeant des paramètres appropriés à la volée. C'est une fonctionnalité souvent impossible ou complexe avec d'autres approche de virtualisation telles que la VM ou l'hyperviseur.

Quotas disque à deux niveaux

L'utilisateur root du système hôte (Un système hôte est un terme général pour décrire tout ordinateur en réseau qui fournit des services à d'autres systèmes ou utilisateurs. Ces services peuvent inclure mais ne sont...) (OpenVZ) peut établir des quotas disque par VE, spécifiés en termes de bloc disque et d'inode (plus ou moins le nombre (La notion de nombre en linguistique est traitée à l’article « Nombre grammatical ».) de fichiers). C'est le premier niveau des quotas disque. En plus de ceux-ci, un propriétaire de VE (utilisateur root) peut utiliser les outils habituels de gestionsdes quotas à l'intérieur de son propre VE pour placer des quotas disque standards par utilisateur et par groupe d'UNIX.

Il est possible d'allouer dynamiquement de l'espace disque à un VE, en modifiant simplement son quota disque (autrement dit, sans qu'il soit nécessaire de redimensionner les partitions du disque).

Scheduler Fair CPU

Le scheduler CPU d'OpenVZ est également à deux niveaux. Au premier niveau, le scheduler décide à quel VE le time slice sera affecté, basé sur des cpuunits par VE. Au deuxième niveau, le scheduler standard Linux décide quel processus s (Le processus S (avec S pour slow, lent en anglais) est un processus de nucléosynthèse de capture de neutrons par des noyaux atomiques qui permet ainsi de...)'exécutera dans le VE, en utilisant les priorités de processus standards.

L'administrateur d'OpenVZ peut établir différentes valeurs des cpuunits pour des VEs différent, et le temps CPU sera donné à ceux ci proportionnellement.

Il est en outre possible de limiter le temps CPU, par exemple à 10% de temps CPU disponible.

Beancounters Utilisateur

Les Beancounters utilisateur est un ensemble de compteurs, de limites, et de garanties par VE. Il y a un ensemble d'environ 20 paramètres qui sont soigneusement choisis pour couvrir tous les aspects des opérations d'un VE ; ainsi, aucun VE ne peut abuser d'une ressource qui est limitée pour le nœud entier et de cette façon nuire à un autre VE.

Les ressources comptabilisées et contrôlées sont principalement la mémoire et divers objets noyau tels que les segments de mémoire partagés, les buffers réseau, etc. Chaque ressource peut être vue depuis /proc/user_beancounters et cinq valeurs lui sont associées : utilisation courante, utilisation maximum (pour la vie (La vie est le nom donné :) d'un VE), barrière, limite, et compteur d'échec. La signification de la barrière et de la limite est dépendante du paramètre ; en bref, ceux-ci peuvent être considérés comme une limite soft et une limite hard. Si n'importe quelle ressource atteint la limite, le compteur d'échec est incrémenté, ainsi le propriétaire du VE peut voir si quelque chose de néfaste se produit en analysant la sortie de /proc/user_beancounters dans son VE.

Checkpointing et migration live

La fonctionnalité de migration live et de checkpoint pour OpenVZ a été annoncé au milieu d'avril 2006. Elle permet de migrer un VE d'un serveur physique à un autre sans arrêt/relance du VE. Ce processus est connu comme application checkpointing : le VE est gelé et son état entier est sauvegardé dans un fichier ( Un fichier est un endroit où sont rangées des fiches. Cela peut-être un meuble, une pièce, un bâtiment, une base de données informatique. Par exemple : ...) sur disque. Ce fichier peut alors être transféré sur une autre machine sur laquelle le VE pourra être restauré. Le délai (Un délai est d'après le Wiktionnaire, « un temps accordé pour faire une chose, ou à l’expiration duquel on sera tenu de faire une certaine...) de migration est de quelques secondes, et ce n'est pas un temps d'arrêt, juste un retard.

Chaque morceau d'état de VE, y compris les connexions de réseau ouvertes, est sauvé. De la perspective de l'utilisateur, cela ressemble à un retard dans la réponse : une transaction de base de données (En informatique, une base de données (Abr. : « BD » ou « BDD ») est un lot d'informations stockées dans un...) prendra un plus long temps que d'habitude, quand le VE redémarre, l'utilisateur ne note pas que sa base de données (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent codée, d'une chose, d'une transaction d'affaire, d'un événement, etc.) fonctionne déjà sur une autre machine.

Cette fonctionnalité rend possible des scénarios tels que la mise à jour (Une mise à jour, souvent abrégé en MAJ ou MàJ, est l'action qui consiste à mettre « à jour », ou bien « à niveau », un outil informatique, un...) du serveur sans avoir besoin (Les besoins se situent au niveau de l'interaction entre l'individu et l'environnement. Il est souvent fait un classement des besoins humains en trois grandes catégories : les besoins primaires, les besoins secondaires et les...) de le rebooter : si votre base de données a besoin de plus de mémoire ou de CPU, vous achetez un nouveau serveur, migrez votre VE dessus et vous augmentez ensuite ses limites. Si vous voulez ajouter plus de RAM à votre serveur, vous migrez tous les VEs sur un autre serveur, vous arrêtez le premier, ajoutez la mémoire, puis rebootez et remigrez tous les VEs.

Commandes utilisateurs

OpenVZ vient avec un outil (Un outil est un objet finalisé utilisé par un être vivant dans le but d'augmenter son efficacité naturelle dans l'action. Cette augmentation se traduit par la simplification des actions...) en ligne de commande (Commande : terme utilisé dans de nombreux domaines, généralement il désigne un ordre ou un souhait impératif.) pour contrôler les VEs (vzctl), ainsi que des outils pour installer les logiciels dans les VEs (vzpkg).

vzctl

C'est un outil en ligne de commande simple pour contrôler un VE.

vzctl create VEID [--ostemplate ] [--config ]
Cette commande crée un nouvel environnement virtuel avec l'identification numérique (Une information numérique (en anglais « digital ») est une information ayant été quantifiée et échantillonnée, par...) de VEID, qui sera basé sur un template d'OS (un distro de Linux) et qui aura des paramètres de gestion de ressource pris dans le fichier de configuration spécifié en ligne de commande. Les deux paramètres --ostemplate et --config sont facultatifs, il existe des valeurs par défaut définies dans fichier global de configuration.
vzctl start (STart était un magazine américain traitant de l'informatique et du jeu vidéo, dédié plus particulièrement à l'Atari ST. C'est un...) VEID
Démarre un VE donné, ce qui signifie créer un contexte (Le contexte d'un évènement inclut les circonstances et conditions qui l'entourent; le contexte d'un mot, d'une phrase ou d'un texte inclut les mots qui l'entourent. Le concept de contexte...) virtuel d'environnement dans le noyau, en plaçant tous les paramètres de gestion de ressource et démarrer le /sbin/init du VE dans ce contexte.
vzctl stop VEID
Arrête un VE donné. Un VE peut également être arrêté (ou rebooté) par son propriétaire en employant les commandes standards /sbin/halt ou /sbin/reboot.
vzctl exec VEID
Exécute une commande à l'intérieur d'un VE. Pour voir la liste des processus à l'intérieur du VE 102, il suffit de lancer la commande vzctl exec 102 ps ax.
vzctl enter VEID
Ouvrir un shell VE. C'est utile si par exemple le sshd est mort (La mort est l'état définitif d'un organisme biologique qui cesse de vivre (même si on a pu parler de la mort dans un sens cosmique plus général, incluant par...) dans ce VE et vous voulez le dépanner.
vzctl set VEID --parameter [...] [--save]
Affecte un paramètre (Un paramètre est au sens large un élément d'information à prendre en compte pour prendre une décision ou pour effectuer un calcul.) pour un VE. Il y a beaucoup de différents paramètres. Pour ajouter une adresse IP (Une adresse IP (avec IP pour Internet Protocol) est le numéro qui identifie chaque ordinateur connecté à Internet, ou plus généralement et précisément, l'interface avec le réseau de...) à un VE, lancez vzctl set VEID --ipadd x.x.x.x --save. Pour changer le quota disque d'un VE, lancez vzctl VEID set --diskspace soft:hard --save. Pour fixer la barrière et la limite de mémoire noyau d'un VE, lancez vzctl VEID set --kmemsize barrier:limit --save.

Templates et vzpkg

Les templates (en français : gabarit) sont des images précréées utilisées pour créer un nouveau VE. Globalement, un template est un ensemble de packages, et un template cache est un tarball d'un environnement chrooté avec ces packages installés. Pendant l'étape de création vzctl, un tarball est déballé. En utilisant la technique template cache, un nouveau VE peut être créé en quelques secondes.

Les outils vzpkg sont un ensemble d'outils facilitant la création de template cache. Ils supportent actuellement rpm et les repositories de type yum. Ainsi, pour créer un template, par exemple, de distribution de Fedora Core 5, vous devez indiquer un ensemble repository (yum) qui ont les rpm FC5, et un ensemble de rpm à installer. De plus, des scripts de pre- et post-install peut être utilisés pour optimiser ou modifier un templace cache. Toutes les données ci-dessus (les repositories, listes de paquets, les scripts, clefs GPG etc.) forment un template metadata. Un template cache peut être créé automatiquement à partir d'un template metadata; vous lancez juste l'utilitaire (Le mot utilitaire peut désigner :) vzpkgcache. le vzpkgcache téléchargera et installera les packages énumérés sur un VE provisoire, et emballera le résultat comme un template cache.

Des template cache pour les distros non-RPM peuvent aussi être créées, bien que ce soit plus un processus manuel. Par exemple, ce HOWTO donne des instructions détaillées pour créer un template cache de Debian (Debian (/de.bjan/) est une organisation communautaire et démocratique, dont le but est le développement d'un système d'exploitation basé exclusivement sur...).

Les template cache suivants (a.k.a. templates precréés) sont actuellement (mai 2006) disponibles :

  • dans les dérivés de Red Hat (Red Hat est une société multinationale d'origine américaine éditant des distributions Linux. Elle est l’une des entreprises dédiées aux logiciels Open Source les plus importantes...)
    • Fedora Core Version 5 (et les versions préccédentes : 3 et 4)
    • CentOS 4 (4.3)
  • Gentoo 2006.0 (20060317)
  • openSUSE 10
  • Debian Sarge et Etch télécharger
  • Ubuntu (Ubuntu (prononciation [ubuntu], c'est-à-dire « ou-boun-tou » en prononciation française) est un système d’exploitation libre...) (lien)

Principales Fonctionnalités d'OpenVZ

Scalabilité

Comme OpenVZ utilise un modèle de noyau unique, il se comporte comme le noyau 2.6 de Linux, ce qui signifie qu'il supporte jusqu'à 64 processeurs et jusqu'à 64 GigaOctets de mémoire vive (La mémoire vive, mémoire système ou mémoire volatile, aussi appelée RAM de l'anglais Random Access Memory (que l'on traduit en français par 'mémoire à...). Un environnement virtuel unique peut être étendu jusqu'à la machine physique dans sa totalité, c'est-à-dire tous les CPU et toute la RAM.

En effet, certains déploient un unique environnement virtuel OpenVZ. C'est étrange à première vue, mais étant donné qu'un VE unique peut employer toutes les ressources matérielles avec une performance proche du natif, tout (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) en bénéficiant d'autres avantages tels que l'indépendance du matériel, la gestion des ressources et la migration à chaud, ceci est un choix évident dans beaucoup de scénarios.

Densité

OpenVZ density on a 768Mb (¾Gb) RAM box
OpenVZ density on a 768Mb (¾Gb) RAM box

OpenVZ peut accueillir des centaines d'environnements virtuels sur un matériel décent (les limitations principales sont la quantité (La quantité est un terme générique de la métrologie (compte, montant) ; un scalaire, vecteur, nombre d’objets ou d’une autre manière de dénommer la valeur d’une collection...) de mémoire vive et le nombre de processeurs).

Le graphique montre la relation du temps de réponse du serveur web Apache dans un VE sur le nombre de VEs. Les mesures ont été faites sur une machine avec 768 Mo (¾ Gb) de RAM ; chaque VE faisait tourner l'ensemble habituel de processus : init, syslogd, crond, sshd et apache. Les daemons d'Apache servaient des pages statiques, qui étaient chargées par le http_load, et le premier temps de réponse était mesuré. Comme vous pouvez le voir, plus le nombre de VE se développe, plus le temps de réponse se dégrade en raison du manque de mémoire et du swap excessif.

Dans ce scénario, il est possible de faire tourner jusqu'à 120 VEs sur une machine avec 3/4 Go de RAM. Ceci s'extrapole de façon linéaire, et il est donc possible de faire tourner jusqu'à près 320 VEs sur une machine avec 2 Gb de RAM.

Gestion de masse (Le terme masse est utilisé pour désigner deux grandeurs attachées à un corps : l'une quantifie l'inertie du corps (la masse inerte) et l'autre la contribution du corps à la force de gravitation (la masse grave). Ces...)

Un propriétaire (root) du serveur physique OpenVZ (également connu sous le nom de nœud matériel) peut voir tous les processus et les fichiers des VE. Ceci permet de faire de la gestion de masse. Considérez que VMware ou Xen sont employés pour la consolidation de serveur : afin d'appliquer une mise à jour (Le jour ou la journée est l'intervalle qui sépare le lever du coucher du Soleil ; c'est la période entre deux nuits, pendant laquelle les rayons du Soleil éclairent le ciel. Son début (par rapport à...) de sécurité à vos 10 serveurs virtuels, vous devez ouvrir une session dans chacun et lancer une procédure de mise à jour. Vous feriez la même chose avec les dix vrais serveurs physiques.

Dans le cas d'OpenVZ, vous pouvez faire tourner un simple script qui mettra a jour tous les (ou juste certains choisis) VEs immédiatement.

Scénarios d'utilisation

Les scénarios suivants d'utilisation sont communs à toutes les technologies de virtualisation. Cependant, un avantage unique de la virtualisation de niveau OS comme OpenVZ est de ne pas trop dégrader les performances, ce qui rend ces scénarios plus attrayants.

Sécurité 
La virtualisation permet d'isoler chaque service réseau (comme Apache, le serveur mail, le serveur DNS etc.) dans un environnement virtuel séparé. Dans ces conditions, si un intrus trouvait un trou de sécurité dans une des applications, il ne pourrait maltraiter que ce service même ; puisque tous les autres services sont dans des VEs séparé, il ne pourrait pas y accéder.
Consolidation de serveur 
Actuellement, la plupart des serveurs sont peu employés. En utilisant OpenVZ, de tels serveurs peuvent être consolidés en les migrant dans des environnements virtuels. Le gain est dans l'espace pris par les racks, les factures d'électricité (L’électricité est un phénomène physique dû aux différentes charges électriques de la matière, se manifestant par une énergie. L'électricité désigne également la branche de la physique qui étudie les phénomènes...), et les coûts de gestion.
Hébergement 
La virtualisation de niveau OS permet aux hébergeurs de proposer de l'hébergement virtualisé à bon marché. Chaque VE (donc éventuellement, chaque client) a un accès root total ( Total est la qualité de ce qui est complet, sans exception. D'un point de vue comptable, un total est le résultat d'une addition, c'est-à-dire une somme....), ce qui signifie que le propriétaire du VE peut réinstaller n'importe quoi, et employer des outils telles que les tables IP de Linux (règles de pare-feu).
Développement et test 
Les développeurs et testeurs ont souvent besoin d'accéder à un grand nombre de distribution Linux ; parfois ils doivent réinstaller ceux-ci à partir de zéro (Le chiffre zéro (de l’italien zero, dérivé de l’arabe sifr, d’abord transcrit zefiro en italien) est un symbole marquant une position vide...). Avec OpenVZ, ils peuvent installer rapidement (un nouveau VE peut être crée en une minute) toutes ces distributions sur un même ordinateur, sans avoir besoin de rebooter, en conservant des performances honorables. Le clonage (Le clonage désigne principalement deux processus. C'est d'une part la multiplication naturelle ou artificielle à l'identique d'un être vivant...) d'un VE est également très simple : il suffit de copier la zone du VE et son fichier de configuration.
Éducatif 
Chaque étudiant peut avoir un ou plusieurs VE. On peut jouer avec différentes distributions de Linux. Un nouveau VE peut être (re)créé en une minute ( Forme première d'un document : Droit : une minute est l'original d'un acte. Cartographie géologique ; la minute de terrain est la carte originale,...).

Technologies semblables

Il existe d'autres exemples de virtualisation au niveau OS tels que Linux-VServer, BSD Jails, et les Zones Solaris.

Développements futurs (Futurs est une collection de science-fiction des Éditions de l'Aurore.)

En mai 2006, le patch (Le mot patch est un anglicisme qui à l'origine désigne un morceau de tissu. Il est également employé pour parler d'une rustine de chambre à air. En français, on le retrouve dans différents domaines :) d'OpenVZ n'a pas été incorporé dans le noyau Linux standard. Puisqu'il y existe d'autres technologies, concurrentes, de virtualisation, il est difficile de déterminer précisément si, quand, et sous quelle forme les changements pourront être fusionnés. Il y a une discussion en cours sur LKML au sujet des différentes approches de virtualisation de niveau OS, des réalisations possibles, et de leur éventuelle inclusion.

Les développements en cours pour OpenVZ incluent :

  • Stabiliser la branche de développements sur le noyau 2.6.17
  • Ajouter le support d'IPv6 (IPv6 (Internet Protocol version 6) est un protocole réseau sans connexion de la couche 3 du modèle OSI.) et bridged networking
  • Ajouter l'affinité de VCPU pour VEs
  • Ordonnanceur d'E/S de VE basé sur CFQ
  • Continuer à maintenir les noyaux spécifiques aux distributions (SUSE10, FC5)
  • Continuer à travailler sur la virtualisation dans le noyau standard
Page générée en 0.198 seconde(s) - site hébergé chez Amen
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
Ce site est édité par Techno-Science.net - A propos - Informations légales
Partenaire: HD-Numérique