Différences entre les versions de « Kvm »
De BlaxWiki
Aller à la navigationAller à la recherche| Ligne 7 : | Ligne 7 : | ||
se présente sous la forme de modules kernel. Chaque VM est vu comme un process lambda sur l'hyperviseur et un "ps" permet de voir les VM qui tournent. | se présente sous la forme de modules kernel. Chaque VM est vu comme un process lambda sur l'hyperviseur et un "ps" permet de voir les VM qui tournent. | ||
Par défaut, il n'existe pas de commande equivalente au "xm" de Xen. Afin d'agir sur les VM KVM, il faut passer par libvirtd qui est un daemon d'abstraction multi-hyperviseur. | Par défaut, il n'existe pas de commande equivalente au "xm" de Xen. Afin d'agir sur les VM KVM, il faut passer par libvirtd qui est un daemon d'abstraction multi-hyperviseur. | ||
La configuration des VM se fait par l'intermédiaire d'un fichier de configuration XML. Les fichiers de configuration se trouvent dans /etc/libvirt/qemu/. Virsh est un utilitaire permettant d'interroger le daemon libvirtd est interagir avec les VMs. Comme libvirtd est multi-hyperviseur, certaines commandes ne fonctionnent car non supportées | La configuration des VM se fait par l'intermédiaire d'un fichier de configuration XML. Les fichiers de configuration se trouvent dans /etc/libvirt/qemu/. Virsh est un utilitaire | ||
permettant d'interroger le daemon libvirtd est interagir avec les VMs. Comme libvirtd est multi-hyperviseur, certaines commandes ne fonctionnent car non supportées | |||
par KVM. | par KVM. | ||
</pre> | </pre> | ||
Version du 14 janvier 2013 à 09:42
/!\/!\ Sur les vm il faut que le process acpid tourne, sinon on ne pourra pas les arreter proprement avec la commande virsh shutdown /!\/!\
Présentation
KVM est l'hyperviseur libre supporté par RedHat. Il est extrêmement simple et facile d'utilisation. Par rapport à Xen, il n'oblige pas de faire tourner un kernel linux spécifique et se présente sous la forme de modules kernel. Chaque VM est vu comme un process lambda sur l'hyperviseur et un "ps" permet de voir les VM qui tournent. Par défaut, il n'existe pas de commande equivalente au "xm" de Xen. Afin d'agir sur les VM KVM, il faut passer par libvirtd qui est un daemon d'abstraction multi-hyperviseur. La configuration des VM se fait par l'intermédiaire d'un fichier de configuration XML. Les fichiers de configuration se trouvent dans /etc/libvirt/qemu/. Virsh est un utilitaire permettant d'interroger le daemon libvirtd est interagir avec les VMs. Comme libvirtd est multi-hyperviseur, certaines commandes ne fonctionnent car non supportées par KVM.
Démarrage auto des vm
Pour que les vm soient lancées automatiquement au démarrage, on peut utiliser virsh autostart nomvmvm. Si on a un message d'erreur, c'est que lorsqu'on fait un virsh dominfo nomvm, la vm est en mode Persistent: No. On peut passer en mode Persistent à yes, en faisant un virsh define nomvm, mais attention cela va modifier quelques parametres dans le fichier xml, BACKUPER avant l'original, puis recopier le fichier xml original sur le nouveau. La vm est maintenant en mode persistent, et on peut faire un virsh autostart nomvm. Sinon il suffit de creer des liens symboliques dans /etc/libvirt/qemu/autostart/ : lg2.infra.agarik.com.xml -> /etc/libvirt/qemu/lg2.infra.agarik.com.xml La vm ne sera démmarré au reboot que si elle tournait lorsque le serveur a redémarré
Problème perf réseau
Avec une centos 6.0 il y avait de gros problème de perf réseau (perte de paquets, coupure réseau) Au lieu d'avoir : <emulator>/usr/libexec/qemu-kvm</emulator>, il faut mettre <emulator>/usr/libexec/qemu-kvm.txtimer</emulator> Ce fichier contient en fait : #!/bin/sh exec /usr/libexec/qemu-kvm `echo "$@" | sed 's|virtio-net-pci|virtio-net-pci,tx=timer|g'`
Virbr0
Par défaut kvm monte une interface virbr0 avec une ip en 192.168.122 qui sert à natter les vm, la plus part du temps on ne s'en sert pas. Pour la désactiver :
virsh net-list Sample outputs: Name State Autostart ----------------------------------------- default active yes To disable virbr0, enter: # virsh net-destroy default # virsh net-undefine default # service libvirtd restart # ifconfig
Commande virsh
* virsh nodeinfo : info cpu & mémoire * virsh capabilities : info plus précise sur le cpu (id cpu, nombre, capacité...) * virsh vcpuinfo syslog1.infra.agarik.com : info cpu au niveau du domaine syslog1.infra.agarik.com VCPU: 0 CPU: 0 State: running CPU time: 10.6s CPU Affinity: y--- Ici cela signifie que la vm utilise le cpu id 0 uniquement (car au niveau cpu affinity le "y" est au début, si on a le "y" sur les 4 cases cela signifie que la vm peut utiliser indifféremment n'importe lequel des cpu). Le nombre de cpu affiché par cat /proc/cpuinfo est toujours le même (celui qu'a reellement le serveur), meme lorsque les vm sont lancées * virsh domiflist syslog1.infra.agarik.com (en complément de brctl show) Interface Type Source Model MAC ------------------------------------------------------- vnet4 bridge front619 virtio 52:54:00:9f:9f:e5 vnet5 bridge back276 virtio 52:54:00:b1:27:16 * uuidgen (pas une commande virsh) : génère des uuid