Tutoriales, noticias y soluciones informáticas

Tutorial: Virtualización de tipo 1 sencilla con Proxmox

Tal y como algunos de vosotros me habéis indicado, este blog estuvo caído durante unos días hace muy poco. Pero no fue por ninguna incidencia en mi conexión ni estoy pensando en «cerrar el chiringuito», sino que me liado la manta a la cabeza y he cambiado el alojamiento de la web.

¡¡Ajá!! Así que admites que alojar una web como esta en una mísera Raspberry pi al final era una mala idea ¿No? Si ya sabía yo que un aparato de esos no podía...
Ejemplo Proxmox

No te hagas el listillo, Usuario Anónimo. La Raspberry que hacía las veces de hosting de la web funcionaba perfectamente, pero quería aunar determinadas «cosas» que hacían por separado varios dispositivos en mi casa. Por un lado tenía una raspberry que además de generar esta página web y un par de ellas más, hacía de servidor de correo y de servidor de almacenamiento en nube con «Nextcloud». Por otro lado tenía otra raspberry que quitaba la publicidad a los dispositivos de mi vivienda con «pi-hole», además de hacer de servidor de VPN, gestionar descargas con varios programas, y un par de cosas más. También tenía un disco encima de la mesa para hacer copias de seguridad de time machine, y debía tener además el ordenador principal de mi domicilio encendido cada vez que quería ver alguna cosa en «Plex». Así que tenía un «tinglao» montado que, a pesar de funcionar a las mil maravillas, era demasiado lío de cables y de cosas encendidas.

¿Qué hice para solucionar eso? Pues lo primero fue conseguir un equipo nuevo con bajo consumo en el que pudiera poner al menos cuatro discos (dos de ellos SSD’s) y que pudiera hacer todo eso que os dije a la vez.

¿A la vez? Espera, espera... pero puede haber cosas incompatibles en toda esa lista. Con que tengas dos programas que quieran actuar de servidor queriendo usar los dos el puerto 80 ya tendrías un lío entre manos.

Efectivamente. Ese, entre otros muchos motivos es por lo que decidí mantener muy separados los diferentes servicios que he mencionado (otro, por ejemplo, es que no quería poner todo funcionando a la vez en un único sistema operativo como hace «docker«, porque quería tener la libertad de poder trastear con sistemas operativos diferentes.). La solución consistió en crear en ese equipo tres máquinas virtuales diferentes en las que cada una funciona con su sistema operativo independiente. Cada una de ellas tiene su sistema operativo y sus programas instalados y es como si las tuviera funcionando en «diferentes raspberrys», para que nos entendamos.

¿Maquinas virtuales? ¿Me estás diciendo que te montaste un "Virtual Box" y tienes tres máquinas virtuales corriendo a la vez en el equipo? Eso suena un poco a chapucilla informática.

No, no, no. Virtual Box es un gran programa y nos permite hacer verdaderas maravillas. Por ejemplo, nos permite correr un sistema operativo «invitado» dentro del sistema operativo que usemos en nuestro ordenador habitual. Sin embargo de lo que estoy hablando es de algo mucho más dedicado. Pero mira… vamos a empezar como siempre, desde el principio, que a lo mejor hay gente que no se está enterando de lo que estamos hablando.

1- Qué es «Virtualizar» un sistema operativo

Normalmente usamos en nuestro ordenador un único sistema operativo (por desgracia, lo más frecuente es que sea el que viene instalado por defecto en el ordenador). Imaginaos que queréis probar algo en vuestro equipo pero no tenéis nada claro si lo que vais a instalar va a estropear vuestro sistema o no. Lo podéis solucionar virtualizando un sistema operativo dentro de otro. Si escacharráis algo, podéis romper el sistema virtualizado, pero el principal quedará impoluto.

Usando un programa como Virtual Box (que es software gratis y libre) podemos crear una máquina virtual en nuestro equipo y dentro de ese ordenador «simulado», podremos instalar un sistema operativo completo y en él hacer todas las pruebas que queramos (los más duchos en este tema saben que la palabra «simulado» no es la más adecuada, pero dejad que la use para realizar esta explicación). Haciendo esto estaremos ejecutando dos sistemas operativos a la vez en el mismo ordenador: el sistema que ya teníamos instalado y un nuevo sistema que se verá dentro de una ventana en el sistema principal. Y además ambos sistemas no tienen por qué ser idénticos. Por ejemplo, podéis usar Windows de sistema principal y dentro de Virtual Box virtualizar una distribución de GNU-Linux sin ningún problema. Y si os sentís valientes hasta podéis instalar una máquina virtual dentro de otra máquina virtual para hacer frikadas cómo ésta.

Windows iception
Windows dentro de windows dentro de Windows. ¡Qué dolor de cabeza, por Jobs!

Éste es un ejemplo de virtualización, pero hay varias formas de virtualizar sistemas operativos. Vamos a ver cuáles son.

2- Tipos de virtualización

