From Fedora Project Wiki
No edit summary
No edit summary
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
<span style="font-size:20px;">Premiers pas avec la virtualisation</span>
{{autolang}}
{{autolang}}


{{admon/warning|Le mot '''hôte''' en français est un mot ambivalent puisqu'il désigne tout aussi bien celui qui reçoit que celui qui est reçu. Tout au long de cette page le mot '''hôte''' sera réservé à l'hébergeur, le système qui accueille,tandis que les autres systèmes seront baptisés '''systèmes invités''' ou '''systèmes virtualisés'''.}}
{{admon/warning|Le mot '''hôte''' en français est un mot ambivalent puisqu'il désigne tout aussi bien celui qui reçoit que celui qui est reçu. Tout au long de cette page le mot '''hôte''' sera réservé à l'hébergeur, le système qui accueille, tandis que les autres systèmes seront baptisés '''systèmes invités''' ou '''systèmes virtualisés'''.}}


Cette page traite de l'utilisation de Fedora pour héberger des systèmes invités (dits virtualisés). Pour des informations sur les technologies de virtualisation dans Fedora, reportez-vous à [[Tools/Virtualization |cette page dédiée]].
Cette page traite de l'utilisation de Fedora pour héberger des systèmes invités (dits virtualisés). Pour des informations sur les technologies de virtualisation dans Fedora, reportez-vous à [[Virtualization/fr |cette page dédiée]].


== Utilisation de la virtualisation dans Fedora ==
== Utilisation de la virtualisation dans Fedora ==
Line 9: Line 10:
Fedora utilise la famille d'outils libvirt comme solution de virtualisation. Par défaut, libvirt utilise Qemu pour exécuter les instances de système invité dans Fedora.
Fedora utilise la famille d'outils libvirt comme solution de virtualisation. Par défaut, libvirt utilise Qemu pour exécuter les instances de système invité dans Fedora.


Pour des informations sur d'autres plateforme de virtualisation, reportez-vous à  http://virt.kernelnewbies.org/TechComparison.
Pour des informations sur d'autres plateformes de virtualisation, reportez-vous à  http://virt.kernelnewbies.org/TechComparison.


Qemu peut émuler un machine hôte en logiciel, ou, pour un processeur donné pris en charge (voir plus bas) peut utiliser [http://www.linux-kvm.org KVM] pour fournir une virtualisation rapide et totale.  
Qemu peut émuler une machine hôte en logiciel, ou, pour un processeur donné pris en charge (voir plus bas), peut utiliser [http://www.linux-kvm.org KVM] pour fournir une virtualisation rapide et totale.  


D'autres produits et paquets de virtualisation sont disponibles mais ne sont pas couverts par ce guide.
D'autres produits et paquets de virtualisation sont disponibles mais ne sont pas couverts par ce guide.


== Installation et configuration de Fedora pour les systèmes invités virtualisés  ==
== Installation et configuration de Fedora pour les systèmes invités virtualisés  ==
Line 25: Line 25:
Les prérequis courants pour la virtualisation sur Fedora sont :
Les prérequis courants pour la virtualisation sur Fedora sont :
* Au moins 600 Mio d'espace disque par invité. Un système minimal en ligne de commande requiert 600 Mio d'espace disque. Les stations de travail standard de Fedora requièrent au moins 3 Gio d'espace.  
* Au moins 600 Mio d'espace disque par invité. Un système minimal en ligne de commande requiert 600 Mio d'espace disque. Les stations de travail standard de Fedora requièrent au moins 3 Gio d'espace.  
* Au moins 256 MB de mémoire vive par invité, plus 256 Mio pour le système de base. Au moins 756 Mio sont recommandés pour chaque système invité d'un système d'exploitation moderne. Une bonne règle de base est de se renseigner sur la quantité de mémoire requise par le système opérant normalement et de prendre cette valeur pour l'invité virtualisé.
* Au moins 256 Mio de mémoire vive par invité, plus 256 Mio pour le système de base. Au moins 756 Mio sont recommandés pour chaque système invité d'un système d'exploitation moderne. Une bonne règle de base est de se renseigner sur la quantité de mémoire requise par le système opérant normalement et de prendre cette valeur pour l'invité virtualisé.


KVM nécessite un processeur doté d'extensions de virtualisation. On les trouve sur la plupart des processeurs grand public récents. Ces extensions sont appelées Intel VT ou AMD-V. Pour savoir si votre processeur en dispose, exécutez la commande suivante :
KVM nécessite un processeur doté d'extensions de virtualisation. On les trouve sur la plupart des processeurs grand public récents. Ces extensions sont appelées Intel VT ou AMD-V. Pour savoir si votre processeur en dispose, exécutez la commande suivante :
Line 36: Line 36:
=== Installation des paquets nécessaires à la virtualisation ===
=== Installation des paquets nécessaires à la virtualisation ===


Lorsque vous installez Fedora, les paquets nécessaires à la virtualisation peuvent être installés en sélectionnant '''Virtualisation''' dans le groupe Base de l'installateur(cela peut néanmoins  [http://docs.fedoraproject.org/en-US/Fedora/13/html/Installation_Guide/s1-pkgselection-x86.html ne pus s'appliquer à votre méthode d'installation).  
Lorsque vous installez Fedora, les paquets nécessaires à la virtualisation peuvent être installés en sélectionnant '''Virtualisation''' dans le groupe Base de l'installateur (cela peut néanmoins  [http://docs.fedoraproject.org/en-US/Fedora/13/html/Installation_Guide/s1-pkgselection-x86.html ne pas s'appliquer à votre méthode d'installation]).  


Pour des systèmes Fedora déjà installés, QEMU, KVM, et d'autres outils de virtualisation, peuvent être installés en exécutant la commande suivante qui installe le groupe ''virtualisation'' :
Pour des systèmes Fedora déjà installés, QEMU, KVM, et d'autres outils de virtualisation, peuvent être installés en exécutant la commande suivante qui installe le groupe ''virtualisation'' :


== de Fedora 22  à la version actuelle : ==
== de Fedora 22  à la version actuelle : ==
Pour Fedora 21 ou pour des installations antérieures, remplace ''dnf'' par ''yum''. Le paquet ''yum'' est aujourd'hui obsolète et est remplacé par ''dnf'' en tant que gestionnaire de paquets depuis Fedora 22.  
Pour Fedora 21 ou pour des installations antérieures, remplacez ''dnf'' par ''yum''. Le paquet ''yum'' est aujourd'hui obsolète et est remplacé par ''dnf'' en tant que gestionnaire de paquets depuis Fedora 22.  
<pre>
<pre>
su -c "dnf install @virtualization"
su -c "dnf install @virtualization"
Line 97: Line 97:
=== Prise en charge du réseau ===
=== Prise en charge du réseau ===


Par défaut, ''libvirt'' crée un réseau privé pour vos invités sur la machine hôte. Ce réseau privé utilise un sous-réseau 192.168.x.x qui n'est pas directement accessible depuis le réseau sur lequel se trouve la machine hôte. Néanmoins, les invités  peuvent utiliser la machine hôte comme une passerelle pour se connecter au réseau extérieur. Si vous avez besoin de fournir des services à partir de vos invités qui seront accessibles par les machines du réseau auquel appartient votre machine hôte, vous pouvez utilisel des règles DNAT dans des iptables pour rediriger sur des ports spécifiques, ou vous pouvez configurer un environnement ponté.
Par défaut, ''libvirt'' crée un réseau privé pour vos invités sur la machine hôte. Ce réseau privé utilise un sous-réseau 192.168.x.x qui n'est pas directement accessible depuis le réseau sur lequel se trouve la machine hôte. Néanmoins, les invités  peuvent utiliser la machine hôte comme une passerelle pour se connecter au réseau extérieur. Si vous avez besoin de fournir des services à partir de vos invités qui seront accessibles par les machines du réseau auquel appartient votre machine hôte, vous pouvez utiliser des règles DNAT dans des iptables pour rediriger sur des ports spécifiques, ou vous pouvez configurer un environnement ponté.
 
 
Reportez-vous à la page [http://wiki.libvirt.org/page/Networking configuration de libvirt pour le réseau] pour plus d'information sur la manière de configurer un réseau ponté.
 
=== Création d'un invité Fedora ===


L'installation d'un invité Fedora à l'aide d'Anaconda est pris en charge. L'installation peut être démarrée en ligne de commande via le programme <code>virt-install</code> ou graphiquement via <code>virt-manager</code>.


See the [http://wiki.libvirt.org/page/Networking libvirt networking setup page] for more information on how to setup a Bridged network.
==== Création d'un invité avec virt-install ====


=== Creating a Fedora guest ===
L'outil <code>virt-install</code> est un outil en ligne de commande pour créer des systèmes virtualisés. Reportez-vous à http://virt-tools.org/learning/install-with-command-line/ pour connaître comment utiliser cet outil. Exécutez  <code>virt-install --help</code> pour obtenir de l'aide.


The installation of Fedora guests using anaconda is supported. The installation can be started on the command line via the <code>virt-install</code> program or in the GUI program <code>virt-manager</code>.
L'outil <code>virt-install</code> peut utiliser des fichiers Kickstart, par exemple :


==== Creating a guest with virt-install ====
<pre>virt-install -x ks=kickstart-file-name.ks</pre>


<code>virt-install</code> is a command line based tool for creating virtualized guests. Refer to http://virt-tools.org/learning/install-with-command-line/ for understanding how to use this tool. Execute <code>virt-install --help</code> for command line help.
Si l'option ''graphics'' est validée, une fenêtre VNC s'ouvre et présente l'installateur graphique. Si l'option ''graphics'' n'est pas validée, un installateur textuel apparaît. Vous pouvez commencer l'installation.


<code>virt-install</code> can use kickstart files, for example
<code>virt-install -x ks=kickstart-file-name.ks</code>.


If graphics were enabled, a VNC window will open and present the graphical installer. If graphics were not enabled, a text installer will appear. Proceed with the fedora installation.
==== Création d'un invité avec virt-manager ====


==== Creating a guest with virt-manager ====
Démarrez le gestionnaire graphique de machines virtuelles en le sélectionnant depuis le menu ''Applications'' ⇒ ''Gestionnaire de machines virtuelles'' ou en tapant la commande suivante dans un terminal :


Start the GUI Virtual Machine Manager by selecting it from the "Applications-->System Tools" menu, or by running the following command:
<pre>
<pre>
su -c "virt-manager"
su -c "virt-manager"
</pre>
</pre>


If you encounter an error along the lines of "Failed to contact configuration server; some possible causes are that you need to enable TCP/IP networking for ORBit, or you have stale NFS locks due to a system crash", trying running <code>virt-manager</code> not as root (without the <code>su -c</code>).  The GUI will prompt for the root password.
Si vous rencontrez une erreur parmi les lignes de sortie du type « Échec lors de la tentative de connexion au serveur », quelques raisons possibles sont que vous devez activer la mise en réseau TCP/ID pour ''ORBit'', ou que vous avez des verrous NFS résiduels à cause d'un plantage du système lors d'une tentative d'exécution de <code>virt-manager</code> en tant qu'utilisateur ordinaire (non administrateur) c.-à-d. sans  <code>su -c</code>).  L'interface graphique vous invite à donner le mot de passe d'administration.  


# Ouvrez une connexion à un hyperviseur en choisissant ''Fichier'' ⇒ ''Ajouter une connexion''
# Choisissez ''qemu'' pour  KVM, ou ''Xen'' pour ''Xen''
# Choisissez ''local'' ou sélectionnez une méthode de connexion à un hyperviseur distant
# Après que la connexion est ouverte, cliquez sur la nouvelle icône à côté de l'hyperviseur, ou cliquez avec le bouton de droite sur l'hyperviseur actif et choisissez ''Nouveau'' (Note: la nouvelle icône sera améliorée pour être plus visible)
# Un assistant présente les mêmes questions que celles qui sont présentées par l'outil en ligne de commande  <code>virt-install</code>  (voir ci-dessus). L'assistant suppose qu'une installation graphique est désirée et ne vous invite pas à préciser cette option.
# Sur la dernière page de l'assistant, en cliquant sur le bouton ''Terminer'', la machine virtuelle est créée et vous pouvez commencer l'installation du système invité comme s'il s'agissait d'une installation normale.


# Open a connection to a hypervisor by choosing File-->Add connection...
=== Gestion à distance ===
# Choose "qemu" for KVM, or "Xen" for Xen.
# Choose "local" or select a method to connect to a remote hypervisor
# After a connection is opened, click the new icon next to the hypervisor, or right click on the active hypervisor and select "New" (Note - the new icon is going to be improved to make it easier to see)
# A wizard will present the same questions as appear with the <code>virt-install</code> command-line utility (see descriptions above). The wizard assumes that a graphical installation is desired and does not prompt for this option.
# On the last page of the wizard there is a "Finish" button. When this is clicked, the guest OS is provisioned. After a few moments a VNC window should appear. Proceed with the installation as normal.


=== Remote management ===
Les options suivantes pour la gestion à distance sont disponibles :
* (la plus facile) Si vous utilisez SSH en tant qu'utilisateur ordinaire, alors les instructions de configuration se trouvent à http://wiki.libvirt.org/page/SSHSetup
* Si vous utilisez un accès SSH en tant qu'administrateur, alors créez des clés SSH pour l'administrateur, et utilisez <code>ssh-agent</code> et <code>ssh-add</code> avant de lancer <code>virt-manager</code>.
* Pour utiliser TLS, configurez une autorité locale de certification et créez des certificats x509 pour tous les clients et tous les serveurs. Pour des informations sur la manière de configurer cette option, reportez-vous à  http://wiki.libvirt.org/page/TLSSetup.


The following remote management options are available:
=== Administration du système invité ===
* (easiest) If using non-root users via SSH, then setup instructions are at: http://wiki.libvirt.org/page/SSHSetup
* If using root for access via SSH, then create SSH keys for root, and use <code>ssh-agent</code> and <code>ssh-add</code> before launching <code>virt-manager</code>.
* To use TLS, set up a local certificate authority and issue x509 certs to all servers and clients. For information on configuring this option, refer to http://wiki.libvirt.org/page/TLSSetup.


=== Guest system administration ===
Lorsque l'installation du système d'exploitation invité est terminée, ce dernier peut être géré en utilisant le programme graphique <code>virt-manager</code> ou en ligne de commande via <code>virsh</code>.


When the installation of the guest operating system is complete, it can be managed using the GUI <code>virt-manager</code> program or on the command line using <code>virsh</code>.
==== Gestion des invités avec virt-manager ====


==== Managing guests with virt-manager ====
Démarrez le gestionnaire de machines virtuelles. Recherchez le ''gestionnaire de machines virtuelles'' parmi vos applications graphiques ou lancez le en ligne de commande avec :


Start the Virtual Machine Manager. Virtual Machine Manager is in the "Applications-->System Tools" menu, or execute:
<pre>
<pre>
su -c "virt-manager"
su -c "virt-manager"
</pre>
</pre>


{1} If you are not root, you will be prompted to enter the root password. Choose<code>Run unprivileged</code> to operate in a read-only non-root mode.
{1} Si vous n'êtes pas administrateur, vous êtes invité à entrer le mot de passe d'administration. Choisissez ''Exécutez sans privilège'' pour travailler en mode lecture seule, non administrateur.
* Choisissez l'invité que vous voulez gérer est cliquez sur ''Connecter'' dans la la fenêtre d'ouverture de connexion.
* La liste des machines virtuelles est affichée dans la fenêtre principale. Les invités qui sont en exécution sont marqués d'un signe '''>'''. Les invités qui ne tournent pas sont estompés.
* Pour gérer un invité particulier, double-cliquez-le, ou cliquez-le avec le bouton de droite et choisissez ''Ouvrir'' dans le menu contextuel.
* Une nouvelle fenêtre pour l'invité s'ouvre, vous permettant d'utiliser sa console. Voir les informations sur son matériel virtuel et sur la manière de le démarrer, l'arrêter et le suspendre.


* Choose the host you wish to manage and click "Connect" in the "Open Connection" dialog window.
Pour des informations complémentaires sur ''virt-manager'', consultez le  [http://virt-manager.et.redhat.com/ site web du projet].
* The list of virtual machines is displayed in the main window. Guests that are running will display a ">" icon. Guests that are not running will be greyed out.
* To manage a particular guest, double click on it, or right click and select "Open".
* A new window for the guest will open that will allow you to use its console, see information about its virtual hardware and start/stop/pause it.  


For further information about <code>virt-manager</code> consult the [http://virt-manager.et.redhat.com/ project website]
Les bogues de <code>virt-manager</code> doivent être rapportés dans  [http://bugzilla.redhat.com BugZilla]  en faisant référence au composant <code>virt-manager</code>.


Bugs in the <code>virt-manager</code> tool should be reported in [http://bugzilla.redhat.com BugZilla]  against the 'virt-manager' component
==== Gérer les invités avec virsh ====


==== Managing guests with virsh ====
L'utilitaire en ligne de commande <code>virsh</code> vous permet de gérer les machines virtuelles.


The <code>virsh</code> command line utility that allows you to manage virtual machines.
Les invités peuvent être gérés en ligne de commande via l'utilitaire  <code>virsh</code> . L'utilitaire  <code>virsh</code> est construit autour de l'APIl de gestion libvirt :  
Guests can be managed on the command line with the <code>virsh</code> utility. The <code>virsh</code> utility is built around the libvirt management APIl:


* <code>virsh</code> has a stable set of commands whose syntax and semantics are preserved across updates to the underlying virtualization platform.
* <code>virsh</code> dispose d'un jeu de commandes stable dont la syntaxe et la sémantique sont préservées au fil des mises à jour de la plateforme de virtualisation sous-jacente.
* <code>virsh</code> can be used as an unprivileged user for read-only operations (e.g. listing domains, listing domain statistics).
* <code>virsh</code> peut être utilisé comme un utilisateur sans privilège pour des opération en lecture seule (p. ex. lister des domaines, lister des statistiques de domaines).  
* <code>virsh</code> can manage domains running under Xen, Qemu/KVM, esx or other backends with no perceptible difference to the user
* <code>virsh</code> peut gérer des domaines qui s'exécutent sous Xen, Qemu/KVM, esx ou d'autres processus d'arrière plan sans différence perceptible par l'utilisateur.
{{Admon/note | Un URI valide doit être passé <code>virsh</code> avec ''-c'' pour se connecter à une instance distante de libvirtd. Pour les détails, reportez-vous à http://libvirt.org/uri.html}}


{{Admon/note | A valid URI may be passed to <code>virsh</code> with "-c' to connect to a remote libvirtd instance. For details, see http://libvirt.org/uri.html}}
Pour démarrer une machine virtuelle :
 
To start a virtual machine:


<pre>
<pre>
su -c "virsh create <name of virtual machine>"
su -c "virsh create <nom de la machine virtuelle>"
</pre>
</pre>


To list the virtual machines currently running:
Pour lister les machines virtuelles actuellement en marche :
 
<pre>
<pre>
su -c "virsh list"
su -c "virsh list"
</pre>
</pre>


To list all virtual machines, running or not:  
Pour lister toutes les machines virtuelles, en marche ou pas :  


<pre>
<pre>
Line 190: Line 191:
</pre>
</pre>


To gracefully power off a guest:
Pour arrêter de manière sure un invité :
<pre>
<pre>
su -c "virsh shutdown <virtual machine (name | id | uuid)>"
su -c "virsh shutdown <machine virtuelle (nom | id | uuid)>"
</pre>
</pre>


To non gracefully power off a guest:
Pour arrêter un invité sans ménagement:
<pre>
<pre>
su -c "virsh destroy <virtual machine (name | id | uuid)>"
su -c "virsh destroy <machine virtuelle (nom | id | uuid)>"
</pre>
</pre>


To save a snapshot of the machine to a file:
Pour sauvegarder un instantané de la machine dans un fichier :
<pre>
<pre>
su -c "virsh save <virtual machine (name | id | uuid)> <filename>"
su -c "virsh save <machine virtuelle (nom | id | uuid)> <nom de fichier>"
</pre>
</pre>


To restore a previously saved snapshot:
Pour restaurer un instantané préalablement sauvegardé :
<pre>
<pre>
su -c "virsh restore <filename>"
su -c "virsh restore <nom de fichier>"
</pre>
</pre>


To export the configuration file of a virtual machine:
Pour exporter le fichier de configuration d'une machine virtuelle :
<pre>
<pre>
su -c "virsh dumpxml <virtual machine (name | id | uuid)"
su -c "virsh dumpxml <machine virtuelle (nom | id | uuid)>"
</pre>
</pre>


For a complete list of commands available for use with <code>virsh</code>:
Pour une liste des commandes de <code>virsh</code> disponibles :
<pre>
<pre>
su -c "virsh help"
su -c "virsh help"
</pre>
</pre>


Or consult the manual page: <code>man 1 virsh</code>
Ou pour consulter la page de manuel : <code>man 1 virsh</code>


Bugs in the <code>virsh</code> tool should be reported in [http://bugzilla.redhat.com BugZilla] against the 'libvirt' component.
Les bogues de  <code>virsh</code> doivent être rapportés dans  [http://bugzilla.redhat.com BugZilla] en faisant référence au composant 'libvirt'.


== Other virtualization options ==
== Autres options de virtualisation ==


=== QEMU/KVM without Libvirt ===
=== QEMU/KVM sans Libvirt ===
QEMU/KVM can be invoked directly without libvirt, however you won't be able to use tools such as virt-manager, virt-install, or virsh.
QEMU/KVM peut être invoqué directement sans libvirt. Néanmoins, vous ne pourrez pas utiliser des outils tels que ''virt-manager'', ''virt-install'' ou ''virsh''.
Plain QEMU (without KVM) can also virtualize other processor architectures like ARM or PowerPC. See [[How to use qemu]]
QEMU nu (sans KVM) peut aussi virtualiser d'autres architectures de processeurs comme ARM ou PowerPC. Voir [[How to use qemu]].


=== Xen ===
=== Xen ===
Fedora can run as a Xen Guest OS and also be used as a Xen host (with the latter being true from Fedora 16; for using an earlier version of Fedora as a Xen Host, check out the experimental repo available at http://myoung.fedorapeople.org/dom0). For a guide on how to install and setup a Fedora Xen host, look at the [http://wiki.xen.org/wiki/Fedora_Host_Installation Fedora Host Installation] page on the Xen Project wiki.
Fedora peut tourner en tant que système d'exploitation invité sous Xen et également être utilisé en tant qu'hôte Xen (le dernier étant vrai depuis Fedora16). Pour utiliser une version antérieure de Fedora en tant qu'hôte Xen, utilisez le dépôt expérimental disponible à  http://myoung.fedorapeople.org/dom0. Pour des conseils sur la manière d'installer et de configurer un hôte Fedora Xen, consultez la page  [http://wiki.xen.org/wiki/Fedora_Host_Installation Fedora Host Installation] du wiki du projet Xen.


=== OpenStack ===
=== OpenStack ===
[[OpenStack]] consists of a number services for running IaaS clouds. They are the Object Store (Swift), Compute (Nova) and Image (Glance) services. It is a [[Features/OpenStack |Fedora 16 feature]].
[[OpenStack]] est un ensemble de services pour exécuter des nuages IaaS. Il y a le magasin d'objets (Swift), des services de compilation (Nova) et d'Images (Glance). C'est une [[Features/OpenStack |fonctionnalité de Fedora 16]].


=== OpenNebula ===
=== OpenNebula ===
[[Features/OpenNebula |OpenNebula]] is an Open Source Toolkit for Data Center Virtualization.
[[Features/OpenNebula |OpenNebula]] est une boîte à outils open source pour la virtualisation des centres de données.  


=== oVirt ===
=== oVirt ===
The [[Features/oVirt |oVirt project]] is an open virtualization project providing a feature-rich, end to end, server virtualization management system with advanced capabilities for hosts and guests, including high availability, live migration, storage management, system scheduler, and more.
The [[Features/oVirt |oVirt project]] est un projet open source de virtualisation qui fournit un système de gestion de serveurs virtualisés, riche de fonctionnalités, end to end, doté de capacités avancées pour les hôtes et les invités, y compris la haute disponibilité, la migration live, la gestion du stockage, la planification système et bien plus encore.  




== Troubleshooting, bug reporting, and known issues ==
== Résolution des problèmes, signalement de bogues et problèmes connus ==


For a list of known unresolved issues, as well as troubleshooting tips, please see [[How_to_debug_Virtualization_problems|How to debug virtualization problems]]
Pour voir une liste des problèmes non encore résolus, ainsi que des conseils pour régler les problèmes, reportez-vous à  [[How_to_debug_Virtualization_problems|How to debug virtualization problems]]


[[Category:Documentation]]
[[Category:Documentation]]
[[Category:Virtualization]]
[[Category:Virtualization]]

Latest revision as of 05:23, 24 April 2016

Premiers pas avec la virtualisation

Le mot hôte en français est un mot ambivalent puisqu'il désigne tout aussi bien celui qui reçoit que celui qui est reçu. Tout au long de cette page le mot hôte sera réservé à l'hébergeur, le système qui accueille, tandis que les autres systèmes seront baptisés systèmes invités ou systèmes virtualisés.

Cette page traite de l'utilisation de Fedora pour héberger des systèmes invités (dits virtualisés). Pour des informations sur les technologies de virtualisation dans Fedora, reportez-vous à cette page dédiée.

Utilisation de la virtualisation dans Fedora

Fedora utilise la famille d'outils libvirt comme solution de virtualisation. Par défaut, libvirt utilise Qemu pour exécuter les instances de système invité dans Fedora.

Pour des informations sur d'autres plateformes de virtualisation, reportez-vous à http://virt.kernelnewbies.org/TechComparison.

Qemu peut émuler une machine hôte en logiciel, ou, pour un processeur donné pris en charge (voir plus bas), peut utiliser KVM pour fournir une virtualisation rapide et totale.

D'autres produits et paquets de virtualisation sont disponibles mais ne sont pas couverts par ce guide.

Installation et configuration de Fedora pour les systèmes invités virtualisés

Cette section traite de la configuration de libvirt sur votre système. Une fois cette section appliquée avec succès, vous pourrez créer des systèmes d'exploitation invités virtualisés.


Prérequis système

Les prérequis courants pour la virtualisation sur Fedora sont :

  • Au moins 600 Mio d'espace disque par invité. Un système minimal en ligne de commande requiert 600 Mio d'espace disque. Les stations de travail standard de Fedora requièrent au moins 3 Gio d'espace.
  • Au moins 256 Mio de mémoire vive par invité, plus 256 Mio pour le système de base. Au moins 756 Mio sont recommandés pour chaque système invité d'un système d'exploitation moderne. Une bonne règle de base est de se renseigner sur la quantité de mémoire requise par le système opérant normalement et de prendre cette valeur pour l'invité virtualisé.

KVM nécessite un processeur doté d'extensions de virtualisation. On les trouve sur la plupart des processeurs grand public récents. Ces extensions sont appelées Intel VT ou AMD-V. Pour savoir si votre processeur en dispose, exécutez la commande suivante :

$ egrep '^flags.*(vmx|svm)' /proc/cpuinfo 

Si la commande ne retourne rien, votre système ne dispose pas des extensions nécessaires. Vous pouvez quand même utiliser QEMU/KVM, mais l'émulateur va adopter une solution de repli : la virtualisation logicielle. Cette dernière est vraiment bien moins rapide.


Installation des paquets nécessaires à la virtualisation

Lorsque vous installez Fedora, les paquets nécessaires à la virtualisation peuvent être installés en sélectionnant Virtualisation dans le groupe Base de l'installateur (cela peut néanmoins ne pas s'appliquer à votre méthode d'installation).

Pour des systèmes Fedora déjà installés, QEMU, KVM, et d'autres outils de virtualisation, peuvent être installés en exécutant la commande suivante qui installe le groupe virtualisation :

de Fedora 22 à la version actuelle :

Pour Fedora 21 ou pour des installations antérieures, remplacez dnf par yum. Le paquet yum est aujourd'hui obsolète et est remplacé par dnf en tant que gestionnaire de paquets depuis Fedora 22.

su -c "dnf install @virtualization"

Cela installe les paquets obligatoires et les paquets par défaut.

$ dnf groupinfo virtualization
Vérification de l'expiration des métadonnées effectuée il y a 0:00:56 sur Fri Apr 22 19:38:03 2016.

Groupe : Virtualisation
 Description : Ces paquets offrent un environnement de virtualisation graphique.
 Paquets obligatoires :
   virt-install
 Paquets par défaut :
   libvirt-daemon-config-network
   libvirt-daemon-kvm
   qemu-kvm
   virt-manager
   virt-viewer
 Paquets optionnels :
   guestfs-browser
   libguestfs-tools
   python-libguestfs
   virt-top
 

Cela installe les paquets obligatoires, les paquets par défaut et les paquets facultatifs :

su -c "dnf group install with-optional virtualization"

Pour démarrer le service :

su -c "systemctl start libvirtd"

Pour lancer le service au démarrage du système :

su -c "systemctl enable libvirtd"

Vérifiez que les modules kvm du noyau ont été chargés correctement :

$ lsmod | grep kvm
kvm_amd                55563  0 
kvm                   419458  1 kvm_amd

Si cette commande ne liste pas kvm_intel ou kvm_amd, kvm n'est pas configuré correctement. Voyez s'assurer que le système est compatible kvm pour des conseils sur la résolution des problèmes.

Prise en charge du réseau

Par défaut, libvirt crée un réseau privé pour vos invités sur la machine hôte. Ce réseau privé utilise un sous-réseau 192.168.x.x qui n'est pas directement accessible depuis le réseau sur lequel se trouve la machine hôte. Néanmoins, les invités peuvent utiliser la machine hôte comme une passerelle pour se connecter au réseau extérieur. Si vous avez besoin de fournir des services à partir de vos invités qui seront accessibles par les machines du réseau auquel appartient votre machine hôte, vous pouvez utiliser des règles DNAT dans des iptables pour rediriger sur des ports spécifiques, ou vous pouvez configurer un environnement ponté.


Reportez-vous à la page configuration de libvirt pour le réseau pour plus d'information sur la manière de configurer un réseau ponté.

Création d'un invité Fedora

L'installation d'un invité Fedora à l'aide d'Anaconda est pris en charge. L'installation peut être démarrée en ligne de commande via le programme virt-install ou graphiquement via virt-manager.

Création d'un invité avec virt-install

L'outil virt-install est un outil en ligne de commande pour créer des systèmes virtualisés. Reportez-vous à http://virt-tools.org/learning/install-with-command-line/ pour connaître comment utiliser cet outil. Exécutez virt-install --help pour obtenir de l'aide.

L'outil virt-install peut utiliser des fichiers Kickstart, par exemple :

virt-install -x ks=kickstart-file-name.ks

Si l'option graphics est validée, une fenêtre VNC s'ouvre et présente l'installateur graphique. Si l'option graphics n'est pas validée, un installateur textuel apparaît. Vous pouvez commencer l'installation.


Création d'un invité avec virt-manager

Démarrez le gestionnaire graphique de machines virtuelles en le sélectionnant depuis le menu ApplicationsGestionnaire de machines virtuelles ou en tapant la commande suivante dans un terminal :

su -c "virt-manager"

Si vous rencontrez une erreur parmi les lignes de sortie du type « Échec lors de la tentative de connexion au serveur », quelques raisons possibles sont que vous devez activer la mise en réseau TCP/ID pour ORBit, ou que vous avez des verrous NFS résiduels à cause d'un plantage du système lors d'une tentative d'exécution de virt-manager en tant qu'utilisateur ordinaire (non administrateur) c.-à-d. sans su -c). L'interface graphique vous invite à donner le mot de passe d'administration.

  1. Ouvrez une connexion à un hyperviseur en choisissant FichierAjouter une connexion
  2. Choisissez qemu pour KVM, ou Xen pour Xen
  3. Choisissez local ou sélectionnez une méthode de connexion à un hyperviseur distant
  4. Après que la connexion est ouverte, cliquez sur la nouvelle icône à côté de l'hyperviseur, ou cliquez avec le bouton de droite sur l'hyperviseur actif et choisissez Nouveau (Note: la nouvelle icône sera améliorée pour être plus visible)
  5. Un assistant présente les mêmes questions que celles qui sont présentées par l'outil en ligne de commande virt-install (voir ci-dessus). L'assistant suppose qu'une installation graphique est désirée et ne vous invite pas à préciser cette option.
  6. Sur la dernière page de l'assistant, en cliquant sur le bouton Terminer, la machine virtuelle est créée et vous pouvez commencer l'installation du système invité comme s'il s'agissait d'une installation normale.

Gestion à distance

Les options suivantes pour la gestion à distance sont disponibles :

  • (la plus facile) Si vous utilisez SSH en tant qu'utilisateur ordinaire, alors les instructions de configuration se trouvent à http://wiki.libvirt.org/page/SSHSetup
  • Si vous utilisez un accès SSH en tant qu'administrateur, alors créez des clés SSH pour l'administrateur, et utilisez ssh-agent et ssh-add avant de lancer virt-manager.
  • Pour utiliser TLS, configurez une autorité locale de certification et créez des certificats x509 pour tous les clients et tous les serveurs. Pour des informations sur la manière de configurer cette option, reportez-vous à http://wiki.libvirt.org/page/TLSSetup.

Administration du système invité

Lorsque l'installation du système d'exploitation invité est terminée, ce dernier peut être géré en utilisant le programme graphique virt-manager ou en ligne de commande via virsh.

Gestion des invités avec virt-manager

Démarrez le gestionnaire de machines virtuelles. Recherchez le gestionnaire de machines virtuelles parmi vos applications graphiques ou lancez le en ligne de commande avec :

su -c "virt-manager"

{1} Si vous n'êtes pas administrateur, vous êtes invité à entrer le mot de passe d'administration. Choisissez Exécutez sans privilège pour travailler en mode lecture seule, non administrateur.

  • Choisissez l'invité que vous voulez gérer est cliquez sur Connecter dans la la fenêtre d'ouverture de connexion.
  • La liste des machines virtuelles est affichée dans la fenêtre principale. Les invités qui sont en exécution sont marqués d'un signe >. Les invités qui ne tournent pas sont estompés.
  • Pour gérer un invité particulier, double-cliquez-le, ou cliquez-le avec le bouton de droite et choisissez Ouvrir dans le menu contextuel.
  • Une nouvelle fenêtre pour l'invité s'ouvre, vous permettant d'utiliser sa console. Voir les informations sur son matériel virtuel et sur la manière de le démarrer, l'arrêter et le suspendre.

Pour des informations complémentaires sur virt-manager, consultez le site web du projet.

Les bogues de virt-manager doivent être rapportés dans BugZilla en faisant référence au composant virt-manager.

Gérer les invités avec virsh

L'utilitaire en ligne de commande virsh vous permet de gérer les machines virtuelles.

Les invités peuvent être gérés en ligne de commande via l'utilitaire virsh . L'utilitaire virsh est construit autour de l'APIl de gestion libvirt :

  • virsh dispose d'un jeu de commandes stable dont la syntaxe et la sémantique sont préservées au fil des mises à jour de la plateforme de virtualisation sous-jacente.
  • virsh peut être utilisé comme un utilisateur sans privilège pour des opération en lecture seule (p. ex. lister des domaines, lister des statistiques de domaines).
  • virsh peut gérer des domaines qui s'exécutent sous Xen, Qemu/KVM, esx ou d'autres processus d'arrière plan sans différence perceptible par l'utilisateur.
Un URI valide doit être passé virsh avec -c pour se connecter à une instance distante de libvirtd. Pour les détails, reportez-vous à http://libvirt.org/uri.html

Pour démarrer une machine virtuelle :

su -c "virsh create <nom de la machine virtuelle>"

Pour lister les machines virtuelles actuellement en marche :

su -c "virsh list"

Pour lister toutes les machines virtuelles, en marche ou pas :

su -c "virsh list --all"

Pour arrêter de manière sure un invité :

su -c "virsh shutdown <machine virtuelle (nom | id | uuid)>"

Pour arrêter un invité sans ménagement:

su -c "virsh destroy <machine virtuelle (nom | id | uuid)>"

Pour sauvegarder un instantané de la machine dans un fichier :

su -c "virsh save <machine virtuelle (nom | id | uuid)> <nom de fichier>"

Pour restaurer un instantané préalablement sauvegardé :

su -c "virsh restore <nom de fichier>"

Pour exporter le fichier de configuration d'une machine virtuelle :

su -c "virsh dumpxml <machine virtuelle (nom | id | uuid)>"

Pour une liste des commandes de virsh disponibles :

su -c "virsh help"

Ou pour consulter la page de manuel : man 1 virsh

Les bogues de virsh doivent être rapportés dans BugZilla en faisant référence au composant 'libvirt'.

Autres options de virtualisation

QEMU/KVM sans Libvirt

QEMU/KVM peut être invoqué directement sans libvirt. Néanmoins, vous ne pourrez pas utiliser des outils tels que virt-manager, virt-install ou virsh. QEMU nu (sans KVM) peut aussi virtualiser d'autres architectures de processeurs comme ARM ou PowerPC. Voir How to use qemu.

Xen

Fedora peut tourner en tant que système d'exploitation invité sous Xen et également être utilisé en tant qu'hôte Xen (le dernier étant vrai depuis Fedora16). Pour utiliser une version antérieure de Fedora en tant qu'hôte Xen, utilisez le dépôt expérimental disponible à http://myoung.fedorapeople.org/dom0. Pour des conseils sur la manière d'installer et de configurer un hôte Fedora Xen, consultez la page Fedora Host Installation du wiki du projet Xen.

OpenStack

OpenStack est un ensemble de services pour exécuter des nuages IaaS. Il y a le magasin d'objets (Swift), des services de compilation (Nova) et d'Images (Glance). C'est une fonctionnalité de Fedora 16.

OpenNebula

OpenNebula est une boîte à outils open source pour la virtualisation des centres de données.

oVirt

The oVirt project est un projet open source de virtualisation qui fournit un système de gestion de serveurs virtualisés, riche de fonctionnalités, end to end, doté de capacités avancées pour les hôtes et les invités, y compris la haute disponibilité, la migration live, la gestion du stockage, la planification système et bien plus encore.


Résolution des problèmes, signalement de bogues et problèmes connus

Pour voir une liste des problèmes non encore résolus, ainsi que des conseils pour régler les problèmes, reportez-vous à How to debug virtualization problems