{"id":1038,"date":"2024-09-18T13:20:09","date_gmt":"2024-09-18T16:20:09","guid":{"rendered":"https:\/\/www.marianoacciardi.com.ar\/?page_id=1038"},"modified":"2024-09-18T13:20:10","modified_gmt":"2024-09-18T16:20:10","slug":"como-migrar-de-virtualbox-a-qemu-kvm","status":"publish","type":"page","link":"https:\/\/www.marianoacciardi.com.ar\/?page_id=1038","title":{"rendered":"Como migrar de VirtualBox a Qemu\/kvm"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Performance utilizando kvm:<\/h2>\n\n\n\n<p>El uso de los recursos intermedios entre la m\u00e1quina virtual y el hardware queda reducido a su m\u00ednima expresi\u00f3n al usar qemu en lugar de VirtualBox, debido a que qemu est\u00e1 dise\u00f1ado para utilizar los m\u00f3dulos de kernel de kvm de manera directa. Es muy notable la mejora de performance. Incluso se pueden configurar pass-through de aceleradores de Video si contamos con una placa gr\u00e1fica potente. (Esto est\u00e1 fuera del alcance de este instructivo<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Arquitectura de la soluci\u00f3n qemu\/kvm\/virt-manager<\/strong><\/h2>\n\n\n\n<p>Quemu puede utilizarse sin un manejador gr\u00e1fico, lanzando la m\u00e1quina virtual desde una consola sin necesidad de ninguna otra cosa. Sin embargo es preciso acordarse una gran cantidad de par\u00e1metros. Para facilitar el uso existe la aplicaci\u00f3n gr\u00e1fica \u00abGestor de m\u00e1quinas virtuales\u00bb que nos facilita todo esto (virt-manager)<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img decoding=\"async\" src=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen.png\" alt=\"\" class=\"wp-image-1041\" width=\"95\" height=\"271\" srcset=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen.png 234w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-105x300.png 105w\" sizes=\"(max-width: 95px) 100vw, 95px\" \/><figcaption class=\"wp-element-caption\"><strong>Diagrama simplificado<\/strong><\/figcaption><\/figure><\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>Instalaci\u00f3n en debian<\/strong><\/h2>\n\n\n\n<p>Para instalar en debian es muy sencillo, ya que forma parte de los paquetes nativos: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>:~$ sudo apt update &amp;&amp; sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager\n<\/code><\/pre>\n\n\n\n<p>Con esto ya tenemos instalado todo lo necesario para virtualizar con qemu\/kvm<strong> <\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Configuraci\u00f3n de un bridge con nuestra placa de red (wifi o ethernet) <\/strong><\/h2>\n\n\n\n<p>Qemu corre en entorno de usuario, con lo cual desde el \u00abGestor de m\u00e1quinas virtuales\u00bb (virt-manager) no va a ser posible crear un bridge directamente. Para ello, si estamos utilizando Network-Manager, el gest\u00f3r de red por defecto de debian, podremos utilizar la herramienta nmcli para crear un bridge asociado a la interfase de red que nos da conectividad. Este bridge luego podr\u00e1 ser utilizado por la m\u00e1quina virtual. <\/p>\n\n\n\n<p>Un \u00abbridge\u00bb creado de esta manera funciona como si se tratase de un bridge de hardware, que distribuye tr\u00e1fico entre varias interfaces de red, sin embargo aqu\u00ed ser\u00e1 un bridge de software, completamente gestionado por el kernel. Un bridge es b\u00e1sicamente como un switch, y en general se utiliza para traficar entre redes heterog\u00e9neas. En nuestro caso tendremos por un lado la vlan de las m\u00e1quinas virtuales, la vlan normal de nuestra m\u00e1quina para salir a internet, etc. <\/p>\n\n\n\n<p>Importante: Esto implica que a partir de la creaci\u00f3n del bridge, todo el tr\u00e1fico ser\u00e1 routeado al bridge y el bridge se ocupar\u00e1 de distribuirlo entre la placa de red y los dispositivos que utilicen el bridge.<\/p>\n\n\n\n<p>Primero buscaremos el nombre de la placa de red que usamos para navegar y su mac-address. La mac-address es la direcci\u00f3n f\u00edsica de la placa de red, que es utilizada por los switches\/bridges para direccionar el tr\u00e1fico dentro de una lan. En este caso, para asegurarnos que si tenemos alg\u00fan DHCP que asignaba determinada ip de manera fija a nuestra placa de red, clonaremos en el bridge la mac address de la placa f\u00edsica. Para ello primero averiguaremos cu\u00e1l es nuestra placa de red para crear luego el bridge<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>:~$ sudo ip addr<\/code><\/pre>\n\n\n\n<pre id=\"block-44c61946-1d3c-4363-b0bb-cd986184be0b\" class=\"wp-block-code\"><code>\n1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n    link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n    inet 127.0.0.1\/8 scope host lo\n       valid_lft forever preferred_lft forever\n    inet6 ::1\/128 scope host noprefixroute \n       valid_lft forever preferred_lft forever\n2: <strong>enp1s0<\/strong>: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000\n    link\/ether <strong>52:54:00:23:7c:84<\/strong> brd ff:ff:ff:ff:ff:ff\n    inet 10.10.100.117\/24 brd 10.10.100.255 scope global dynamic noprefixroute enp1s0\n       valid_lft 42877sec preferred_lft 42877sec\n    inet6 fd99:17f5:6dbf::49d\/128 scope global noprefixroute \n       valid_lft forever preferred_lft forever\n    inet6 fd99:17f5:6dbf:0:d3e4:3889:c542:51c8\/64 scope global temporary dynamic \n       valid_lft 604729sec preferred_lft 86236sec\n    inet6 fd99:17f5:6dbf:0:5054:ff:fe23:7c84\/64 scope global mngtmpaddr noprefixroute \n       valid_lft forever preferred_lft forever\n    inet6 fe80::5054:ff:fe23:7c84\/64 scope link noprefixroute \n       valid_lft forever preferred_lft forever\n<\/code><\/pre>\n\n\n\n<p>Ac\u00e1 podemos observar que el nombre del dispositivo f\u00edsico es \u00ab<strong>enp1s0<\/strong>\u00bb y la mac address \u00ab<strong>52:54:00:23:7c:84<\/strong>\u00ab. De esta manera utilizaremos estos datos para crear el bridge:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>:~$ sudo nmcli connection add type bridge con-name br0 ifname br0\n:~$ sudo nmcli connection add type bridge-slave ifname enp1s0 master br0\n:~$ sudo nmcli connection modify br0 802-3-ethernet.cloned-mac-address 52:54:00:23:7c:84\n:~$ sudo nmcli connection up br0\n<\/code><\/pre>\n\n\n\n<p>Con estos simples pasos ya tendremos el bridge creado, en el network manager tendremos que elegirlo como conexi\u00f3n predeterminada.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-1.png\" alt=\"\" class=\"wp-image-1045\" width=\"419\" height=\"536\" srcset=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-1.png 419w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-1-235x300.png 235w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-1-117x150.png 117w\" sizes=\"(max-width: 419px) 100vw, 419px\" \/><\/figure><\/div>\n\n\n<p>Como se ve, una vez que hemos seleccionado desde el control de Network Manager el bridge la ip ha sido reasignada al bridge, quedando la interface f\u00edsica como esclava del bridge: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>:~$ sudo ip addr\n<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n    link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n    inet 127.0.0.1\/8 scope host lo\n       valid_lft forever preferred_lft forever\n    inet6 ::1\/128 scope host noprefixroute \n       valid_lft forever preferred_lft forever\n2: enp1s0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000\n    link\/ether 52:54:00:23:7c:84 brd ff:ff:ff:ff:ff:ff\n3:<strong> br0: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc noqueue state UP group default qlen 1000\n    link\/ether 52:54:00:23:7c:84 brd ff:ff:ff:ff:ff:ff\n    inet 10.10.100.117\/24 brd 10.10.100.255 scope global dynamic noprefixroute br0<\/strong>\n       valid_lft 43133sec preferred_lft 43133sec\n    inet6 fd99:17f5:6dbf::cdc\/128 scope global noprefixroute \n       valid_lft forever preferred_lft forever\n    inet6 fd99:17f5:6dbf:0:5e84:6be6:914e:51d0\/64 scope global noprefixroute \n       valid_lft forever preferred_lft forever\n    inet6 fe80::630e:8141:1532:5a18\/64 scope link noprefixroute \n       valid_lft forever preferred_lft forever\n<\/code><\/pre>\n\n\n\n<p>Si vemos la tabla de ruteo: <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>~$:sudo ip route<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>default via 10.10.100.10 dev br0 proto dhcp src 10.10.100.117 metric 425 \n10.10.100.0\/24 dev br0 proto kernel scope link src 10.10.100.117 metric 425 \n<\/code><\/pre>\n\n\n\n<p>Con esto ya estamos listos para migrar nuestras m\u00e1quinas virtuales y poder utilizar un bridge, lo que nos permitir\u00e1 no solo salir desde la m\u00e1quina virtual a internet, sino tambi\u00e9n acceder desde nuestro equipo host a la m\u00e1quina virtual por ip. La m\u00e1quina virtual recibir\u00e1 una ip de la red LAN a la que estamos conectados. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Migraci\u00f3n de discos de VirtualBox a qemu\/kvm<\/h2>\n\n\n\n<p>Para migrar los discos tendremos que buscar la carpeta de nuestra m\u00e1quina virtual de Virtualbox. Normalmente se encuentran en directorios dentro de un directorio en nuestro home: ~\/VirtualBox VMs\/<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>:~ $ cd ~\/VirtualBox VMs\/MiMaquinavirtual\n:~ $ ls -lthr<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>-rw------- 1 mariano mariano 7,5K ago 27 07:26 MiMaquinavirtual.vbox-prev\n-rw------- 1 mariano mariano 4,7G ago 27 07:26 MiMaquinavirtual.vdi\n-rw------- 1 mariano mariano  18M ago 27 07:26 MiMaquinavirtual_1.vdi\n-rw------- 1 mariano mariano 6,5K ago 27 07:26 MiMaquinavirtual.vbox\n<\/code><\/pre>\n\n\n\n<p>Este es el contenido t\u00ed?ico de una m\u00e1quina virtual a la que le hemos creado 2 discos. En este comando vamos a convertir los discos de formato vdi (VirtualBox) al tipo qcow2 que es el estandar de qemu. Crearemos una carpeta distinta para nuestras m\u00e1quinas qemu por una cuesti\u00f3n de orden (No es mandatorio) <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>:~$ mkdir -p ~\/mismaquinasqemu\/NuevaMaquina<\/code><\/pre>\n\n\n\n<p>Y ahora convertiremos los discos coloc\u00e1ndolos en la carpeta correspondiente (qemu-img convert -f vdi -O qcow2 &lt;discovirtualbox.vdi&gt;  &lt;discoqemu.qcow2&gt;)<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>:~$ for f in *.vdi; do qemu-img convert -f vdi -O qcow2 ${f} ~\/mismaquinasqemu\/NuevaMaquina\/${f%.vdi}.qcow2; done<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Creaci\u00f3n importaci\u00f3n de la m\u00e1quina virtual con \u00abGestor de m\u00e1quinas virtuales\u00bb<\/h2>\n\n\n\n<p>Ahora vamos a abrir el gestor de m\u00e1quinas virtuales (virt-manager) instalado previamente. Presionamos el \u00edcono \u00abCrear nueva m\u00e1quina virtual\u00bb y nos levanta este asistente: <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img decoding=\"async\" width=\"635\" height=\"552\" src=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-2.png\" alt=\"\" class=\"wp-image-1053\" srcset=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-2.png 635w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-2-300x261.png 300w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-2-150x130.png 150w\" sizes=\"(max-width: 635px) 100vw, 635px\" \/><\/figure><\/div>\n\n\n<p>Seleccionamos \u00abImportar imagen de disco existente\u00bb y damos Forward. Las siguientes pantallas nos llevaran a buscar los discos virtuales que reci\u00e9n transformamos en el disco local.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"755\" height=\"561\" src=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-3.png\" alt=\"\" class=\"wp-image-1054\" srcset=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-3.png 755w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-3-300x223.png 300w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-3-150x111.png 150w\" sizes=\"(max-width: 755px) 100vw, 755px\" \/><\/figure><\/div>\n\n\n<p>Presionamos \u00abExplorar\u00bb y luego \u00abExplorar localmente\u00bb<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"755\" height=\"561\" src=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-4.png\" alt=\"\" class=\"wp-image-1055\" srcset=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-4.png 755w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-4-300x223.png 300w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-4-150x111.png 150w\" sizes=\"(max-width: 755px) 100vw, 755px\" \/><\/figure><\/div>\n\n\n<p>Y luego buscamos el disco principal de la maquina y seleccionamos el sistema operativo. Esta selecci\u00f3n del sistema operativo va a definir los mejores par\u00e1metros de qemu para el OS seleccionado. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"755\" height=\"561\" src=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-5.png\" alt=\"\" class=\"wp-image-1056\" srcset=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-5.png 755w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-5-300x223.png 300w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-5-150x111.png 150w\" sizes=\"(max-width: 755px) 100vw, 755px\" \/><\/figure><\/div>\n\n\n<p>Definimos la cantidad de memoria y cpu que les vamos a dar y luego Forward<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"550\" src=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-7.png\" alt=\"\" class=\"wp-image-1058\" srcset=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-7.png 624w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-7-300x264.png 300w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-7-150x132.png 150w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/figure><\/div>\n\n\n<p>En la siguiente pantalla vamos a darle un nombre a nuestra m\u00e1quina, si tenemos que agregar otros discos que ten\u00eda configurada la m\u00e1quina virtual en VIrtualBox vamos  a seleccionar \u00abPersonalizar configuraci\u00f3n antes deinstalar\u00bb para poder agregarlos. Asimismo vamos a seleccionar la red, en donde por defecto nos traer\u00e1 el bridge que acabamos de generar m\u00e1s arriba. <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"624\" height=\"550\" src=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-8.png\" alt=\"\" class=\"wp-image-1059\" srcset=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-8.png 624w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-8-300x264.png 300w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-8-150x132.png 150w\" sizes=\"(max-width: 624px) 100vw, 624px\" \/><\/figure><\/div>\n\n\n<p>Al dar \u00abFinalizar\u00bb entraremos en el detalle de la m\u00e1quina virtual en donde presionaremos \u00abA\u00f1adir hardware\u00bb para agregar todos los discos que ten\u00eda la m\u00e1quina original<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"846\" src=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-10-1024x846.png\" alt=\"\" class=\"wp-image-1061\" srcset=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-10-1024x846.png 1024w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-10-300x248.png 300w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-10-768x635.png 768w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-10-150x124.png 150w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-10.png 1026w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n<p>En A\u00f1adir Hardware aparece seleccionada la primera opci\u00f3n \u00abAlmacenamiento\u00bb en donde seleccionamos \u00abSeleccionar o crear almacenaje personalizado\u00bb para buscar los otros discos<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"874\" height=\"654\" src=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-11.png\" alt=\"\" class=\"wp-image-1063\" srcset=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-11.png 874w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-11-300x224.png 300w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-11-768x575.png 768w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-11-150x112.png 150w\" sizes=\"(max-width: 874px) 100vw, 874px\" \/><\/figure><\/div>\n\n\n<p>Luego de agregar todos los discos necesarios, presionamos el bot\u00f3n de arriba a la izquierda \u00abIniciar la Instalaci\u00f3n\u00bb<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1019\" height=\"853\" src=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-12.png\" alt=\"\" class=\"wp-image-1064\" srcset=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-12.png 1019w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-12-300x251.png 300w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-12-768x643.png 768w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-12-150x126.png 150w\" sizes=\"(max-width: 1019px) 100vw, 1019px\" \/><\/figure><\/div>\n\n\n<p>y listo. Ya tenemos nuestra m\u00e1quina virtual creada y booteando: <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"850\" src=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-13-1024x850.png\" alt=\"\" class=\"wp-image-1065\" srcset=\"https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-13-1024x850.png 1024w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-13-300x249.png 300w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-13-768x637.png 768w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-13-150x124.png 150w, https:\/\/www.marianoacciardi.com.ar\/wp-content\/uploads\/2024\/09\/imagen-13.png 1027w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>","protected":false},"excerpt":{"rendered":"<p>Performance utilizando kvm: El uso de los recursos intermedios entre la m\u00e1quina virtual y el hardware queda reducido a su m\u00ednima expresi\u00f3n al usar qemu en lugar de VirtualBox, debido a que qemu est\u00e1 dise\u00f1ado para utilizar los m\u00f3dulos de kernel de kvm de manera directa. Es muy notable la\u2026<\/p>\n<p> <a class=\"continue-reading-link\" href=\"https:\/\/www.marianoacciardi.com.ar\/?page_id=1038\"><span>Continue reading<\/span><i class=\"crycon-right-dir\"><\/i><\/a> <\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_eb_attr":"","footnotes":""},"class_list":["post-1038","page","type-page","status-publish","hentry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.marianoacciardi.com.ar\/index.php?rest_route=\/wp\/v2\/pages\/1038","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.marianoacciardi.com.ar\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.marianoacciardi.com.ar\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.marianoacciardi.com.ar\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.marianoacciardi.com.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1038"}],"version-history":[{"count":0,"href":"https:\/\/www.marianoacciardi.com.ar\/index.php?rest_route=\/wp\/v2\/pages\/1038\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.marianoacciardi.com.ar\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}