jueves, 8 de mayo de 2008

XEN: Peripecias virtuales

Y finalmente me puse a probar la virtualización. Sé que llego tarde, pero como un potencial cliente nos pidió un proyecto donde el anterior asesor decidió (por quien sabe qué motivo en realidad) crear una infraestructura virtualizada (9 servidores virtuales repartidos en 2 equipos físicos), tuve que poner manos a la obra y actualizarme un poco...

Ya supongo que todos saben qué es "virtualizar", pero para los que no, la idea es tomar un equipo y particionar los recursos físicos del mismo en forma virtual, creando varias instancias de máquinas virtuales que se comportan como si fueran equipos físicos, pero que ocupan el mismo espacio. Dentro de cada instancia, se puede ejecutar un sistema operativo completo e independiente del sistema base que actúa como anfitrión. Los recursos pueden entonces administrarse de forma tal de que sea posible asignar la capacidad ociosa de una de las instancias a otra que la requiera, en forma dinámica y transparente. El concepto no es nuevo, pero ha evolucionado mucho, en parte debido al hecho de que los fabricantes de procesadores han diseñado tecnologías que hacen que se pueda ejecutar la virtualización con niveles de performance nunca antes alcanzados.

De entre todas las posibilidades existentes para virtualizar (VMWare, VirtualBox, KVM, XEN, etc.), decidí usar XEN, que es el que me parece más apropiado para el caso por ser flexible, relativamente simple y facil de usar. Además, con hardware apropiado es múy rápido y además, por si fuera poco, es Open Source (que quede claro que no es el único en la lista).

Como contrapartida, para usar XEN es necesario tener un kernel compilado especialmente para poder ejecutarlo, aunque eso no es un problema dado que todas las distros medianamente decentes (y algunas no tan decentes) tienen kernels de stock ya preparados para ejecutar XEN.

Y bueno, como no tenía una superpoderosa máquina a mano, tuve que utilizar un viejo Pentium III de 500 Mhz, con 256 Mb de RAM y un disco de 8 Gb. (¿qué es ese ruido?... ¿escucho acaso unas risas de fondo?... ¿cómo que nadie usa ya esos equipos para investigación en este milenio?...) Como software base de prueba, decidí usar el OpenSuSE 10.2. (¿más risas?... hmmm...)

Y bueno... ahí comienza la peripecia.

Antes que nada, hay que aclarar que no es necesario tener una Cray para intentar la virtualización. Estaremos obviamente limitados por el hardware que tenemos, pero eso no significa que no se pueda hacer o que no sea usable. Para poder virtualizar en forma correcta con XEN, necesitamos un equipo que soporte IVT (Intel Virtual Technology, solo presente en los últimos procesadores de Intel, of course) o AMD-V (Advanced Micro Devices Virtualization, solo presente en los últimos procesadores AMD 64 bits, of course too)... y la última vez que miré, el Pentium III no tiene ninguna de esas dos tecnologías disponibles.

Bueno, eso no impide que podamos virtualizar de todas maneras, aunque con algunas limitaciones, a saber:

1) No se puede virtualizar realmente, sino "paravirtualizar", lo cual significa que solo podremos instalar en la máquina virtual resultante el mismo sistema operativo que tenemos en el sistema host (puede ser otra distribución, pero no puede ser otro "tipo" de sistema operativo).
2) No tendremos emulación completa del hardware en la máquina virtual, lo cual puede representar un problema a la hora de administrar recursos, aunque no es realmente tan grave.

Como solo esas dos cuestiones quedaron como secuelas, me dispuse a instalar mi "matrioska", solo para empaparme un poco en el tema, y de paso probar que se podía hacer realmente. Para mejorar la situación, la instalación del XEN la hice desde mi casa en un equipo a 25 kilómetros de donde estaba, conectado a un VNC a través de un tunel SSH, ejecutándose en el servidor host (XEN y la virtualización requieren de interfaces gráficas, así que no se puede jugar sin X11), así que no podía hacer mucho si explotaba. Es lo que se dice un "juego con handycap" :-)

Instalé un OpenSuSE 10.2 base en el equipo que mencioné arriba y empecé a prepararlo para que fuera el host servidor (en XEN también llamado "Dom0"). Leí algo de documentación e intenté hacer unas pruebas. Como toda cosa nueva, tardé en entender cómo funcionaba y como debía ser montada, aunque después de varias pruebas infructuosas con distintas variantes, decidí dejar de perder tiempo y pedir ayuda al amistoso módulo de gestión de virtualización de YaST2 (que si bien facilita la configuración, no permite gran flexibilidad hasta tener lista la máquina virtual).

