{{tag>Brouillon Virt CPU Hardware}} = KVM LibVirt Voir : * [[Notes LibVirt]] * https://github.com/kholia/OSX-KVM Votre CPU gère t-il **VT** ou **AMD-V** ? egrep --color '^flags.*(vmx |svm )' /proc/cpuinfo Ou apt-get install cpu-checker kvm-ok [[https://docs.openstack.org/devstack/latest/guides/devstack-with-nested-kvm.html|Nested KVM]] ? cat /sys/module/kvm_intel/parameters/nested cat /sys/module/kvm_amd/parameters/nested Parfois il faut activer l'option dans le BIOS # virt-host-validate ... LXC: Checking if device /sys/fs/fuse/connections exists : FAIL (Load the 'fuse' module to enable /proc/ overrides) echo fuse >> /etc/modules modprobe fuse Sous RedHat désactiver le NetworkManager systemctl stop NetworkManager systemctl disable NetworkManager et ajouter la ligne suivante dans /etc/sysconfig/network-scripts/ifcfg-* ''/etc/sysconfig/network-scripts/ifcfg-*'' NM_CONTROLLED=no == Install apt-get install --no-install-recommends qemu-kvm libvirt-clients libvirt-daemon-system adduser jean libvirt #adduser jean kvm ''~/.bash_aliases'' alias virsh="virsh -c qemu:///system" ou ''~/.bashrc'' export LIBVIRT_DEFAULT_URI="qemu:///system" virsh net-autostart default virsh net-start default ''/etc/default/libvirt-guests'' #ON_BOOT=ignore ON_BOOT=start #START_DELAY=0 START_DELAY=30 #PARALLEL_SHUTDOWN=0 PARALLEL_SHUTDOWN=1 #SHUTDOWN_TIMEOUT=300 SHUTDOWN_TIMEOUT=180 Pour virt-sysprep (après clonage de VM) apt-get install libguestfs-tools === UEFI apt-get install ovmf == Virt-install Exemple : * https://raymii.org/s/articles/virt-install_introduction_and_copy_paste_distro_install_commands.html * http://serverfault.com/questions/481244/preseed-command-string-fail-with-newline-character-using-virt-install-initrd-inj virt-install \ --name vm1 \ --ram 512 \ --location=http://ftp.us.debian.org/debian/dists/stable/main/installer-amd64/ \ --initrd-inject=/tmp/preseed.cfg \ --extra-args="console=ttyS0,115200n8 serial locale=fr_FR console-setup/ask_detect=false keyboard-configuration/layoutcode=fr hostname=virtual domain=unassigned-domain interface=auto" \ --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,target_type=serial \ --disk format=qcow2,size=8,bus=virtio,path=/var/lib/libvirt/images/vm1.qcow2 #--connect qemu:///system #--location=http://archive.ubuntu.com/ubuntu/dists/precise/main/installer-amd64/ \ #--noautoconsole \ #--autostart \ #--cdrom=/var/lib/libvirt/images/test.iso \ ''--extra-args'' ne marche que si ''--location'' est défini. == Réseaux KVM Réseaux Bridge TUN http://doc.fedora-fr.org/wiki/Discussion:Virtualisation_:_KVM,_Qemu,_libvirt_en_images == PCI Passthrough - IOMMU Voir : * https://blog.zerosector.io/2018/07/28/kvm-qemu-windows-10-gpu-passthrough/ * https://www.deltasight.fr/pci-passthrough-nvidia-gtx-1050-kvm/ * https://jugulaire.github.io/GPU-passthrough-KVM-QEMU/ * https://www.debian-fr.org/t/kvm-et-passthrough-afin-de-se-passer-du-dual-boot/60794/5 * https://pve.proxmox.com/wiki/Pci_passthrough * https://davidwin93.github.io/vfio_guide/ * https://developers.redhat.com/articles/2024/04/05/enable-gpu-acceleration-kernel-module-management-operator 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 "Directed I/O" [ 1.693161] DMAR: Intel(R) Virtualization Technology for Directed I/O Pour du AMD : dmesg | grep AMD-Vi Dans le BIOS activer "SR-IOV" ? # ls /sys/class/iommu/*/ /sys/class/iommu/dmar2/: devices intel-iommu power subsystem uevent /sys/class/iommu/dmar4/: devices intel-iommu power subsystem uevent /sys/class/iommu/dmar5/: devices intel-iommu power subsystem uevent /sys/class/iommu/dmar6/: devices intel-iommu power subsystem uevent /sys/class/iommu/dmar7/: devices intel-iommu power subsystem uevent ''/etc/modprobe.d/blacklist-nouveau.conf'' blacklist nouveau options nouveau modeset=0 ''/etc/default/grub'' #GRUB_CMDLINE_LINUX_DEFAULT="modprobe.blacklist=nouveau modprobe.blacklist=nvidiafb" #GRUB_CMDLINE_LINUX="intel_iommu=on iommu=pt rd.driver.pre=vfio-pci video=efifb:off vfio_iommu_type1.allow_unsafe_interrupts=1" #GRUB_CMDLINE_LINUX="kvm_iommu=on iommu=pt" GRUB_CMDLINE_LINUX="intel_iommu=on iommu=pt pci-stub.ids=10de:1b81,10de:10f1 video=efifb:off" update-grub echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf reboot dmesg | grep 'remapping' Pour nvidia echo "options kvm ignore_msrs=1 report_ignored_msrs=0" > /etc/modprobe.d/kvm.conf # 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) ''/etc/modprobe.d/vfio.conf'' #options vfio-pci ids=10de:1bb0,10de:10f0 options vfio-pci ids=10de:1bb0 options vfio-pci disable_vga=1 echo 'vfio-pci' > /etc/modules-load.d/vfio-pci.conf update-initramfs -u # dmesg |grep "Directed I/O" [ 1.705358] DMAR: Intel(R) Virtualization Technology for Directed I/O #!/bin/bash shopt -s nullglob for g in /sys/kernel/iommu_groups/*; do echo "IOMMU Group ${g##*/}:" for d in $g/devices/*; do echo -e "\t$(lspci -nns ${d##*/})" done; done; 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:3b:00.0" | tee /sys/bus/pci/drivers/vfio-pci/unbind 0000:3b:00.0 # echo "0000:3b:00.0" | tee /sys/bus/pci/drivers/vfio-pci/unbind 0000:3b:00.0 tee: /sys/bus/pci/drivers/vfio-pci/unbind: No such device cd /sys/bus/pci/devices/0000\:3b\:00.0 echo 1 > rom cat rom > /tmp/gpu.rom echo 0 > rom ''/etc/libvirt/qemu/vm1.xml''