La virtualización de sistemas operativos se suele clasificar en dos tipos, aunque dependiendo de la fuente el segundo tipo se puede desplegar en otros dos, así que vamos a clasificarlos de la siguiente forma:

  1. Virtualización de tipo 1: En este tipo de virtualización, el monitor de la máquina virtual (también llamado hipervisor) se ejecuta directamente sobre el hardware físico. Eso quiere decir que en este esquema instalaremos un sistema operativo dedicado única y exclusivamente a ejecutar máquinas virtuales, y que este sistema operativo permite la comunicación directa entre el hardware real del ordenador y el sistema operativo virtualizado. Esto hace que sea el tipo de virtualización más veloz de los tres tipos, ya que el sistema operativo principal (el que alberga las máquinas virtuales) no se dedica a más cosas que a gestionarlas correctamente y los sistemas operativos virtualizados pueden acceder a los recursos del ordenador sin ningún impedimento. Los sistemas más famosos para estas labores son VMWare ESXi y Citrix XenServer, aunque también hay otros menos conocidos como Proxmox (que usa KVM-QEMU como hipervisor) o XCP-ng (que es un fork libre de Citrix XenServer) pisándoles los talones y ganando usuarios a pasos agigantados. El problema que podría tener un particular con este tipo de virtualización es que el ordenador no se puede usar para otra cosa más que para virtualizar.
  2. Virtualización de tipo 2: Aquí vamos a instalar el hipervisor en un sistema operativo que no está dedicado exclusivamente para estas tareas (como Windows), por lo que el sistema operativo que está en comunicación directa con el hardware es el principal que tenga instalado el equipo, no las máquinas virtuales, que no tienen comunicación directa con el hardware. Este formato se usa mucho hoy en día en programas que quieren separar sus procesos de los del resto del sistema operativo, como Java o .NET (Ojo: estos dos que pongo como ejemplo no son hipervisores de máquinas virtuales), pero la mayoría de hipervisores actuales que quieran instalarse sobre un sistema previo adoptan lo que vamos a llamar «tipo 3» (que es es una variante del tipo 2).
  3. Virtualización de tipo 3 o híbrida: Se tratan de programas que se instalan sobre un sistema operativo principal, de la misma forma que en la virtualización de tipo 2, pero que permiten la conexión directa entre el hardware y las máquinas virtuales que instalemos (algo llamado «Paravirtualización»). Aquí encontramos el software de virtualización para usuarios domésticos que más nos sonará, como Virtual Box, Parallels, VMWare Player o Microsoft Virtual PC. Este tipo de virtualización es el que más se usa a nivel doméstico para crear máquinas virtuales en nuestro propio ordenador sin tener que desinstalar nada y suele requerir algún tipo de instalación de «drivers» en las máquinas virtualizadas (como las «VMWare tools» en VMWare o las «Guest Additions» en Virtual Box).

(Nota: en la mayoría de los sitios encontraréis que los dos últimos tipos aparecen unidos en «virtualización tipo 2». Yo creo que esta clasificación de tres tipos es mucho más correcta).

Lo que queremos hacer en este tutorial es usar un ordenador para correr únicamente máquinas virtuales (no va a utilizarse para otra cosa), por lo que esto nos decanta directamente por los programas que permiten hacer virtualización de tipo 1 y en concreto vamos a usar Proxmox.

Muy bien, muy bien… pero ¿Por qué no nos enseñas a hacer todo esto en soluciones más famosas como la de VMWare o la de Citrix en lugar de usar una raruna como "Proxmox"?

Pues tengo varios motivos. En primer lugar, intento usar software libre siempre que puedo, y en las dos soluciones que citas hay grandes partes de software privativo.

Citrix Xenserver
Panel de control de Citrix XenServer

En segundo lugar la solución de Citrix para mi tiene un problema fundamental, y es que para gestionar las máquinas virtuales necesitamos instalar en algún otro equipo un programa para gestionarlas… y ese programa sólo existe para Microsoft Windows. Así que si uso ese sistema en particular no puedo gestionarlas de forma correcta desde Linux o desde Mac OS sin recurrir a ñapas o programas de terceros, lo que para mi descarta por completo el uso de Citrix.

Y en tercer lugar, evidentemente, el precio. Proxmox es gratuíto (Aunque puedes contratarles un servicio de soporte si lo ves necesario, cosa que a una empresa le podría venir muy bien). Las otras dos soluciones, si quieres optar por todas las funcionalidades son de pago y diría que prohibitivas para un uso particular. Y si alguien lo está pensando, no: no es plan tener un servidor, auque sea doméstico, corriendo software pirata. Si es grave que tu ordenador te deje tirado, imagínate que te deje tirado un servidor entero. Así que hay que mirar de resolverlo con software que tenga un coste asumible, y nada más asumible que siendo gratis.

Ya, pero ¿No será que las otras son opciones más famosas porque son mejores o más rápidas? ¿Esto realmente se lo instalarías a una empresa?

Pues no necesariamente son opciones mejores. Sí es verdad que en concreto la solución de VMWare tiene cosas que facilitan la vida respecto a Proxmox, y no hay que olvidar que existe una versión gratuíta de VMWare ESXi, pero la velocidad y sencillez de uso que me ha demostrado Proxmox me ha dejado realmente impresionado (sobre todo comparándola con la opción de Citrix, que me parece un sistema más complejo). Además, la solución de VMWare gratuíta tiene funcionalidades «capadas» y, como te he dicho antes, no es software libre. ¿Para qué vamos a usar un programa al que le faltan cosas y que no es libre cuando puedo hacer lo mismo con un programa libre y que me da todas las funcionalidades? Sobre lo que comentas de uso en empresas, a raíz de mi incursión en este sistema he podido conocer el caso de una empresa en concreto que usa Proxmox para la virtualización de sus servidores (no en un único servidor, sinó en varios) y por lo que me han dicho están muy contentos con este sistema.

