Bhyve («hipervisor BSD») es un hipervisor regalado y de código amplio para FreeBSD. Podemos usar Bhyve para ejecutar Linux, Windows y el sistema activo invitado * BSD como una máquina potencial. Veamos cómo instalar Linux VM usando Bhyve en el sistema activo host FreeBSD unido con ZFS y redes en puente.
Tabla de Contenidos
Cómo instalar Linux VM en FreeBSD usando bhyve
Nuestra configuración de muestra es la sucesivo:
El nombre de nuestra interfaz de red es em0 con IP estática. Crearemos un puente de red llamado em0bridge, que actuará como enlace dialéctico entre dos o más redes que utilizan el mismo formato de trama. Crearemos una nueva interfaz de toque para cada VM y la adjuntaremos a nuestra VM. A continuación, esa interfaz de tap se agregará a em0bridge. Crear una máquina potencial en bhyve es configurar el sistema host FreeBSD implica varios pasos. Baste de teoría. Ensuciemos nuestras manos con órdenes reales.
Paso 1: haz que el dispositivo de toque ARRIBA de forma predeterminada
Anualidad la sucesivo entrada al /etc/sysctl.conf:echo "net.link.tap.up_on_open=1" >> /etc/sysctl.conf
sysctl net.link.tap.up_on_open=1
Cuando net.link.tap.up_on_open es 1 / valía dispar de cero, el dispositivo de túnel se marcará como «hacia lo alto» cuando se refugio el dispositivo de control.
Paso 2: carga del kernel de vmm FreeBSD bhyve potencial machine maestro
Utilice el comando kldload para cargar el módulo del kernel de FreeBSD en tiempo de ejecución, ejecute:kldload vmm
kldload nmdm
Asegúrese de que cargamos el regulador como un módulo en el momento del puesta en marcha:
echo 'vmm_load="YES"' >> /boot/loader.conf echo 'nmdm_load="YES"' >> /boot/loader.conf echo 'if_tap_load="YES"' >> /boot/loader.conf echo 'if_bridge_load="YES"' >> /boot/loader.conf
Paso 3: creación de un puente y un dispositivo de derivación
Cree un nuevo puente, ejecute:ifconfig bridge create
Agregue la interfaz denominada em0 como miembro del puente. La interfaz se pone en modo promiscuo para que pueda percibir todos los paquetes enviados en la red:ifconfig bridge0 addm em0
Establezca el nombre de la interfaz en em0bridge para allanar la identificación:ifconfig bridge0 name em0bridge
ifconfig em0bridge up
Finalmente, cree una nueva interfaz de tap convocatoria tap0 y agréguela al em0bridge:ifconfig tap0 create
ifconfig em0bridge addm tap0
Asegúrese de configurar y activar los dispositivos de red para que se inicien automáticamente en el archivo /etc/rc.conf:
# byhve and jail settings bridges cloned_interfaces="bridge0 tap0" ifconfig_bridge0_name="em0bridge" ifconfig_em0bridge="addm em0 addm tap0 up"
Paso 4: creación de volúmenes ZFS para Linux bhyve guest / VM
ZFS nos brinda un rendimiento significativo sobre la imagen de disco. Podemos realizar fácilmente otras operaciones, como clonación y copias de seguridad. Por lo tanto, voy a crear un bulto de 20 GB de la sucesivo guisa:zfs create -V20G -o volmode=dev zroot/debianvm
Paso 5: descarga de la imagen iso del instalador de Debian Linux
Utilice el comando wget para descargar la imagen. Alternativamente, asimismo podemos usar curl para descargar la imagen:cd /tmp/
wget https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-10.7.0-amd64-netinst.iso
Paso 6: instale el soporte de Grub para bhyve en FreeBSD
GNU / GRUB es un cargador de puesta en marcha de puesta en marcha múltiple y se recomienda para invitados de Linux. El sucesivo paquete nos permite ejecutar el binario grub-bhyve. En otras palabras, nos permite provenir sistemas operativos invitados que no son de FreeBSD, como Debian o Ubuntu Linux.pkg install grub2-bhyve
Paso 7: instalación de Linux VM en FreeBSD
Ahora todo está en su empleo. Es hora de instalar la VM Debian Linux 10.x actual en FreeBSD usando el comando bhyve:bhyve -c 1 -m 1G -w -H
-s 0,hostbridge
-s 3,ahci-cd,/tmp/debian-10.7.0-amd64-netinst.iso
-s 4,virtio-blk,/dev/zvol/zroot/debianvm
-s 5,virtio-net,tap0
-s 29,fbuf,tcp=0.0.0.0:5900,w=800,h=600,wait
-s 30,xhci,tablet
-s 31,lpc -l com1,stdio
-l bootrom,/usr/tópico/share/uefi-firmware/BHYVE_UEFI.fd
debianvm
Comprender las opciones de la rasgo de comandos de bhyve:
- -C : número de cpus virtuales
- -H : sistema de archivos del host para exportar al cargador
- -l : el cargador del sistema activo a utilizar (uefi es necesario para sistemas operativos que no sean FreeBSD, como invitados de Linux / Windows)
- -metro : RAM / tamaño de memoria para VM
- -w : ignorar los MSR no implementados
- -s : Configure una ranura PCI potencial y otras funciones como disco duro, cdrom y otros dispositivos
Obtener ayuda asimismo es comprensible:man bhyve
bhyve -s help
bhyve -l help
Una nota sobre el cliente VNC:
Para lograr al instalador de Debian 10 Linux, refugio su cliente VNC y escriba server_IP: 5900. Por ejemplo:
Y Voilà, nos besalamano el instalador de Debian 10:
Ahora todo lo que tiene que hacer es seguir el instalador hasta impresionar a la pantalla de reinicio de Linux. Necesitamos hacer un ajuste manual al cargador de puesta en marcha Debian 10 VM en FreeBSD. De lo contrario, terminaremos sin provenir Debian 10 bhvye VM. No queremos eso, ¿verdad? Clickea en el Regresa yema:
Asegúrese de desplazarse alrededor de debajo y designar «Ejecutar un shell”Y haga clic en la opción“Continuar» yema:
Escriba el sucesivo comando mkdir y [nixmcd name=”cp”]:
mkdir /target/boot/efi/EFI/BOOT/
# copy file - workaround for bhyve grub package #
# Pay attention to destination file bootx64.efi #
cp /target/boot/efi/EFI/debian/grubx64.efi /target/boot/efi/EFI/BOOT/bootx64.efi
Y hemos terminado de arreglar GRUB. Escriba el comando «salir» para retornar al menú de instalación:
exit
Asegúrese de finalizar la instalación y reiniciar Debian 10 bhvye VM:
Paso 8 – Comienzo Deiban 10 Linux bhvye VM en FreeBSD
Posteriormente de instalar una máquina potencial Debian 10, reiniciamos la máquina potencial y forzamos a bhyve a salir. Por lo tanto, la instancia de la máquina potencial debe destruirse antaño de que pueda iniciarse nuevamente:bhyvectl --destroy --vm=debianvm
Finalmente, inicie la máquina potencial Debian 10 y disfrute de los frutos de nuestro trabajo:bhyve -c 2 -m 1G -w -H
-s 0,hostbridge
-s 4,virtio-blk,/dev/zvol/zroot/debianvm
-s 5,virtio-net,tap0
-s 29,fbuf,tcp=0.0.0.0:5900,w=1024,h=768,wait
-s 30,xhci,tablet
-s 31,lpc -l com1,stdio
-l bootrom,/usr/tópico/share/uefi-firmware/BHYVE_UEFI.fd
debianvm
Paso 9: inicio de la máquina potencial Bhyve Debian 10 en el puesta en marcha
Cree un script de shell simple de la sucesivo guisa:
#!/bin/sh # Name: startdebianvm # Purpose: Simple script to start my Debian 10 VM using bhyve on FreeBSD # Author: Vivek Gite {https://www.cyberciti.biz} under GPL v2.x+ ------------------------------------------------------------------------- # Lazy failsafe (not needed but I will leave them here) ifconfig tap0 create ifconfig em0bridge addm tap0 if ! kldstat | grep -w vmm.ko then kldload -v vmm fi if ! kldstat | grep -w nmdm.ko then kldload -v nmdm fi bhyve -c 1 -m 1G -w -H -s ,hostbridge -s 4,virtio-blk,/dev/zvol/zroot/debianvm -s 5,virtio-net,tap0 -s 29,fbuf,tcp=0.0.0.0:5900,w=1024,h=768 -s 30,xhci,tablet -s 31,lpc -l com1,stdio -l bootrom,/usr/tópico/share/uefi-firmware/BHYVE_UEFI.fd debianvm
Ejecútelo usando cron job. Podemos ejecutar el trabajo cron posteriormente de reiniciar el sistema:@reboot /path/to/startdebianvm
Resumiendo
Eso es todo por ahora. Espero que disfrutes este tutorial. La próxima vez hablaremos sobre la configuración de NAT del firewall, el proxy inverso y las imágenes en la estrato. Los puertos de FreeBSD asimismo tienen muchas herramientas de agencia de Bhyve. Asegúrese de consultar la página del manual y el capítulo del manual asimismo:man 8 bhyve
Un comentario