El YaST2 me dió información interesante referente a la falta de memoria para el primer host virtual, lo cual no me sorprendió en lo más mínimo (OpenSuSE 10.2 apenas se instala en 128 Mb. de RAM, y solo si se le dá algo de swap para entretenerse), así que habiendo aumentado la memoria del equipo a 384 Mb (toda una hazaña, dado que recursos como DIMMs de memoria ECC con paridad para viejas máquinas IBM Netfinity 3000 no son precisamente abundantes en estas épocas), me decidí a volver a intentar.

Una vez que arrancó la máquina virtual (luego de explicarle al YaST como era que la quería configurada, definiendo 150 Mb. de RAM y una imagen de disco de 2GB), intenté iniciar la instalación. El linuxrd virtualizado (primera etapa de la instalación) se quejó de falta de memoria de nuevo y me pidió algo de swap... y como el YaST2 solo crea la imagen de disco sin asignar particiones (cuidado, crea una imagen de disco en un archivo, no una imagen de una partición destino) ni nada que se le parezca, además de no poder acceder a una consola para poder manejar el particionamiento (talvés de burro, puesto que seguramente alguna forma debía haber ya que recuerdo haberlo hecho antes en máquinas "no virtuales", pero que para este caso no encontré manera), no tenía de donde sacar espacio de disco para el swap que el maldito engendro me pedía.

Básicamente, fuí vencido por la paradoja del huevo y la gallina (necesito swap para instalar el sistema operativo, pero como no tengo particion de swap porque no tengo instalado el sistema operativo todavía, no tengo de donde darle el swap...).

Un intento después, modificando la memoria asignada a la máquina virtual tampoco fué satisfactorio, así que decidí explorar mis opciones. Lo único que encontré de interés, fué que podía intentar cargar en la VM el CD de rescate... lo cual podría serme útil.

Y así fué. Cargué el CD de rescate y pude bootear dentro de la VM sin problemas. Y lo que hice fué simplícimo: cree las particiones necesarias dentro de la imagen de disco de la VM, una para el / y otra para el swap. Formatée la particion de swap y la probé para asegurarme de que funcionaba. Una vez hecho esto, volví a bootear la VM para arrancar la instalación, y resulta ser que AHORA SÍ TENÍA de donde sacar swap :-), así que continué la instalación hasta tener una máquina virtual con un OpenSuSE 10.2 adentro de otro, el cual a su vez corría en una máquina de hace casi 10 años atrás... ¡Victoria!

Y bueno, pude probar la virtualización. Manejé el host Dom0 y modifiqué la configuración para reasignar dinámicamente recursos, agregué otro disco al servidor virtual (algo entretenido, dado que hay que crear un archivo del tamaño deseado (con dd se hace rápidamente), formatearlo con el FS que se desée, declararlo en la máquina virtual y montarlo... ¡todo un relajo!) y hasta pude jugar a reventar la máquina virtual por gusto a ver si volvía a levantar. ¡No me había divertido tanto desde que instalé mi primer Linux from Scratch!

¿Qué me queda de todo esto? La verdad que algo de desconcierto... La virtualización parece algo interesante para algunos casos, pero no creo que sea la panacea absoluta. Con tecnologías como blade servers disponible y los precios del hardware en caída libre, lo único que puede obligar a un implementador a virtualizar es el tema del aprovechamiento del espacio y la energía... y ahí me parece que es donde más puede "pegar" este asunto. El consumo energético de un data center es todo menos despreciable, así que ya puedo ver aparecer varios VISP (Virtual Internet Service Provider) por ahí con un solo servidor, un router y un enlace a Internet, sirviendo a varios clientes en un espacio reducido y un consumo mínimo de energía eléctrica... lo cual significa menos costos operativos, felices facturas de U.T.E. y buenas ondas de parte de organizaciones ambientalistas (de las de verdad, no como la de Gualeguaychú).

En definitiva, virtualizar es ecológico y divertido. ¡No dejen de probarlo!

:wq

miércoles, 7 de mayo de 2008

Síndrome de Sumo: No sé lo que quiero, pero lo quiero ya...

Casi puedo escuchar al pelado Luca Prodan gritando como desesperado cada vez que un cliente encarga un nuevo desarrollo.

La programación, como tantas otras ramas de la informática, es una ciencia compleja y extensa. Si bien gran parte de la ingeniería de software es una ciencia inexacta dada la cantidad de factores implicados, la programación ya es otro tema, dado que implementar una solución ya analizada es relativamente fácil, si uno conoce los lenguajes necesarios y la metodología de trabajo apropiada.

