Virtualisation sur une grille de calcul et support de cours
|
|
|
- Sylvaine Duquette
- il y a 10 ans
- Total affichages :
Transcription
1 Jocelyn Facchini Master 2 Informatique - Systèmes distribués et réseaux Rapport de stage Virtualisation sur une grille de calcul et support de cours Maitre de stage : M. Thierry Delaitre Tuteur de stage : M. Jean-Michel Hufflen Université de Westminster Université de Franche-Comté du 14 février au 3 juin 2011
2 Remerciements Je tiens à remercier certaines personnes sans qui ce stage n aurait pas pu avoir lieu et se dérouler dans de bonnes conditions. Je voudrais remercier M. Thierry Delaitre mon maître de stage pour son accueil au sein de l Université de Westminster, pour l encadrement de mon stage et pour ses conseils pour la réalisation de ce dernier. Je remercie également M. Jean-Michel Hufflen, Maître de Conférences à l Université de Besançon pour m avoir aidé à trouver ce stage et pour m avoir aidé à corriger le présent rapport. Je remercie M. Christopher J. Reynolds, chercheur à l Université de Westminster pour m avoir aidé à comprendre le fonctionnement de son programme et pour m avoir aidé à commencer mon travail. Je tiens particulièrement à le remercier car sans son aide sur l utilisation de BOINC je n aurais pas pu avancer si rapidement sur mon projet. Je remercie également mes camarades, Philippe Regley, Fabien Monnet, Germain Tanguy et Florian Gibbon pour leur compagnie amicale durant le stage. i
3 Table des matières Remerciements i Introduction 1 1 Lieu et motivations du stage Université de Westminster School of Electronics and Computer Science Centre for Parallel Computing Description des sujets de stage Virtualisation sur une grille de calcul Machine virtuelles de support de cours Premières approches Programme pour BOINC VirtualBox Machine virtuelle sous Debian Travail de documentation Les outils découverts OpenIndiana ZFS COMSTAR VirtualBox BOINC Les outils programmation Netbeans Glassfish JAX-WS Virtualisation sur une grille de calcul Serveur OpenIndiana Installation de Glassfish ii
4 3.1.2 Configuration des droits utilisateurs Scripts shell WebService Fonctionnalités Exécution des scripts shell Programme pour client BOINC Retrait de la décompression du disque dur Client WebService avec gsoap Machines virtuelles de support de cours Fonctionnalités Étudiant Enseignant Coté serveur Serveur WebService Persistance XML Coté client Client WebService Interface Homme Machine Bilans et perspectives Bilan du travail réalisé Semainier Résultat pour l université Bilan humain et personnel Poursuite du projet Fonctionnalités Ajout d une partie administrateur Changement de technologie Conclusion 35 Bibliographie 36 Glossaire 37 Annexes 39 iii
5 Introduction À l Université de Besançon, les étudiants de Master 2 Informatique professionnel sont amenés à réaliser un stage en entreprise d une durée minimum de 4 mois. Il est possible aux étudiants de réaliser ce stage dans un pays é t r a n g e r. La langue de Shakespeare est bien évidemment indispensable dans le monde de l Informatique, c est pourquoi j ai souhaité effectuer mon stage en Angleterre afin de m immerger dans cette langue en complément de la formation qu apporte un stage en entreprise. J ai obtenu par l intermédiaire de M. Jean-Michel Hufflen, Maître de Conférences à l Université de Besançon, un stage au sein de l Université de Westminster à Londres où j ai été accueilli dans l équipe du Centre for Parallel Computing par M. Thierry Delaitre, directeur des infrastructures à l université. Durant ce stage, j ai été amené à travailler sur deux sujets de stage. Le premier avait pour sujet Desktop Grid Virtualisation. Il consistait à améliorer un programme sur une grille de calcul qui utilise des machines virtuelles. Le deuxième sujet m a été attribué afin de me permettre de réutiliser les connaissances acquises durant le premier. Il consistait à développer une solution de gestion de machines virtuelles servant de support de cours aux enseignants de l Université de Westminster. Le présent rapport explique le travail que j ai réalisé durant mon stage. Il est composé de 5 parties expliquant dans un premier temps le cadre de mon stage dans l université et les sujets qui m ont été proposés. Je poursuis ensuite en parlant du travail de documentation que j ai réalisé afin de comprendre les outils que j allais devoir prendre en main. Je continue en présentant en deux parties le travail réalisé sur chacun des deux sujets. Je termine par deux dernières parties pour tirer le bilan de ce stage avant de conclure ce rapport. Les termes marqué d une sont définis dans le glossaire se trouvant à la fin de ce rapport. 1
6 Chapitre 1 Lieu et motivations du stage L Université de Westminster a été créée en 1838 par M. George Cayley et avait pour nom Royal Polytechnic Institution. Cette école fut le premier lieu d enseignement technique en Grande-Bretagne. (a) Entrée du site (b) Foyer du site Figure 1.1 Site de Regent Street 1.1 Université de Westminster L Université de Westminster est actuellement composée de 6 sites répartis dans Londres et ses environs. Le site Cavendish qui se trouve au New Cavendish Street proche de la tour de la British Telecom. Il contient deux écoles : Électronique et informatique Sciences de la vie 2
7 C est dans ce site que mon stage s est déroulé au sein de l école d électronique et informatique School of electronics and computer science. La figure suivante présente le bâtiment vu de devant. Figure 1.2 Site Cavendish Le site de Great Portland Street se trouve au Great Portland street, il contient le département du centre informatique pour personnes handicapées. Le site de Harrow se trouve à Watford road. Il contient deux écoles : une partie de l école d électronique et informatique l école des médias, de l art et du design Le site de Little Titchfield Street se trouve au 4-12 Little Titchfield street, il contient l école de droit. Le site de Marylebone se trouve au 35 Marylebone road. Il contient l école d architecture et de construction environnementale. Le site de Regent Street qui se trouve au 309 Regent street est le plus ancien site de l université. Il comprend l école des sciences sociales, des sciences humaines et des langues School of Electronics and Computer Science Cette école est en cohabitation avec l école de sciences de la vie au sein du site de Cavendish. On peut voir que cette école est constituée de 3 départements et de 4 groupes de recherches dont voici les énoncés : Department of Business Information Systems Department of Computer Science & Software Engineering 3
8 Department of Electronic, Network and Computer Engineering Electronic and Communication Engineering Operational Research and Intelligent Systems Parallel and Distributed Computing Semantic Computing and Systems Engineering Cette école est très réputée pour les programmes d échanges internationaux. J ai pu y découvrir nombre d étudiants étrangers qui viennent étudier dans ce site. L école propose beaucoup de domaines d enseignement dans le parcours informatique. Il est ainsi possible de suivre des cours de gestion de systèmes d information, de programmation parallèle et distribuée, de programmation d intelligence artificielle en passant également par le développement de jeux vidéos et d autres formations Centre for Parallel Computing Pour mon stage, j ai intégré l équipe du Centre for Parallel Computing. Cette équipe fait partie du groupe de recherche Parallel and Distributed Computing. Cette équipe travaille sur plusieurs projets en parallèle avec la recherche. Elle est spécialisée en développement d applications parallèles et distribuées. Les chercheurs travaillent en collaboration avec l université hongroise Sztaki pour développer des applications de gestion de programmes parallèles et distribués sur une grille de calcul ou sur un cluster, on peut citer notamment les projets Shiwa, EDGeS, NGS, GEMLCA. 1.2 Description des sujets de stage L équipe CPC est spécialisée dans les calculs parallèles et distribués. J ai donc été amené à commencer mon travail sur un programme s exécutant sur une grille de calcul avant de travailler sur une application de gestion de machines virtuelles Virtualisation sur une grille de calcul À mon arrivée à l université, le premier sujet que j ai abordé pour mon stage avait pour énoncé Desktop Grid Virtualisation. Le but de ce projet était de poursuivre le travail de Christopher J. Reynolds, chercheur à l Université 4
9 de Westminster, sur un programme distribué au sein d une grille de calcul BOINC, nous verrons plus tard dans ce rapport plus de précisions à propos de BOINC et les détails du travail réalisé par C. J. Reynolds. L Université de Westminster dispose d un ensemble de plus de 1600 machines à la disposition des étudiants. Chacune de ces machines dispose d un client BOINC et tourne sur le système d exploitation Windows. Malheureusement ce système d exploitation ne peut être utilisé pour certains programmes distribués exécutés sur la grille de calcul. En effet, il est parfois nécessaire d utiliser un système d exploitation comme GNU/Linux pour effectuer certains calculs scientifiques. La virtualisation permet en particulier de faire fonctionner un système d exploitation dans un autre. C est en partant sur cette piste que C. J. Reynolds a développé un programme pour BOINC qui utilise une machine virtuelle pour exécuter un programme sous la distribution GNU/Linux Debian. Pour ce faire, il fallait alors charger le disque dur de la machine virtuelle sur chaque poste client exécutant le calcul distribué. Dans un souci de charge réseau, C. J. Reynolds devait alors comprimer les données de ce disque dur. Ces dernières était alors décomprimées par chaque machine cliente ce qui prenait donc un certain temps avant de pouvoir exécuter le calcul. Mon travail était d améliorer cette première solution pour pouvoir réduire la charge réseau nécessaire au transfert du disque dur de la machine virtuelle. L idée proposée par mon sujet était d utiliser un disque dur distant contenant la machine virtuelle. Ainsi il n y aurait plus besoin de télécharger puis décomprimer les données du disque dur de la machine virtuelle Machine virtuelles de support de cours Arrivé au terme de mon premier sujet, il m était impossible techniquement de tester ma solution sur plusieurs machines. En effet, je n avais pas de machines de test à disposition, de plus il m était impossible d exécuter mon programme sur la grille de calcul en production car les machines ne disposent que de la version 3.2 de VirtualBox, tandis que ma solution requiert la version 4.0 qui permet d utiliser les initiateurs iscsi. J ai donc été amené à passer à un autre sujet que m a proposé Thierry Delaitre. L idée était de me permettre de poursuivre sur un sujet en réutilisant les connaissances acquises sur les outils précédemment découvert. Le but de ce projet était de mettre en place un système de support de cours, plus particulièrement pour les travaux pratiques, pour l université en utilisant des machines virtuelles pré-configurées par des enseignants. Ces machines 5
10 virtuelles seraient donc accessibles aux étudiants de telle sorte que chacun d entre eux dispose de son instance personnelle. Techniquement il fallait que je développe une application client-serveur de gestion de disques durs distants pour les machines virtuelles. 1.3 Premières approches Les premières semaines de mon stage ont été consacrées à l étude du travail déjà réalisé sur la question. Le travail en question est, comme dis plus tôt, celui de Christopher J. Reynolds. Ce projet a pour titre Distributed Video Rendering using Blender, VirtualBox and BOINC et a été réalisé en Nous allons voir dans cette partie comment s organise ce programme qui fait cohabiter plusieurs technologies tel que BOINC, VirtualBox et la distribution Debian Programme pour BOINC Le programme développé est un programme parallèle et distribué sur une grille de calcul fonctionnant avec BOINC (Nous verrons dans le prochain chapitre plus de précisions sur BOINC) ayant pour but d effectuer un calcul avec Blender. Ce dernier va permettre d afficher un rendu vidéo d une scène 3D. Ce programme est composé de deux parties que l on place chacune dans un thread. Le premier est appelé Worker Thread. Il a pour but de décompresser le disque dur de la machine virtuelle, puis de créer la configuration de la machine virtuelle avec le programme VirtualBox local. Il termine enfin par exécuter la machine virtuelle, il en récupère le résultat pour finalement indiquer au deuxième thread, appelé Monitor Thread que le calcul est terminé. Ce deuxième a pour but d interagir avec le client BOINC de la machine locale. Ce client peut indiquer au programme d annuler, de suspendre ou de reprendre le calcul. C est le moniteur qui est donc en attente d un message pour gérer le calcul. Il a aussi pour rôle d envoyer un signal pour démarrer la machine et de l arrêter quand le calcul est terminé VirtualBox L idée est d utiliser la puissance d une grille calcul fonctionnant sous Windows en utilisant un programme sous la distribution Debian, Blender. La so- 6
11 lution utilisée pour ce calcul est d exploiter une machine virtuelle pour faire fonctionner Debian. VirtualBox fonctionne avec des fichiers de configuration dont deux utiles au programme distribué. Le premier est le fichier de configurations de VirtualBox et le deuxième est celui de la machine virtuelle en question. Dans l application de C. J. Reynolds, j ai pu observer qu il redéfinissait les chemins des fichiers de configurations en fonction du dossier courant où s exécute le programme. Pour cela, il édite les fichiers de configurations en ajoutant les lignes servant à indiquer à la machine virtuelle où se trouve le disque dur de la machine virtuelle. Pour pouvoir démarrer la machine virtuelle, C. J. Reynolds a utilisé le programme VBoxManage faisant partie de VirtualBox. Ce programme est un utilitaire en ligne de commande qui permet de gérer les configurations des machines virtuelles. Il sert également à démarrer une machine virtuelle grâce à la commande suivante : VBoxManage startvm UbuntuTest Dans cet exemple, on démarre la machine ayant pour nom UbuntuTest Machine virtuelle sous Debian Le calcul choisi pour ce programme distribué est un rendu vidéo d un cube. Pour cela le programme Blender est utilisé afin de calculer quelques images du rendu vidéo. Ce cas est pris à titre d exemple car Blender existe également pour le système d exploitation Windows. Le disque dur de la machine virtuelle a du être installé à l aide du programme Debootstrap. Ce dernier permet d installer les fichiers de la distribution Debian dans un système de fichier. C. J. Reynolds a ensuite utilisé la méthode du chroot qui consiste à changer temporairement la racine du système de fichier afin d installer les programmes utiles à la machine virtuelle tels que Blender et VBoxAdditions. Ce dernier permet d utiliser notamment le partage de fichiers entre la machine invitée et la machine qui héberge la virtuelle. Le déroulement de l exécution de la machine virtuelle revient à quelques étapes contenues dans un fichier exécuté au démarrage, écrit en script shell.il consiste à créer le dossier partagé, exécuter le calcul puis finalement éteindre la machine virtuelle. 7
12 Chapitre 2 Travail de documentation Dans cette partie, je vais décrire les différents outils que j ai découverts et utilisés. Je préciserai également quels ont été leur utilité pour mes projets. 2.1 Les outils découverts OpenIndiana OpenIndiana est un système d exploitation développé par une communauté qui se s est basé sur le système OpenSolaris, développé au départ par Sun Microsystems. Figure 2.1 Logo d OpenIndiana Ce système d exploitation est décrit comme la suite d OpenSolaris, voire même son remplaçant. Il a été utilisé en tant que serveur. Il a l avantage d être livré par défaut avec ZFS et COMSTAR(ces deux derniers seront décrits plus loin) ZFS Z File System est un système de fichier conçu initialement par Sun Microsystems. Il a principalement été développé pour Solaris. 8
13 Figure 2.2 Logo de ZFS Il a pour principales caractéristiques la gestion de très haute capacité stockage, la gestion de plusieurs volumes en un seul, la création d images (snapshots) de systèmes de fichiers et le clonage de ces derniers. L avantage des snapshots est de permettre de garder un système de fichiers en l état à un moment donné. L évolution du système de fichier sera ainsi enregistrée sans en modifier le contenu de départ. Il est possible également de créer des clones de ces snapshots. Ainsi on pourra disposer d un certain nombre de systèmes de fichiers ayant le même contenu initial mais chacun d entre eux disposant de sa propre évolution. Ajoutons finalement que ce système de fichier est très léger et permet de mettre en place très facilement une plateforme de gestion de stockage COMSTAR Common Multiprocol SCSI Target est un protocole qui permet à un système d exploitation d héberger des cibles du protocole SCSI accessibles en réseau. Small Computer System Interface, d après la définition de Wikipedia, est un standard définissant un bus informatique permettant de relier un ordinateur à des périphériques ou bien même à un ordinateur. Le protocole iscsi peut donc permettre l utilisation de disque dur distant par exemple, accessible via un réseau. Pour pouvoir y accéder, il est nécessaire de disposer d un cible iscsi. Cette dernière peut faire partie d un groupe qui peut être défini comme le groupe qui a le droit d accéder à un unité logique. Cette dernier est créé pour un équipement SCSI, nous l utilisons pour définir un système de fichiers ZFS en tant que disque dur. Cette unité logique est constitué d une view qui permet de définir les groupes de cibles iscsi autorisés à y accéder. La view est caractérisée par un numéro appelé LUN. 9
14 2.1.4 VirtualBox VirtualBox est un logiciel de virtualisation créé par InnoTek. Cette dernière entreprise fut rachetée par Sun microsystems avant que celle-ci même fut rachetée par Oracle. Figure 2.3 Logo de VirtualBox VirtualBox est un logiciel multi-plateforme. Il fonctionne sur les sytèmes d exploitation Windows, Linux, FreeBSD et Mac OS X. Il permet de simuler le comportement d une machine pour installer un système d exploitation. Il est possible d installer les systèmes tels que Windows, Linux, OpenBSD, Solaris ou FreeBSD, pour ne citer qu une partie de la liste. Par exemple, si nous disposons de VirtualBox sur la distribution GNU/Linux Ubuntu, il est possible d installer Windows ou même la distribution GNU/Linux Ubuntu tout comme le système qui l héberge. VirtualBox a l avantage de fournir le mécanisme d initiateur iscsi. Ce dernier permet d accéder à des périphériques distants comme par exemple un disque dur se trouvant sur un serveur de stockage BOINC Berkeley Open Infrastructure for Network Computing est une plate-forme de calcul distribué développé par l université de Berkeley, Californie. Figure 2.4 Logo de BOINC 10
15 Ce programme permet de gérer des projets de calcul distribué. D un point de vue technique, il est composé d un client et d un serveur. Il a pour rôle de distribuer les jobs aux clients. L idée de ce projet est de permettre l utilisation des puissances de calcul des machines des utilisateurs de base. Ces derniers mettent à disposition une partie de leur puissance pour participer à des projets scientifiques qui nécessitent une grande quantité de traitements à réaliser. Les projets les plus connus utilisant BOINC sont le SETI@Home puis Einstein@Home. Le premier projet a pour titre Search for Extra-Terrestrial Intelligence, il vise à recherche le moindre signe de vie intelligente extra-terrestre. Le deuxième a pour but de détecter des ondes gravitationnelles en analysant des données interféromètres. L Université de Westminster dispose d un parc informatique de plus de 1600 machines à disposition des étudiants. Lorsque ces derniers ne les utilisent pas, il est possible d utiliser une grande partie de la puissance de calcul de la machine. C est pourquoi l université a mis en place sur chaque machine un client BOINC inscrit dans des projets de recherche en interne. 2.2 Les outils programmation Pour réaliser mes projets j ai dû apprendre à utiliser de nouveaux outils de programmation Netbeans Netbeans est un Environnement de Développement Intégré créé par Sun Microsystems en Il supporte le développement sur plusieurs langages tels que le C, C++, Python, PHP et d autres. Mais il a été surtout créé pour développer en Java. Figure 2.5 Logo de Netbeans Netbeans est notamment spécialisé pour le développement J2EE. Il permet de gérer un serveur d application, de générer rapidement un WebService 11
16 avec l API JAX-WS, de générer la structure d une application pour poste de travail et permet également le développement d applications Web Glassfish Glassfish est un serveur d application créé par Sun Microsystems en 2005 en tant que Sun Application Server. Figure 2.6 Logo de Glassfish Ce serveur permet le développement d applications distribuées en utilisant les technologies comme EJB3, JPA, JSF, JAX-WS et d autres JAX-WS Java Api for Xml WebService est une API Java qui permet le développement simple et rapide de WebServices. Le principe est d utiliser des annotations Java là où l on souhaite définir des méthodes distantes. En complément de Netbeans, il est très simple et rapide de mettre en place un WebService. Le besoin de créer un WebService s est fait ressentir quand je me suis posé la question de savoir comment créer dynamiquement des systèmes de fichiers avec ZFS, des clones de systèmes de fichiers et des cibles iscsi permettant d y accéder. Nous verrons dans le prochain chapitre pourquoi j utilise un WebService plutôt qu un serveur développé en Java RMI par exemple. 12
17 Chapitre 3 Virtualisation sur une grille de calcul Nous allons voir dans ce chapitre le travail que j ai réalisé sur mon premier projet. Nous avons vu plus tôt que mon sujet était d améliorer le projet de Christopher J. Reynolds en remplaçant le disque dur de la machine virtuelle par un disque dur distant. Pour faire cela j ai installé un serveur OpenIndiana pour gérer les disques durs. Sur ce serveur j ai créé un WebService afin de générer dynamiquement des disques durs distants pour le programme exécuté sur le client BOINC. 3.1 Serveur OpenIndiana Le choix du système d exploitation du serveur a été réalisé au préalable dans le sujet du projet. Si ce choix s est porté sur OpenIndiana, c est que ce dernier contient déjà les programmes nécessaires à mon travail. Nous pouvons citer ZFS et COMSTAR que j ai dû prendre en main au début de mon stage. Ajouter à cela, j ai également dû me charger de l installation de Glassfish pour exécuter le WebService Installation de Glassfish Dans OpenIndiana, il est possible d installer Glassfish en utilisant le paquet disponible dans les dépôts du système d exploitation. J ai naturellement essayé de cette manière mais il s avère que cela n a pas fonctionné pour moi. En effet, lorsque j essayais d utiliser la commande pour démarrer le serveur d application, j obtenais une erreur m indiquant qu il est impossible de le démarrer. Après quelques tentatives de correction du problème, j ai fina- 13
18 lement décidé d installer une version portable contenue dans une archive. L installation fut encore plus rapide car il m a suffit d extraire le dossier du programme dans mes documents puis d exécuter le script de démarrage du serveur. Une fois le serveur en place, il ne reste plus qu à déployer l application compilée de notre programme, ici le WebService. Pour ce faire, j ai utilisé deux manières. La première se fait d une manière intégrée à Netbeans. Il est possible, d indiquer à Netbeans où se trouve le serveur d application afin qu il déploie notre programme. Dans ce cas il suffit juste d utiliser l interface graphique de l IDE pour que le programme soit compilé et déployé sur le serveur. Cependant, lorsque j essayais d utiliser un serveur distant, il était impossible de déployer mon programme. La seconde solution que j ai du utiliser pour remédier à ce problème était d utiliser l application Web du serveur d application afin de déployer à la main mon programme compilé. L interface est facile d utilisation. Pour déployer un programme, il suffit de se rendre sur la page des applications, d appuyer sur le bouton deploy puis de sélectionner le programme compilé contenu dans une archive jar Configuration des droits utilisateurs Pour gérer de manière dynamique la création et la suppression des disques durs distants, j ai dû mettre en place un WebService de manière à ce qu un programme client puisse accéder à ces fonctionnalités. Dans mon cas les disques durs distants étaient des clones du disque dur virtuelle utilisé par C. J. Reynolds dans son projet. J ai pour cela importé le disque dur dans un nouveau système de fichier utilisant ZFS. Ensuite, j ai créé une image de ce disque dur pour être cloné. Les clones servent à fournir une instance propre du disque dur à une machine virtuelle. De cette manière, il est possible d utiliser plusieurs fois le même disque en parallèle. La gestion des systèmes de fichiers se fait à l aide de lignes de commandes. La liste des commandes qui m ont été utile pour ce stage se trouve en annexe de ce rapport. Le problème est que ces commandes nécessitent de posséder les droits administrateur pour les utiliser. Plusieurs solutions m étaient offertes mais certaines n ont pas résisté à une analyse sérieuse. La première idée qui, rapidement, n a pas été conservée était de démarrer le serveur d application avec les droits administrateurs. Évidemment, de cette manière le programme exécuté sur le serveur d application aurait les droits nécessaires à l exécution des commandes. Mais cette solution n est absolu- 14
19 ment pas sécurisée pour le serveur. La moindre faille pourrait mettre en danger tout le serveur. La deuxième solution que m a proposé mon camarade stagiaire Philippe Regley était d utilisé setuid. Ce dernier signifie Set User ID. C est une propriété des systèmes d exploitations de type UNIX qui permet à un programme d exécuter, avec les droits de son propriétaire, d autres programmes ou commandes. La manipulation consistait à créer un programme en C avec l instruction setuid(0) ; (0 étant le numéro utilisateur de l administrateur) puis de changer les droits du programme compilé grâce à la commande : chmod 4755 programme Cependant, cette solution ne me plait pas beaucoup et n est pas très pratique voire très contestable. C est pourquoi je me suis tourné vers une autre solution qui consiste à ajouter les droits à l utilisateur avec le programme sudo. Pour cela, il faut rajouter dans le fichier de configuration de sudo qui se trouve à l emplacement /etc/sudoers. J ai ajouté les lignes suivantes : Cmnd_Alias ITARGET=/sbin/zfs,/usr/sbin/sbdadm,/usr/sbin/stmfadm, /usr/sbin/itadm oi ALL=(ALL) NOPASSWD:ITARGET La première ligne est un alias permettant de faire une liste de chemins vers des programmes. La deuxième ligne signifie que l utilisateur oi dispose de tout les droits et ne nécessite aucun mot de passe pour pouvoir utiliser les programmes faisant partie de la liste définie par l alias ITARGET Scripts shell Disposant à présent des droits nécessaires à l exécution des programmes de gestion des systèmes de fichiers et des cibles iscsi, j ai pu créer les scripts shell servant à créer un clone du disque dur de la machine virtuelle ainsi que de sa cible, puis un autre script servant à supprimer une cible et le clone associé. Mon projet a pour but d utiliser des disques durs distants pour des machines virtuelles. Pour pouvoir tester un exemple de calcul qui fonctionne, j ai utiliser le disque dur de la machine virtuelle mis en place par C. J. Reynolds. J ai donc dû au préalable l importer dans un système de fichiers utilisant ZFS. Pour cela j ai dû m en remettre à mon maître de stage, M. Thierry Delaitre, qui m a donné la commande suivante : 15
20 dd if=debian.img of=/dev/zvol/dsk/rpool/debian Cette ligne signifie que l image disque debian.img est copiée dans le fichier /dev/zvol/dsk/rpool/debian. La commande dd permet de copier un fichier tout en effectuant une conversion. Une fois le disque dur prêt dans son système de fichiers, il fallait que je crée une image grâce à la commande : zfs snapshot debian@base Cette ligne de commande signifie que je crée une image du disque ayant pour nom debian et donne à cette image le nom base. Une fois cette configuration du disque terminé, j ai pu écrire les scripts de création d un clone en lui définissant une cible iscsi, puis le script de suppression de ces deux derniers. Nous avons vu précédemment que pour atteindre un clone il fallait créer une unité logique que l on ajoute dans une vue. Le script de création comporte donc 3 lignes essentielles et quelques instructions de contrôle d erreur. Les lignes principales sont les suivantes : sudo zfs clone rpool/debian@base rpool/monclone sudo sbdadm create-lu /dev/zvol/rdsk/rpool/monclone sudo stmfadm add-view MonCloneLUid Dans la troisième ligne, je considère que j ai récupéré dans la variable MonCloneLUid l identifiant de l unité logique créé à la deuxième ligne. Pour plus de précision sur la manière de procéder, les scripts shell du deuxième projet qui se comportent de la même manière sont disponibles dans les annexes. 3.2 WebService Pour pouvoir gérer dynamiquement les clones et cibles iscsi, j ai dû mettre en place un WebService. L idée du WebService est d offrir un moyen de créer des clones et leur cible. Le programme distribué pour BOINC est écrit en langage C. Le moyen le plus simple et rapide de faire communiquer le programme avec le serveur était de mettre en place un WebService. 16
21 3.2.1 Fonctionnalités Nous avons vu plus tôt qu il était nécessaire de créer deux scripts shell pour générer un clone du disque dur virtuel et sa cible, puis les supprimer quand le calcul est terminé. J ai donc créé deux méthodes distantes ayant pour en-tête et annotations = "createclone") public String = "fromvmname") String fromname = "deleteclone") public String = "cloneuuid") String cloneuuid ) createclone permet de créer un clone d un disque dur deleteclone permet de supprimer un clone La première méthode prend en paramètre le nom du disque dur à cloner puis retourne un UUID correspondant au clone créé. Une fois le calcul sur la machine virtuelle terminé, on appelle la deuxième méthode qui prend en paramètre l UUID du clone à supprimer. Une fois ces deux en-têtes et leurs annotations définies, j ai pu générer avec Netbeans le fichier WSDL correspondant, qui décrit les méthodes distantes du WebService, afin de créer les objets distants chez les clients Exécution des scripts shell Nous avons vu plus tôt qu il était nécessaire de disposer des droits administrateur pour exécuter les précédents scripts shell. Pour cela nous avons vu que nous utilisons la commande sudo sur laquelle nous avons indiqué que notre utilisateur dispose des droits nécessaires. Ce préambule fut nécessaire pour pouvoir exécuter les scripts dans notre programme Java. Pour utiliser ces scripts en Java, j ai utilisé un objet de type Process que je génère à partir de la classe Runtime. Ce dernier passe à ce processus la ligne de commande à exécuter, c est à dire mon script shell. Une fois le processus terminé, mon objet Process contient trois objets de flux. Nous avons le flux d entrée standard, le flux de sortie standard et le 17
22 flux d erreur standard. Je me suis plus particulièrement intéressé au flux de sortie standard qui contient le résultat de l exécution de mes scripts shell. Une fois le résultat récupéré dans une chaine de caractères à partir du flux de sortie standard, je pouvais trouver deux types d informations. Soit le script rencontrait une erreur et j obtenais une chaine de caractères qui commence par "[Err]" suivie de l erreur rencontrée, soit l UUID du clone pour le premier script. À la fin de l exécution des scripts shell, les méthodes distantes retournent donc aux clients du WebService le résultat ou l erreur rencontrée. 3.3 Programme pour client BOINC Une fois le WebService prêt pour générer dynamiquement des clones du disque dur virtuel, je me suis penché sur le programme de Christopher J. Reynolds afin de l adapter pour qu il utilise mon serveur de stockage via le WebService Retrait de la décompression du disque dur Nous avons vu précédemment que le programme à l origine devais décomprimer les données du disque dur de la machine virtuelle puis modifier les fichiers de configurations de VirtualBox et de la machine virtuelle. Pour mon projet, j ai dû retirer la partie du programme où les données du disque dur étaient décomprimées J ai l ai remplacé par des appels distants au WebService afin de créer le clone et d en récupérer la cible iscsi. Dans un second temps, j ai du changer les modifications des fichiers de configurations de manière à ce que la machine virtuelle utilise le disque dur distant plutôt que le disque dur virtuel local. Pour cela, j ai ajouté les lignes suivantes : <HardDisk uuid="{35120bc9-b3d1-46a6-aae4-41a719996d2c}" location=" iqn com.sun:02:cd1cd78d-1e5d-e382-babe-a959ecd6c705 1" format="iscsi" type="normal"> <Property name="lun" value="1"/> <Property name="targetaddress" value=" "/> <Property name="targetname" value=" iqn com.sun:02:cd1cd78d-1e5d-e382-babe-a959ecd6c705"/> </HardDisk> 18
23 Ces lignes contiennent les informations relatives au disque dur accessible via le protocole iscsi. On peut retrouver notamment l adresse du serveur de stockage, l identifiant de la cible iscsi et le numéro de l unité logique à atteindre. Pour distinguer un clone d un autre, je n ai pas besoin de recréer des cibles iscsi. La seule information importante est le numéro de l unité logique. En effet, à chaque fois que l on créé une unité logique, COMSTAR lui défini un numéro en fonction du groupe de cibles pouvant atteindre cette unité logique. Ici il n y a pas de restriction sur les cibles. Les unités logiques font donc parties du groupe all. Ainsi, lorsque je reçois, en retour d appel de méthode distante, le numéro de l unité logique correspondant à un clone, il me suffit de le rajouter dans ces lignes pour permettre à la machine virtuelle d y accéder Client WebService avec gsoap Maintenant que l on a toutes les pièces du puzzle identifiées pour le programme que j ai écrit petit à petit au fur et à mesure, il ne me restait plus qu à créer le client au WebService pour établir le dernier lien. Je connaissais déjà le programme gsoap que j ai utilisé lors du développement d une application iphone qui avait besoin d accéder à un WebService. gsoap permet de générer un client ou serveur de services Web en C ou C++. J ai donc utilisé ce programme afin de créer les deux méthodes distantes dont j avais besoin pour mon projet. 19
24 Chapitre 4 Machines virtuelles de support de cours Nous allons dans cette partie le travail réalisé sur le deuxième projet qui m a été attribué. Nous avons vu plus tôt qu il s agit d un programme qui permet à un enseignant de configurer une machine virtuelle pour un cours ou plus particulièrement pour des travaux pratiques. Par la suite, lorsque l enseignant aura terminé de préparer sa machine, cette dernière devra être accessible aux étudiants afin que chacun dispose de sa propre version. Je vais décrire dans ce chapitre les fonctionnalités que fourni l application lorsque l on est un étudiant puis lorsque l on est un enseignant. Dans une seconde partie je développerai les deux parties de l application, c est à dire le programme côté serveur puis le programme côté client. 4.1 Fonctionnalités L application peut se présenter sous deux aspects. L un correspond à l affichage destiné à un utilisateur ayant pour type student et l autre est destiné à un utilisateur de type teacher. Il est à noter que les droits des étudiants sont un sous-ensemble des droits possédés par les enseignants. Cela sous-entend que les fonctionnalités décrites pour un étudiant sont aussi valables pour un enseignant Étudiant Pour pouvoir utiliser l application, les étudiants doivent au préalable faire partie des utilisateurs. En effet, lors que le programme démarre, il vérifie avec le login si l étudiant fait partie des utilisateurs. Lorsque ceci est vérifié, l ap- 20
25 plication peut démarrer. La figure suivante montre l affichage de la liste des machines virtuelles dont dispose l utilisateur. Il est à noter que l image ci-dessous ne correspond pas à l affichage pour un étudiant mais à celui d un enseignant. En effet, il faut penser que les boutons Create et Clonable ne sont pas visibles pour l étudiant. Figure 4.1 Liste des machines virtuelles Nous pouvons observer sur l image précédente la présence du bouton Available. Il pour but d afficher la liste des machines virtuelles mis à disposition des étudiants mais ne faisant pas partie de la liste des machines de l utilisateur courant. Techniquement, lorsque des machines sont présentes dans la liste affichée par le bouton Local cela signifie qu un clone du disque dur de la machine virtuelle d origine a été créé pour l utilisateur courant. En revanche, les machines affichées dans la liste du bouton Available n ont pas clone du disque dur pour l utilisateur courant. L utilisation du programme est très simple. Lorsque l utilisateur démarre une machine virtuelle, il doit double cliquer sur le nom de la machine désirée dans la liste Local. Si la machine virtuelle souhaitée ne fait pas partie de ses machines mais qu elle est disponible, c est-à-dire qu elle fait partie de la liste Available, l utilisateur devra double cliquer sur le nom de la machine virtuelle de cette liste. Ainsi, un clone sera créé pour l utilisateur puis la machine apparaîtra dans la liste Local. La figure suivante montre une machine virtuelle qui a démarré. 21
26 Figure 4.2 Exécution d une machine virtuelle Lorsqu une machine virtuelle est démarrée, le programme de gestion, n étant plus nécessaire, s arrête Enseignant En plus des fonctionnalités d accès et de clonage des machines, les utilisateurs ayant pour type teacher vont pouvoir créer puis rendre accessible des machines virtuelles. Nous allons voir dans cette partie comment un professeur doit procéder pour utiliser correctement ces fonctionnalités. La première étape consiste à créer la configuration d une machine virtuelle à l aide du programme VirtualBox. Ce dernier dispose d un assistant de création d une machine virtuelle. Pour l exemple suivant, je souhaite créer une machine virtuelle du nom de RedHatTest afin d y installer la distribution Red Hat comme le montre la figure suivante. 22
27 Figure 4.3 Création d une machine virtuelle - 1 Une fois le nom et la distribution choisi pour la machine virtuelle, l assistant nous propose de créer un disque dur virtuelle dans un fichier. Il faut impérativement décocher la case Boot Hard Disk, comme illustré ci-dessous, car nous voulons que le disque dur soit distant et fasse partie du serveur de stockage. Figure 4.4 Création d une machine virtuelle - 2 La figure suivante montre le message d alerte de VirtualBox qui nous prévient que si nous ne sélectionnons pas disque dur virtuel il sera impossible de démarrer la machine. Nous cliquons donc sur le bouton Continue pour passer à l étape suivante. Une fois l assistant terminé, VirtualBox crée un fichier de configuration avec l extension.vbox. Ce dernier est en réalité un fichier XML contenant les informations relatives à la machine virtuelle en question. 23
28 Figure 4.5 Création d une machine virtuelle - 3 Nous revenons ensuite au programme développé lors de mon stage. Pour ajouter une nouvelle machine, l utilisateur doit cliquer sur le bouton Create pour voir s afficher une boite de dialogue de sélection de fichier. Le dossier courant étant le dossier où se trouvent les configurations des machines virtuelles sur l ordinateur. Les deux images de la figure suivante montrent comment sélectionner le fichier de configuration de la machine virtuelle Red- HatTest. (a) Création d une machine virtuelle - 4 (b) Création d une machine virtuelle - 4 Figure 4.6 Sélection du fichier de configuration 24
29 Une fois que l utilisateur valide la sélection du fichier de configuration, la machine virtuelle est ajoutée à sa liste des machines Local. Lorsque le professeur effectue un double clique dessus, il démarre la machine virtuelle qui affiche l assistant de premier démarrage de la machine virtuelle. Il propose de sélectionner une image ou CD-ROM d installation d un système d exploitation comme illustré dans les images de la figure suivante. (a) Premier démarrage (b) Sélection de l image d installation système Figure 4.7 Sélection du fichier de configuration Après avoir installé et configuré la machine virtuelle, l enseignant pourra rendre la machine virtuelle clonable. C est à dire que les autres utilisateurs pourront apercevoir le nom de la machine dans la liste Available. Les deux images de la figure suivante illustrent le résultat. Maintenant que nous connaissons les fonctionnalités accessibles aux utilisateurs, nous allons voir dans la suite, d un point de vue technique, les deux parties que forment l application. 25
30 (a) Cloner le disque d une machine virtuelle (b) Résultat d affichage chez un autre utilisateur 4.2 Coté serveur Figure 4.8 Clonage du disque dur distant Pour ce projet, j ai réutilisé le serveur que j avais mis en place pour le premier sujet de mon stage. Ce serveur contient les systèmes de fichiers contenant les disques durs distants ainsi que leurs clones. Cependant, l application fonctionnant sur le serveur a complètement été revu. J ai amélioré les fonctionnalités, en ai ajouté d autres et mis en place une persistance en Xml. L idée de cette dernière est d éviter d utiliser une base de données pour si peu de données Serveur WebService Pour accéder aux fonctionnalités du serveur, j utilise encore un WebService mais cette fois il offre beaucoup plus de méthodes distantes. En effet, pour ce projet j ai besoin de récupérer plus d information sur l utilisateur et ses machines virtuelles. Nous verrons les données stockées sur le serveur dans la suite. La liste des méthodes offertes par ce WebService est la suivante : getmyvms(string login) Retourne la liste des machines virtuelles de l utilisateur ayant le login passé en paramètre. 26
31 getavailablevms() Retourne la liste de toutes les machines virtuelles disponibles. getvmconfig(string vmname) Retourne la configuration de la machine virtuelle dont le nom est passé en paramètre. gettarget(string username) Retourne la cible iscsi de l utilisateur dont le login est passé en paramètre. getusertype(string username) Retourne le type de l utilisateur, student ou teacher. getvmlun(string vmname, String username) Retourne le numéro de l unité logique attribué à une machine virtuelle pour un utilisateur donné. getisvm(string vmname, String username) Permet de savoir si l utilisateur a créé la machine virtuelle. createclone(string login, String vmname) Permet de cloner le disque dur d une machine virtuelle et de l attribué à un utilisateur. createuser(string login, int type) Permet de créer utilisateur. deleteclone(string cloneuuid) Permet de supprimer un clone. createmachine(string username, String vmname, String vmconfig) Permet de créer une machine virtuelle par un utilisateur donné et le fichier de configuration de la machine. setclonable(string vmname) Permet d autoriser le clonage d une machine virtuelle. Pour accéder à ces informations, j ai créé un objet Manager qui sera instancié à chaque fois que l application démarre. Il est généré à partir de la lecture du fichier de persistance Xml. Il contient une liste d objets User et une liste d objets Machine qui correspondent respectivement à la liste des utilisateurs et la liste des machines virtuelles disponibles. Un objet User contient également une liste d objets Machine qui correspond à la liste des machines virtuelles de l utilisateur en question. La dernière classe Java que j ai créé est Settings. Cette dernière est composée de méthodes static qui permettent d ouvrir le fichier Xml, d écrire le fichier, de créer un fichier par défaut, de récupérer la liste des utilisateurs et de récupérer la liste des machines disponibles. 27
32 4.2.2 Persistance XML Comme nous l avons vu plus tôt, j ai décidé d utiliser une persistance en XML pour pouvoir stocker les données. La taille et la complexité des données n étant pas importantes il n était alors pas nécessaire et adapté d utiliser une base de données. Ce fichier correspond à la liste des utilisateurs, de leurs machines virtuelles et à la liste des machines virtuelles disponibles. Le code suivante montre un exemple de persistance XML : <?xml version="1.0" encoding="utf-8"?> <iscsi-manager> <users> <user login="jfacchini" target="iqn com.sun:02:cd1cd78d-1e5d-e382-babe-a959ecd6c705" type="teacher"> <vm lun="0" name="ubuntutest"/> <vm lun="1" name="debiantest"/> </user> <user login="pregley" target="iqn com.sun:02:2a44557b-fca1-e6a7-82d1-8d9c e" type="student"> <clone id="483dced4-753d c-bb1877e8078b" lun="0" name="ubuntutest"/> </user> </users> <machines> <machine name="ubuntutest"/> </machines> </iscsi-manager> Les utilisateurs sont caractérisés par leur login, leur cible iscsi et leur type. Ils peuvent contenir une liste de machines virtuelles ou clones. Dans l exemple ci-dessus, nous pouvons voir que l utilisateur jfacchini a deux machines virtuelles, cela signifie que cet utilisateur les a créées et en est le propriétaire. Il peut donc, à un moment donné, décider de les rendre clonable ce qui impliquerais que ces machines soient ajoutées à la liste des machines disponibles. Ici nous constatons que seule la machine UbuntuTest est dis- 28
33 ponible. L utilisateur pregley dispose quand à lui d un clone de la machine virtuelle UbuntuTest. 4.3 Coté client Nous avons vu au début de ce chapitre les fonctionnalités du programme client de l application. Ce programme est composé de deux parties. La première est le client du WebService afin d accéder au informations nécessaires du serveur. La deuxième est l interface homme machine que voit l utilisateur Client WebService Cette partie ne fut pas la plus difficile. En effet, l utilisation de Netbeans facilite la génération du client du WebService. Un assistant permet de sélectionner le fichier WDSL pour générer toutes les méthodes distantes. Pour accéder aux informations du WebService je devais créer l objet distant de la manière suivante : Managerws port = new ManagerwsService().getManagerwsPort() ; Managerws correspond au nom du WebService. De cette manière, la variable port contient l objet distant. Il ne reste plus qu à utiliser les méthodes comme le montre ce qui suit : target = port.gettarget(login) ; De cette manière on récupère la cible iscsi d un utilisateur Interface Homme Machine Lorsque le programme client a récupéré toutes les informations de l utilisateur, il affiche l interface homme machine que nous avons vu au début de ce chapitre. Cette interface a été développé en Swing/AWT. La figure ci-dessous rappelle l apparence de cette interface. J ai créé cette interface en utilisant le modèle MVC. Un contrôleur va contenir le modèle, c est à dire les informations de l utilisateur, et les vues, ici les listes des machines virtuelles. La fenêtre principale est composé d une barre d outils contenant les boutons Local, Available, Create et Clonable. De plus, l affichage principale de cette fenêtre est la liste de machines virtuelles. Pour chacun des boutons et 29
34 Figure 4.9 Interface Homme Machine listes a été créé un écouteur permettant de réagir aux interactions de l utilisateur. Bien que cette interface ne fournisse que peu de fonctionnalité, le travail fourni dessus n a pas été négligeable. De plus, le développement de cette application est le résultat de l assemblage de 5 technologies ce qui entraine 5 fois plus de traitements lorsque l on veut ajouter une fonctionnalité à l interface. 30
35 Chapitre 5 Bilans et perspectives Bien que l application ne soit pas terminée, celle-ci est déjà opérationnelle. Nous allons voir dans cette partie le bilan de mon stage sur le travail réalisé en montrant ce que j ai apporté à l université. Je poursuis d un point de vue personnel de ce que m a apporté le stage. Je termine enfin par les perspectives qu apporte ce projet. Mon maître de stage, M. Thierry Delaitre, a pour objectif de poursuivre le deuxième projet afin de le proposer aux enseignants de l Université de Westminster. 5.1 Bilan du travail réalisé Mon stage d une durée de 16 semaines a demandé 5 semaines de documentations et environ de 9 semaines de développement sur les deux projets. La dernière semaine a été consacré à l élaboration du présent rapport Semainier Semaine 1 à 3 Documentation sur OpenIndiana, ZFS, COMSTAR, VirtualBox et BOINC Semaine 4 et 5 Étude du programme pour BOINC développé par Christopher J. Reynolds Semaine 6 Création des scripts shell de création et suppression des clones + modification du programme de C. J. Reynolds Semaine 7 Création du WebService sur le serveur + client WebService en C++ avec gsoap Semaine 8 Poursuite des modifications du programme. Fin du premier projet 31
36 Semaine 9 Étude du second projet, documentation sur COMSTAR pour la gestion des groupes de cibles iscsi, modification scripts shell Semaine 10 et 11 Développement du WebService, de la persistance Xml et des scripts shell Semaine 12 et 13 Développement du programme client, interface homme machine Semaine 14 et 15 Développement du programme client et serveur pour ajout de fonctionnalités Semaine 16 Écriture du rapport de stage Résultat pour l université Arrivé à terme de ce stage, l université dispose à présent d une solution de gestion de disques durs distants. Au départ elle devait servir à générer des clones d un disque dur pour un calcul à effectué sur une grille. Cette solution a été modifié et amélioré afin de permettre aux enseignants de l université de mettre au point des machines virtuelles en tant que support de cours à destination des étudiants. L application actuelle ne dispose pas encore de toutes les fonctionnalités dont on aurait besoin ainsi que d une partie administration. Cependant, elle fonctionne et il est déjà possible de s en servir. 5.2 Bilan humain et personnel D un point de vue humain je ne suis pas pleinement satisfait. Je me suis senti un peu mis à l écart, je n étais pas vraiment intégré dans l équipe et je m attendais à beaucoup plus de communication avec le reste de l équipe. Ceci est dû à de la malchance car au moment de mon stage, l équipe était en pleine effervescence car elle arrivait bientôt à terme d un projet important. D un autre côté j ai été très satisfait par l accueil. J ai apprécié la prise en charge de mon stage par M. Thierry Delaitre qui était toujours disponible à chaque fois que j avais besoin de son aide ou d informations sur ce que je devais faire. Ceci est indispensable pour le bon déroulement d un projet car il arrive à un moment donné où le programmeur a besoin de connaitre plus précisément les attentes du client. Il en est de même avec Christopher J. Reynolds qui m a aider à comprendre le programme qu il avait mis au point un an plus tôt. J ai déjà dû, pendant un autre stage, reprendre un travail réalisé par une personne que je ne connaissais pas et que je ne pouvais pas joindre. Je sais donc à quel point 32
37 il est appréciable de pouvoir posé directement les questions que l on se pose sur la manière de faire d un développeur plutôt que d essayé de deviner sa démarche. D un point de vue personnel ce stage m a apporté beaucoup de choses. J ai non seulement amélioré et augmenté mes compétences dans le domaine de l Informatique, mais également découvert Londres, amélioré mon anglais, découvert les auberges de jeunesses et appris à me prendre en charge seul. Ce stage m aura permit de surmonter et de dissiper ma timidité et prendre goût aux voyages à l étranger. Je pense que j aimerais renouveler ce genre d expérience à l avenir car il y a beaucoup de chose à découvrir. Mais j aimerais également repartir à l étranger dans un autre contexte que le travail pour pouvoir passer plus de temps avec les personnes parlant essentiellement la langue du pays. 5.3 Poursuite du projet Mon maître de stage, M. Thierry Delaitre, a l intention de poursuivre mon projet. Afin de facilité la tâche de la personne qui a l intention de reprendre ce sujet, je liste ici les fonctionnalités manquantes et quelles pourraient être les améliorations à apporter Fonctionnalités Actuellement, l interface homme machine manque un peu d interactivité. En effet, si l on lance le programme client à partir d un raccourci plutôt qu en ligne de commande, aucune erreurs n apparaitra bien quelles soient prises en compte. L idée ici, sera d ajouter une fenêtre indiquant l erreur rencontrée. Lors de chaque appel au WebService, le test connectivité n est jamais effectué. Pour cela il faudra ajouter un test pour savoir si l appel s est bien déroulé. L interface homme machine pourra être également amélioré. Il n y a pour le moment pas de moyen à un utilisateur de supprimer un de ses clones. Il peut se faire ressentir le besoin de repartir à zéro, il faudra donc ajouter une méthode de suppression du clone. Il peut en être de même pour une machine virtuelle mais cela implique la suppression de tous les clones de celle-ci. Un problème se soulève donc, comment garantir que les machines virtuelles utilisant les clones du disque dur soient correctement supprimées? Une proposition à ce problème serait de créer un fichier de configuration de l utilisateur 33
38 afin de connaître les machines virtuelles présentes sur un ordinateur pour comparer aux clones existants. Ajoutons également que l interface homme machine manque un peu d informations sur les machines. Il serait intéressant de créer un panel qui affiche les informations en fonction de la machine sélectionnée Ajout d une partie administrateur L application a besoin d une partie d administration. Pour le moment, il n existe pas un moyen interactif de créer ou supprimer des utilisateurs et de gérer l ensemble des machines, c est à dire des disques durs distants. Comme nous utilisons un serveur d application pour fournir un WebService, il serait pratique de créer une application Web pour l administration. On pourra utiliser les technologies Java/JSP et accéder aux informations de la persistance Xml sans passer par le WebService Changement de technologie Actuellement j utilise le serveur d application Glassfish. Ce stage m a permis de le découvrir car je ne connaissais pour le moment que JBoss. Cependant Glassfish fournit des fonctionnalités que je n exploite pas comme les EJB ou JMS et d autres. Je pense qu il serait suffisant, si l on veut garder le WebService et développer l interface d administration en une application Web, de n utiliser qu un serveur d application comme Tomcat par exemple. Une autre proposition serait d utiliser une technologie plus légère comme le Java RMI. Comme l application est essentiellement développée en Java, il serait très facile de changer le WebService en un serveur Java RMI de manière à ce que la sécurité soit augmenté. En effet, un WebService est censé offrir des méthodes accessibles à tout le monde. Cependant dans notre cas, il est plutôt recommandé d utiliser des objets distants réservés à l application. 34
39 Conclusion Ce stage de Master 2 en Informatique se termine avec la réalisation de deux projets qui fonctionnent. Les travaux de documentation m ont permis de comprendre le fonctionnement de plusieurs outils que je ne connaissais pas avant le stage, tels que ZFS, COMSTAR, VirtualBox, JAX-WS et d autres. L Université de Westminster dispose de tous les éléments pour poursuivre le projet de gestion de disques durs distants pour machines virtuelles. Ce projet est, à ma connaissance, le seul à exploiter le potentiel du système de fichiers ZFS. Il utilise notamment les fonctionnalités de snapshot et de clone afin de permettre de disposer d une copie d un disque dur à un moment donné sans devoir en créer une nouvelle copie. Nous gagnons ainsi un espace disque non négligeable. Ce stage m a permis de me perfectionner dans deux domaines que sont l Informatique mais également l anglais. J ai eu l occasion grâce à ce stage de pouvoir mettre en application mes connaissances acquises durant mes 5 années d études à l Université de Besançon mais également d en découvrir d autres. Mon projet est une bonne base pour le développement d une application de gestion de machines virtuelles qui pourrait facilement faire l objet d un stage à Londres. 35
40 Bibliographie [1] Tutoriel sur ZFS, partie 1. tutorial_01 [2] Tutoriel sur ZFS, partie 2. tutorial_02 [3] Documentation VirtualBox sur iscsi. manual/ch05.html [4] Documentation de COMSTAR. view/project+comstar/webhome [5] Documentation de Glassfish. project.html [6] Documentationet exemples sur l API JAX-WS. oracle.com/docs/cd/e17802_01/webservices/webservices/docs/2. 0/jaxws/samples.html [7] Documentation sur BOINC. manual [8] Tutoriel de développement d un client WebService avec gsoap. http: // 36
41 Glossaire B Blender est un logiciel d animation, de modélisation et de rendu 3D BOINC est une plateforme de calcul distribué C chroot change root est une commande permettant de changer le répertoire racine d un processus de la machine hôte B debootstrap permet d installer une distribution Debian sur un point de montage en utilisant le moteur d un système debian déjà en service I iscsi est un protocole permettant le transport des commandes SCSI sur un réseau TCP/IP U UUID Universally Unique Identifier est un identifiant. Chaque UUID est conçu de manière à être unique dans le monde 37
42 W WSDL Web Services Description Language décrit une interface public d accès à un Service Web 38
43 Annexes Vous trouverez dans les annexes les documents suivants : Certaines commandes ZFS, COMSTAR, Virtualbox Les scripts shell développés lors du stage 39
44 ZFS/iSCSI/Virtualbox/OpenIndiana Jocelyn S. Facchini May 11, ZFS Creating a file disk mkfile <size> <name> ex: mkfile 700m disk1 Creating a ZFS pool zpool create <name> <filename> ex: zpool create tank /home/oi/disk1 Creating a ZFS filesystem zfs create -s -V <size> <name> ex: zfs create -s -V 630m tank/d1 Creating a snapshot of a filesystem zfs snapshot <filesystemname>@<snapshotname> ex: zfs snapshot tank/d1@s1 Creating a clone of a snapshot zfs clone <filesystemname>@<snapshotname> ex: zfs clone tank/d1@s1 tank/clone1 <filesystemname> Creating a logical unit sbdadm create-lu <filename> ex: sbdadm create-lu /dev/zvol/rdsk/tank/clone1 Creating a view 1
45 stmfadm add-view <lu-name> ex: stmfadm add-view F CA4CE1B Details of the view: allow to know the LUN stmfadm list-view -l <lu-name> ex: stmfadm list-view -l F CA4CE1B Creating a view to a specific target group stmfadm add-view -t <target-group> <lu-name> ex: stmfadm add-view -t F CA4CE1B Create a target group stmfadm create-tg <tg-name> ex: stmfadm create-tg jfacchini Add a target group member (i.e. iscsi target) stmfadm add-tg-member -g <tg-name> <iscsi-target> ex: stmfadm create-tg jfacchini 2 iscsi target This section presents how to configure an iscsi target with ZFS on OpenIndiana. First of all, I had to install an iscsi administration tool. pkg install network/iscsi/target Then enable the iscsi target service. svcadm enable -r svc:/network/iscsi/target:default Finally create the iscsi target. itadm create-target 2
46 3 Virtualbox - iscsi initiator This section shows how to attach an iscsi initiator to a virtual machine already created. VBoxManage storageattach <vm-name> --storagectl "IDE Controller" --device 0 --type hdd --medium iscsi --server <server-address> --target <iscsi target> --lun <LUN> --port <port> ex: VBoxManage storageattach UbuntuTest --storagectl "IDE Controller" --device 0 --type hdd --medium iscsi --server target iqn com.sun:02:cd1cd78d-1e5d-e382-babe-a959ecd6c705 --lun 0 --port 0 4 Execute a script as root 4.1 setuid To execute a shell script as root user with java we can use a C program with setuid(0); that execut the shell script. Then we just have to change rights on the C program to 4755 and any user can run the shell script as root. 4.2 sudo The second idea is to add rights on the sudoers file. We add rights to the user to execute the command line tools we need such as zfs, stmfadm,... We set the parameter NOPASSWD to allow to use the command line tools without using a password. Cmnd_Alias ITARGET=/sbin/zfs,/usr/sbin/sbdadm oi ALL=(ALL) NOPASSWD:ITARGET 5 Sources lien source 3
47 #!/bin/bash # Ce script permet de créer un clone ZFS # Check number of args if [ $#!= 3 ]; then echo "[Err] Usage: $0 snapshot-name uuid login" exit -1 fi zfs_root=rpool/ zfs_root_file=/dev/zvol/rdsk/rpool sname=$1 cname=$2 login=$3 # Create a clone of the snapshot err=$(sudo zfs clone $zfs_root$sname $zfs_root$cname) if [ $?!= 0 ]; then echo "[Err]: Could not create clone" exit -1 fi # Create Logical Unit createdlu=$(sudo sbdadm create-lu $zfs_root_file/$cname sed -n 5p cut -d \ -f1) #echo "LU: $createdlu" # Create LU view err=$(sudo stmfadm add-view -t $login $createdlu) if [ $?!= 0 ]; then echo "[Err]: Could not create LU view" exit -1 fi # LUN=$(sudo stmfadm list-view -l $createdlu sed -n 4p sed 's/[^0-9]*//') echo $LUN exit 0
48 #!/bin/bash # Ce script permet de supprimer un clone ZFS if [ $#!= 1 ]; then echo "[Err] Usage: $0 clone-uuid" exit 1 fi zfs_root=rpool/ cname=$1 err=$(sudo sbdadm list-lu grep $cname) if [ $?!= 0 ]; then echo "[Err]: Check clone-uuid..." exit 1 fi LU=$(echo $err cut -f1 -d\ ) #echo $LU # LU found, let's remove it err=$(sudo sbdadm delete-lu $LU) if [ $?!= 0 ]; then echo "[Err]: Can't remove Logical Unit..." exit -1 fi # Now remove the filesystem err=$(sudo zfs destroy $zfs_root$cname) if [ $?!= 0 ]; then echo "[Err]: Can't destroy clone" fi exit 0
49 #!/bin/bash # Ce script permet de créer un système de fichier ZFS if [ $#!= 2 ]; then echo "[Err] Usage: $0 username clonename" exit -1 fi login=$1 name=$2 zfs_root=rpool/ zfs_root_file=/dev/zvol/rdsk/rpool err=$(sudo zfs create -s -V 10g $zfs_root$name) if [ $?!= 0 ]; then echo "[Err]: Dataset already exist" exit -1 fi # Create Logical Unit createdlu=$(sudo sbdadm create-lu $zfs_root_file/$name sed -n 5p cut -d\ -f1) #echo "LU: $createdlu" # Create LU view err=$(sudo stmfadm add-view -t $login $createdlu) if [ $?!= 0 ]; then echo "[Err]: Could not create LU view" exit -1 fi # LUN=$(sudo stmfadm list-view -l $createdlu sed -n 4p sed 's/[^0-9]*//') echo $LUN exit 0
50 #!/bin/bash # Ce script permet de créer un système de fichier ZFS if [ $#!= 1 ]; then echo "[Err] Usage: $0 diskname" exit -1 fi zfs_root=rpool/ name=$1 err=$(sudo sbdadm list-lu grep $name) if [ $?!= 0 ]; then echo "[Err]: disk name..." exit 1 fi LU=$(echo $err cut -f1 -d\ ) #echo $LU # LU found, let's remove it err=$(sudo sbdadm delete-lu $LU) if [ $?!= 0 ]; then echo "[Err]: Can't remove Logical Unit..." exit -1 fi #Delete the snapshot if exist err=$(sudo zfs destroy $zfs_root$name@base) err=$(sudo zfs destroy $zfs_root$name) if [ $?!= 0 ]; then echo "[Err]: Could not delete the dataset" fi exit 0
51 #!/bin/bash # Ce script permet de créer une cible iscsi if [ $#!= 1 ]; then echo "[Err] Usage: $0 login" exit 1 fi user=$1 target=$(sudo itadm create-target cut -f2 -d\ ) sudo stmfadm offline-target $target sudo stmfadm create-tg $user sudo stmfadm add-tg-member -g $user $target sudo stmfadm online-target $target echo $target
52 #!/bin/bash # Ce script permet de supprimer une cible iscsi if [ $#!= 2 ]; then echo "[Err] Usage: $0 login target" exit 1 fi user=$1 target=$2 err=$(sudo stmfadm offline-target $target) if [ $?!= 0 ]; then echo "TargetNotExist" exit 1 fi err=$(sudo stmfadm delete-tg $user) if [ $?!= 0 ]; then echo "UserNotExist" exit 1 fi err=$(sudo itadm delete-target $target) if [ $?!= 0 ]; then echo "UnableDeleteTarget" exit 1 fi exit 0
53 #!/bin/bash # Ce script permet de créer un snapshot # Check number of args if [ $#!= 1 ]; then echo "[Err] Usage: $0 machine-name" exit 1 fi mname=$1 err=$(sudo zfs snapshot rpool/$mname@base) if [ $?!= 0 ]; then echo "[Err]: dataset does not exist" exit -1 fi exit 0
54 Résumé Ce document est un rapport de stage de Master 2 Informatique professionnel de l Université de Franche-Comté. Il décrit le travail réalisé au cours de ce stage sur deux projets ayant pour intitulés Virtualisation sur une grille d ordinateur de bureau et Gestion de machines virtuelles de support de cours. Mots clés OpenIndiana, ZFS, COMSTAR, BOINC, JAX-WS, Machines virtuelles, VirtualBox, iscsi, Stage. Abstract This document reports a student work placement in Computer Science at the University of Franche-Comté. It describes the work done on two projects named Desktop Grid Virtualisation and Manager of virtual machines for teaching. Keywords OpenIndiana, ZFS, COMSTAR, BOINC, JAX-WS, virtual machines, VirtualBox, iscsi, Work placement.
Installation et prise en main d UBUNTU
Installation et prise en main d UBUNTU Introduction Ubuntu est une distribution Linux adoptée par près de 25 millions d utilisateurs de par le monde. Contrairement aux systèmes d exploitation propriétaires
Tutoriel Création d une source Cydia et compilation des packages sous Linux
Tutoriel Création d une source Cydia et compilation des packages sous Linux 1. Pré-requis 1. Quelques connaissances sous Linux 2. Avoir à disposition un Serveur FTP pour héberger votre source 3. Un thème
Procédure pas à pas de découverte de l offre. Service Cloud Cloudwatt
Procédure pas à pas de découverte de l offre Service Cloud Cloudwatt Manuel Utilisateur 03/07/2014 Cloudwatt - Reproduction et communication sont interdites sans autorisation 1/45 Contenu 1. Introduction...
Rapport de stage. Développement d un logiciel de vidéoconférence : Enjeux 3. Guillaume DOTT 2009
Rapport de stage Développement d un logiciel de vidéoconférence : Enjeux 3 Guillaume DOTT 2009 Maître de stage : Louis Poulette Tutrice : Marie-Paule Muller Remerciements Je tiens à remercier toute l équipe
Oracle Developer Suite 10g. Guide de l installation. Vista & Seven
TRAVAIL RÉALISÉ PAR ABED ABDERRAHMANE Oracle Developer Suite 10g Guide de l installation 10g Release 2 (10.1.2) pour Windows Vista & Seven www.oraweb.ca Page 1 TABLE DES MATIÈRES : PARTIE 1 : CONCEPTS
Chapitre 02. Configuration et Installation
Chapitre 02 Configuration et Installation Introduction I- Configuration et Installation de Windows Server 2008 R2 1. Installation du contrôleur de domaine Active directory 2. Création des différents objets
Atelier Le gestionnaire de fichier
Chapitre 12 Atelier Le gestionnaire de fichier I Présentation Nautilus est un gestionnaire de fichiers pour l environnement de bureau Gnome. Il offre toutes les fonctions de gestion de fichier en local
Retrouver de vieux programmes et jouer sur VirtualBox
CHAPITRE 3 Retrouver de vieux programmes et jouer sur VirtualBox Ce chapitre présente des notions avancées de VirtualBox. Elles permettront de réaliser des configurations spécifiques pour évaluer des systèmes
Virtual Box Mettez un PC dans votre... PC
Virtual Box Mettez un PC dans votre... PC Philippe Wambeke LoliGrUB 17 mai 2014 Philippe Wambeke (LoliGrUB) Virtual Box 17 mai 2014 1 / 13 1 Virtual box Présentation Plateformes supportées Installation
Manuel de System Monitor
Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Traduction française : Yves Dessertine Traduction française : Philippe Guilbert Traduction française : Robin Guitton Relecture de la documentation
TD/TP 1 Introduction au SDK d Android
TD/TP 1 Introduction au SDK d Android Romain Raveaux 1 Introduction Android est un système d'exploitation pour téléphone portable de nouvelle génération développé par Google. Celui-ci met à disposition
Comment installer la configuration des salles sur son ordinateur personnel?
Comment installer la configuration des salles sur son ordinateur personnel? Nous allons décrire les étapes afin d'installer sur votre ordinateur personnel l'image des desktops des salles CO 02x. Les copies
"! "#$ $ $ ""! %#& """! '& ( ")! )*+
! "! "#$ $ $ ""! %#& """! '& ( ")! )*+ "! "#$ $ $ ""! %#& """! '& ( ")! )*+, ## $ *$-./ 0 - ## 1( $. - (/$ #,-".2 + -".234-5..'"6..6 $37 89-%:56.#&(#. +6$../.4. ;-37 /. .?.@A&.!)B
Comment se connecter au dossier partagé?
Comment se connecter au dossier partagé? Physique Strasbourg Ingénierie 4 avril 2013 Table des matières 1 But du tutoriel 1 2 Client FTP : Filezilla 2 2.1 Téléchargement et installation du client de partage......................
Compte Rendu d intégration d application
ISMA 3EME ANNEE Compte Rendu d intégration d application Compte Rendu Final Maxime ESCOURBIAC Jean-Christophe SEPTIER 19/12/2011 Table des matières Table des matières... 1 Introduction... 3 1. Le SGBD:...
Préparation à l installation d Active Directory
Laboratoire 03 Étape 1 : Installation d Active Directory et du service DNS Noter que vous ne pourrez pas réaliser ce laboratoire sans avoir fait le précédent laboratoire. Avant de commencer, le professeur
Tutoriel : Utilisation du serveur de calcul à distance de PSE
Tutoriel : Utilisation du serveur de calcul à distance de PSE David Smadja Camille Terrier Septembre 2013 Table des matières 1 Préambule 1 2 Avertissements 1 3 Pré-requis 1 4 Installation de X2goClient
But de cette présentation. Bac à sable (Sandbox) Principes. Principes. Hainaut P. 2013 - www.coursonline.be 1
Bac à sable (Sandbox) But de cette présentation Vous permettre d installer, de configurer et d utiliser un environnement virtuel pour vos manipulations pratiques Hainaut Patrick 2013 Hainaut P. 2013 -
Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8
Sage 100 CRM Guide de l Import Plus avec Talend Version 8 Mise à jour : 2015 version 8 Composition du progiciel Votre progiciel est composé d un boîtier de rangement comprenant : le cédérom sur lequel
Tutoriel XBNE Connexion à un environnement XBMC distant
Tutoriel XBNE Connexion à un environnement XBMC distant 1. Introduction... 3 2. Quelques notions d informatique... 4 2.1 Réseau informatique... 4 2.1.1 Adresse ip... 4 2.1.2 Fixer l adresse ip d un équipement...
Première édition en format électronique. Parallels Desktop 7 pour Mac OS X.
Première édition en format électronique Parallels Desktop 7 pour Mac OS X. Les Aventuriers du Bout du Monde. Rampe de Lancement 68ib - Yves Cornil - 11/06/2012 Rampe de lancement 68ib - Les ABM édition
Le stockage. 1. Architecture de stockage disponible. a. Stockage local ou centralisé. b. Différences entre les architectures
Le stockage 1. Architecture de stockage disponible a. Stockage local ou centralisé L architecture de stockage à mettre en place est déterminante pour l évolutivité et la performance de la solution. Cet
Présentation Utilisation. VirtualBox. Firas Kraïem. 22 février 2014
22 février 2014 Table des matières 1 2 est un logiciel libre (licence GPL) de virtualisation. Il permet de créer des machines virtuelles, qu on peut se représenter comme des "sous-ordinateurs", fonctionnant
Mise en œuvre des serveurs d application
Nancy-Université Mise en œuvre des serveurs d application UE 203d Master 1 IST-IE Printemps 2008 Master 1 IST-IE : Mise en œuvre des serveurs d application 1/54 Ces transparents, ainsi que les énoncés
Mise en place des TPs Réseau en machines virtuelles. Utilisation de VmPlayer
Semestre 4 TR2 2013/2014 Mise en place des TPs Réseau en machines virtuelles. Utilisation de VmPlayer But du TP Le but est simple : vous donner les moyens de réaliser chez vous les TPs réseaux, en utilisant
PROFIL EXPERIENCE ARCHITECTE LINUX, OPEN SOURCE, COORDINATEUR SÉCURITÉ EMEA
[email protected] +33 (0)6 60 07 25 36 PROFIL EXPERIENCE Architecte et administrateur système Linux, UNIX (Solaris, AIX, HP-UX), BSD et Mac OS X. Plus de 10 ans d expérience dans des environnements de
Séquencer une application
Séquencer une application Pour ma part, j'utilise Vmware workstation pour créer les packages. Je configure une VM sous Windows Xp Pro Sp2 : 1. Mise du Pc dans le domaine 2. Installation du séquenceur 3.
Accéder à ZeCoffre via FTP
Accéder à ZeCoffre via FTP Table des matières Introduction... 2 Qu est-ce que FTP... 3 Comment se connecter à ZeCoffre via FTP... 4 Connexion FTP depuis Windows / Linux / Mac OS X... 5 Connexion FTP depuis
Administration de Parc Informatique TP07 : Installation de Linux Debian
Institut Galilée L2 Info S1 Année 2012 2013 1 Une machine virtuelle Administration de Parc Informatique TP07 : Installation de Linux Debian Le but du TP est d installer Linux (en l occurrence la distribution
BIRT (Business Intelligence and Reporting Tools)
BIRT (Business Intelligence and Reporting Tools) Introduction Cette publication a pour objectif de présenter l outil de reporting BIRT, dans le cadre de l unité de valeur «Data Warehouse et Outils Décisionnels»
Vade mecum installation et configuration d une machine virtuelle V5.1.0
Vade mecum installation et configuration d une machine virtuelle V5.1.0 Cette œuvre est mise à disposition selon les termes de la licence Creative Commons Attribution Pas d'utilisation Commerciale Partage
TP Déploiement de réseaux IP sous Linux et MS Windows sur une infrastructure virtualisée
TP Déploiement de réseaux IP sous Linux et MS Windows sur une infrastructure virtualisée Objectifs : - Déploiement d une infrastructure virtuelle. - Configuration d adresses IP statiques. - Configuration
TP01: Installation de Windows Server 2012
TP0: Installation de Windows Server 202 Rappel : nous utiliserons le terme «WS202» pour désigner Windows Server 202et le terme «VM» pour Machine Virtuelle. - Installation d une VM Windows Server 202 de
Manuel d administration de Virtual Box MANUEL D UTILISATION VIRTUAL BOX
MANUEL D UTILISATION VIRTUAL BOX Sommaire Partie 1 : Création d une machine virtuelle Partie 2 : 1) Paramétrage réseau de VirtualBox et de la machine virtuelle 2) Partie stockage de VirtualBox Partie 3
Eclipse atelier Java
Eclipse atelier Java Table des matières 1. Introduction...2 2. Télécharger eclipse...3 3. Installer eclipse...3 4. Premier lancement d eclipse...3 5. Configurer eclipse pour faire du Java...5 6. Développer
LiveUSB clefisn. Meilland jean claude et Kbida Abdellatif. 16 septembre 2012
LiveUSB clefisn Meilland jean claude et Kbida Abdellatif 16 septembre 2012 Table des matières 1 Présentation de la clefisn 2 1.1 liveusb......................................... 2 1.2 Le boot.........................................
Les dossiers compressés (ou zippés)
Les dossiers compressés (ou zippés) (source : Site du Zéro : http://www.siteduzero.com/tutoriel-3-460502-archiver-et-compresser.html) Archiver et compresser Quand on parle de mémoire en informatique, une
FileMaker Server 14. Aide FileMaker Server
FileMaker Server 14 Aide FileMaker Server 2007-2015 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et FileMaker Go sont des marques
Connexion à SQL server
Micromedia International Etude technique Auteur : Pierre Chevrier Nombre de pages : 18 Société : Date : 12/09/2012 Réf. : ETT_20110624_000001.docx Connexion à SQL server Ce document précise les modalités
24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.
Plan du cours 2 Introduction générale : fondamentaux : les fondamentaux Michel Buffa ([email protected]), UNSA 2002, modifié par Richard Grin (version 1.1, 21/11/11), avec emprunts aux supports de Maxime
Quick Start Installation de MDweb version 2.3
Quick Start Installation de MDweb version 2.3 Date : 2011.08.26 1. Quickstart Quick Start - Installation de MDweb version 2011 Installation Téléchargement et Installation des logiciels requis Déploiement
Atelier Administration
Atelier Administration Cahier d exercices Sommaire Vérification des paramètres de la société.... 2 Gestion des utilisateurs et des groupes... 3 Recréer un raccourci... 4 Microsoft SQL Server... 4 Poste
A Libre Ouvert. Médiathèque Jacques Ellul. le 12-03-2010
A Libre Ouvert Médiathèque Jacques Ellul le 12-03-2010 à PESSAC avec l'abul La Virtualisation (avec VirtualBox) C'est quoi, la 'virtualisation'? A quoi ça peut me servir à la maison? Et dans mon travail,
Protéger une machine réelle derrière une machine virtuelle avec pfsense
Protéger une machine réelle derrière une machine virtuelle avec pfsense Je vous présente un petit tutoriel sur la façon d utiliser pfsense au sein de VirtualBox comme passerelle pour votre machine Windows
NiceLabel pour Services Microsoft Windows Terminal Serveur et Citrix MetaFrame
www.nicelabel.fr [email protected] NiceLabel pour Services Microsoft Windows Terminal Serveur et Citrix MetaFrame White Paper Version 20051114-06-FR 2005 Euro Plus. Tous droits réservés. http://www.nicelabel.fr
Fiche Technique Windows Azure
Le 25/03/2013 OBJECTIF VIRTUALISATION [email protected] EXAKIS NANTES Identification du document Titre Projet Date de création Date de modification Fiche Technique Objectif 25/03/2013 27/03/2013 Windows
http://cri.univ-lille1.fr Virtualisation de Windows dans Ubuntu Linux
http://cri.univ-lille1.fr Virtualisation de Windows dans Ubuntu Linux Version 1.0 Septembre 2011 SOMMAIRE 1. Introduction 3 2. Installation du logiciel de virtualisation VirtualBox 4 3. Création d'une
Préconisations Techniques & Installation de Gestimum ERP
2015 Préconisations Techniques & Installation de Gestimum ERP 19/06/2015 1 / 30 Table des Matières Préambule... 4 Prérequis matériel (Recommandé)... 4 Configuration minimum requise du serveur (pour Gestimum
Guide d installation de SugarCRM Open Source version 4.5.1
Guide d installation de SugarCRM Open Source version 4.5.1 Version 1.0.2 Mentions légales Mentions légales Ce document est susceptible de modification à tout moment sans notification. Disclaimer / Responsabilité
26 Centre de Sécurité et de
26 Centre de Sécurité et de Maintenance La fenêtre du Centre de sécurité et de maintenance (CSM) rassemble tous les outils nécessaires au contrôle, à l analyse, à la maintenance, à la sauvegarde et au
SOMMAIRE ÉTAPES OBLIGATOIRES. Récupérer le connecteur... 3
SOMMAIRE Futur Telecom a fait évoluer son service de messagerie professionnel Futur Office. Le présent document va vous accompagner pas à pas vers la récupération de vos divers éléments de messagerie suite
sommaire ÉTAPES OBLIGATOIRES Récupérer le connecteur... 3
sommaire Futur Telecom a fait évoluer son service de messagerie professionnel Futur Office. Le présent document va vous accompagner pas à pas vers la récupération de vos divers éléments de messagerie suite
VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.
VMware ESX/ESXi 1. Les composants d ESX VMware ESX4 est le cœur de l infrastructure vsphere 4. C est un hyperviseur, c est à dire une couche de virtualisation qui permet de faire tourner plusieurs systèmes
Enoncé du TP 8 Système
Enoncé du TP 8 Système Installation d un systeme GNU/Linux virtualisé C. Pain-Barre INFO - IUT Aix-en-Provence version du 4/12/2013 i Démarrer les PC sous Linux. 1 Introduction à la virtualisation avec
Bases Java - Eclipse / Netbeans
Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement
Centres d accès communautaire Internet des Îles LA CLÉ USB
Centres d accès communautaire Internet des Îles LA CLÉ USB Table des matières Document produit pour : Centres d accès communautaire Internet des Îles Par : Andrée-Anne Chevrier, stagiaire Pour infos :
Il est courant de souhaiter conserver à
Il est courant de souhaiter conserver à la fois Linux et Windows sur un même ordinateur, en particulier pour découvrir Linux, pour garder un filet de sécurité, ou pour continuer à jouer à des jeux récents
NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1
NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR Logiciel TIJARA Manuel d'utilisateur "TIJARA" 1 SOMMAIRE Introduction Première partie Chapitre 1 : Installation et démarrage Chapitre 2 : Architecture
Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D.
2013 Virtualisation CITRIX, MICROSOFT, VMWARE OLIVIER D. Table des matières 1 Introduction (Historique / définition)... 3 2 But de la virtualisation... 4 3 Théorie : bases et typologie des solutions techniques...
Fais ton site internet toi-même
Fais ton site internet toi-même avril 2010 Pourquoi faire son site soi-même? Aujourd hui, créer un blog/site internet, c est facile : on va sur n importe quel hébergeur, on s inscrit, on remplit un formulaire,
Chapitre I Notions de base et outils de travail
Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement
Windows 10 Technical Preview
2014 Windows 10 Technical Preview Première installation de Microsoft Windows 10 Technical Preview sur une machine virtuelle Virtualbox. Christophe Maggi MaggiC solutions 02/10/2014 Ce document a été rédigé
Stockage des machines virtuelles d un système ESXi [email protected] & [email protected]
Titre Stockage des machines virtuelles d un système ESXi Auteurs [email protected] & [email protected] Classification Document publique Date dernière modification 12 Mai 2009 Chemin\NomFichier
Sauvegarde et Restauration d un environnement SAS
Sauvegarde et Restauration d un environnement SAS 1 INTRODUCTION 3 1.1 OBJECTIFS 3 1.2 PERIMETRE 3 2 LA SAUVEGARDE 4 2.1 QUELQUES REGLES D ORGANISATION 4 2.2 DEFINIR LES BESOINS 5 2.3 LA SAUVEGARDE, ETAPE
Déploiement d application Silverlight
Déploiement d application Silverlight Thibault Laurens Bastien Chauvin 2 Déploiement d'application Silverlight 17/06/09 Sommaire 1 Introduction... 3 2 Intégrer une application à une page Web... 4 3 Les
Getting Started. 10 étapes pour bien démarrer. Avant de démarrer. Première connexion PCC
10 étapes pour bien démarrer En suivant les différentes étapes de ce guide, vous vous familiariserez avec l interface d administration de votre Private Cloud. Quelques minutes vous suffiront pour déployer
Installation d'une machine virtuelle avec Virtualbox
Installation d'une machine virtuelle avec Virtualbox J'ai trouvé des explications ici : http://www.zebulon.fr/dossiers/83-3-creation-machine-virtuelle.html et ici : http://guide.boum.org/tomes/1_hors_connexions/3_outils/13_utiliser_un_systeme_virtualise/2_insta
Introduction aux «Services Web»
Introduction aux «Services Web» Sana Sellami [email protected] 2014-2015 Modalité de contrôle de connaissances Note de contrôle de continu Note projet Evaluation du projet la semaine du 17 novembre
CORBA. (Common Request Broker Architecture)
CORBA (Common Request Broker Architecture) Projet MIAGe Toulouse Groupe 2 1 CORBA, introduction (1/4) Les systèmes répartis permettent de créer des applications basées sur des composants auto-gérables,
Guide administrateur AMSP
Guide administrateur AMSP Alinto Version Auteur Date Remarque V1.0 Nicolas Polin 19/10/2015 - Lyon Paris Köln Madrid Table des matières 1. Introduction... 3 2. Se connecter à Factory... 3 3. Gestion des
Mise en œuvre d une solution de virtualisation
BTS INFORMATIQUE DE GESTION : Option Administrateur de réseaux locaux d entreprise Fiche n Nom et prénom : ***** Nature de l'activité Mise en œuvre d une solution de virtualisation Contexte : Le Lycée
Les logiciels indispensables à installer sur votre ordinateur
Vous avez réinstallé Windows, vous venez d acquérir un nouvelle ordinateur, vous voilà donc avec un beau Windows tout propre, tout neuf et surtout tout vide. Il faut reconnaître que Windows fraîchement
Tutoriel déploiement Windows 7 via serveur Waik
Tutoriel déploiement Windows 7 via serveur Waik Sommaire : 1. Introduction et contexte 2. Prérequis 3. Configuration MDT 4. Configuration WDS 5. Déploiement de l image 1. Introduction et contexte : Dans
FileMaker Pro 12. Guide de configuration de l installation réseau
FileMaker Pro 12 Guide de configuration de l installation réseau 2007-2012 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, California 95054 FileMaker est une
Guide d installation de MySQL
INF 1250 Introduction aux bases de données Guide d installation de MySQL 1 Introduction Ce guide vous indique la façon d installer et d utiliser le logiciel MySQL de Oracle (disponible en licence GPL).
KAJOUT WASSIM INTERNET INFORMATION SERVICES (IIS) 01/03/2013. Compte-rendu sur ISS KAJOUT Wassim
01/03/2013 Le rôle de Serveur Web (IIS) dans Windows Server 2008 R2 vous permet de partager des informations avec des utilisateurs sur Internet, sur un intranet ou un extranet. Windows Server 2008 R2 met
Reporting Services - Administration
Reporting Services - Administration Comment administrer SQL Server Reporting Services Cet article a pour but de présenter comment gérer le serveur depuis le "portail" de Reporting Services. Nous verrons
KWISATZ MODULE PRESTASHOP
Table des matières -1) KWISATZ - :...2-1.1) Introduction :...2-1.2) Description :...3-1.2.1) Schéma :...3-1.3) Mise en place :...4-1.3.1) PRESTASHOP :...4-1.3.1.1) Les Web Services :...4-1.3.2) KWISATZ
VERITAS Backup Exec TM 10.0 for Windows Servers
VERITAS Backup Exec TM 10.0 for Windows Servers Guide d installation rapide N134418 Avertissement Les informations contenues dans cette documentation peuvent être modifiées sans préavis. VERITAS Software
Table des matières 1. Installation de BOB 50... 3 BOB ou un programme annexe ne démarre pas ou ne fonctionne pas correctement...10
Table des matières 1. Installation de BOB 50... 3 1.1. Avant d installer/migrer vers BOB 50... 3 1.2. Installation de Sybase Advantage Server... 3 1.3. Installation monoposte du logiciel BOB 50... 4 1.4.
Systèmes informatiques
Systèmes informatiques Franck Guingne, sur la base du cours d Olivier Lecarme Cours Licence 1; Semestre 2 2009 2010 Troisième cours : Installation d une distribution GNU/Linux. 1 Les différentes distributions
BULK SMS Envoi en masse d un message texte moyennant un téléphone mobile (GSM)
Ministère de l Enseignement Supérieur et de la Recherche Scientifique Ecole Supérieure Privée d Ingénierie et de Technologie BULK SMS Envoi en masse d un message texte moyennant un téléphone mobile (GSM)
Gestion des applications, TI. Tout droits réservés, Marcel Aubin
Gestion des applications, TI Techniques 1 Virtual box P. 3 P. 5 Table de contenu «cloner» un disque Créer une machine virtuelle d'un fichier.vdi existant P. 7 A faire pour les machines de «Remedy» P. 8
PROCÉDURE D AIDE AU PARAMÉTRAGE
PROCÉDURE D AIDE AU PARAMÉTRAGE SOMMAIRE Futur a fait évoluer son service de messagerie professionnel Futur Office. Le présent document va vous accompagner pas à pas vers la récupération de vos divers
Pré-requis de création de bureaux AppliDis VDI
Fiche technique AppliDis Pré-requis de création de bureaux AppliDis VDI Fiche IS00239 Version document : 2.33 Diffusion limitée : Systancia, membres du programme Partenaires AppliDis et clients ou prospects
WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/8.1 64 bits, Windows 2008 R2 et Windows 2012 64 bits
WinTask x64 Le Planificateur de tâches sous Windows 7 64 bits, Windows 8/8.1 64 bits, Windows 2008 R2 et Windows 2012 64 bits Manuel d initiation du Planificateur 2 INTRODUCTION 5 CHAPITRE I : INSTALLATION
Manuel de l'utilisateur d'intego VirusBarrier Express et VirusBarrier Plus
Manuel de l'utilisateur d'intego VirusBarrier Express et VirusBarrier Plus Bienvenue dans le manuel de l'utilisateur d'intego VirusBarrier Express et VirusBarrier Plus. VirusBarrier Express est un outil
Installation et prise en main
TP1 Installation et prise en main Android est le système d'exploitation pour smartphones, tablettes et autres appareils développé par Google. Pour permettre aux utilisateurs d'installer des applications
Gestion des Appliances. M. AIRAJ Ecole Informatique IN2P3 2014-2015
Gestion des Appliances M. AIRAJ Ecole Informatique IN2P3 2014-2015 1 Appliances pour logiciels et infrastructures différentes? Logiciels : Infrastructures : 2 Déploiement d une appliance 3 Appliance :
WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis
Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis Copyright Acronis, Inc. 2000 2009 Table des matières Résumé... 3 Qu est-ce que la déduplication?... 4 Déduplication au
1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7
Sommaire 1-Introduction 2 1-1- BPM (Business Process Management)..2 1-2 J-Boss JBPM 2 2-Installation de JBPM 3 2-1 Architecture de JOBSS JBPM 3 2-2 Installation du moteur JBoss JBPM et le serveur d application
FileMaker Server 14. Guide de démarrage
FileMaker Server 14 Guide de démarrage 2007-2015 FileMaker, Inc. Tous droits réservés. FileMaker, Inc. 5201 Patrick Henry Drive Santa Clara, Californie 95054 FileMaker et FileMaker Go sont des marques
Activité 1 : Création et Clonage d'une première machine virtuelle Linux OpenSuSE.
Activité 1 : Création et Clonage d'une première machine virtuelle Linux OpenSuSE. Lors de la première utilisation de Virtual Box, l'utilisateur devra remplir le formulaire d'inscription Virtual Box. Création
Itium XP. Guide Utilisateur
Itium XP 06/2007 - Rev. 3 1 Sommaire 1 Sommaire... 2 2 Généralités... 3 3 ItiumSysLock... 4 3.1 Enregistrer l état actuel du système... 4 3.2 Désactiver ItiumSysLock... 5 3.3 Activer ItiumSysLock... 5
