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.