En todo caso, a nivel empresarial siempre recomiendo dejar estos temas en manos de expertos que puedan resolver problemas en casos de desastre. En mi empresa, por ejemplo, tenemos contratados para la virtualización a «sistemas dixitais». Y vale… usan VMWare para virtualizar, pero como en muchas cosas, cada maestrillo tiene su librillo. A este nivel no nos importa que la virtualización se haga con el sistema X o Y, o que tenga este coste u otro cualquiera (siempre que esté en márgenes razonables), sinó que nos interesa que se haga bien y con garantías y esto es algo que han demostrado sobradamente, así que no nos metemos en el método que usen para virtualizar.

Peeero… para un particular (o pequeña empresa) la guerra es otra completamente diferente, y es aquí dónde Proxmox gana por goleada por todos los motivos que os he mencionado.

3- Hardware requerido.

En este apartado vamos a ver qué es lo que vamos a necesitar para montarnos un pequeño servidor con Proxmox.

¡Buah! Un servidor que corre a la vez varios sistemas operativos... me da que si queremos hacer esto vamos a necesitar un maquinón del copón. ¿Qué te has comprado tú para hacerlo? ¿Un Xeon? ¿Core i9? No sé que nos vas a proponer, pero me da que de 2000 euros no baja.

Estooo… pues fíjate que el «servidor» en el que he montado todo el tingado es este pequeñito.

Mi servidor
Vaya... si no me dices que eso es un servidor, habría dicho que es una caja de un ordenador clónico. Pero supongo que eso llevará dentro un hardware del copón. Y supongo que refrigeración líquida o algo así, porque eso tiene que generar calor a saco. 

Pueeees… Vayamos por partes. Sí, es una caja de un clónico. Sobre refrigeración, no tiene nada especial ni mucho menos refrigeración líquida. El procesador es un Intel Core i3 de hace unos cuantos años y tiene gráfica compartida (no dedicada). Y sí… tiene instalados cuatro discos duros, pero el resto del hardware es el de un equipo doméstico de gama baja así que como no hay componentes especialmente «calurosos» el equipo se mantiene más frío que el corazón de tu ex.

Sabes que eso es imposible. Nada puede estar más frío que el cero absoluto. Ni siquiera mi cerebro, que ahora mismo está a punto de implosionar intentando asimilar que estás corriendo a la vez tres sistemas operativos en un miserable i3 con una caja de clónico cutre. 

Es que asociamos normalmente la palabra «Servidor» a grandes ordenadores de centros de datos del copón, cuando en realidad un servidor simplemente es un ordenador cualquiera (mejor o peor, pero no deja de ser un ordenador) que le ofrece cosas a otros equipos. Como ya te dije, mi antiguo servidor era una simple Raspberry Pi, así que esto es un hardware muchos órdenes de magnitud superior.

En todo caso vamos a ver qué hardware necesitamos para poner una virtualización con Proxmox en marcha. Y recordad que voy a enfocar todo esto a nivel doméstico y para aprender a hacer este tipo de virtualización. No os olvidéis de ello, porque los requerimientos si es para un uso más profesional van a ser diferentes.

  • Procesador: Como os acabo de decir, con el hardware de hoy en día casi no hay requisitos mínimos. Cualquier procesador que tenga menos de 15 años podría servirnos para montar un cacharro de estos. Eso sí… que tenga arquitectura X86 o X64, porque si montáis esto en una máquina que monte ARM u otras arquitecturas no os va a funcionar. Si en lugar de aprovechar un equipo que tenéis por casa queréis comprar hardware nuevo y tenéis pensado virtualizar máquinas con linux, no os aconsejo algo potente. La potencia de un i3 es más que suficiente para varias máquinas virtuales y al tener un procesador inferior tendréis también un menor consumo energético (No perdáis de vista nunca que es un servidor doméstico y el consumo nos debería importar mucho).
  • Tarjeta gráfica: Depende de lo que queramos hacer con el ordenador, necesitaremos o no una gráfica dedicada. Como lo que yo quería no tenía nada que ver con procesamiento de gráficos, la gráfica compartida que tiene el propio Intel Core i3 me sirve, así que no tengo ninguna gráfica dedicada. De hecho me costaría imaginar para qué puede querer tener un usuario particular una gráfica dedicada en un servidor de máquinas virtuales. ¿Minar bitcoins tal vez?
  • Unidad lectora de DVD’s: Para no complicar la instalación y el tutorial (Que ya de por si va a ser bastante extenso) vamos a instalar el sistema desde una unidad de DVD. Después de la instalación podemos retirarla del equipo.
Procesadores y memoria
Procesadores y memoria a cascoporro
  • Memoria: Aquí está la clave, vamos a necesitar tanta memoria como la suma de la que queramos que tenga cada una de las máquinas virtuales, más un giga de RAM a mayores (que es lo que necesita Proxmox para funcionar). Si tenemos una única máquina virtual que necesite 7 gigas de RAM, necesitaremos 8 gigas de memoria. Si entre todas las máquinas necesitamos 11 gigas de RAM, necesitaremos tener un mínimo de 12 gigas de RAM instaladas en el equipo. Así que tenéis que ver cuánta ram necesitáis en las máquinas para saber cuánta RAM física tenéis que ponerle al equipo. En mi caso le he puesto 12 Gigas, aunque no estoy usando todos y eso me permitirá poner más máquinas en el futuro. Y quedaos con que cuanta más RAM tengáis, más máquinas podréis virtualizar simultáneamente.
  • Discos duros: Aquí ya depende de lo que queráis hacer y a dónde queráis llegar. Yo el tutorial lo voy a enfocar a una instalación dónde un único disco tiene instalados Proxmox y todos los sistemas operativos virtualizados (para no haceros comprar más discos). Así que de entrada con un único disco podéis ya empezar a virtualizar y a seguir el tutorial. Sin embargo me veo en la obligación de comentar que es recomendable separar el disco de proxmox del resto de discos del sistema, y además en usos profesionales tener una máquina virtual en un único disco (sin tener un segundo disco con los mismos datos por si falla el primero) es una locura. A nivel empresarial siempre se va a buscar la duplicidad de elementos por si falla alguno, por lo que no nos serviría este esquema. Pero en todo caso un único disco os servirá perfectamente para hacer pruebas e incluso usarlo a nivel personal (Siendo conscientes de que ese disco puede fallar algún día y se puede perder información, claro está). De ese disco vamos a usar 64 gigas para la instalación de proxmox. Puede parecer poco, pero el sistema va sobradísimo con ese espacio para él solito, y el resto del disco lo dedicaremos a alojar nuestras máquinas virtuales.
  • Fuente de alimentación: Esto es importante en cualquier servidor. Tenéis que tener una fuente de alimentación que soporte la energía que consumirá vuestro hardware.