Para el cliente, esto es "bullshit", como dicen los yankees. El cliente quiere que todo le funcione, y no solo no tiene idea de cómo se hará, sino que tampoco quiere tener idea. Lo más cerca que el cliente estará del código de su sistema, será cuando le aparezca una pantalla de error que contenga cualquier cadena de texto con por lo menos cuatro o cinco letras y o números que no podrá reconocer como una palabra en su propio idioma, y eso implica que tampoco será capaz de recordar siquiera cuales eran esas letras cuando el programador le pregunte "¿Que decía la pantallita con el error?"...

Un cliente seguro se sentará frente a nosotros con ideas talvés brillantes para su sistema de gestión, y hasta demostrará que conoce a la perfección su negocio al proponer herramientas que hagan las cosas más interesantes e increíbles que se hayan visto, pero lo que sí es seguro, es que no tiene idea de la dificultad que representa en realidad el implementar esas ideas, y además, probablemente haya mencionado algún concepto de forma vaga (a pesar de estar seguro de que está clarísimo para él mismo) y crea que en realidad sabe qué es lo que necesita, aunque nosotros nos demos cuenta de que en verdad no tiene la más remota idea de qué es.

Muchos clientes no tendrán palabras para expresar lo que desean y tratarán de utilizar analogías del mundo real, lo cual no es una mala táctica, siempre y cuando dicha analogía sea aplicable y su resultado sea consistente en cuanto al efecto que se desea lograr. Este tipo de situaciones pueden incluso ser útiles como termómetro para medir la temperatura del cliente durante la fase de desarrollo, si es que nos tardamos más de la cuenta en proveerle una respuesta satisfactoria. Si en lugar de usar hábiles metáforas utiliza eufemismos, talvés sea un buen momento para tratar de cambiar el rumbo de la conversación.

La realidad es que los clientes no siempre tienen la razón. Ese equívoco del marketing y de los negocios no vá muy bien con la informática. Es una verdad tan absoluta como que no se necesita ser un excelente técnico para ganar mucho dinero en la informática. Solo hace falta saber venderle a un cliente algo que supuestamente le resolverá todos sus problemas.

Y ahí parece residir el meollo de la cuestión. El cliente no sabe qué es lo que quiere en realidad, por lo menos no en términos técnicos claros y bien definidos, pero lo que sí quiere es algo que resuelva sus problemas. No importa si basamos nuestra estrategia en conceptos como alta calidad, vanguardia tecnológica, diseño de última generación o técnicas estandarizadas, el resultado debe solucionar los problemas del cliente, y eso es muy dificil de lograr. A veces pueden pasar meses antes de poder llegar a encontrar los problemas reales que el cliente tiene, y muchas veces, cuando lo encontramos nos damos cuenta de que derivan siempre del factor humano, y no de las computadoras, ni de la infraestructura informática que cliente posée.

La resistencia al cambio y a lo nuevo está marcado a fuego en el ADN de los usuarios. Lucharán con eso hasta el cansancio y tratarán de boicotear cualquier intento de que la nueva implementación tenga éxito. No importa si es mejor, si es más rápido o si es más nuevo, es diferente, y solo por eso, se merece el odio acérrimo de quienes deberían utilizarlo. En las multinacionales, el usuario tiene que adaptarse, pero en las pequeñas empresas, suele ser al revés, y de hecho, los usuarios terminan teniendo más poder que el dueño, que es quien paga los sueldos y también intenta mejorar la gestión de su empresa implementando el nuevo sistema en cuestión.

Pero esto se vá del tema. La realidad es que el gerente/director/encargado o quien sea que adquiere el sistema, no sabe cómo funciona ni sabe que es exactamente lo que quiere, pero una cosa es clara, quiere una solución definitiva e inmediata a sus problemas, aunque no sepa expresarla de forma que un técnico capaz de implementarla lo entienda.

Si tan solo yo también supiera cual es esa solución, ya mismo me pondría a producirla...

CTRL+S

domingo, 4 de mayo de 2008

Y la revolución finalmente llegó a Cuba...

Hace ya un mes, Raul Castro levantó las restricciones que impedían a los cubanos adquirir unidades de DVD, comprar legalmente teléfonos celulares, alquilar automóviles, quedarse en hoteles reservados para turistas, iniciar pequeñas empresas, plantar en suelos improductivos pertenecientes al gobierno y hasta comprar computadoras.

