[BSD] invité OpenBSD 5.4 sur un hôte KVM

Création du volume logique :

# lvcreate -n musclor -L50G virtvol 
Logical volume "musclor" created 

Téléchargement de l’ISO :

# cd /isos/
# wget http://mirrors.ircam.fr/pub/OpenBSD/5.4/amd64/install54.iso

Installation avec virt-install :

#  virt-install --name=musclor --ram=4096 --vcpus=2 --disk path=/dev/virtvol/musclor,bus=virtio --vnc --cdrom=/isos/install54.iso --os-type=unix --os-variant=openbsd4 --network=bridge:br0,model=virtio --hvm --keymap=fr

Attention : pour bénéficier de virtio, il est indispensable de l’indiquer explicitement!

Pour connaître la liste des os-variant :

virt-install --os-variant list 

Affichage du noyau :

# uname -a 
OpenBSD musclor 5.4 GENERIC#37 amd64 

Ce con, pourquoi ne m’a t’il pas chargé le noyau MP ? (en même temps j’avais dû cocher moi-même « BSD.MP » à l’installation alors qu’il aurait dû savoir de lui même qu’il y avait plus d’un processeur vus les paramètre du virt-install)..

On le fait charger le noyau MP :

# cd /
# cp /bsd /bsd.sp
# cp bsd.mp /bsd
# sync
# reboot

Après reboot, c’est mieux :

# uname -a                                                                                                           
OpenBSD musclor 5.4 GENERIC.MP#41 amd64 

Voici les information issues de « dmesg » :

# dmesg | grep cpu 
acpicpu0 at acpi0
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: QEMU Virtual CPU version 1.1.2, 2400.39 MHz
cpu0: FPU,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SSE3,CX16,POPCNT,NXE,LONG,LAHF
cpu0: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 16-way L2 cache
cpu0: ITLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped
cpu0: DTLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped
cpu0: smt 0, core 0, package 0
cpu0: apic clock running at 1000MHz
cpu at mainbus0: not configured
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: QEMU Virtual CPU version 1.1.2, 2400.36 MHz
cpu0: FPU,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SSE3,CX16,POPCNT,NXE,LONG,LAHF
cpu0: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 16-way L2 cache
cpu0: ITLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped
cpu0: DTLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped
cpu0: smt 0, core 0, package 0
cpu0: apic clock running at 1000MHz
cpu1 at mainbus0: apid 1 (application processor)
cpu1: QEMU Virtual CPU version 1.1.2, 2400.14 MHz
cpu1: FPU,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CFLUSH,MMX,FXSR,SSE,SSE2,SSE3,CX16,POPCNT,NXE,LONG,LAHF
cpu1: 64KB 64b/line 2-way I-cache, 64KB 64b/line 2-way D-cache, 512KB 64b/line 16-way L2 cache
cpu1: ITLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped
cpu1: DTLB 255 4KB entries direct-mapped, 255 4MB entries direct-mapped
cpu1: smt 0, core 0, package 1

[BSD] KVM, virtio et FreeBSD 9.1

Sur une installation de FreeBSD 9.1 (plutôt lente!) sur une VM KVM… voici comment utiliser virtio :

# pkg_add http://people.freebsd.org/~kuriyama/virtio/9.1/virtio-kmod-9.1-0.250249.tbz
Fetching http://people.freebsd.org/~kuriyama/virtio/9.1/virtio-kmod-9.1-0.250249.tbz... Done.

vérifier les mises à jour : http://people.freebsd.org/~kuriyama/virtio/9.1/

A l’issue de l’installation, les indications sont clairement affichés.. à savoir (en français) :

création du fichier /boot/loader.conf avec dedans :

virtio_load="YES"
virtio_pci_load="YES"
virtio_blk_load="YES"
if_vtnet_load="YES"
virtio_balloon_load="YES"

modification de /etc/fstab /etc/rc.conf :

# sed -i.bak -Ee 's|/dev/ada?|/dev/vtbd|' /etc/fstab
# echo 'ifconfig_vtnet0_name="re0"' >> /etc/rc.conf

On stoppe la FreeBSD

# halt -p

… et voici les changements à faire dans le fichier xml de la vm (virsh edit ma_vm) :

-      <target dev='hda' bus='ide'/>
-      <address type='drive' controller='0' bus='0' unit='0'/>
+      <target dev='vda' bus='virtio'/>
+      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
...
-      <model type='e1000'/>
+      <model type='virtio'/>

puis sur l’hôte :

# virsh start ma_vm