Pues aquí te he pillado. Es imposible que una caja como esa pueda soportar tanto disco y tanta caña que le vas a meter. Una fuente de alimentación para un equipo con cuatro discos tiene que ser una muy potente y ese engendro que te has hecho no parece que la tenga.

Te has vuelto a colar, Usuario Anónimo. Para calcular la fuente de alimentación que necesita tu servidor, no hay nada mejor que acudir a esta web.

https://www.geeknetic.es/calculadora-fuente-alimentacion/

Ahí simplemente debes poner los componentes que quieras ponerle a tu ordenador. Si eres respetuoso con tu hardware y no te pones a hacerle gamberradas, como overclocking ni nada de eso, es un buen indicador de la potencia que necesitará tu fuente de alimentación (Siempre con un margen de seguridad razonable, por supuesto). Como ya os dije, para este tipo de equipos no se suele requerir tarjetas gráficas dedicadas ni mucho menos ponerse a hacer overclocking. Lo que suele hacer falta es poner la mayor cantidad de memoria posible. Así que si no hacemos locuras nos puede ser una herramienta muy útil para calcular el tipo de fuente que necesitamos.

Miniservidor
Pequeño servidor de ejemplo

Y recalco: no estamos montando un PC para jugar. Esos ordenadores tienen otro tipo de necesidades, unos consumos más elevados y necesitan márgenes de seguridad diferentes (Un equipo de gaming va a consumir muchísimo más mientras se juega que estando en reposo). Un PC que actúa como servidor queremos que consuma lo menos posible, así que no hagáis el cafre overclockeando los componentes, que tenerlo todo el día encendido con un overclocking es garantía de fallo. Os sorprenderá saber que un equipo de estas características con 4 discos consume mucho menos de 200 Vatios, así que una fuente de 300 va con un margen de seguridad más que aceptable. Si es para usarlo como un servidor normal (en el que no se preveen picos de uso elevadísimo como cuando se juega a un juego en 3D) no debería preocuparos dejar un margen de seguridad como el que os va a recomendar la propia web.

Y la verdad es que poco más. Como habréis visto el requisito más importante es el de la memoria. El resto podríamos decir que lo cumple casi cualquier equipo del mercado.

4- Instalación

Vamos al lío. Lo primero que debemos hacer es descargar la ISO del disco de instalacion de Proxmox desde este enlace de la página oficial (bajad el «Proxmox ISO Installer», la última versión):

https://www.proxmox.com/en/downloads

Vale… Te veo venir. Voy preparando entonces Rufus o balenaEtcher para grabar la ISO en un pen drive y…

¡Noooo! ¡Quieto parao! Eso ya lo intenté yo en su momento y tuve mil problemas a la hora de que funcionara la instalación correctamente (instalaciones que tardan más de lo debido, errores durante la instalación, etc…). Desde un Linux o un Mac, con el comando «dd» deberíais poder grabar correctamente el pen drive, pero para no alargar el tutorial más de lo necesario idicándoos comandos de consola, vamos a ir a lo sencillo y que siempre funciona. Grabad la ISO en un DVD y arrancad el sistema de instalación desde ahí. Así no tendréis problemas. Si queréis, luego podéis quitar la unidad de DVD del ordenador para que no os ocupe una bahía del equipo tontamente.

Nota importante: Este problema para arrancar desde unidades USB ha sido resuelto en las últimas versiones de Proxmox. Ahora mismo ya se puede grabar el ISO con normalidad en un Pen Drive (por ejemplo con balenaEtcher) y ejecutar la instalación desde él.

Después del arranque, deberíamos ver esta pantalla para iniciar la instalación, en la que debemos aceptar los términos de la licencia.

Inmediatamente nos aparecerán las opciones para definir dónde vamos a instalar Proxmox. Tenemos que fijarnos debajo de todo de la pantalla, dónde pone «Target Harddisk».

Ahí tendremos el disco duro dónde proxmox va a querer insalarse incialmente. Debemos elegir el disco duro de instalación (recordad que siempre voy a suponer que tenéis un único disco, así que no habrá mucho dónde elegir) y pulsamos en «Options».

Nos saldrá una ventana en la que podremos elegir el sistema de archivos de la partición y otras opciones como el tamaño de la partición. Elegid en «Filesystem» el formato «ext4» y en «hdsize» poned 64 gigas.

¿Pero ahí no es dónde vamos a instalar proxmox? ¿No es muy poco espacio?