Incluso parece que se van a empezar conversaciones con U.S.A. para que finalmente se levante el bloqueo económico y político. Quien sabe... ¿Se imaginan Guantánamo convertida en la nueva Embajada Estadounidense en Cuba?...

Las restricciones tenían como objetivo evitar la aparición de "nuevas desigualdades", algo que en un sistema totalitario e igualitario es malo, sobre todo por lo dificil de controlar que se vuelven los que empiezan a prosperar y darse cuenta de que el mundo es diferente a lo que están acostumbrados a ver en su idílica y utópica isla natal.

Los problemas actuales no van a ser no poder comprar cosas porque es ilegal, sino no poder comprarlas porque es caro. En un país donde el sueldo promedio no supera los U$S 20 mensuales, adquirir por ejemplo computadoras nuevas a U$S 800 es un verdadero desafío. Esperemos que con la nueva libertad de iniciar pequeñas empresas, este problema se resuelva solo.

El acceso a Internet también es un problema, dado que aún sigue restringido. La excusa que dá el gobierno sobre tal restricción es que no hay suficiente ancho de banda como para permitir a toda la población acceder. Ya Chavez está trabajando para tirar un cable hasta la isla para darles el preciado ancho de banda que hoy los cubanos no tienen, aunque no está claro si esa mejora va a realmente resultar en un levantamiento de las restricciones de acceso.

Parece que el igualitarismo por el que tanto se luchó en los sesentas (el cual se logró en base al "redondeo para abajo") y del que tanto se jactan los que siguen viendo a Cuba como el "modelo de país socialista y un ejemplo a seguir" va a desaparecer finalmente, junto con todos los sueños de libertad, independencia, dignidad e igualdad social que hasta hace poco "disfrutaban" los cubanos.

Parece entonces que ahora la paradisíaca isla caribeña se va a llenar de consumistas y capitalistas, algo que Fidel no quería que pasara. Si un cubano se las dá de empresario y resulta que tiene éxito, sus ingresos van a aumentar. Va a poder comprar cosas que hoy no tiene y va a poder consumir cosas que antes no podía consumir. Va a crecer la demanda de objetos que estaba prohibido comerciar y va a renacer la importación, naturalmente que desde países que no tienen acuerdos especiales con los Estados Unidos, of course. Seguramente, como muchos nuevos ricos que aparecen, estos empresarios cubanos no van a saber qué hacer con tanto dinero y se van a empezar a drogar, a emborrachar, a tener orgías desenfrenadas... Bueno, no era tan malo esto del igualitarismo, ¿no?...

Y pensar que aquel triunfo de Fidel el 1º de Enero de 1959 fué el que desató la gran ola de intentos revolucionarios en toda latinoamérica (en Uruguay, llevada a cabo por el MLN), los cuales finalmente no tuvieron el éxito esperado. Esa historia todos la conocemos, a pesar de que muchas veces se insiste en cambiar de posición el huevo y la gallina para que la paradoja resulte menos negativa para los que hoy son considerados como heroes por las mayorías olvidadizas.

Nuestros "revolucionarios" son gobierno hoy, votados democráticamente, aunque hay que ver que las diferencias eliminadas por Castro durante la Revolución Cubana aquí siguen en pié. Son las cosas raras que nadie entiende, como en una de las últimas canciones del Cuarteto de Nos, pero al revés, el cambio que no cambió nada. ¡Menos mal!

¿Estaría yo viviendo de lo que vivo si la historia en Uruguay hubiera sido otra?... Supongo que no. Menos mal que la "revolución" acá tuvo tiempo de madurar (o talvés diluírse), así yo todavía puedo usar mi computadora para escribir estas idioteces en Internet.

Por lo pronto, me alegro de que los cubanos ahora tengan algunas libertades de las que gozamos los otros latinoamericanos, aunque lamento que el igualitarismo social no haya funcionado como Marx hubiera querido. La idea no era del todo mala, solo que es imposible de aplicar en el mundo real sin destruir lo que somos como seres humanos en el proceso. Las pruebas están a la vista... para todo el que quiera mirar y sobre todo, ver.

¡Requiescat in pace, revolución!

jueves, 24 de abril de 2008

Blackberry, Movistar y S.P.F. 2 (El regreso)

Hace unos días, publiqué un artículo sobre los problemas de BlackBerry y S.P.F., y la inhabilidad de Movistar para resolver el problema.

Bueno, dije que iba a hacer un update cuando pudiera y como lo prometido es deuda, acá está.

