GNU/Linux >> Tutoriels Linux >  >> Linux

Comment configurer rapidement un serveur KVM

Il s'agit d'une très courte configuration rapide sur la façon de faire fonctionner le serveur KVM (l'hyperviseur Linux Kernel Virtual Machine).

Pourquoi KVM ?

KVM est un hyperviseur, tout comme VmWare ESX, Microsoft Hyper-V et XEN. La grande chose (comme d'habitude) à propos de KVM, c'est qu'il fait partie de Linux, ce qui signifie qu'il est gratuit et que ses performances sont excellentes. L'utiliser dans un environnement de production en tant qu'hyperviseur autonome est un excellent choix, a une faible empreinte de serveur hôte (en termes de besoins de performances et de disque) et peut être facilement administré avec d'autres outils comme virt-manager.

Hypothèses

Ce didacticiel rapide suppose que :
  • Vous souhaitez exécuter un serveur KVM avec au moins un invité de machine virtuelle,
  • Votre serveur KVM obtient une adresse IP dans votre réseau,
  • Vos machines virtuelles obtiennent une adresse IP de votre réseau, ce qui vous permet d'utiliser le pontage au lieu du natting (l'utilisation du NAT au lieu du pontage est une tâche facile, mais ne fait pas partie de ce guide),
  • Vous pouvez utiliser lvm pour l'allocation d'espace disque sur votre maître KVM (l'utilisation d'autres méthodes d'allocation d'espace disque comme les fichiers image est également facile, mais ne fait pas partie de ce guide) - notez que vous devrez l'installer avant de passer par le ci-dessous, s'il n'est pas déjà installé sur votre serveur.
  • Vous utilisez Ubuntu 10.04 ou une version plus récente. Il doit s'agir d'un serveur Ubuntu à jour avec une connectivité réseau et un accès via ssh.

Remerciements

Il s'agit d'un petit guide qui doit être remanié et qui le sera bientôt, mais dans son état actuel, il a été principalement tiré en gros de www.screenage.de, donc de grands accessoires pour l'auteur original, ccm. Des modifications mineures ont été apportées pour des raisons de lisibilité.

Mettre le réseau en place

Pour le réseau ponté, vous devez installer les utilitaires de pont et modifier la configuration de votre réseau. Installez d'abord le package :
$ sudo apt-get install bridge-utils
Ajoutez maintenant un pont nommé "br0" (cela n'a été fait qu'une seule fois) :
$ sudo brctl addbr br0
Modifiez maintenant votre fichier /etc/network/interfaces pour qu'il utilise le pont br0. Cette étape configure en fait br0 au lieu de eth0. Considérez eth0 comme un simple transport physique ajouté à l'interface du pont virtuel.
# L'interface réseau de bouclageauto loiface lo inet loopback auto eth0iface eth0 inet manual auto br0iface br0 inet adresse statique 192.168.1.100masque de réseau 255.255.255.0réseau 192.168.1.0diffusion 192.168.1.255passerelle 192.168.1.1bridge_ports eth0bridge_fd 9bridge_hello 2bridge_maxage 12bridge_stp off

Assurez-vous de ne pas oublier de régler votre "eth0" sur "iface eth0 inet manual" comme indiqué ci-dessus. Ceci est nécessaire car vous voulez empêcher eth0 de récupérer une adresse via dhcp mais vous voulez toujours qu'elle soit là pour votre pont car c'est la couche physique. Après avoir configuré le pont, redémarrez votre réseau (sudo /etc/init.d/networking restart ) ou redémarrez votre serveur. Si vous accédez déjà à votre serveur par ssh, sachez qu'une mauvaise configuration pourrait vous bloquer.

Installer KVM

Il est maintenant temps d'installer kvm et quelques applications utiles :
$ sudo apt-get install qemu-kvm ubuntu-vm-builder uml-utilities \ virtinst

C'est tout :vous avez déjà un serveur kvm maintenant. Il est temps de…

Installez votre première machine virtuelle

Nous allons configurer un volume logique de 100 Go pour l'invité, télécharger Ubuntu et créer une machine avec 2 Go de Ram et 4 cœurs :

# créer un volume logique vide de 100 Goudo lvcreate --size 100G vg0 --name guest1# télécharger Ubuntu iso (ou en utiliser un que vous avez déjà)$ wget http://..../# create machine$ sudo virt-install --connect qemu:///system -n guest1 -r 2048 \ --vcpus=4 -f /dev/mapper/guest1 --network =bridge:br0 \ --vnc --accelerate -v -c ./SOMEUBUNTUISO.iso \ --os-type=linux --os-variant=ubuntuKarmic --noautoconsole# veuillez noter :"ubuntuKarmic" est actuellement le plus récent # schéma par défaut virt-install - utilisez-le simplement en cas de doute.

Obtenir une connexion VNC

KVM utilise VNC pour vous donner une interface graphique vers votre machine. La bonne chose à ce sujet est qu'il vous permet d'utiliser des installateurs graphiques (et oui, même Windows) sans problème. Comme même le serveur Ubuntu démarre en mode graphique au début, c'est génial d'utiliser VNC ici.

Je suppose que vous travaillez sur un serveur distant. KVM donne à chaque invité qu'il lance une nouvelle instance vnc avec un nouveau port incrémenté. Cela commence par 5900. Passons donc au tunnel via ssh :

ssh user@remotekvmhost -L 5900:localhost:5900

Vous vous connectez à votre hôte kvm distant via ssh et ouvrez un tunnel ssh fort port 5900. Maintenant, démarrez votre client VNC préféré localement et laissez-le se connecter à l'affichage "0" ou au port 5900, ce qui signifie la même chose dans VNC (duh…).

A partir de maintenant, vous devriez voir votre serveur sur un écran VNC. Installez-le comme vous installeriez tous les autres serveurs. Le réseau est ponté, vous pouvez donc même utiliser DHCP si cela est proposé sur votre réseau.

Assurez-vous d'avoir installé le paquet « acpi » dans votre invité kvm, sinon vous ne pourrez pas arrêter l'invité du maître (comme cela se fait via acpi) :

# assurez-vous que "acpi" est installé dans le *guest* machinesudo apt-get install acpi

Après l'installation, vous pouvez gérer vos gues kvm en utilisant les commandes suivantes :

# list running instances$ virsh list# start an instance$ virsh start INSTANCENAME# stop an instance politely$ virsh stop INSTANCE# détruire immédiatement une instance en cours d'exécution $ virsh destroy INSTANCE# édite le fichier de configuration d'une instance$ virsh edit INSTANCE

Monter les volumes LVM

Comme vous l'avez peut-être remarqué, les volumes lvm de votre invité virtuel ne peuvent pas être montés directement dans le maître car ils contiennent leur propre table de partition. Si vous avez besoin d'accéder au système de fichiers de l'invité à partir du maître, vous devez créer des nœuds de périphérique. Il existe un excellent outil appelé "kpartx" qui peut créer et supprimer des nœuds de périphérique pour vous. C'est aussi simple que cela :

/guest1# vérifiez /dev/mapper pour les nouveaux nœuds de périphérique et montez/démontez-les# après avoir terminé, supprimez les nœuds$ sudo kpartx -d /dev/mapper/guest1

Veuillez noter que cette méthode fonctionne également avec d'autres périphériques de bloc comme les fichiers image contenant des tables de partition. Vous ne risquez de rencontrer des problèmes que lorsque votre volume lvm contient son propre lvm. Si tel est le cas, jouez avec pvscan, vgscan et lvscan après avoir utilisé kpartx. Soyez courageux, mais sachez que la sauvegarde des données est toujours une bonne idée.

Interfaces de gestion alternatives

Si vous avez vraiment besoin d'une interface graphique pour vos besoins de gestion, cochez "virt-manager". Vous pouvez l'installer sur votre bureau et gérer à distance les instances en cours d'exécution :

$ sudo install virt-manager

Vous devriez cependant consulter la page "Virtual Machine Manager" de RedHat. Il peut être judicieux de compiler et d'installer manuellement une version plus récente et de s'appuyer sur les guides d'installation. Personnellement, je préfère utiliser la console en texte brut ici, car cela aide à pouvoir agir assez rapidement et de n'importe où lorsque des problèmes surviennent et bien sûr, vous n'avez pas les frais généraux liés à l'exécution de X11 sur le serveur.

Conclusion

De nos jours, il est assez facile de configurer un serveur KVM. Comme les invités compatibles KVM / libvirt sont assez rapides, c'est un moyen simple et agréable d'héberger même des machines virtuelles. J'exécute environ une douzaine de machines virtuelles et trois serveurs matériels depuis deux ans maintenant sans aucun problème sérieux.


Linux
  1. Comment configurer un serveur SVN sur CentOS

  2. Comment configurer le serveur Rsyslog sur Debian 11

  3. Comment configurer SSH sans mot de passe sous Linux

  4. Comment configurer le serveur NTP dans CentOS ?

  5. comment démarrer le serveur tomcat sous linux?

Procédure :configuration initiale du serveur Ubuntu 15.04

Procédure :configuration initiale du serveur Fedora 21

Procédure :configuration initiale du serveur Debian 8.2

Comment configurer HAProxy sur CentOS 8

Comment configurer le cache Nginx sur le serveur LEMP

Comment changer le fuseau horaire sur le serveur Ubuntu 18.04 ?