Proxmox y Ceph de 0 a 100 Parte I

Por donde empezar

Buenas de nuevo, en esta ocasión vamos a realizar el siguiente post sobre Proxmox y Ceph de 0 a 100, por capítulos, por ser muy extenso. Indicar también que antes de utilizar esto para un sistema productivo, no te quedes solo en la GUI, investiga y aprende de Debian, consola Proxmox, almacenamiento, redes o todo será muy bonito hasta que tengas una incidencia. Como comento será de 0 a 100, bueno lo más básico, básico, como instalar por ejemplo VirtualBox nos lo saltamos, pero si explicaré la creación de las máquinas que necesitamos, el que no lo necesite que se lo salte a excepción de la última parte,lo mismo no lo conoce y se encuentra con este error.

Para este laboratorio necesitaremos como mínimo un equipo con 8 GB y 8 cores o bien un servidor dedicado que sea económico, puesto que vamos a montar 3 nodos utilizando virtualización anidada y ceph, el cual necesita de 1-1.5GB RAM por TB. Me voy aventurar y lo voy a instalar en un portátil con 8GB y 4 cores veremos si es posible o estalla y tengo que empezar de cero en un servidor dedicado. Habrá pasos que si utilizas un servidor dedicado no tendrás que hacer, ya que utilizaremos VirtualBox.

Solo para los que vayan a utilizar un servidor dedicado indicarles que tendrán que activar nested, donde podrán instalar un Proxmox y dentro de dicho Proxmox 3 Proxmox más pequeños para poder hacer el laboratorio sin tener que adquirir 3 dedicados.

Una vez que instaléis el Proxmox Padre por llamarlo de alguna manera si tienen:

Intel

echo "options kvm-intel nested=Y" > /etc/modprobe.d/kvm-intel.conf
modprobe -r kvm_intel
modprobe kvm_intel

AMD

echo "options kvm-amd nested=1" > /etc/modprobe.d/kvm-amd.conf
modprobe -r kvm_amd
modprobe kvm_amd

Y reiniciar para ver que no hay problemas, una vez reiniciado podéis comprobar con 

cat /sys/module/kvm_intel/parameters/nested

Donde debe aparecer una "Y". Comprobado esto solo tenéis que crear tres máquinas nuevas para los tres nodos del laboratorio estableciendo en el tipo de CPU "host", en AMD es posible que tengáis que jugar con las flags que nos ofrece Proxmox.

Ahora comencemos con VirtualBox que es lo que utilizaremos en estos posts. Lo primero es bajarse la versión 6.1 para que nos permita hacer virtualización anidada. Una vez tenemos VirtualBox instalado nos iremos a la página oficial de Proxmox para bajarnos la ISO de la última versión.

Creamos nuestra primera máquina haciendo click en Nueva, donde nos pedirá Nombre, Carpeta de la máquina Tipo de Sistema y la versión

Tamaño de la memoria, mínimo 2GB o fallará la instalación de Proxmox.

Tamaño del disco, dependerá de cada uno, como vamos a utilizar Ceph con otro disco voy a darle solo 10 Gb para el SO 

Tipo de disco, no lo voy a utilizar nada más que para el laboratorio, por lo tanto lo dejo en el nativo de VirtualBox.

Si queremos que lo aprovisione entero (Thick) o por el contrario que crezca dinámicamente(Thin), claro está lo dejamos en dinámico porque es un laboratorio, tardará menos y el rendimiento nos da un poco igual para estas pruebas, quien quiera y tenga tiempo puede decirle fijo ganará un poco más de rendimiento pero tardará más en crearlo según el tamaño.

Ubicación donde guardarlo y le damos a crear.

Ahora tenemos que activar nested en VirtualBox y la mayoría de vosotros os lo encontraréis así en Configuración/Sistema/ Procesador

Como podéis ver no hay manera de que podamos seleccionar dicha opción, nos aparece en grisaceo, no hay problema, nos abrimos un terminal de Linux, los que tengan Windows tendrán que abrir una consola con CMD irse al directorio de instalación y lanzar el siguiente comando.

VBoxManage modifyvm PVE1 --nested-hw-virt on

Si hubierais llamado a la máquina de otra forma porque os gusta más, sustituir PVE1 por el nombre que hayáis puesto. Ahora, si vamos al mismo apartado, veremos que está activado.

Es posible también que en esta versión os diga configuración inválida porque en pantalla tenemos que seleccionar VMSVGA en lugar de VBOXVGA que te pone por defecto.

Nos vamos a las interfaces de red y seleccionamos el adaptador 1 como Adaptador puente y seleccionamos nuestra tarjeta física, está será para la gestión de  Proxmox desde nuestra red local sin tener que abrir puertos y configuraciones.

Activaremos la segunda  tarjeta para la comunicación entre los hosts como red interna, estará aislada.

Y por último crearemos otra red para las máquinas vm en modo red NAT como si tuviéramos un router, para que tengan internet(Siempre y cuando el modo Promiscuo se ponga en Permitir todo) pero no estén al nivel de los hipervisores y nuestra red, intentando simular un escenario lo más realista dentro de las posibilidades que tenemos