A exáctamente un mes y diez días de mi llamado a Movistar para averiguar sobre alguna solución para el problema planteado, me llamó una chica que con aire autoritario me indicó amablemente que "los blackberry utilizan el servidor del cliente para enviar correos". Yo, tratando de ser amable también, le indiqué que yo ya había comprobado que lo que ella me estaba diciendo era incorrecto, a lo cual ella insistió varias veces con su cántico, talvés aprendido de memoria en base a la repetición constante que le impusieron los técnicos que le dieron la información, a fin de no olvidarla.

Dada la insistencia cada véz más agresiva de la chica y a su inhabilidad de aceptar que yo tenía pruebas contundentes que indicaban exáctamente lo contrario a lo que ella me estaba queriendo imponer, decidí hacer lo que cualquier cliente razonable hubiera hecho, o sea, agradecerle su asistencia y pedirle algún número de teléfono que me diera acceso a hablar con un técnico directamente, así podíamos entendernos de par a par. La chica, sin cambiar su imperatividad me indicó que llamara al *638 nuevamente (algo que yo ya había intentado antes), que si bien no es un teléfono directo con los técnicos, por lo menos dá acceso a poder hablar con Movinet (la división de datos), así que volví a llamar. Por supuesto que el resultado sigue siendo el misma que la vez anterior: todavía estoy esperando que me devuelvan el llamado (van unos 14 días desde que llamé la última vez).

De todas maneras, ese mismo día le pedí una mano a un amigo que tenía contactos en Movistar y él les escribió un e-mail indicando mi problema, a lo cual yo agregué los datos de las pruebas y las razones por las cuales me parece que el problema no puede resolverse de otra forma que no sea agregando la lista de servidores de BlackBerry a los registros S.P.F. del dominio.

Hoy recibí un e-mail de parte de Movistar indicando que realmente el problema no tiene otra solución. La gente de RIM es inflexible al respecto y no hay forma de que resuelvan el asunto del lado de ellos. Me recalcaron que RIM hace hincapié en la seguridad (me lo repitieron varias veces en el mensaje) y que no tenía nada de qué preocuparme al respecto (si, claro... mi trasero no está en riesgo con mi cliente de todas maneras...).

Bueno, así son las cosas. Por lo pronto, yo INSISTO en que NO COMPREN BlackBerrys si utilizan servidores de correo que hagan uso extensivo de S.P.F....

Si aún así, algún audaz o ignorante (la diferencia es mínima, aunque no puedan creerlo) compra un BB y quiere usarlo con su moderno servidor de correo que hace uso de S.P.F., la "solución" para que pueda enviar correo a través de su BB es agregar al registro S.P.F. de su dominio los siguientes bloques:


ip4:206.51.26.0/24
ip4:193.109.81.0/24
ip4:216.9.240.0/20
ip4:204.187.87.0/24

Con esto, debería poder enviar correo sin que nadie se queje.

Cabe preguntarse si en un mundo cada vez más tecnificado, inseguro y con mayor oferta de soluciones para facilitar la vida de las empresas, tiene cabida un aparato/servicio (BlackBerry/RIM) que diverje el tráfico de correo electrónico (el cual es uno de los temas más importantes y complejos a los que se enfrentan los técnicos y especialistas en seguridad) hacia servidores que NO son controlados ni por el cliente ni por sus proveedores de confianza.

Si, como pueden ver, la seguridad y disponibilidad del servicio NO dependen de los proveedores de confianza. RIM es inflexible al respecto.

Igual, NO ME CREAN A MI, yo puedo no ser tan confiable como lo es RIM. :-)

Los dejo con algunos enlaces de interés:
http://www.blackberry.com/btsc/search.do?contextType=gs&rwTarget=%2Fbtsc%2FrfPlayerWidget.do&searchMode=GuidedSearch&searchString=vulnerability
http://www.vnunet.com/vnunet/news/2162288/blackberry-hack-requires
http://networks.silicon.com/mobile/0,39024665,39153677,00.htm
http://www.news.com/Report-RIMs-BlackBerry-system-down/2100-1039_3-6177072.html?tag=nefd.top
http://blog.ncircle.com/blogs/sync/archives/2007/04/blackberry_rim_outage.html
http://secunia.com/advisories/9663/
http://www.trendmicro.com/vinfo/secadvisories/default6.asp?VName=Blackberry+Corporate+LAN+Connection+Vulnerability
http://www.infoworld.com/article/06/01/04/HNrimwarnsusers_1.html
http://www.bbhub.com/2005/09/27/blackberry-7520-virus-alert/

Así está el mundo amigos. :-)

EOF

 
Gustavo Castro

Crea tu insignia