[Proyecto personal] Proxmox

Igual que me ayudan ayudo y sino lo hacen, también lo haré pues esa es una de los grandes pilares del software libre.

Esto es solo un proyecto personal propio con solo unos días de investigación y pruebas así que no puedo asegurar su funcionamiento ni que sea lo mas efectivo. Seguramente también habrá mil errores, pero para esto estamos, para aprender junto :)

Por cierto, no he encontrado tanta documentacion de Proxmox como me hubiera gustado por desgracia pero es ampliamente utilizado en muchos lugares segun he podido comprobar.

Objetivos iniciales
Tener en un mismo equipo fisico:
  • Zentyal para administración avanzada de red e infrastructura de esta
  • OpenMediaVault para NAS
  • MineOS como server de juegos java que pida recursos.
  • Herramientas extras: Plex para streaming, Transmission para torrent, Owncloud para nube.





Para ello estuve mirando distintas soluciones de virtualizacion como VMWare ESXi, Proxmox, OpenStack, etc. Al final la que mas equilibrada encontre en calidad, precio y requisitos de hardware ha sido Proxmox


Proxmox
En Construccion

La instalación no es especialmente compleja, descargamos su iso (en este caso la 3.1) y si lo preferimos mediante dd podemos volcarla a un pendrive. Los requisitos son tener una CPU de doble núcleo y 64 bits.
Formateara todo el disco duro y no preguntara ningún dato técnico complejo, prácticamente solo solicitara la contraseña y datos de red típicos. Luego al reiniciar todo lo administraremos via web.

Tiene la peculiaridad de permitir usar OpenVZ o KVM
Con KVM tendremos maquinas virtuales que usen el hardware a muy bajo nivel usando los recursos que les hayamos permitido usar. Requiere que la CPU posea extensiones de virtualización (VT-x o AMD-V).
Con OpenVZ crearemos contenedores, algo como "jaulas" GNU/Linux los cuales dependerán de Proxmox directamente  (usaran su kernel y otros) lo cual permite compartir su consumo. Se instalaran mediante plantillas que descargaremos previamente. Este no lo he podido usar pues el cliente java siempre dejaba las pestañas del navegador involucradas colapsadas.

Para OpenVZ como sistemas tenemos Debian, Ubuntu y CentOS con lo cual podremos instalar prácticamente cualquier programa que necesitemos y ademas existen lo que son plantillas para aplicaciones que instalan una distro llamada turnkey la cual nos permitirá tener la mayoría de herramientas web, CMS, entornos de desarrollo, bases de datos, mensajería, etc.

Yo personalmente lo he probado en maquina virtual (Virtualbox, 64bits, 2gb, 20gb de espacio) con proxima migración a HP Proliant Microserver (n54l con 2gb de ram)
Almacenamiento mirando con df -h
Con 20gb, te deja 10 para almacenar (aparte otra particion con 5 reservados para root), con 250gb te deja solo 170gb usables. /dev/mapper/pv-data se come 62gb en este caso.

Añadir almacenamiento local a Proxmox
Nos conectamos mediante SSH al nodo: ssh root@X.X.X.X
Realizamos fdisk -l para identificar particiones (presuponemos que ha sido previamente formateada, sino podrá usarse fdisk para ello).
mkdir /media sdXx #creamos carpeta donde se montara la unidad
mount -t ext4 /dev/sdX /media/sdXx #montamos la unidad de forma temporal

Si funciona correctamente va bien la añadimos al fstab
echo "/dev/sdXx /media/sdXx ext4 defaults,noatime 0 2" >> /etc/fstab
Ahora lo comprobaremos con mount -a para evitar sorpresas
Entonces en Centro de datos podemos añadirla como Almacenamiento local.
Podemos montar con el parametro UUID=XXXXXXXXXXXX en vez de /dev/sdXx que conseguiremos con el comando blkid.
En caso de error podremos modificar fstab mediante:
nano /etc/fstab

Este método no es el mas adecuado para usarlo con maquinas virtuales pero puede ser cómodo para usarlo para almacenar archivos, plantillas multimedia y backups. Pero aumentar un lvm puede ser mas complejo y laborioso para algunos casos ademas de no ser comun el tener diversos NAS o servidores domesticos.

Redimensionar particiones del sistema dentro de un LVM
Deberiamos disminuir /dev/mapper/pve-root  pues ocupa mucho y es simplemente / donde no almacenaremos la mayoria de informacion (y por defecto parece ocupar casi la cuarta parte del disco duro) y dársela a /dev/mapper/pve-data que es donde almacenaremos la mayoria de informacion.
Redimensionar particiones del sistema dentro de un LVM

Lo mas fácil es usar un liveCD (el de Ubuntu es valido) pues no debes modificar una partición del sistema montada y en uso.

AVISO, estos comandos tienen permisos de superusuario, realizar un backup previo de los datos importantes.

fdisk -l #visualizar unidades incluyendo las LVM
vgchange -a y #Permite realizar cambios al LVM
e2fsck -f /dev/mapper/root #Comprueba el sistema de archivos
resize2fs /dev/mapper/root 100G #Redimensiona el sistema de archivos
lvreduce -L 110G /dev/mapper/root #reduce a x tamaño el volumen lógico
lvextend -L 110G /dev/mapper/root #aumenta a x tamaño el volumen lógico


Deberemos ir probando tamaños grandes y reduciendo hasta que te lo permita para aprovecha así el máximo tamaño.
Luego de tener los Gb puedes empezar a aprovechar Mb, redimensionando mediante 1000M en vez de 1G aprovechando así todo el espacio disponible.

Cuando tratemos con los volúmenes lógicos estos deben ser un 10% mas grande que los sistema de archivos que contengan, para ello multiplicaremos por 1,1 la capacidad del sistema de archivos que queramos tener por ej.