Así tenemos 3 redes, simulando un escenario productivo:

Red de gestión

Red de comunicación entre nodos para la alta disponibilidad, migraciones, ceph,...

Red de máquinas virtuales

Ahora vamos añadir un disco de 40 GB que utilizaremos con ceph para montar una máquina o dos de pruebas, si queréis darle más darle. Para ello nos vamos a configuración almacenamiento y en controladora SATA el símbolo del disco con el más.

Una vez hecho esto vamos a instalar Proxmox en dicha máquina y vamos a trabajar sobre ello lo básico para luego clonarla y no tener que hacer lo mismo en las otras dos ahorrando tiempo.

Para empezar en configuración/almacenamiento pinchamos en el DVD que pone vacío y en el disco a la derecha de Ide secundario maestro, seleccionando la opción seleccionar un archivo de disco, buscamos nuestra ISO de Proxmox descargada, aceptamos e iniciamos la máquina, encontrando la primera pantalla

Aceptamos barco como animal acuático y continuamos.

El siguiente paso es la elección del disco y sistema de ficheros, tenemos dos opciones continuar y que lo configure automáticamente o pinchamos en options y le damos nuestros valores.

Para este laboratorio que empezamos desde cero podemos elegir ext4 o xfs para el hipervisor, no vamos a notar mucha diferencia en el rendimiento entre uno y otro ya que son discos pequeños y las mv las levantaremos en Ceph. Zfs lo descartamos porque como mínimo necesitas 8GB de memoria con ECC si no quieres tener problemas. Nunca utilizar zfs en combinación con un raid por hardware ya que necesita acceso directo a disco y tiene su propia cache. Además en entornos productivos si utilizas ext4 o xfs utiliza una controladora ADAPTEC con BBU y protección de caché sin mantenimiento. Se puede hacer que Proxmox funcione con un buen rendimiento con raid por software como vimos en el post Proxmox-Performance pero requiere mucho esfuerzo y por el tiempo que te va a llevar merece una controladora. 

Respecto a los parámetros:

hdsize: Define el tamaño total del disco duro que se utilizará

swapsize: El tamaño por defecto será igual a la memoria instalada para la partición de swap hasta un máximo de 8 GB. El valor no puede ser más grande que hdsize/8, si se establece a 0 no será creada.

maxroot: Define el tamaño máximo del volumen raíz, que almacena el sistema operativo. El límite máximo del tamaño del volumen raíz es hdsize / 4.

minfree: Define la cantidad de espacio libre que queda en el grupo de volúmenes LVM pve. Para discos superiores a 128 GB de almacenamiento disponible, el valor predeterminado será 16 GB; de lo contrario, se utilizará hdsize / 8. LVM requiere espacio libre en el VG para la creación de instantáneas (no es necesario para instantáneas lvmthin).

maxvz: Define el tamaño máximo del volumen de datos. El tamaño real del volumen de datos es:

datasize = hdsize - rootize - swapsize - minfree

Como tenemos un  disco de 10GB estos cálculos que realiza Proxmox solo, casi son impuestos, es decir, aunque pongas 3 GB partición de root te la va a hacer de 2.2 GB (hdsize/4) quedando libre cuando se instale pocos MB, pero haremos un truquillo, vamos a rellenar solo el parámetro minfree a  1 para luego extender la partición por consola y aprovechar el disco completo aunque no tengamos instantáneas de LVM, también podéis coger un disco más grande, esto es para que vayáis viendo cosillas.

En la siguiente pantalla nos encontramos con la selección de Localización, zona horaria y teclado.

Poco que decir, continuamos, nos pedirá usuario, password y mail.

Continuamos

Seleccionamos la primera tarjeta que es la que pusimos en modo bridge y configuramos una ip de nuestra red, en el nombre vamos a ponerle para este laboratorio pve1.local

La siguiente será un resumen de nuestra instalación y le damos a Install, en unos minutillos estará listo indicando que reinicies y accedas a la url especificada, antes de darle al reboot expulsar la ISO en el menu de VirtualBox Dispositivos/Unidades ópticas desmarcando la casilla marcada de la ISO

Una vez reiniciado nos encontraremos con

Entramos por esta consola para ampliar la partición de root, hacemos un df -h y veremos que la partición de root es 2.2 GB de ahí no va a subir aunque pongamos 3 GB en la instalación, ya que utiliza la regla anterior mencionada.

Según arrancamos vemos que le quedan 195M libres, en cuanto empecemos a trastear un poco se nos queda en 50 MB seguro.

Por lo tanto vamos a ampliar la partición escribiendo lo siguiente

vgdisplay

Donde veremos el GB libre que pusimos en la instalación

Para extenderlo ejecutamos

lvextend -L +1G /dev/mapper/pve-root

devolviendo lo siguiente

Ahora tenemos que hacer un resize con

