PROXMOX VE – Virtualizacion empresarial con Software Libre

proxmox_main

PROXMOX Virtual Environment es una solución de virtualización de servidores basada en Debian GNU/Linux. Permite la virtualización tanto sobre KVM como contenedores OpenVZ, gestiona máquinas virtuales, almacenamiento, redes virtualizadas y clústeres HA.

Basicamente es una distribución Linux que viene sólo con los servicios mínimos para de esta forma obtener un mejor rendimiento. Cuenta además con una interfaz gráfica muy sencilla vía Web para realizar todas las operaciones y como extra una API via REST.

Al utilizar OpenVZ se puede cambiar tanto la asignación de memoria RAM como la asignación de espacio en disco en caliente.

Además contamos con un listado de plantillas para generar maquinas virtuales tanto para Contenedores como para KVM.

Para instalarlo se nos presenta una interfaz gráfica la cual realiza pocas preguntas y en menos de 10 minutos lo tenemos instalado.

Apenas lo instalamos debemos ingresar por https a la ip en cuestión puerto 8006

Proxmox_virtualizar_sistemas_operativos_foto_1_th

Proxmox_virtualizar_sistemas_operativos_foto_2Este post lo habia dejado en borrador un monton de tiempo, nunca tuve tiempo de terminarlo, pero la version nueva de Proxmox esta muy buena, es muy simple, con una PC no muy nueva que tenga una buena cantidad de memoria RAM, discos rápidos (lo probe con discos de 15K) se puede hacer de todo y muy fácil, nos armamos nuestrar propias plantillas de Debian o lo que usemos y va como piña !

Configuracion de red en VirtualBox

Mirando un blog encontre un tutorial muy simple de como configurar la red interna en virtualbox con una interfaz virtual de red para que cada vm tenga su ip fisica en la red, ya que como es algo no muy bien explicado en la documentacion oficial de virtualbox lo paso por aca 🙂

http://www.isospain.net/index.php?/archives/861-Configuracion-de-la-Red-en-VirtualBox.html

basicamente es agregar en

sergio@sergio-laptop:~$ cat /etc/network/interfaces
auto lo
iface lo inet loopback

iface br0 inet dhcp
bridge_ports eth0

iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth0 up # line maintained by pppoeconf
provider dsl-provider
sergio@sergio-laptop:~$

agregar la interfaz br0, luego hacer un

sudo /etc/init.d/vboxnet stop

luego agregar la interfaz a vboxnet

sudo VBoxAddIF vbox0 miusuario br0

sudo ifup br0

sudo /etc/init.d/vboxnet start

sudo VBoxManage modifyvm «Maquina_Virtual» -hostifdev1 vbox0

y con so ya esta podemos tener nuestra granja de servidores virutales con virtualbox cada uno con su ip propia real

supongamos que ademas queremos iniciar las maquinas virtuales sin la interfaz grafica de VirtualBox, entonces podemos hacer algo como (mi maquina virtual se llama Debian)

sergio@sergio-laptop:~$ VBoxVRDP -startvm Debian
VirtualBox VRDP Headless Interface 1.5.6
(C) 2005-2008 innotek GmbH
All rights reserved

Listening on port 3389

y luego en el cliente de terminal server de gnome creo que tsclient, nos conectamos a localhost:3389 y listo tenemos nuestras vm sin correr el entorno grafico, saludos 🙂

Provisioning con Xen

Bueno, desde principio de mes que vengo jugando con Xen, probando y rompiendo cosas, jaja y luego eso va a quedar en el entorno de produccion de Iplan, mm algo asi como un servidor de 8 procesadores a 64 bits con 16 GB de Ram y 1 TeraByte de almacenamiento en Raid5 con 6 discos de 250GB. El servidor que estoy usando de pruebas solo tiene 1GB de ram creo y 60Gb o 70GB de disco :S nada que ver jaja, es una linda maquina la de produccion, es un servidor Dell y tiene DRAC jaja asi que puedo ver el booteo y todo remotamente.

Primero la onda era compilar, instalar y dejar corriendo Xen, luego mirarlo exaustivamente y explorar el codigo fuente hasta entender algunas cosas internas.

Luego hacer provisioning, arme algunos scripts que anduvieron pero luego Diegows armo unos posta de verdad con getopt y demas cosas bastante copadas, ya que el tiene mas experiencia en scripting quedo mucho mejor 😀

La onda del script mio seria:

./create-vm.sh id_cliente template nombre_host ip password espacio filesystem
./remove-vm.sh id_cliente nombre_host

Bueno y Diegows lo dejo bien con parametros -h hostname, separo fuciones, un archivo de configuracion etc, bien como deberia ser jaja.

Luego de hacer andar el Xen y demas, y tener los scripts de provisioning, habia que tener una interfaz web o algo para los que van a administrar el server puedan subir y bajar las maquinas virtuales etc jeje y ahi empece a probar cosas locas como Enomalism, que es un administrador web que esta hecho en python y funciona con LDAP.