Al aumentar o volúmenes lógicos deberemos hacerlo con un 10% mas de lo deseado (multiplicar valor que queráis del sistema de ficheros por 1,1) para evitar corrupción total de los datos. Aquí no habrá verificación del correcto funcionamiento, de ahí su importancia para no perder datos si estamos disminuyendo su tamaño.

Crear un cluster con Proxmox
Proxmox permite tener cluster con varios nodos unidos, esto por ejemplo nos permite usar la opcion de migracion de uno a otro por ej. Es algo muy importante en entornos profesionales.
El que se añada no debe tener maquinas virtuales (pero puede tener backups). Aun no he podido probarlo.
pvecm create NombreCluster #Crear cluster en el nodo principal
pvecm add 10.10.10.10 #Indicar en otro nodo cual es el nodo principal

FAQ
Faltan las plantillas turnkey: pveam update
Suscripcion y error de repositorios enterprise: solo para suscripciones de pago.
Temas de locales: PENDIENTE
Redimensionar facilmente root y otras particiones: PENDIENTE
Pendiente
  • Migracion,clustering
  • Aumentar espacio de diversas maneras
  • Optimizacion variada
  • Backups (por ahora extrayendolos con scp)




OpenMediaVault
Como instalarlo en proxmox o como instalarlo sobre Debian igualmente.

Posibles usos
De serie: FTP, NFS, Rsync, SNMP, SMB, etc.
Plugins: Plex, minidlna, owncloud, clamav, ldap, transmission, virtualizacion, etc.
Avanzado: Es Debian, asi que por ssh podemos darle toda la utilidad que queramos e incluso instalarla sobre el como explico a continuación.

Por lo visto es mejor esperar unos meses a que este lista para Debian Wheezy (versión 7 del 2013), por ahora hay que usar la versión 6 mediante sus medios oficiales:
https://wiki.debian.org/InstallOpenMediaVaultOnDebian
http://forums.openmediavault.org/viewto ... 6954#p6954
Si intentamos instalar en Debian 7 directamente las dependencias y compilaciones necesarias os darán un trabajo que os entretendra alguna hora para luego ver que por temas de kernel aun no esta disponible oficialmente.

Instalación
Básicamente es realizar lo siguiente:
echo "deb http://packages.openmediavault.org/public sardaukar main" >> /etc/apt/sources.list #Comprobar que se especifica la versión adecuada en la actualidad
apt-get update; apt-get install -y openmediavault-keyring postfix libapache2-mod-php5
apt-get update; apt-get install -y openmediavault
wget http://omv-extras.org/debian/pool/main/o/openmediavault-omvextrasorg/openmediavault-omvextrasorg_0.5.39_all.deb; dpkg -i openmediavault-omvextrasorg_0.5.39_all.deb #Añadir posibilidad de plugins de OMV-Extras.org


Acceder a su interfaz via web mediante su IP:
User: admin; Password: openmediavault
Debe luego habilitarse desde ahí de nuevo el ssh si lo desean.
OMV tendra diversos problemas de compartir archivos y temas de redes al usar la interfaz web unos script que no reconocera adecuadamente las modificaciones especiales para las maquinas virtuales mediante OpenVZ.
Aquí un apaño para los DNS:
echo "nameserver 192.168.1.1" >>/etc/resolvconf/resolv.conf.d/base; resolvconf -u



Pendiente
  • Revisar consumo de OMV en Proxmox: 120-450Mb.
  • Montar mas unidades (esto puede ser muy problematico segun he leido)





MineOS
En construccion. En pruebas
MineOS (http://minecraft.codeemo.com) chupa menos de 100 de ram y ocupa menos de 1Gb pero el consumo de java y del server puede dispararse bastante.

Instalación
Podemos seguir el procedimiento normal de su web para instalarlo en un contenedor OpenVZ
http://minecraft.codeemo.com/mineoswiki ... S_(apt-get)
Las pruebas preliminares fueron satisfactorias pudiendo importar y usar un servidor bukkit que estaba en produccion con todos sus plugins.
Acceso via web: https://x.x.x.x:8080 user:root pass:laderoot
Para usar un servidor deberemos añadir un usuario que no sea root (este sera usado para actualizar perfiles de servidor como son los oficiales o vanilla) para ello mediante ssh:
adduser nombredeusuario #Crear usuario siguiendo las instrucciones en pantalla


Importar
En server config al importar hay que especificar el nombre del profile (tipo de servidor) a mano.
Importar es copiar la carpeta del servidor (con plugins y configuraciones incluidas, no es necesario .jar del server). Esto podemos realizarlo metiendo un .zip en la carpeta que se especifica por ejemplo mediante
scp miserver.zip root@x.x.x.x:/var/games/minecraft/import

MineOS, tras instalacion basica en Debian con un server bukkit ocupa unos 700mb, debemos dejarle un buen espacio extra para los archivos del server, plugins, configuraciones y backups.

Pendiente
  • Virtualizar dandole x espacio limitado (tal vez incluso almacenar mejor los backups en otra instancia de carpeta compartida o ftp de la maquina virtual).
  • Comprobar funcionamiento exacto de sus backups y diversas opciones





Zentyal
En construccion. Por ahora sigo con mi pequeño Dell funcionando a pleno rendimiento.
Posiblemente lo mas comodo sea usar este ppa que recomienda en su pagina oficial para esta tarea instalando sobre Ubuntu 12.04: https://launchpad.net/~zentyal
Muy interesante el proyecto, soy de los que no le gusta linux para escritorio, pero todo el tema de servidores, cluster y virtualización me llama muchísimo la atención.
Tengo en mente tambien adquirir un microserver de hp, mismo precio que un NAS comercial y mucho más versatil.
2 respuestas