Efectivamente. Parece poco espacio. Pero ten en cuenta que este espacio se usará sólo para el manejo de Proxmox. No lo va a usar nada más, así que más bien estamos pasándonos asignándole demasiado espacio. Posiblemente 24 gigas lleguen y sobren para una instalación de este tipo, pero para ser precavidos y tener margen de maniobra vamos a ponerle 64.

Oye… y si es así ¿Por qué no instalar proxmox en un pen drive? Así dedicamos el almacenamiento de los discos duros íntegro a las máquinas virtuales. Si sólo va a usarse cuando arranque el sistema y poco más, a lo mejor es una buena opción.

Pues no es nada descabellado. Yo soy muy cabezón y lo intenté en numerosas ocasiones… pero desgraciadamente no logré que funcionara bien de esta forma. Como ejemplo te voy a poner a Freenas. Freenas es un sistema operativo que sirve para compartir archivos en red (entre otras cosas) y la recomendación es precisamente instalarlo en un Pen Drive y dejar todos los discos para almacenamiento. Sin embargo si instalas Proxmox en un pendrive (que ya te dije que lo llegué a hacer) habrá cosas que te empiecen a fallar y empezarás a tener cuelgues. Pude haberlos tenido por hardware incompatible (raro, porque lo intenté en varios equipos con hardware distinto) o alguna otra cosa, pero lo cierto es que incluso en la documentación de proxmox nos dicen que hay que instalarlo en un disco duro y no en un Pen Drive, así que toca instalarlo en una partición de uno de los discos nos guste o no.

A modo de curiosidad (porque ya os dije que no vamos a entrar en gestiones avanzadas del sistema) este apartado os permite usar varios discos para crear un RAID y así hacer el sistema más seguro si falla uno de los discos. Por ejemplo, si se selecciona la opción de RAID 1…

… podremos seleccionar qué discos estarán en ese RAID 1. Para los que no lo sabeís, un raid 1 es poner varios discos «en espejo», de forma que lo que se copia en uno también se copia en el otro, por lo que si falla uno, el otro mantiene el sistema vivo. Pero lo dicho: aquí no vamos a entrar y dejaremos esa opción en ext4.

La siguiente pantalla sólo nos pregunta datos de localización. Cubrimos los que correspondan con nuestro país.

Y luego tendremos que establecer una contraseña de administrador. El usuario de esta contraseña será «root». Recordadlo, porque será importante para luego acceder al sistema. Cubrid también el campo de E-mail con vuestro correo.