Conclusion de Enomalism: mmm la verdad no me gusto deja mucho que desear, es bastante complicado programarle plugins, usa los templates kid :S y bue la version libre tienes ciertas limitaciones por ejemplo el soporte SOAP esta en la version paga y demas, las terminales SSH no andan de todo bien que digamos ejem en fin, sin contar que no me gustan python, aunque ahora estoy programando en python jaja mas adelante cuento.

Usa demasiado el LDAP medio para cosas que son al pedo, osea para cosas en las que habia que utilizar un MySQL u otra BD ej para agregar una maquina virtual a Enomalism hay que agregar lo siguiente en el LDAP

dn: cn={mi-imagen},ou=Images,dc=enomalism,dc=com
cn: {mi-imagen}
objectClass: top
objectClass: device
objectClass: enomalism-domu-image
enomalism-dom-adminusers: uid=admin,ou=users,dc=enomalism,dc=com
url: /opt/enomalism/vmimages/{mi-imagen}.xvm

El soporte de configuracion y el redimensionamiendo de disco realmente no funca al igual que los permisos de grupos y usuarios, configuracion VNC, el soporte para LVM practicamente no existe, o sea esta preparado para discos virtuales en archivos tipo loop y demas.

Ademas de eso tambien probe Xenter se basa en un programa client.py que manda datos a un mysql y luego el PHP los interpreta y dibuja una tabla con los servidores corriendo y su status. Tiene un pequeño problema, hace una especie de ereg o foreach diciendolo a lo bruto o a groso modo para entenderlo a simple manera jaja donde lista las maquinas que hay en la salida de «xm list» medio al divino boton, para eso por que no dejar de usar python y usar la funcion system de PHP, o hacerlo todo en Python o todo en PHP y usar el SOAP de Xen, que es con lo que estuve jugando hoy y que no se porque extraña razon no funca, ya que habian problemas ultimamente en la red de la empresa :p

Despues probe dtc-xen m creo que la url es gplhost.com o algo asi no recuerdo bien, baje la version del CVS mm pero en el Makefile habia un rm -rf / o algo asi que me empezo a reventar el server, y me di cuenta recien cuando hice un ps ax :S no saben como transpire ese momento jaja y bue ahi descarte ese script o escript jaja como le digan por que la verdad hace desastre :p asi que sin comentarios para este script. Luego de eso hubo que hacer un apt-get –reinstall install a todos los paquetes que estaban por que como lo agarre a tiempo solo borro y /etc /var , igual eso fue un desastre que tomo como 30 minutos de carga operativa mas :s mierda 30 minutosss valiosos !!! de vida tomo recomponer eso.

Ah y tambien probe Argos, pero no me acuerdo bien que era lo que no andaba, estaba bueno como estaba armado, pero es medio al pedo como dije antes con todosss los demas clientes armar un daemon y un cliente para a su vez ese daemon que comunique con el daemon xend, como que es medio redundante la cosa no?.

Y bue con lo que estoy ahora es armando un script en python que lista las VM que hay en la salida de xm list, y ustedes diran si el boludo dijo por que no usar un SOAP en vez de hace xm list, y bue le cuento habia tanto lio con la red y no se que mas y el SOAP por tcp no anduvo no se por que, solo andaba por sockets unix o sea sin autenticacion y desde la maquina local y bue dije para eso lo hago asi a lo «atado con alambre» sacando la salida por comandos y ya ta jaja, lo que hace el script saca el consumo de CPU y genera un grafico con rrdtool, igual todavia falta bastante por hacer, y hay que hacer un script que muestre la memoria consumida y demas.

Comentario personal si tenes que hacer provisioning o lo que sea con Xen, las interfazes web libres todavian dejan mucho que desear mejor aprendete el SOAP de Xen y perderas menos tiempo, y si vas a usar una interfaz de usuario Xenman que la probe y me olvide de comentarla, funciona con gtk y es un script en pygtk creo o algo asi no le di mucha bola, lo que no me gusta es que todas las interfazes incluyendo esta quieren incluir provisioning o sea crearte las VM y demas cosas que deberia hacer uno mismo y no esta interfaz o sea las interfacez solo deben ser para administrar los recursos no intentar crearlos o algo por el estilo, las VM se las tiene que crear uno mismo y saber que tienen, o crearte un script que lo hagas de cero y te lo conozcas de «P» a «PA» y sepas exactamente lo que hace, asi que por ahora las interfacez de Xen y todas esas cosas tan muy verdes para produccion, ah y me olvidaba hoy Diegows puso a andar el VNC pero no solo para maquinas full virtualizadas si no para maquinas paravirtualizadas tambien, osea se puede ver la consola linux paravirtualizada con el booteo y todo por VNC jaja muy bueno.

Otro contra para Xen es la documentacion :p jaj no hay casi nada por eso precisamente fue muy divertido Xen ya que para aprender tuve que hacer como cuando era chico y tenia 12 años y miraba todos los sources de lo que me bajaba y compilaba a mano horas y horas en mi slackware 7 jaja, ya que ahora con tanta documentacion foros y listas de correo la gente se malacostumbra y cree que le tiene que preguntas abolutamente todo a todo el mundo y peor aun cree que le tienen que dar una respuesta.

Bueno solo son mis humildes palabras, los comentarios y experiencias seran bienvenidas.