tech:todo-kvm
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| tech:todo-kvm [2025/05/24 12:24] – Jean-Baptiste | tech:todo-kvm [2026/06/07 19:12] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | < | ||
| + | {{tag> | ||
| + | |||
| + | # KVM LibVirt | ||
| + | |||
| + | Voir : | ||
| + | * [[Notes LibVirt]] | ||
| + | * https:// | ||
| + | |||
| + | |||
| + | Votre CPU gère t-il **VT** ou **AMD-V** ? | ||
| + | |||
| + | ~~~bash | ||
| + | egrep --color ' | ||
| + | ~~~ | ||
| + | |||
| + | Ou | ||
| + | ~~~bash | ||
| + | apt-get install cpu-checker | ||
| + | kvm-ok | ||
| + | ~~~ | ||
| + | |||
| + | [Nested KVM](https:// | ||
| + | ~~~bash | ||
| + | cat / | ||
| + | cat / | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | Parfois il faut activer l' | ||
| + | |||
| + | |||
| + | ~~~ | ||
| + | # virt-host-validate | ||
| + | ... | ||
| + | LXC: Checking if device / | ||
| + | |||
| + | echo fuse >> / | ||
| + | modprobe fuse | ||
| + | ~~~ | ||
| + | |||
| + | Sous RedHat désactiver le NetworkManager | ||
| + | ~~~bash | ||
| + | systemctl stop NetworkManager | ||
| + | systemctl disable NetworkManager | ||
| + | ~~~ | ||
| + | |||
| + | et ajouter la ligne suivante dans / | ||
| + | |||
| + | `/ | ||
| + | ~~~ini | ||
| + | NM_CONTROLLED=no | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ## Install | ||
| + | |||
| + | ~~~bash | ||
| + | apt-get install --no-install-recommends qemu-kvm libvirt-clients libvirt-daemon-system | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | adduser jean libvirt | ||
| + | #adduser jean kvm | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | `~/ | ||
| + | ~~~bash | ||
| + | alias virsh=" | ||
| + | ~~~ | ||
| + | |||
| + | ou | ||
| + | |||
| + | `~/.bashrc` | ||
| + | ~~~bash | ||
| + | export LIBVIRT_DEFAULT_URI=" | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | virsh net-autostart default | ||
| + | virsh net-start default | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | `/ | ||
| + | ~~~ini | ||
| + | # | ||
| + | ON_BOOT=start | ||
| + | |||
| + | # | ||
| + | START_DELAY=30 | ||
| + | |||
| + | # | ||
| + | PARALLEL_SHUTDOWN=1 | ||
| + | |||
| + | # | ||
| + | SHUTDOWN_TIMEOUT=180 | ||
| + | ~~~ | ||
| + | |||
| + | Pour virt-sysprep (après clonage de VM) | ||
| + | ~~~bash | ||
| + | apt-get install libguestfs-tools | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ### UEFI | ||
| + | |||
| + | ~~~bash | ||
| + | apt-get install ovmf | ||
| + | ~~~ | ||
| + | |||
| + | ## Virt-install | ||
| + | |||
| + | Exemple : | ||
| + | * https:// | ||
| + | * http:// | ||
| + | |||
| + | ~~~bash | ||
| + | virt-install \ | ||
| + | --name vm1 \ | ||
| + | --ram 512 \ | ||
| + | --location=http:// | ||
| + | --initrd-inject=/ | ||
| + | --extra-args=" | ||
| + | --vcpu=1 \ | ||
| + | --vnc \ | ||
| + | --vnclisten=0.0.0.0 \ | ||
| + | --os-type=linux \ | ||
| + | --os-variant=debianwheezy \ | ||
| + | -w bridge=virbr0 \ | ||
| + | -w bridge=br1 \ | ||
| + | -w network=default \ | ||
| + | --console pty, | ||
| + | --disk format=qcow2, | ||
| + | ~~~ | ||
| + | |||
| + | ~~~ | ||
| + | #--connect qemu:/// | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | # | ||
| + | ~~~ | ||
| + | |||
| + | `--extra-args` ne marche que si `--location` est défini. | ||
| + | |||
| + | |||
| + | ## Réseaux | ||
| + | |||
| + | KVM Réseaux Bridge TUN | ||
| + | |||
| + | http:// | ||
| + | |||
| + | ## PCI Passthrough - IOMMU | ||
| + | |||
| + | Voir : | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | BIOS/UEFI | ||
| + | |||
| + | Première étape, faire un tour dans le BIOS/UEFI pour activer les choses suivantes : | ||
| + | |||
| + | VT-D (cas d’un CPU intel) | ||
| + | AMD-Vi (cas d’un CPU AMD) | ||
| + | |||
| + | Pour vérifier : | ||
| + | |||
| + | ~~~ | ||
| + | # dmesg | grep -e " | ||
| + | [ 1.693161] DMAR: Intel(R) Virtualization Technology for Directed I/O | ||
| + | ~~~ | ||
| + | |||
| + | Pour du AMD : | ||
| + | ~~~bash | ||
| + | dmesg | grep AMD-Vi | ||
| + | ~~~ | ||
| + | |||
| + | Dans le BIOS activer " | ||
| + | |||
| + | |||
| + | ~~~ | ||
| + | # ls / | ||
| + | / | ||
| + | devices | ||
| + | |||
| + | / | ||
| + | devices | ||
| + | |||
| + | / | ||
| + | devices | ||
| + | |||
| + | / | ||
| + | devices | ||
| + | |||
| + | / | ||
| + | devices | ||
| + | ~~~ | ||
| + | |||
| + | `/ | ||
| + | ~~~ | ||
| + | blacklist nouveau | ||
| + | options nouveau modeset=0 | ||
| + | ~~~ | ||
| + | |||
| + | `/ | ||
| + | ~~~bash | ||
| + | # | ||
| + | # | ||
| + | |||
| + | # | ||
| + | GRUB_CMDLINE_LINUX=" | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | update-grub | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | echo " | ||
| + | reboot | ||
| + | dmesg | grep ' | ||
| + | ~~~ | ||
| + | |||
| + | Pour nvidia | ||
| + | ~~~bash | ||
| + | echo " | ||
| + | ~~~ | ||
| + | |||
| + | ~~~ | ||
| + | # lspci -nn | grep -i nvidia | ||
| + | 3b:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104GL [Quadro P5000] [10de:1bb0] (rev a1) | ||
| + | 3b:00.1 Audio device [0403]: NVIDIA Corporation GP104 High Definition Audio Controller [10de:10f0] (rev a1) | ||
| + | af:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104GL [Quadro P5000] [10de:1bb0] (rev a1) | ||
| + | af:00.1 Audio device [0403]: NVIDIA Corporation GP104 High Definition Audio Controller [10de:10f0] (rev a1) | ||
| + | ~~~ | ||
| + | |||
| + | `/ | ||
| + | ~~~baSh | ||
| + | #options vfio-pci ids=10de: | ||
| + | options vfio-pci ids=10de: | ||
| + | options vfio-pci disable_vga=1 | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | echo ' | ||
| + | update-initramfs -u | ||
| + | ~~~ | ||
| + | |||
| + | ~~~ | ||
| + | # dmesg | grep " | ||
| + | [ 1.705358] DMAR: Intel(R) Virtualization Technology for Directed I/O | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | #!/bin/bash | ||
| + | shopt -s nullglob | ||
| + | for g in / | ||
| + | echo "IOMMU Group ${g## | ||
| + | for d in $g/ | ||
| + | echo -e " | ||
| + | done; | ||
| + | done; | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | ~~~bash | ||
| + | dmesg | grep -i vfio | ||
| + | ~~~ | ||
| + | |||
| + | ~~~ | ||
| + | # lspci -nnk | grep -i -A 2 nvidia | ||
| + | 3b:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104GL [Quadro P5000] [10de:1bb0] (rev a1) | ||
| + | Subsystem: Dell GP104GL [Quadro P5000] [1028:11b2] | ||
| + | Kernel driver in use: vfio-pci | ||
| + | -- | ||
| + | 3b:00.1 Audio device [0403]: NVIDIA Corporation GP104 High Definition Audio Controller [10de:10f0] (rev a1) | ||
| + | Subsystem: Dell GP104 High Definition Audio Controller [1028:11b2] | ||
| + | Kernel driver in use: snd_hda_intel | ||
| + | -- | ||
| + | af:00.0 VGA compatible controller [0300]: NVIDIA Corporation GP104GL [Quadro P5000] [10de:1bb0] (rev a1) | ||
| + | Subsystem: Dell GP104GL [Quadro P5000] [1028:11b2] | ||
| + | Kernel driver in use: vfio-pci | ||
| + | -- | ||
| + | af:00.1 Audio device [0403]: NVIDIA Corporation GP104 High Definition Audio Controller [10de:10f0] (rev a1) | ||
| + | Subsystem: Dell GP104 High Definition Audio Controller [1028:11b2] | ||
| + | Kernel driver in use: snd_hda_intel | ||
| + | ~~~ | ||
| + | |||
| + | ~~~ | ||
| + | # echo " | ||
| + | 0000: | ||
| + | # echo " | ||
| + | 0000: | ||
| + | tee: / | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | cd / | ||
| + | echo 1 > rom | ||
| + | cat rom > / | ||
| + | echo 0 > rom | ||
| + | ~~~ | ||
| + | |||
| + | `/ | ||
| + | ~~~xml | ||
| + | < | ||
| + | < | ||
| + | <address domain=' | ||
| + | </ | ||
| + | <rom bar=' | ||
| + | <address type=' | ||
| + | </ | ||
| + | <hostdev mode=' | ||
| + | < | ||
| + | <address domain=' | ||
| + | </ | ||
| + | <rom bar=' | ||
| + | <address type=' | ||
| + | </ | ||
| + | ~~~ | ||
| + | |||
| + | |||
| + | |||
| + | ## Autres | ||
| + | |||
| + | Boot2docker | ||
| + | ~~~bash | ||
| + | qemu-system-x86_64 -m 1G -accel kvm -kernel b2c-kernel -initrd b2c-initrd.xz \ | ||
| + | -append ' | ||
| + | ~~~ | ||
| + | |||
| + | Source : https:// | ||