Por último debemos cubrir los datos de la ip que vamos a asignar a nuestro sistema. Lo lógico en estas máquinas es ponerle una IP fija (para luego acceder siempre por el mismo número. Asignadle una dentro del rango de vuestro router y cubrid correctamente todos los campos. En Hostname podéis poner algo como «proxmox.local».

¡Y listo! Después de un rato instalando paquetes , por fin tenemos un proxmox instalado en nuestro ordenador. Apuntad la dirección que os dice en la última pantalla, ya que en cuanto reiniciéis vuestro servidor de Proxmox habrá que acceder a ella desde otro equipo.

¿Desde otro equipo? ¿Pero no vamos a poder gestionar cosas desde este servidor?

Virtualización del tipo 1 ¿Recuedas? En cuanto reiniciemos este servidor tendremos una bonita pantalla negra para introducir comandos a manubrio. Si queremos acceder a una página web de gestión del sistema, tendremos que hacerlo desde otro equipo a través de una dirección similar a ésta:

https://ip-del-proxmox:8006

Así que dadle a «Reboot» y a esperar a que se reinicie.

5- Creación de particiones para nuestras máquinas virtuales.

Una vez reiniciado el equipo, entraremos a él desde otro equipo por la dirección que se nos indica y en la ventana de login deberemos cubrir:

  • Nombre de usuario: Siempre es «root» con minúsculas.
  • Contraseña: la que hayamos marcado.
  • Ámbito: Dejadlo tal cual está.
  • Idioma: Poned el que os haga sentir más a gusto.
  • Y si os resulta más cómodo marcad la opción de «Guardar nombre de usuario»

Luego pulsad en «Login».

Login Proxmox
¡Porras! Ya la lié. Ya tengo un error.
error Proxmox

Tranquilo Usuario Anónimo. Este error nos aparecerá cada vez que entremos en el panel de control. Sólo nos dice que no tenemos una suscripción de pago y eso sabemos que no nos interesa (Salvo que seamos una empresa o la información que vayamos a guardar en las máquinas virtuales sea muy valiosa). Así que toca darle a aceptar cada vez que hagamos login. Y una vez logados nos aparecerá algo como esto.

principal Proxmox

Os explico un poco la organización de esta pantalla, que será lo que vais a estar usando contínuamente en Proxmox.

En la parte derecha, dejando seleccionado «Vista por servidor» nos encontraremos un árbol de elementos. Arriba de todo esta el «Centro de datos». Suponed que tenemos varios servidores de proxmox corriendo en una empresa. El centro de datos será dónde veamos cada uno de esos servidores físicos. Nosotros como sólo tenemos uno, al desplegar «centro de datos» veremos uno llamado «proxmox» que es nuestro servidor.

Si desplegamos el servidor veremos dos cosas. Máquinas virtuales que haya en ese servidor (Aún no hay ninguna, así que no os aparecera nada en ese sentido) y dispositivos de almacenamiento que estén listos para ser usados en Proxmox. Nos aparecerán dos: Uno llamado «local» y otro llamado «local-lvm». El objetivo que tenemos que lograr es añadir un dispositivo de almacenamiento más (que será una partición dónde instalaremos nuestra maquina virtual) y una máquina virtual.

server view Proxmox

En la zona central nos aparecerá el estado de los elementos que seleccionemos a la izquierda y en la zona inferior tendremos un historial de notificaciones (logs).

Ahora que nos hemos familiarizado con el interfaz, vamos a crear una partición en la que poder poner los archivos de nuestra primera máquina virtual. Por desgracia no es algo que se pueda hacer con el interfaz de Proxmox y debemos usar el terminal para crearla, pero os adelanto que no es nada del otro mundo.

Para ello debemos irnos a nuestro servidor de proxmox y luego pulsar en «_Shell»

shell Proxmox

Eso hará que se nos muestre en mitad de la pantalla el terminal de proxmox desde dónde podemos teclear los comandos.

Proxmox shell 2

Primero vamos a ver cómo está particionado nuestro disco duro. Hacemos un «fdisk -l» y nos sacará algo similar a ésto.

fdisk -l Proxmox

Si os fijáis, el Proxmox de ejemplo sobre el que he hecho estas capturas tiene un disco de 111,7 Gigas (aparece indicado arriba de todo). Es el primer disco duro (el único), por lo que se llama /dev/sda, y tiene ahora mismo tres particiones: Una de arranque (BIOS boot), una EFI (EFI System) y una donde está el sistema principal (Linux LVM). El resto de los gigas no se ven por ahí porque están sin particionar, así que vamos a crear una partición con el comando «fdisk /dev/sda». Ese comando nos mete en un programa que me permitirá introducir más órdenes para crear la partición a nuestro gusto.

particionado Proxmox 2

Usamos la opción «n» para crear una partición nueva. Como pretendemos usar todo el espacio que queda disponible en el disco, simplemente pulsamos «enter» en las opciones que nos da hasta que nos dice que ha creado una partición nueva con el espacio que faltaba en el disco. Evidentemente, si ya había tres particiones antes, sabemos que la nueva se va a llamar /dev/sda4

particionado Proxmox 3

Sólo nos queda poner el comando «w» para escribir los cambios en el disco y ya quedará creada nuestra partición.

particionado Proxmox 4

Podemos comprobar que ha quedado correctamente creada esa partición escribiendo de nuevo el comando «fdisk -l». Debería ahora aparecernos la partición /dev/sda4, que es la que acabamos de crear.

particionado Proxmox 5

Pasemos a formatear esa partición. Debemos usar el siguiente comando.

mkfs.ext4 /dev/sda4
particionado Proxmox 6

Ahora montamos la nueva partición con la siguiente secuencia de comandos.

cd /media
mkdir contenedor
mount /dev/sda4 /media/contenedor
particionado Proxmox 7

Pero hay un problema. Ahora funcionará todo, pero dejará de funcionar al reiniciar el equipo. Para que los cambios sean permanentes hay que editar el archivo fstab. Lo hacemos con los siguientes comandos:

cd /etc
nano fstab
particionado Proxmox 8

Y en la última línea insertamos lo siguiente:

/dev/sda4 /media/contenedor ext4 defaults,errors=remount-ro 0 1
particionado Proxmox 9

Guardamos cambios pulsando la combinación de teclas «Control+O». Y con esto ya terminamos todo lo que teníamos que hacer con el terminal.

Ahora nos vamos a la interfaz de Proxmox donde vemos que ¡¡No está el almacenamiento que hemos agregado!! Hay que agregarlo a manubrio dentro de la interfaz. Nos vamos a Datacenter – Storage y pulsamos en «Add» y luego en «Directory».

almacenamiento Proxmox 1

Ahora tenemos que añadir datos a mano. No es nada difícil. En ID ponemos un nombre para esta partición. Le voy a llamar «Container». En «Directory» ponemos la ruta hacia esa partición (En este caso es /media/contenedor). En content desplegamos y nos aseguramos de marcar todo lo que hay ahí. La opción de «Enable» debe quedar marcada y pulsamos en «Add».

almacenamiento Proxmox 2

Y ahora sí, por fin, tenemos la partición que acabamos de crear disponible para crear nuestra máquina virtual.

almacenamiento Proxmox 3

Por cierto… habréis visto que se pueden crear muchos tipos de particiones (LVM, LVM-thin, ZFS…). Tal vez en un tutorial posterior me ponga a explicar cómo crear una partición LVM, pero para no extender esto (que va a quedar largo de más), en cuanto a particiones vamos a dejarlo aquí. Con esto ya podréis instalar máquinas virtuales.

Y por supuesto, si tenéis más discos podéis crear almacenamientos para máquinas virtuales de la misma forma (aunque tal vez deberíais plantearos pasar al siguiente nivel y montar algún tipo de raid, o usar algún otro tipo de almacenamiento, pero eso no es algo que vayamos a tratar en este tutoría).

6- Subimos una imagen del disco de instalación del sistema operativo a virtualizar.

Antes de ponernos a instalar nuestra primera máquina, debemos subir la imagen del disco de instalación de su sistema operativo. La subiremos al contenedor llamado «local», ya que ahí tenemos espacio más que suficiente para eso. Pulsamos en el almacenamiento local – Content – Upload.

subir imagen Proxmox

En la ventana que nos aparece, buscamos el archivo iso con la imagen del sistema operativo que queramos instalar y le damos a «upload».

subir imagen Proxmox 2

Y en el apartado «Contenido» nos aparecerá el archivo ISO. Nada nos impide tener imágenes de varios sistemas para usar en el futuro o borrar alguna cuando sepamos que no la vamos a usar más.

subir imagen Proxmox 3

Ahora sólo nos queda crear nuestra máquina virtual.

7- Creación de la máquina virtual.

Para crear nuestra primera máquina virtual debemos pulsar en el botón «Crear VM» que hay en la esquina superior derecha del interfaz de Proxmox.

Crear máquina virtual Proxmox 1

Ahora sólo tenemos que ir rellenando opciones. En la pestaña «General», El Nodo y el VM ID (El número que va a tener nuestra máquina) ya deberían estar cubiertos. Sólo debemos ponerle un nombre a la máquina, marcar la casilla «Avanzado» y dejar marcada la opción de «Iniciar al arranque» (para que la máquina se ponga siempre en marcha nada más reiniciar Proxmox).

Crear máquina virtual Proxmox 2

En la siguiente pestaña vamos a decirle qué archivo ISO vamos a usar para hacer la instalación del sistema operativo en esa máquina virtual. En almacenamiento, seleccionamos «local» y en «imagen ISO» seleccionamos la que nos interese (Puede que tengamos varias subidas). También debemos indicar qué tipo de sistema operativo vamos a usar en los desplegables de la derecha.

Crear máquina virtual Proxmox 3

En la carpeta «Sistema» debemos poner qué hardware virtual tendrá nuestra máquina. Dependiendo de lo que hagáis podéis usar un driver u otro. Esta es la configuración que estoy usando en mis máquinas Linux.

Crear máquina virtual Proxmox 4

En cuanto al disco duro, aquí hay más lío. Vayamos a «Almacenamiento principal», desplegad el menú y seleccionad «Container», que es el espacio que hemos dedicado a nuestras máquinas virtuales. En tamaño en disco debemos poner el tamaño que queremos que tenga el disco duro de la máquina virtualizada (siempre debe ser menor que el tamaño que tengamos en el desplegable del almacenamiento). Tened en cuenta que en un mismo almacenamiento puede haber varias máquinas virtuales (siempre que el tamaño de todas ellas sea menor que el del almacenamiento). El resto de opciones las podemos dejar como están (y por si tenéis tendencia a cacharrear, según la documentación de Proxmox la opción de caché por defecto es la más rápida de todas, así que no la toquéis).

Crear máquina virtual Proxmox 5

En cuanto a la CPU, aquí podéis juguetear un poco. Podéis poner más o menos núcleos a vuestra máquina a placer. Cuantos más núcleos le pongáis, más capacidad de proceso va a tener. Pero un apunte rápido. Tuve una vez una máquina que sin venir a cuento se colgaba todo el rato sin motivo aparente así que probé a solucionarlo cambiando el tipo de procesador. En lugar del kvm64 le puse el mismo tipo de procesador que tenía la máquina física (un Haswell-noTSX) y … ¡¡Funcionó!! Así que ahora siempre le pongo a las máquinas el mismo tipo de procesador que tiene la máquina física por si las moscas.

Crear máquina virtual Proxmox 6

Memoria: No os paséis ni os quedéis cortos asignando memoria, pero tened en cuenta que es el factor más limitante. No podéis asignar más memoria que la que tenga la máquina física menos un giga en vuestra primera máquina, y en las siguientes debéis restar la que ya habéis asignado en las anteriores. El total de memoria que asignéis a todas las máquinas que corran en vuestro Proxmox debe ser menor al total de memoria del equipo físico menos un giga.

Crear máquina virtual Proxmox 7

En «red», normalmente funciona todo bien dejándolo como está (Salvo que queráis hacer algún ajuste de Vlanes o poner algún límite, claro).

Crear máquina virtual Proxmox 8

Sólo nos queda confirmar lo que hemos hecho pulsando en «finalizar».

Crear máquina virtual Proxmox 9

Ahora si nos vamos a la consola de la máquina virtual (que ya aparecerá en el desplegable de «Proxmox» nos aparecerá ya la máquina dispuesta a su primer arranque e instalación (Podéis encenderla y apagarla con los botones que hay encima del visor de la máquina).

Crear máquina virtual Proxmox 10

Y en «opciones» podéis cambiar algunos parámetros interesantes (como ordenar que la máquina arranque al iniciar el sistema o evitar que arranque de forma automática).

Crear máquina virtual Proxmox 11
¿Y no tengo que instalar drivers en las máquinas hospedadas en Proxmox?

Si se trata de una máquina Linux, desde hace mucho tiempo los «drivers» de KVM vienen implementados ya en el núcleo, así que no hace falta instalar nada. Sí que hace falta instalar drivers en otros sistemas como Windows, pero en esta página tenéis información para descargarlos.

Y vosotros ¿Qué uso le vais a dar a vuestras máquinas virtuales? ¿Habéis tenido algún problema en la virtualización? Dejadnos un comentario con vuestras impresiones.

Para finalizar quiero dar un apunte más. Todo esto que os he explicado sólo es la punta de iceberg. La virtualización de sistemas operativos es un mundo enorme y complejo, y a la vez tremendamente interesante. Con esta base podeis luego profundizar en más opciones para los sistemas de ficheros de los almacenamientos, opciones de RAID, copias de seguridad, gestión de redes, VLAnes, cortafuegos y mil cosas, pero como arranque creo que con este tutorial ya podéis empezar a cacharrear.

Share

8 comentarios

  1. Cessar

    Muy interesante, espero puedas publicar algo de realizar snapshots en vivo automáticamente, saludos

  2. Marcos

    Efectivamente, la tecnología de snapshots es en sí una verdadera maravilla. Permite hacer el cabra con las máquinas virtuales y si rompes alguna permite restaurarla al momento de tomar el snapshot en un momento (no como un backup completo, que lleva su tiempo restaurarlo). Sin embargo no es bueno dejar snapshots hechos durante tiempo, ya que crecerán. Si se trata de un automatismo es prefereribe tener un backup completo de la máquina virtual deseada. Los snapshots son más bien para cambios puntuales y manuales, en plan: Voy a hacer algo que puede que rompa esta máquina virtual, así que hago primero un snapshot. Si eso va mal, lo restauro. Si todo ha ido bien, entonces lo elimino. Abusar de snapshots no es bueno en ningún sistema de virtualización, y cuando te planteas hacerlos de forma automática piensa si no sería mejor hacer backups en lugar de snapshots. Y sííí… vale.. que los snapshots ocupan menos. Aceptamos barco. Pero los snapshots son para lo que son y si quieres hacerlos de forma automática… lo que quieres hacer son backups.

    En todo caso sí se pueden hacer automatismos de este tipo en proxmox, pero fuera del entorno gráfico (usando crontab en el terminal). Proxmox te va a dejar hacer un snapshot manual de la máquina, siempre que esté instalada en un almacenamiento adecuado, claro. Tienes en el siguiente enlace una tabla de los tipos de almacenamientos para las máquinas virtuales que te van a permitir hacer snapshots.

    https://pve.proxmox.com/pve-docs/chapter-pvesm.html#_storage_types

  3. atarito

    Ostras, yo tenia algo similar con un i5 bastante nuevo, consegui meter la placa micro-ATX en una caja mini-ITX limando un poquito por aquí y un poquito por alla, usaba ubuntu, y tenia home assistant, plex, servicios de red, openvpn…. todo bajo el mismo ubuntu, pero algunos updates eran un poco delicados, recientemente he montado 3 raspberrys pi, una para home assistant y todo lo relacionado con mensajeria MQ, otra pi4 con pihole pivpn, tvheadend con 2 dvbsky con tvheadend, mldonkey y transmission, con un disco de 2.5, y otra de 8Gb con las bibliotecas plex, calibre, con los 4 discos de 8Tb, la facilidad de ponerle ups con las x728 y x828 con baterias, y sobretodo, a la hora de actualizar un sistema u otro. Mi intencion era bajar el consumo, aunque ya me dan ganas de probar promox con el i5 este. Un saludo y ves contando.

  4. germán

    IMPECABLE! GRACIAS! Recién empezando, me gustaría que hubieran parte 2, 3, 4 ….

  5. Alberto

    Vaya fallo que no continúes esta sección y hayas hecho una de truenas, mi pregunta es: según lo que he leído es importante tanta cantidad de ram para cada servicio en marcha, pero no hace falta un procesador con muchos núcleos para repartir estos entre los servicios en marcha? Según mis cálculos un I3 de hace diez años solo tendrá dos núcleos/hilos. Hace falta hilos de procesador para cada servicio en marcha o se pueden emular?

    • Marcos

      No es que haya discontinuado los tutoriales de proxmox. Uso proxmox todos los días en varias instalaciones. Pero según veo necesidades voy haciendo artículos. Algo en mente tengo respecto a más tutoriales de proxmox pero los de truenas hacía muuuuuuchos años que tenía ganas de publicarlos y mi conciencia me pedía a gritos hacerlos de una vez por todas.

      La ram en virtualización casi que es lo más importante, porque a pesar de haber soluciones para “compartirla” (proxmox tiene una tecnología llamada ballooning referente a este tema) al final si le asignas dos gigas a una máquina y otros dos a otra, vas a necesitar 4 gigas de ram físicos para asignarles a las máquinas (más algo a mayores para que el proxmox se pueda mover).
      Con los núcleos pasa algo muy diferente. Puedes tener 5 máquinas corriendo en un procesador con un sólo núcleo y un sólo hilo. Digamos…. Que los procesos se ponen en cola y el único problema que puede tener esta configuración es que las cosas pueden ir más lentas, pero no es impedimento para que el sistema en sí funcione. Para máquinas que no “tiren” de procesador, no debería ser problema compartir núcleos o hilos.

      Por cierto… núcleos e hilos en proxmox funcionan de forma similar.

      En el artículo veis que la máquina que tenía en ese momento era un i3 con 4 núcleos, pero podemos poner un proxmox en una de dos núcleos y no va a ir mal. Todo depende de la caña que necesiten las máquinas virtuales y su número. Pero sí son ligeritas no vas a tener problema en correr más máquinas qué hilos de procesador disponible. Lo tengo hecho y sin problema, vamos.

  6. Saúl

    Buenas, llevo varios días intentando crear una VM en proxmox VE, hasta ahora he conseguido que me arranque tras crearla, pero me muestra una pantalla en negro con el siguiente mensaje: Guest has not initialized the display (yet). Llevo varias semanas intentando encontrar respuesta a este error pero no ha habido manera. Si usted sabe alguna solución, por favor, no dude en contármela, muchas gracias. Su tutorial ha sido muy útil

  7. Predatux

    Gracias por el tutorial.
    Me gustaría pedirte si pudieras hacer otro, detallando el modo creo más delicado de proxmox, que es el passthrough en sistemas Linux, Mac y Windows.
    Tengo una AMD 6800XT y no consigo que el sistema emulado «Monterey» pase de la ventana de inicio.
    Gracias de nuevo y un saludo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

© 2024 Flopy.es

Tema por Anders NorenArriba ↑

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies