Brevet FR3004554A1 — publié le 20141017

Configuration d'une machine virtuelle par injection d'une image DOMAINE TECHNIQUE DE L'INVENTION [0001] L'invention se rapporte à la gestion de la configuration initiale de noeuds dans une grappe de serveurs. [0002] On entendra par grappe de serveurs, dans le cadre de la présente invention, un ensemble d'ordinateurs connectés en réseau, la plus part du temps il s'agit d'un réseau à haut débit comme par exemple : « InfiniBand », « Fiber Channel » ou « Gigabit Ethernet » pour ne citer que les plus connus. Ces ordinateurs sont soit des noeuds, soit des superviseurs. Un superviseur, aussi appelé superviseur, permet d'administrer tout ou partie des noeuds de la grappe de serveurs. Les ordinateurs d'une grappe de serveurs sont aptes à coopérer pour la réalisation d'une tâche. Sont en particulier visées les grappes de serveurs à haute performance aussi appelées cluster HPC, ferme de calcul, ou tout simplement grappe. Une grappe de serveurs comporte classiquement quelques milliers d'ordinateurs, classiquement de mille à cinq mille. Cependant il existe des grappes de serveurs plus petites et plus grosses. On connaît par exemple une grappe de dix ordinateurs. L'invention se rapporte à l'ensemble des grappes de serveurs quelques soient leurs tailles. [0003] On entendra par déploiement le fait de fournir à chaque noeud un système d'exploitation. [0004] On entendra par application, dans le cadre de la présente invention, un ensemble de codes instructions dont la mise en oeuvre correspond à un besoin fonctionnel, par exemple gérer des configurations de noeuds dans une grappe de 25 serveurs. ETAT DE LA TECHNIQUE ANTERIEURE [0005] Dans l'état de la technique on sait utiliser une image arbre pour déployer simultanément un système d'exploitation et des applications sur les 30 noeuds d'une grappe de serveurs. [0006] Une image arbre est un ensemble structuré de fichiers. La structuration est obtenue, par exemple via une arborescence de répertoire. Une telle arborescence est, par exemple pour un système linux : / dev etc bin var home usrl usr2 usr X11R6 bin local bin man où / représente la racine de l'arborescence. Chaque répertoire cité comporte des fichiers et/ou d'autres répertoires [0007] Cette image arbre est produite à partir d'une machine physique de référence sur laquelle on a installé un système et des applications. Ces opérations d'installation se font à partir de media d'installations locaux ou distants. De tel media sont, par exemple, un CD, un dépôt de packages,... la liste n'est pas exhaustive. Une fois les opérations d'installation réalisée, l'image arbre est extraite en recopiant, depuis la racine, le système de fichiers de la machine physique de référence. L'image arbre est alors disponible pour un déploiement. [0008] Un problème se pose lorsque l'on souhaite faire évoluer, le contenu de l'image arbre. En effet le plus simple, serait de refaire une installation sur une machine physique de référence mais cela prend du temps et suppose que l'on dispose, dans l'environnement de production de la grappe de serveur d'une machine physique disponible. Même dans ce cas une installation prend au mieux plusieurs dizaines de minutes et sollicite un utilisateur pour faire des choix d'installation. L'utilisateur sollicité est donc plus on moins inapte à une autre activité pendant l'installation. [0009] Ce problème se pose quel que soit l'importance de la modification envisagée. [0010] II est légèrement plus rapide d'utiliser une machine virtuelle sur laquelle réaliser l'installation, mais dans les faits, les temps d'installation sont quasiment identiques. On ne gagne que le temps de démarrage de la machine, et encore. [0011] Dans tous les cas se pose le problème du retour à la stricte configuration qui a permis la création de l'image arbre. Il faut refaire une installation strictement identique. [0012] Une solution est de se dire qu'il suffit d'effectuer un déploiement de l'image existante mais cela pose plusieurs problèmes liés au fait que pour des raisons de sécurité un déploiement ne peut se faire que sur un noeud intégré à la grappe de serveur et décrit dans la base de données de la grappe de serveur. Il faudrait donc : - Réquisitionner un noeud, c'est-à-dire diminuer les performances de la grappe de serveur pour une opération de maintenance qui devrait se faire en temps masqué, - Insérer un nouveau noeud dans le cluster ce qui est : - Chronophage - De nature à perturber le fonctionnement de la grappe de serveurs - Couteux. [0013] II faut donc trouver une autre solution. EXPOSE DE L'INVENTION [0014] L'invention vise à remédier à tout ou partie des inconvénients de l'état de la technique identifiés ci-dessus, et notamment à proposer des moyens pour permettre de rendre disponible une image arbre dans un contexte approprié pour une modification. L'invention met en oeuvre une machine virtuelle initialement vide. Cette machine virtuelle est connectée à un réseau via lequel on injecte, par copie, une image arbre. L'invention met aussi en oeuvre une étape de configuration d'un secteur de démarrage qui prend en compte l'image arbre. En redémarrant la machine virtuelle « remplie » on a à disposition une machine correspondant à l'image arbre. Le fait de modifier la configuration de cette machine « remplie » permet de modifier l'image arbre. En effet après la modification de la configuration de la machine « remplie » on en extrait une nouvelle image arbre qui correspond à la configuration modifiée. [0015] Dans ce dessein, un aspect de l'invention se rapporte à un procédé de configuration d'une machine virtuelle caractérisé en ce qu'il comporte les étapes suivantes : - Production d'une image arbre d'une machine de référence, - Production d'une machine virtuelle vide, - Configuration de paramètres réseau de la machine virtuelle produite, - Configuration de moyens de stockage de la machine virtuelle produite, - Ecriture de l'image arbre sur les moyens de stockage de la machine virtuelle produite via un réseau, - Configuration d'un secteur de démarrage sur les moyens de stockage de la machine virtuelle produite. [0016] Outre les caractéristiques principales qui viennent d'être mentionnées dans le paragraphe précédent, le procédé selon l'invention peut présenter une ou plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon les combinaisons techniquement possibles: - la configuration des paramètres réseau de la machine virtuelle produite est statique ; - l'écriture de l'image arbre se fait via une commande de copie de fichiers ; - la machine de référence est une machine réelle ; - la machine de référence est une machine virtuelle. [0017] L'invention se rapporte également à un dispositif de stockage numérique comportant un fichier correspondant à des codes instructions mettant en oeuvre le procédé selon l'une des revendications précédentes. [0018] L'invention se rapporte également à un dispositif mettant en oeuvre le procédé selon l'une des revendications précédentes. BREVE DESCRIPTION DES FIGURES [0019] D'autres caractéristiques et avantages de l'invention ressortiront à la lecture de la description qui suit, en référence aux figures annexées, qui illustrent : - Figure 1 : une illustration d'une architecture pour la mise en oeuvre d'étapes du procédé selon l'invention; - Figure 2 : une illustration d'étapes du procédé selon l'invention ; [0020] Pour plus de clarté, les éléments identiques ou similaires sont repérés par des signes de référence identiques sur l'ensemble des figures. [0021] L'invention sera mieux comprise la lecture de la description qui suit et à l'examen des figures qui l'accompagnent. Celles-ci sont présentées à titre indicatif et nullement limitatif de l'invention. DESCRIPTION DETAILLEE D'UN MODE DE REALISATION [0022] La figure 1 montre un ordinateur 101 superviseur. L'ordinateur 101 superviseur permet, par exemple, la supervision d'une grappe de serveurs. C'est-à-dire que l'ordinateur 101 superviseur comporte, sur un moyen de stockage, des applications dont la mise en oeuvre permet ladite supervision. [0023] La figure 1 montre aussi que l'ordinateur 101 superviseur comporte : - Un microprocesseur 201, qui est un moyen de calcul, on dit aussi traitement - Des circuits 202 interface de communication permettant de connecter l'ordinateur 101 superviseur à un premier réseau 110, - Des moyens 203 de stockage. [0024] Les composants précités de l'ordinateur 101 superviseur sont interconnectés par un bus 204. La figure 1 n'illustre pas de manière exhaustive tous les composants de l'ordinateur 101 superviseur, mais uniquement ceux les plus utiles pour la description de l'invention. Cette dernière remarque est vraie pour tous les ordinateurs décrits dans cette description. [0025] Les moyens 203 de stockage de l'ordinateur 101 superviseur sont, par exemple, un disque dur. Dans la pratique ces moyens peuvent être de toutes natures, stockage local ou réseau, redondant ou non... Cela est vrai pour tous les moyens de stockage décrit dans cette description qu'ils soient réels ou virtualisés. Les moyens 203 de stockage de l'ordinateur 101 superviseur comporte plusieurs zones, parmi lesquelles on cite : - Une zone 210 application de prise d'image arbre comportant des codes instruction permettant de produire une image arbre d'un ordinateur, - Une zone 215 image arbre, - Une zone 220 application de virtualisation, - Une zone 230 machine virtuelle, [0026] Dans cette description on confond la zone de stockage avec l'objet ou les données qu'elle stocke. Ainsi on parle indifféremment de la zone 210 application de prise d'image arbre ou de l'application 210 de prise d'image. [0027] La figure 1 montre que l'ordinateur 101 superviseur est connecté au premier réseau 110 ici matérialisé par un premier switch 111. Le premier réseau 110 est, ou n'est pas, le réseau permettant de connecter l'ordinateur 101 superviseur aux noeuds de la grappe de serveurs qu'il supervise. Il est donc possible que l'ordinateur 101 superviseur soit connecté à plusieurs réseau. [0028] La figure 1 montre un ordinateur 120 de référence. L'ordinateur 120 est une machine physique, on dit aussi réelle, par opposition à virtuelle. L'ordinateur 120 de référence comporte : - Un microprocesseur 221 - Des circuits 222 interface de communication permettant de connecter l'ordinateur 120 de référence au premier réseau 110, - Des moyens 223 de stockage. [0029] La figure 1 montre que les moyens 223 de stockage de l'ordinateur 120 de référence comporte plusieurs zones parmi lesquelles on cite : - Une première zone 225 de démarrage, aussi appelé secteur de démarrage, - Une zone 226 système de fichier comportant une arborescence de fichiers d'un système d'exploitation et d'applications installés sur l'ordinateur 120 de référence. [0030] Le fait de décrire la première zone 225 de démarrage permet d'illustrer le fait qu'elle est présente, de manière connue, sur un moyen de stockage d'un ordinateur. [0031] La figure 2 montre une étape 1001 de production d'une image arbre d'un ordinateur, par exemple une image arbre de l'ordinateur 120 de référence. L'étape 1001 est mise en oeuvre, par l'ordinateur 101 superviseur. On parle aussi d'une prise d'image. Dans cette description une action de production est au moins de fait de calculer des données et d'enregistrer ces données sur un moyen de stockage. Ici le fait de calculer des données signifie que ces données sont issues d'un traitement par un microprocesseur. [0032] Dans cette description, lorsque l'on prête une action à un dispositif celle-ci est effectuée par un microprocesseur dudit dispositif commandé par des codes instructions enregistrés dans une mémoire dudit dispositif. La mise en oeuvre de l'action fait suite à une action d'un utilisateur, une planification ou un évènement. Les deux derniers cas correspondant, d'une manière ou d'une autre, à une sollicitation d'un utilisateur dont l'effet est différé. [0033] Cette image arbre est enregistrée dans la zone 215 image arbre des moyens 203 de stockage de l'ordinateur 101 superviseur. Cette image arbre est une copie du contenu des moyens de stockage 223 de l'ordinateur 120 de référence. Cette copie est une copie réalisée via une commande de copie émise via le premier réseau selon un protocole apte à effectuer cette copie, par exemple NFS, FTP, SMB... la liste n'est pas exhaustive. Une fois la copie effectuée, elle est purgée des éléments de configuration de la machine d'origine de manière à ce que l'image arbre puisse correspondre à n'importe quel ordinateur. On pense par exemple aux éléments de configuration tel que le nom de la machine, à ses paramètres réseau,... la liste n'est pas exhaustive. [0034] L'étape 1001 de production d'image arbre est réalisée par l'ordinateur 101 superviseur. Dans la pratique elle pourrait l'être par n'importe quel ordinateur comportant les applications adaptées et suffisamment d'espace de stockage pour enregistrer une image arbre. Cette remarque est vraie de toutes les étapes décrites dans cette description. [0035] Dans l'étape 1001 de production d'image arbre, on prend une image d'une machine réelle, l'ordinateur 120 de référence. Dans une variante on pourrait prendre une image arbre d'une machine virtuelle. [0036] La figure 2 montre une étape 1010 de production d'une machine virtuelle vide. Une machine virtuelle, aussi abrégée VM, est une émulation logicielle du fonctionnement d'une machine réelle. On parle aussi de virtualisation. Une machine virtuelle est exécutée par un moteur de virtualisation, les plus connus des moteurs de virtualisation sont : KVM, QEMU, VirtualBox, Xen, VMWare,... la liste n'est pas exhaustive. [0037] Une machine virtuelle est matérialisée par un ou plusieurs fichiers enregistrés sur moyen de stockage. Une machine virtuelle comporte les mêmes composants qu'une machine réelle, si ce n'est que ces composants sont virtualisés. C'est-à-dire que ces composants n'ont pas d'existence physique en tant que telle et en dehors du ou des fichiers précités. [0038] Dans l'étape 1010 de production d'une machine virtuelle on utilise l'application de virtualisation pour produire une machine virtuelle vide. Dans la pratique cela revient à utiliser la commande de l'application de virtualisation « créer nouvelle machine ». Par exemple pour QEMU on peut le faire en ligne de commande : quemu-img create options [0039] La commande précédente crée une nouvelle machine virtuelle vide. Cette machine peut être exécutée via l'application de virtualisation. Tout se passe alors comme si on venait de démarrer une machine physique avec un disque dur vierge. Les options permettent, par exemple, de définir des paramètres de configuration de périphériques : paramètre réseau, taille de disques, le nombre de processeur, la quantité de mémoire vive, certaines options de démarrage comme l'aptitude à démarrer via un réseau... la liste n'est pas exhaustive. On dit que la machine virtuelle est vide car elle ne comporte pas de système d'exploitation. Il n'y a pas de données sur ses moyens de stockage. On parle alors aussi de conteneur. A la fin de l'étape 1010, la zone 230 machine virtuelle des moyens de stockage de l'ordinateur 101 superviseur comporte un ou plusieurs fichier correspondant à la machine virtuelle qui vient d'être produite. On peut alors parler simplement d'une machine virtuelle qui se confond avec la zone mémoire. [0040] De l'étape 1010 de production d'une machine on passe à une étape 1020 de paramétrage de la machine virtuelle produite à l'étape 1010 de production d'une machine virtuelle. Ce paramétrage est principalement l'attribution de paramètres réseau. Ces paramètres sont une adresse MAC et une adresse IP. Cela peut être réalisé, par exemple, au moment de la production par l'utilisation de paramètres de commande appropriés. Sinon on peut utiliser une application hyperviseur associée à l'application de virtualisation. Une telle application hyperviseur permet d'avoir accès aux machines virtualisées par l'application de virtualisation. Les paramètres réseau sont compatible avec une connexion au premier réseau 110 permettant la communication entre l'ordinateur 101 superviseur et la machine virtuelle produite à l'étape 1010 de production d'une machine virtuelle. [0041] Dans une variante de l'invention on passe ces paramètres en ligne de 5 commande en les spécifiant explicitement de manière à ce que lors du démarrage de la machine virtuelle elle ne sollicite pas un serveur DHCP et surtout que l'on ait pas à configurer un serveur DHCP avant le démarrage de la machine virtuelle produite. En effet dans la mesure où l'on agit sur une machine DHCP connectée sur un réseau d'une grappe de serveurs le fait de devoir reconfigurer le DHCP 10 associé constitue une perturbation pour la grappe de serveurs et c'est ce que l'on souhaite éviter. [0042] L'attribution d'une adresse à la machine virtuelle produite à l'étape 1010 de production d'une machine virtuelle se fait donc de manière statique. [0043] Dans une variante les étapes de création et de paramétrage réseau de 15 la machine virtuelle sont donc confondues. [0044] De l'étape 1020 de paramétrage réseau, c'est-à-dire une fois que la machine virtuelle produite à l'étape 1010 de production d'une machine virtuelle est apte à communiquer via un réseau, on passe à une étape 1030 de configuration des moyens de stockage de la machine virtuelle produite à l'étape 1010 de 20 production d'une machine virtuelle. Cela revient à émettre des commandes de partionnement et de formatage des moyens de stockage. De telle commande sont, par exemple pour un système Linux : parted, mkfs.ext4 et kpartx. [0045] Une fois que l'étape 1001 de production d'une image arbre et l'étape 1030 de configuration de moyens de stockage effectuée on passe à une étape 25 1040 d'écriture de l'image 215 arbre produite à l'étape 1001 de production d'une image arbre. Dans l'étape 1040 d'écriture de l'image arbre, l'ordinateur 101 superviseur se connecte à la machine virtuelle produite à l'étape 1010 de production d'une machine virtuelle via le premier réseau 110 pour copier l'image 215 arbre produite à l'étape 1001 de production d'une image arbre sur les moyens 30 de stockage de la machine virtuelle produite à l'étape 1010 de production d'une machine virtuelle. Cette copie consiste en une duplication de l'arborescence de fichiers de l'image arbre. [0046] Un aspect intéressant de cette copie et qu'il s'agit d'une copie classique, comme précédemment décrit, par opposition une copie par blocs. Cela permet de traiter une image arbre avec des outils de base de manipulation de fichier d'un système d'exploitation. On parle aussi d'une injection d'une image arbre. [0047] De l'étape 1040 on passe à une étape 1050 de configuration d'un secteur de démarrage pour la machine virtuelle produite à l'étape 1010 de production d'une machine virtuelle. Cette opération consiste à écrire ledit secteur de démarrage de telle sorte que la machine virtuelle produite à l'étape 1010 de production d'une machine virtuelle en démarrant utilise l'image arbre précédemment copiée comme système d'exploitation. Au cas où, dans cette étape de paramétrage d'un secteur de démarrage, on configure également des propriétés de ladite machine virtuelle comme son nom. Ce cas ou se présente pour les paramètres qui n'auraient pas été configuré au moment de la création de ladite machine virtuelle. [0048] Ainsi, après l'étape 1050 de paramétrage d'un secteur de démarrage, on obtient une machine virtuelle fonctionnellement identique à l'ordinateur 120 de référence qui a permis la production de l'image arbre. Autrement dit la machine virtuelle est remplie ou pleine. Il est dès lors possible de modifier la machine virtuelle en l'utilisant elle-même. [0049] Une fois que la machine virtuelle a été modifiée il est possible d'en extraire une image arbre qui est à son tour utilisable pour un déploiement sur des noeuds de la grappe de serveur. On n'a donc plus besoin de machine physique et surtout de procédure d'installation traditionnelle. L'installation se fait par injection d'une image arbre comme précédemment décrit. On peut alors utiliser cette méthode pour la gestion de toutes les images arbres nécessaires à une grappe de serveurs et elles peuvent être nombreuses. REVENDICATIONS1. Procédé de configuration d'une machine virtuelle enregistrée sur un moyen de stockage caractérisé en ce qu'il comporte les étapes suivantes : - Production (1001) d'une image arbre d'une machine de référence, - Production (1010) d'une machine virtuelle vide, - Configuration (1020) de paramètres réseau de la machine virtuelle produite, - Configuration (1030) de moyens de stockage de la machine virtuelle produite, - Ecriture (1040) de l'image arbre sur les moyens de stockage de la machine virtuelle produite via un réseau, - Configuration (1050) d'un secteur de démarrage sur les moyens de stockage de la machine virtuelle produite. 2. Procédé de configuration selon l'une des revendications précédentes, caractérisé en ce que la configuration des paramètres réseau de la machine virtuelle produite est statique. 3. Procédé de configuration selon l'une des revendications précédentes, caractérisé en ce que l'écriture de l'image arbre se fait via une commande de copie de fichiers. 4. Procédé selon l'une des revendications précédentes, caractérisé en ce que la machine de référence est une machine réelle. 5. Procédé selon l'une des revendications 1 à 3, caractérisé en ce que la machine de référence est une machine virtuelle. 6. Dispositif (203) de stockage numérique comportant un fichier correspondant à des codes instructions mettant en oeuvre le procédé selon l'une des revendications précédentes. 7. Dispositif (101) mettant en oeuvre le procédé selon l'une des revendications précédentes.30