resize2fs /dev/mapper/pve-root

devolviendo lo siguiente

Si hacemos df -h ya veremos nuestra partición con 3.2 GB con un espacio disponible de 1.2 GB.

Ahora  accedemos a la url que nos indica la instalación o en la pantalla de login de la consola, donde claro está, nos dirá que el certificado no es válido, aceptamos y llegamos a la pantalla de login, metemos el usuario y password introducido durante la instalación y nos saltará lo siguiente

Ya que Proxmox trabaja por suscripción donde obtienes soporte y acceso a los repositorios enterprise. Está licencia está basada en sockets.

Simplemente aceptamos y ya tenemos nuestro Proxmox. Lo primero que haremos es desactivar los repositorios enterprise y eliminar la alerta de "No hay una suscripción válida", la cual saldrá cada vez que entremos si no la quitamos. Nos vamos a pve1/Shell o seguimos en la consola anterior. Hay que tener en cuenta que está shell de la GUI, si cambias de apartado se reinicia, es decir, es como si crearas una sesión nueva cuando vuelves. Por mi parte prefiero abrir una conexión ssh si se van a realizar muchas tareas o conectarme en la máquina virtual como hemos hecho hasta ahora.

Editamos el fichero /etc/apt/sources.list.d/pve-enterprise.list con vuestro editor favorito, por ejemplo el más sencillo

nano /etc/apt/sources.list.d/pve-enterprise.list

Y añadimos una # al principio del repositorio que nos encontramos quedando así

Presionamos ctrl+x y nos pregunta si grabar, le decimos yes.

Ahora vamos a desactivar el aviso de la suscripción, para ello primero vamos hacer una copia del fichero que vamos a tocar escribiendo

cd /usr/share/javascript/proxmox-widget-toolkit

cp proxmoxlib.js proxmoxlib.js.bak

editamos

nano proxmoxlib.js

Presionamos ctrl+w para buscar y escribimos Active y encontraremos la siguiente línea de código if (data.status !== 'Active') {

por if (false) { quedando así

Ahora ya podemos buscar actualizaciones, lo podemos hacer por consola como en cualquier Linux o por la GUI, nos dirigimos a pve1/Actualizaciones

Y pinchamos en refrescar que es como hacer un apt-get update por consola, como no hemos reiniciado servicios ni la máquina nos dará la alerta de suscripción esta vez. Cuando termine nos aparecerá todo los paquetes a actualizar y pinchamos arriba en actualizar sistema, abriendo una ventana nueva con la consola donde lanza apt-get dist-upgrade y nos pregunta si queremos continuar, le decimos "Y"

Cuando termine nos dirá que está actualizado, si existiera alguna actualización que necesitara un reinicio nos lo indicara, no es el caso.

Si pinchamos en refrescar veremos que ya no hay paquetes por actualizar.

Vamos a lanzar un reinicio para comprobar que todo está correcto antes de clonar la máquina, por la interfaz nos situamos en pve1 y a la derecha le damos a Reboot

Y confirmamos cuando nos pregunte. Volvemos a entrar para comprobar y ya no nos saltará la ventana de suscripción. Apagamos la máquina situándonos en pve1 y esta vez le damos a Cierre ordenado.

Ahora vamos hacer dos clon para pve2 y pve3, en la ventana principal de VirtualBox, hacemos click con el botón derecho encima de la máquina PVE1 y seleccionamos Clonar

Pondremos el nombre PVE2, la ruta para almacenar la máquina y muy importante Generar nuevas direcciones MAC para todas las tarjetas o tendremos conflictos al encenderlas a la vez. También se puede hacer desde Proxmox pero así nos ahorramos tiempo que es lo más valioso.

En la siguiente pantalla lo dejamos por defecto en Clonación completa.

Repetimos los pasos para PVE3 poniendo de nombre PVE3

Arrancamos solo PVE2 para cambiar el nombre a la máquina y la ip, ya que tendrá los datos de PVE1.

Editamos 

nano /etc/hostname

y cambiamos pve1 por pve2, ctr+x y salvamos.

Editamos 

nano /etc/hosts

Cambiando la ip y donde pone pve1 lo sustituimos por pve2 quedando así

Editamos las interfaces

nano /etc/network/interfaces

Y cambiamos la ip que va a tener quedando así

Reiniciamos la máquina y ya estaría lista, hacemos lo mismo con pve3 como es lógico cambiando pve1 por pve3 y cambiando la ip a la 192.168.10.223 en este caso, cada cual tendrá las suyas.

Ya podemos encender las 3 a la vez y no habrá problemas. Hasta aquí la primera parte del post Proxmox y Ceph de 0 a 100, continuaremos con la creación del cluster en la segunda entrega. (Ya disponible en Proxmox y Ceph de 0 a 100 Parte II)

Como siempre buen fin de semana. Si quieres adquirir alguna de las licencias ponte en contacto con nosotros,  somos partner de Proxmox.

TL.

Gracias por leer nuestros posts.

No hay comentarios

Comenta la entrada