Mostrando entradas con la etiqueta ESX. Mostrar todas las entradas
Mostrando entradas con la etiqueta ESX. Mostrar todas las entradas

jueves, 18 de diciembre de 2008

¿Jumbo frames en iSCSI?

Bien es sabido y cacareado por la blogosfera que VMware no da soporte a configuraciones iSCSI o NFS en ESX con jumbo frames (frames ethernet de 9000 bytes) (por otra parte, tampoco encuentro la negativa explícita de VMware al respecto). Hoy, curioseando por la web, me encuentro en este documento titulado VMware VDI Storage Considerations la siguiente frase:

"iSCSI solutions can use either the built-in iSCSI software initiator or a hardware iSCSI HBA. The use of software initiators increases the CPU load on the VMware ESX, while HBAs offload this processing time to a dedicated card (as FC HBAs do). To increase the throughput of the TCP/IP transmissions, iSCSI should use jumbo frames. A frame size of 9000 bytes is recommended."

No hace falta que describa la cara que se me ha quedado....


sábado, 22 de marzo de 2008

Nota técnica: Gestión y sobresuscripción de memoria

Mucho se ha hablado y leído estos días sobre la conveniencia o no de la ventaja de la tecnología de Memory Overcommit usada por VMware. Para los no iniciados, VMware ESX utiliza un conjunto de tecnologías para "ahorrar" memoría en los host, permitiendo que la suma de la memoria asignada a las VM supere la del host que las alberga. A continuación, una pequeña descripción de estas tecnologías:

Transparent Page sharing.

Mediante esta tecnología, ESX identifica págins de memoria con igual contenido entre todas las máquinas virtuales ejecutándose, almacenando una sola copia de la misma. De esta manera, si tenemos varias máquinas virtuales similares ejecutándose (igual sistema operativo y/o funciones similares), ESX permite, dependiendo del entorno ahorros de memoria considerables. ESX identifica las páginas mediante un hash que es usado como clave de búsqueda. Si la búsqueda es exitosa, se procede a una comparación del contenido de la página.
Este proceso es completamente transparente al sistema operativo, por lo que no requiere modificación en el mismo, y con un overhead de proceso mínumo. El proceso no es exhaustivo, ya que ESX escanea las páginas de memoria de las máquinas virtuales de manera pseudoaleatoria. ESX siempre intenta compartir páginas antes de aplicar otras tecnologías de Memory Overcommit.


Ballooning.

Mediante el uso de un pseudodriver, el conocido vmmemctl, ESX, en colaboración con el propio sistema operativo de la máquina virtual, reclama páginas cosideradas de menos valor por el propio sistema opeativo. Básicamente, para el sistema operativo, el vmmemctl es un programa que reclama más o menos memoria durante su ejecución. La memoria reclamada es puesta a disposiión del sisema operativo. El driver utiliza tecnología propietaria que suministra un rendimiento predecible y equivalente a las propias de los sisteas operativos de las VM. Esta técnica incrementa o decrementa la presión derivada de la disponibilidad de la memoria, permitiendo a los sistemas operativos de las máquinas virtuales administrar la misma mediante sus propias técnicas de gestión de memoria. Cuando la cantidad de memoria es baja, el sistema perativo de la máquina virtual decide dué páginas de memoria reclamar y, si es necesario, las envía a su propio archivo de swap en su propio disco virtual.


Swapping.

Si el ballooning no es posible (Proceso de carga del sistema operativo de la máquina virtual, o el driver no está instalado), ESX usa el método tradicional de swapping a disco de la memoria de la máquina virtual. Este método es el más costoso desde el punto de vista de rendimiento y siempre es usado en última instancia. El método de ballooning puede utilizar el swap como "salida" para las páginas reclamadas, o cuando el driver vmmemctl no es capaz de reclamar memoria a la velocidad requerida por la operación del sistema. En determinados entornos de carga, puede darse el fenómeno de doble swapping, esto es, que tanto ESX como la máquina virtual estén enviando páginas a memoria.

El uso de cualquiera de estas técnicas viene definido y limitado por los límites especificados para una máquina virtual. El modo de establecimiento de estos límites definirá si se aplican o no las técnicas de overcommitting. Existen dos métodos para especificar estos límites:

Reservation.

Mediante el método de reservation o reservas, especificamos cuál es el mínimo y el máximo de memoria física que ESX asignará a una máquina virtual. ASí, por ejemplo, si a una máquina virtual de 4Gb de memoria le especificamos 2Gb de limite inferior y 3Gb de superior, ESX nunca asignará menos de 2Gb de memoria RAM del host a esta máquina, pero tampoco asignará más de 3, dejando el giga restante en manos del ballooning o swapping.

Shares.

Esta técnica se basa en la prioridad relativa que asignemos a una máquina virtual. Si una máquina virtual tiene el doble de shares asignados que otra, esta podrá disponer del doble de los recurso disponibles que la otra. Por poner un ejemplo, imaginad una tarta dividida en n porciones. Si uno de los comensales tiene derecho al doble que otro, ste siempre tendrá dos veces más pedazos de tarta que el otro. El número exacto de pedazos de tarta de los que disponga, dependerá del tamaño y el número de porciones de la tarta.

Memory Tax

Esta técnica se basa en penalizar la memoria inactiva frente a activa. La memoria inactiva cuenta más que la activa a la hora de asignar shares. El ratio por defecto es el 75%, es decir, una página inactiva "cuesta" tanto como cuatro páginas activas. Esta técnica evita que las máquinas virtuales (o sus aplicativos) acumulen memoria inactiva.

Las dos técnicas primeramente nombradas son, estrictamente hablando, ténicas de overcommit de memoria, y son en la actualidad, terreno de batalla en la blogosfera entre partidarios de VMware (que incluye estas técnicas) y sus competidores (que no las incuyen).

Ahora viene la pregunta..... ¿Es el overcommiting de memoria para mí?. La respuesta no es simple: Depende.

Depende de nuestro entorno de virtualización. Si tenemos unas pocas máquinas virtuales y no hay previsión de crecimiento, el overcommiting no es para nosotros. Sin embargo, si nuestra instalación tiene o va a tener mútiples host on ratios de virtualización altos y un crecimiento no predecible, donde mezclamos entornos de producción y desarrollo, el overcommit quizá nos salve la vida alguna que otra vez, en especial cuando alguien nos pide un par de entornos de desarrollo para ayer. Todos sabemos que los tiempos de provisionamiento de memoria (periodo desde que a nosotros se nos ocurre necesitarla hasta que llega el pedido) no son precisamente inmediatos. O quizá nos dé algo de grima invertir en memoria para algún host "de mediana edad" que usamos para entornos de desarrollo.

En entornos de Desktop Virtual sí he observado que las técnicas de overcommit dan un fruto bastante apetecible. En mis entorno de pruebas con simulación de carga, he llegado a observar ratios 2:1 sin degradación sensible del rendimiento. En estos entornos de rendimiento variable, donde las cargas individuales de las máquinas virtuales no son lineales y las máquinas virtuales son bastante similares en lo que a memoria se refiere, la versatilidad y escalabilidad, junto con el ahorro de costes (tema especialmente sensible en lo que a virtual desktop se refiere), si aconsejan el disponer de este tipo de tecnologías.

No estoy totalmente de acuerdo con los defensores de el VMware Memory Overcommit, que usan el argumento del "cost per vm" como buque insignia de la defensa del overcommit... pero sí que pienso que es mejor tenerlo disponible que no tenerlo. Tenerlo o no puede ser la diferencia entre tener que comprar memoria y parar un host (o varios) en producción para poder meter más máquinas virtuales o no tener que hacerlo.

Un saludo.

jueves, 27 de septiembre de 2007

VI, Almacenamiento y Backup - I

Tras un par de meses de “descanso”, volvemos al ataque. Este verano ha sido especialmente caluroso en lo que a trabajo se refiere, sin tiempo para “refrescarme” con este blog, así que intentaré compensaros.

El tema que voy a tratar en este post, almacenamiento y backup, es una vieja espina que tengo clavada en lo que a este blog se refiere, y que suscita el mayor número de dudas en los círculos tecnológicos en los que me muevo. El almacenamiento y el backup, a mi parecer, necesita un replanteamiento nuevo en los entornos virtuales, ya que nos presenta nuevos problemas a los que hemos de dar nuevas soluciones.

En lo referente al almacenamiento, más que centrar la discusión en qué tecnología es la mejor (Canal de Fibra, iSCSI o NFS), centraré este post en las estrategias de uso del almacenamiento que, de manera independiente de la tecnología, empieza a presentar desafíos aparentemente no abordables que nos plantean los entornos de virtualización. Tanto si somos adeptos al “Virtual first” o primero en virtual como si somos más conservadores y sólo utilizamos la virtualización para entornos periféricos, tenemos el mismo problema: las VM ocupan espacio en disco. Y el disco no es ilimitado.

Respecto al backup, otro de los temas que más controversia está generando en el mundo de la virtualización corporativa, también hemos de estrujar nuestras neuronas en la búsqueda de una solución para nuestros entornos. No hace falta incidir en la importancia de una adecuada política de backup en cualquier entorno de producción, pero la propia naturaleza de los entornos virtualizados hace que la definición de una correcta política de backup sea dificultosa y dada a la ambigüedad.


Almacenamiento.

Miremos por un segundo nuestro entorno de toda la vida. Comprábamos un servidor, normalmente con un par de discos de 73 o 143 Gb en espejo, y nuestra siguiente preocupación era buscar o arañar espacio en la SAN existente para almacenar los datos. Todo es(era) así de simple. Desde el punto de vista del almacenamiento centralizado, el disco de sistema no existe y, consecuentemente, tendemos a olvidar esos pocos gigas que requiere cada servidor. Un pequeño estudio que he realizado, obligado por la necesidad de definir las plantillas de mis máquinas virtuales, me ha dado los siguientes datos:

Plantilla Base: Windows Server 2003 Estándar/Enterprise

Unidad de disco de arranque: 6 GB
Unidad de disco para swap y temps: 2 – 4 Gb
Unidad de disco para programas y demás 4 – xxx Gb


¿Porqué este esquema de disco? En lo referente al disco de arranque, le asigno 6GB con lo que le damos al sistema el espacio necesario para los ficheros de sistema, espacio libre para las actualizaciones (si no miraros como os queda el c:\windows después de un update), y un par de gigas de oxígeno por lo que pueda pasar. A efectos de backup, resitúo el swap y los temps en otro VMFS (al que no saco backup, al fin y al cabo, tanto los temporales como el archivo de swap, a efectos del sistema, es algo sin transcendencia a la hora de recuperarlo, ya que se regeneran en el primer arranque) cuyo tamaño dependerá de la memoria de la VM. Por último, reservo entre 4 y n gigabytes para la(s) aplicación(es) y dato(s) de la(s) misma(s).

En algunas plantillas más específicas, estas cifras se elevan:

Plantilla Virtual desktop: Windows XP con SP2

Unidad de disco de arranque 32 Gb

Lo que aparentemente parece inofensivo a efectos de espacio, progresa de una manera escalofriante: 20 Servidores virtuales nos requieren la nada desdeñable cantidad mínima de 240 Gb…. ¡!!Sólo para un servidor básico¡¡¡. 100 servidores, escenario nada disparatado – y si no ya veréis -, elevan esta cantidad a .. ¡¡¡¡1.2 TB!!!!. Si a esto le sumanos entre 20 y 25 Virtual desktops nos añaden entre 640 y 800 Gb.

A estos GB, hay que añadir los archivos de swap de VMware de las máquinas virtuales. El tamaño de los mismos dependerá de la memoria RAM del host, de las políticas de asignación de recursos y del uso de memoria de las máquinas virtuales. Por precaución, recomiendo asignar espacio extra en los VMfs según la siguiente fórmula: Nº de VMs x Memoria de las VM. Es decir… en el ejemplo de los 100 Máquinas virtuales con (digamos) 512 Mb de RAM, añadamos otros 50 Gb para el swapping de ESX. Un “filesystem full” en un ESX es una experiencia que no recomiendo a nadie.

Como podemos observar, incluso planteamientos muy conservadores nos obligan a provisionar entre 1 y 2 Tb para nuestros servidores virtuales. Apuesto un virtual switch a que a ninguno de los lectores de este post le sobran, así de pronto, 2 Tb en su SAN.

Tecnologías.

No es un secreto que soy un firme defensor de iSCSI en entornos ESX. No con esto quiero decir que, contra viento y marea, implemente o recomiende la implementación de iSCSI. Mi postura es, sin embargo, “iSCSI first”. Es decir, mi primera opción es, hasta el momento, usar iSCSI antes que cualquier otra tecnología. Sin embargo, hay escenarios, ya sea por la intensidad u otros factores, hay que pararse a considerar FC o NFS como opciones.

En mi personal caso, siempre he usado NFS como depósito de templates, imágenes ISO y VM de “baja intensidad” o de test. Lo hago así porque utilizo el mismo espacio que tengo asignado como servidor de ficheros en un Windows 2003 Server… y teniendo en cuenta que Windows Services for Unix es gratis, consigo ahorrarme valiosos Gb en mi querida SAN de Netapp. Conozco alguna experiencia (la de mi querido Alberto) en que usa NFS sobre NetApp, y aunque en su momento le miré con gesto torcido (“¿Porqué no iSCSI, ya que tienes un Netapp?”), poco a poco voy descubriendo las bondades de NFS sobre Netapp para almacenar VMs, ya que determinadas características de esta SAN/NAS incrementan su valor usando las capacidades NAS de este equipo. El siguiente post de esta serie, en donde describo mi experiencia con Network Apliance y ESX en lo referente al almacenamiento, backup y recuperación de desastres, me extenderé en estas ventajas.

Me reservo el uso de FC para entornos donde el acceso a disco sea crítico y necesite ser absolutamente predecible, es decir, independiente de la carga de CPU de los ESX. No hay que olvidar que el procesamiento IP y SCSI inherente iSCSI es realizado por la propia CPU de los ESX, con lo que en determinadas cirscunstancias, la carga impuesta por la propia virtualización puede penalizar el acceso a disco, provocando picos de muy poca duración (mi experiencia dice que prácticamente inapreciables en cualquier monitor SNMP) que, sin embargo, la VM si percibe. Las configuraciones de clustering de VM son especialmente sensibles a estos picos, lo que ocasiona failovers indeseados e, incluso, caídas del servicio de cluster en entornos Microsoft.

También la simplicidad y economía de los entornos iSCSI puede volverse en nuestra contra. Es toda una tentación ir añadiendo host iSCSI a nuestra red de almacenamiento debido al bajo coste de la solución. En entornos no virtuales, el hecho de que cuatro máquinas accedan a un Target iSCSI a gigabit por segundo (es decir, cuatro máquinas a 1 Gbit contra un target también a 1 Gbit) no es necesariamente peligroso o inconveniente, ya que, raramente, los requerimientos de I/O de esas 4 máquinas puedan exceder la capacidad del target. En un entorno de 4 servidores ESX con 100 máquinas virtuales en simultáneo la cosa cambia.

ESX 3.0.x , en mis pruebas, es capaz de mantenidos de 350 Mbit por segundo y con picos de 650 Mbit/sec sobre iSCSI… si multiplicamos por 4, observamos que el ancho de banda de un hipotético target a 1 Gbit/sec queda unos 400 Mbit/sec por debajo del mantenido esperado. Esto se traduce en timeouts en el acceso a disco de las VM y, consecuentemente, en posibles errores de disco. Tened en cuenta que un iniciador iSCSI por software en una máquina física o virtual “asume” pequeños picos en el acceso a disco y “defiende” al subsistema de disco del sistema operativo (esto también es aplicable a las HBA tanto iSCSI como FC). En el caso de una VM con un driver SCSI virtual, esta tolerancia a picos es inferior. En mi personal caso, intento hacer más tolerante al subsistema de disco de las VM en Windows (especialmente picajoso con estas cosas) incrementando los tiempos de timeout del disco.

Mi fórmula del millón para las redes iSCSI es simple: El target iSCSI ha de tener, al menos, Nº de ESX x 350 Mbit/sec redondeado al Gbit superior de ancho de banda para prevenir estas situaciones.

En el caso de que usemos FC en nuestros ESX, el escenario de 4 a 1 es bastante más tolerante. En primer lugar porque las propias HBA lidian con estas cosas del ancho de banda y los delay asociados… y por otra, porque liberan a ESX del procesamiento del protocolo de encapsulado y almacenamiento, eliminando el cuello de botella inherente al uso de CPU de los ESX.

¿Y los datastores sobre NFS? Pues sí… en principio debería sufrir los mismos problemas que iSCSI ya que, básicamente, es almacenamiento sobre IP. Bueno, no es del todo exacto. Mientras el control del flujo (cuando tengo o no datos) en iSCSI se limita a los comandos SCSI3 (que por definición no asumen demasiados delays y, consecuentemente son menos tolerantes), NFS, dada su naturaleza, los asume como inevitables, así que el cliente NFS ya se las compone para cachear y darle al host ESX una “buena explicación” de porqué ha de esperarse un poco cuando accede al vmdk en cuestión. ESX también se las compone (a través del driver SCSI paravirtualizado que instalamos con las VMware Tools), para que la VM no empiece a gritar “error de disco, error de disco!!!”. Cuidado con confiarse…. Estos “engaños” no nos solucionan el problema… simplemente nos lo hacen más asumible. Mis test indican que, ante la misma carga, la probabilidad de un error de disco en una VM por un acceso congestionado al VMFS es, como mínimo, un 12% inferior sobre NFS que sobre iSCSI, y la de un error crítico que fuerce la caída de un servicio, un 5% inferior.
(Como podéis ver, pocas vacaciones he tenido)

Por el contrario, NFS no permite el uso de VCB ni multipath…. Nada es perfecto.

Copia de seguridad.

Vale, ya tenemos donde guardar las VM… ¿pero cómo protegerlas ante un desastre, un borrado ocasional o una midificación indeseada que requiere la vuelta a una situación anterior?
Un planteamiento inicial, y totalmente válido, es mantener la estrategia de backup que aplicamos a las máquinas físicas, esto es, instalar agentes en cada uno de los servidores e incluírlos en nuestra programación de backup. Esta es, sin duda, la más inmediata y razonable de las estrategias abordables en cualquier entorno, pero no exenta de inconvenientes.
El primero de ellos es, sin duda, el coste. Dado que la virtualización puede - y de hecho lo hace - aumentar exponencialmente la proliferación de servidores y servicios, el coste de los agentes de backup puede multiplicarse y la complicación de nuestro entorno de backup, también. Si nos decidimos por esta opción, debemos tener en cuenta varias cosas.

La primera, y más evidente, es que, a más máquinas, más ventana de backup. Si multiplicamos por dos el número de servidores, quizá no se multiplique por dos la ventana de backup, pero desde luego, se incrementará.

El segundo, y quizá no tan evidente, es la carga extra que supone para los ESX subyacentes. En un entorno CDP (Continuous Data Protection) donde no existe ventana de backup, sino que cada cierto tiempo hacemos un backup transaccional de las máquinas virtuales (por ejemplo, una base de datos donde realizamos un respaldo de logs cada dos horas), la carga de ese proceso (que obliga a la VM a ratios de IO altos cada cierto tiempo, nos obliga a tenerlo en cuenta a la hora de asignar recursos extra de IO de disco y CPU para asumir la carga extra que supone el backup mientras el servidor da servicio a los usuarios. Evidementemente, una planificación correcta a la hora de diseñar nuestra infraestructura virtual debería darnos respuesta a esta situación. En lo referente al uso de red en un entorno de backup, poco podemos hacer, exceptuando quizá el dedicar un virtual switch para el backup - y consecuentemente una tarjeta de red extra en cada VM. ESX no está diseñado para cargas de red extremas (como la que supone un backup), así que esta situación puede alargar los tiempos de backup y, en caso de que este se "salga" de la ventana, afectar a la operación de las VM y los servicios asociados.

En tercer lugar, no debemos olvidarnos de realizar copias de seguridad de la configuración del ESX y de nuestras VM. ESX no es precisamente una plataforma fácil de configurar a mano, y en caso de caída, parametrizarlo "by hand" es una labor tediosa. Una copia del directorio /etc debería bastarnos para recuperar nuestro ESX, y otra de los archivos *.vmx, *.vmxf y *.nvram de nuestras VM. De esta manera, recuperar un ESX no debería ser más complicado que recuperar el /etc, los ficheros de configuración de las VM y registrarlas de nuevo con un comando del tipo:

/usr/bin/vmware-cmd -s register /vmfs/volumes/nombre VMfs/máquina virtual.vmx

Evidentemente, los textos en cursiva y rojo se corresponderán con los datos de cada VM en particular.

Bueno, de esta manera parece que tenemos solucionada la papeleta del backup de nuestro entorno virtual, protegiéndolo contra las contingencias habituales en un entorno físico... pero ¿Corremos los mismos riesgos en un entorno físico que en uno virtual?

Aparentemente sí. Cuando un servidor cae, lo reinstalamos, restauramos el backup y listos. Si se pierde el almacenamieto (por ejemplo, nuestra SAN queda inaccesible), pues rearrancamos los servidores, reconfiguramos la conexión a la SAN reparada, restauramos la copia y a seguir con lo nuestro. Pues no. Si perdemos el almacenamiento donde están nuestras VM (Corrupción de datos, caida temporal del mismo), los discos de arranque de nuestras VM dejarán de estar disponibles, lo que quizá nos oblige a reinstalar de nuevo las máquinas virtuales. Y eso, en un entorno donde las VM han superado ampliamente a las físicas puede resultar inoperante.

Como parte de la estrategia de backup tradicional, hay quien utiliza software de recovery de servidores, que nos permiten restaurar desde el metal el servidor mediante un CD, un arranque PXE, etc. Aún siendo una alternativa de gran valor, no está ampliamente extendida dado su coste y el hecho indiscutible de que no siempre es posible sacar una imagen de un servidor.

Una aproximación inmediata al problema de sacar backups de nuestras VM puede pasar por un backup incremental diario de nuestros VMFS, con su correspondiente full semanal, integrando nuestros ESX dentro de la estructura de backup existente. Eso será posible, evidentemente, si disponemos de suficiente capacidad de cinta u otros dispositivos para almacenar unos diferenciales diarios enormes (Hay que tener en cuenta que el vmdk cambia diariamente - y mucho - Carpetas temporales, archivo de swap (¿recordáis mis templates con el swap y Temp. Separados?) por no incluir lo que tengamos ejecutándose dentro de esa VM).

Si no disponemos de un entorno de backup que maneje los diferenciales a nivel de bloques, tendremos que asumir que cada backup incremental es, en realidad, un full backup.

Un ejemplo claro es VERITAS que, en su configuración básica copia ENTEROS los ficheros modificados. Esto, evidentemente, alargará nuestras ventanas de backup, y hará que nuestro consumo de cintas o similar se incremente enormemente. Sin embargo, en entornos pequeños y/o limitados, puede ser una solución.

Dejo una pregunta en el aire: ¿Nos vale de algo, a efectos de funcionalidad y gestión, una imagen de una VM de hace 1 mes? Espero respuestas.

Existen en el mercado varias soluciones de backup y restore de VM. Unos, como VMware Centralized Backup, suministran una interface para acceder directamente tanto al VMDK como al contenido del mismo de manera transparente y sin necesidad de ventana de backup, actuando como “proxy” para el backup tanto de los contenidos de los VMDK como de los VMDK en si.


Sin ánimo de hacer una descripción del producto, este gráfico ilustra el modo de operación de VMware Centralized Backup. Nótese que VCB NO supone carga para los ESX, aspecto de vital importancia en entornos con uso mantenido alto, y que, a mi parecer, hace las cosas como deben ser hechas: ESX a virtualizar, no a gestionar backups.

Otras, como
ESX Ranger, van algo más allá: Fuerzan un snapshot usando VSS (Volume Shadow service) de Windows 2003 para forzar una imagen consistente (Point in time) y, posteriormente, realizar una copia con posterior compresión.

Como en el caso anterior, esta imagen ilustra su funcionamiento.


Recuperación de desastres.

Pero… ¿qué pasa si lo que necesitamos es recuperar todo nuestro entorno en cuestión de horas. La recuperación de un full backup no me parece la respuesta adecuada. En estos entornos, la replicación de los VMFS aparece como única opción viable. El poder replicar una gran cantidad de datos (como la mencionada en los apartados anteriores) no es, en sí, el mayor de los problemas con el que nos enfrentamos. A mi parecer, que la réplica de esos datos sean entendibles por los ESX de destino como válidos sin intervención manual es, sin duda, el mayor de los problemas. Con esto quiero decir que si confiamos en la capacidad de replicación de nuestras cabinas de disco para una rápida recuperación de desastres, como dicen en mi pueblo, vamos aviados. No será el primer caso que veo en que los ESX de destino se niegan a considerar válidos unos VMFS replicados, obligando a unas cuantas horas de intensivo y aterrador trabajo de re-registro manual de VMFS y VMs.

Conozco incluso un caso, gracias a mi querido
Josep Ros, de una fastuosa replicación entre cabinas SUN realmente estrepitosa.

Cuidado con lo que nos venden: que nos lo enseñen primero.

Vizioncore nos ofrece un producto, vReplicator que permite la replicación a nivel de host y que el siguiente gráfico ilustra:


Esta solución, a pesar de ser efectiva, desde mi punto de vista tiene un solo problema: hace trabajar a los host ESX en algo que no es lo suyo. El cálculo de diferenciales en entornos multiterabit puede ser un gran consumidor de recursos que yo, personalmente, prefiero dedicar a mis VM. No dejéis de probarlo si tenéis ocasión.

Otras soluciones como el MetroCluster de Network Appliance, que suministran entornos de alta disponibilidad y recuperación de desastres me resultan más elegantes y, sobre todo, cumplen con mi premisa principal: Son transparentes para los ESX, liberando a las CPU de estos de la carga inherente a la replicación.


Otra aproximación interesante viene de la mano de Topio, una compañía adquirida por NetApp a finales del 2006, y cuyas soluciones mi estimado Jose me ha mostrado recientemente.
ReplicatorX no es un producto especialmente diseñado para Máquinas virtuales, pero es perfectamente aplicable. ReplicatorX Intercepta todas las peticiones de IO de una VM (o un servidor físico con linux, Windows, AIX, Solaris o demás) y las envía a un servidor espejo. Viene a funcionar como un raid entre el disco de la máquina cliente y el disco de la máquina destino…. A través de TCPIP. Os dejo, como no, gráfico explicativo. Echadle un ojo.

Y ahora la pregunta del millón: ¿Qué pasa si replicamos un error?

Bueno… y hasta aquí por hoy…. Prometo la segunda parte en breve.

Un abrazo.

sábado, 5 de mayo de 2007

Opinión: El hardware y VMware

Como os adelanté en un post anterior ando algo mosqueado con mis amigos de VMware y con los no tan amigos de SUN a cuenta del hardware de la serie M2 de mi amado SUN Fire X4100. Parece ser que los chicos de SUN han decidido que dos de sus cuatro tarjetas en placa sean de nVidia y por lo que he leído, ese chipset promete. Pero claro, no hay driver para VMware ESX. Eso no sería un problema si aquí un servidor no hubiera estado mirando los x4100 M2 para un megaproyecto en el que me tienen liado en el trabajo. Esta máquina ofrece en 1U todo lo que necesito en esta instalación (8 puertos GbitE y FiberChannel) a un precio de risa. Y de hecho, esa capacidad fué decisiva para descartar a otros fabricantes, como el caso de IBM o HP, que, en 1U, me ofrecían un máximo de 6 GbitE y dos FC. Consulto a VMware (a uno de mis infiltrados en tal excelsa empresa), y tras torturarle a base de múltiples y variadas copas, justo antes de caer en el delirium tremens, me confiesa que si, que no veas que p****a, y que lo soportarían antes de finales de año.... ¡¡¡ Finales de año para un driver !!!. Le preguntas a SUN, que tan comprometida dice estar con la virtualización y VMware, y te sueltan que sí, que vale, que mira que cosas, y que porqué no uso Solaris. Imagináos la cara que se me quedó.

Señores de VMware.... ¿tanto cuesta sacar un driver en modo "experimental"?
Señores de SUN... ¿Tanta diferencia de coste había en poner una Intel o una Broadcom?

Seguiré rumiando mi cabreo a solas....

Este problema de VMware se extiende a otros fabricantes y productos, como son las excelentes aceleradoras iSCSI de Alacritech, como la SES 2100 que supondría una gran mejora en el rendimiento de iSCSI de ESX.

A ponerse las pilas todos, que Viridian está cerca.

Saludos.

PD: Si alguien me dice que esto no me pasa con Virtual Server, le respondo que no sólo eso no me pasa con Virtual Server, sino además, las migraciones en caliente, DRS, HA de verdad, acceso concurrente a las luns, mapeo raw de dispositivos ni tampoco ratios de consolidación de 64:1.

Consulta Técnica: Discos Virtuales en ESX - I

Nuestro amigo JC escribió:

"Hola...
Te comento. He estado trabajando con la versión ESX 2 un par de meses y me gusto mucho la forma de administrar los disco, crear particiones, discos virtuales, etc. Pues bien, ahora estoy integrando unas máquinas que tengo que virtualizar en un ESX 3.0 y me he encontrado con un cambio que a mi me parece enorme a la hora de poder administrar los disco. Y digo que a mi me parece porque tampoco he tenido mucho tiempo para investigar todo lo necesario, pero asi como antes a traves del explorador podías hacer y deshacer particiones a discos y luego, esas particiones crearlas como discos virtuales ahora me encuentro con la nueva aplicación "Virtual infastructure client" el cual no me deja hacer todo lo que hacía en la anterior versión. Me da la sensación de que la forma de administrar disco la han cambiado completamente. Ahora tengo la sensación de que no se pueder particionar los disco (si hacer un extend pero no particiones principales) y que en esa particion es donde se crean los discos de las máquinas que quieres virtualizar.
No se si has entendido algo.... je.
Ya me diras.
Gracias.
Saludos."

Bueno, por lo que entiendo, y corrígeme si me equivoco, en ESX 2.x has estado usando raw disks como discos para tus máquinas virtuales. Es decir, has mapeado una partición física a una máquina virtual. Eso se llama RDM (Raw Device Mapping), y, efectivamente, con ESX 2.x era relativamente fácil hacerlo (con especificar en el disco un /dev/sdx era suficiente). Por lo que leo, me dá la impresión de que no has probado los discos virtuales, es decir, los discos que se almacenan como ficheros en el VMFS.

El tema de los RDM requiere un post mucho más amplio que este (valga este como disculpa por no haberte hecho caso cuando escribiste), pero avanzarte que VI3 también los permite (aunque la manera es algo más enrevesada). Me pongo a escribir el post.

Un saludo.

viernes, 4 de mayo de 2007

Nota Técnica: ESX y las VLANs

Interesante artículo, que recomiendo leer, sobre el manejo y configuración de Virtual LANs (VLANs) en entornos ESX. Podéis leerlo aquí.

Estoy seguro que os será de gran ayuda.

Un saludo.

J. L. Medina

lunes, 19 de marzo de 2007

Opinión: De dimes y diretes, de powerpoints y de comparar a dios con un gitano.

De último nuestra galaxia se vé convulsa por la guerra en ciernes, de la cual ya sufrimos alguna escaramuza, sobre quien virtualiza mejor, más rápido, y de paso quien la tiene más larga.

Por un lado, Microsoft con su Virtual Server 2005 R2 y su invisible Hypervisor sobre Longhorn (o como quieran llamarlo). Por otro, VMware con su VI3, por otro XenSource 3.x Enterprise... y tras estos, toda una corte de pretendientes buscando su pedazo de tarta en el suculento mercado de la Virtualización... (Virtuozzo, Paralells, VirtualBox, VirtualIron, etc)

Para darte cuenta de que la virtualización es el futuro del utility computing no hace falta trabajar en Gartner ni tener los números directos de los presidentes de las respectivas compañias. No pasará mucho tiempo antes de que los servidores virtuales sobrepasen a los físicos en número, y si no, tiempo al tiempo.

Como armas en estas batallas se emplean términos la mar de originales y especialmente sonoros: Hypervisor, Paravirtualización, Virtualización por Hardware, Hosted virtualization, baremetal.... etc... todo un conjunto de palabros que nadie tiene demasiado claro qué significan.

También, y si no preguntadle a San Google Bendito, patrón de los PowerPoint Users, la red se ha inundado de comparativas, tablas, blogs, comments, sobre qué tecnología es mejor, más rápida o tiene más futuro.

Y encima, a un seguro servidor de Uds., le han liado en esta guerra, por aquello de que uno tiene experiencia, en una especie de "MacroComité de expertos para el análisis y evaluación de soluciones de virtualización corporativa a gran escala", nombre chulo que no implica aumento de sueldo. Desde ese momento, ha habido bombardeo de comparativas, powerpoints, referencias y demás en mi correo.

Definido el escenario, vaya aquí mi opinión. VMware VI3 sería mi elección para los próximos dos años... y ahora os doy mis razones.

La primera es que si VMware me anunciase mañana un sistema operativo de 64 bits para, por ejemplo, motores de base de datos, respondería lo mismo. Mi elección hoy es Microsoft SQL server al menos para los próximos dos años. Sería arriesgado cambiar una opción con más de cinco años en bases de datos por otra que, por mucho que venga de una empresa solvente, está por salir.

Decidirte por una plataforma de virtualización no es fácil. Es un área de contienda relativamente nueva, donde sólo hay una opción establecida: VMware. El resto acaban de llegar... o están llegando (leáse Hypervisor de Microsoft). Lo de ser Beta User en algo de lo que depende la estabilidad de múltiples servidores dista mucho de ser divertido. Aún recuerdo las "travesuras" de VMware ESX 1.0. En su momento, no tuve alternativa (no había otra plataforma de virtualización) y pasaron 4 años hasta que, por fin, puse algo en producción dentro de un ESX. La verdad es que no veo necesidad ninguna de experimentar en producción con Longhorn, Xen, Virtuozzo, etc, cuando tengo ya una plataforma que a mi me parece fiable, potente y estable. Si, probaré en labs, y si algo me gusta de lo que veo, primero lo apuntaré en mi WishList para ESX x.x y le iré dando a lo nuevo algo de vidilla.

Quien pretende utilizar los benchmark como argumento le propongo el siguiente desafío: Poned vuestra base de datos crítica en un P4 overclockeado a 7,8 Ghz (lo han conseguido unos italianos)... ¿a que no se levantan muchas manos? Pues esa es mi postura ante los pretendidos benchmark de que tal tecnología es mejor que tal otra. Mis pruebas me dicen que las VM de ESX son más rápidas que las de la competencia, pero no es algo que me preocupe en demasía: Prefiero los uptime de meses en mis VM, que un winbench (por ejemplo). Yo es que no tengo ningún winbench en producción. Sólo SQLs, file servers, servidores web, etc.

Por el momento, mis comparativas se reducen a Xen contra ESX.... comparar Virtual Server con ESX es francamente injusto para Microsoft. Esperaré a Longhorn para hacerlas.

Cuidado con ser betatester... en producción. Conozco a algún betatester de SQL Server que tuvo que sufrir constantes problemas hasta SQL 2000 SP2. En especial si la virtualización es una necesidad para nosotros. No nos dejemos impresionar por acuerdos como el de Microsoft y Xen (vaya, que recuerdos me trae de otros acuerdos como el de IBM y Microsoft para OS/2), porque no son más que movimientos estratégicos de Microsoft contra su competencia.

Los murmullos no virtualizan. Powerpoint tampoco. Y prometer futuros Service Pack no hace más estable lo que tenemos.

Dos o tres años no son demasiado tiempo en términos de inversión. Podemos estar esos tres años observando al mercado para ver por donde respira. Pero "sufrir" durante tres años un producto nuevo no me parece una experiencia agradable.

Realidades. Con eso trabajamos.

Un saludo.

Opinión: ¿Sueñan las aplicaciones con servidores virtuales?

Sobre el comentario de Sauron a "Virtualizar: ¿Qué, Cómo, Cuándo y Dónde?". Siempre hay algo que no se puede virtualizar, al igual que siempre hay algo que requiere 4 procesadores y no funciona con dos. En un mundo perfecto, las aplicaciones .NET están bien diseñadas y los query SQL perfectamente estructurados, lo que nos permitiría - en ese mundo perfecto - virtualizar prácticamente todo. Pero el mundo en que vivimos está lleno de código .NET ineficiente, de querys SQL que hacen que nuestras 230 tablas de esa base de datos de 8 Gb se muevan todas al unísono en el mejor estilo lambada. En este mundo, muchas veces el código está como está, y no se puede cambiar (problemas insalvables de coste, tiempos o de simple ego del jefe del proyecto del desarrollo). En esos casos, virtualizar, como mínimo, sólo nos servirá para darle una excusa más al desarrollador para tachar nuestros sistemas de poco potentes. Recordad que, salvo honrosas excepciones, el dogma de muchos desarrolladores dice algo así como que la capacidad de proceso es infinita y la memoria también. Tened en cuenta que si algo vá lento en un flamante servidor físico, irá igual (o peor) en uno virtual. Si el servidor que aloja vuestro exchange tiene una cola de peticiones a disco de aquí a finisterre, virtualizarno tal cual está no va a arreglarlo. Si vuestro pontetísimo servidor de dos vías las tiene ambas al 100%, así seguirán cuando lo hayáis virtualizado. Si vuestro SQL server se come los 4 Gb de RAM del servidor donde se encuentra ahora, se los seguirá comiendo. Virtualizar reduce costes y mantenimiento... los milagros, para la wish list de ESX 10.0

Yo he visto cosas que vosotros no creeríais. Aplicaciones multiusuario con bases de datos multigiga puestas en Access más allá de Orión. He visto a desarrolladores .NET afirmar que un doble opteron con 8 GB de RAM es poca máquina para una base de datos SQL de más de 4 Gb cerca de la puerta de Tannhäuser. Todos esos momentos se perderán en el tiempo, como lágrimas en la lluvia. Hay que pensarse tranquilamente lo de virtualizar. Nada como una buena evaluación de rendimiento de las aplicaciones a virtualizar antes de virtualizarlas. Herramientas no faltan: Analizadores de queries para SQL, profilers .NET, optimizadores para Exchange, etc.

Un saludo.

sábado, 10 de marzo de 2007

Virtualizar: ¿Qué, Cómo, Cuándo y Dónde?

Bueno, aparte del anónimo post sobre qué virtualizar y sobre qué, llevo una semana de disquisiciones filosóficas con compañeros y partners sobre este tema, así que voy a exponer mi opinión. (Por cierto, a los anónimos, dejad un correo o similar)

¿Qué virtualizar?
Creo que no es la pregunta adecuada: La virtualización no se aplica a productos, sino a entornos. Virtualizar un servidor web puede parecer una buena idea, pero si ese servidor es justo donde se ejecuta la aplicación .NET que no admite balanceo y tiene 2.500 usuarios, la idea deja de ser buena. Lo mismo aplicamos a Exchange, SQL server, Oracles, etc. Una vez monté un lab donde teníamos un Lotus Notes virtualizado en el que simulábamos una carga de trabajo de 250.000 mensajes por hora. Lo tuvimos en funcionamiento cinco días, lo que dá un total de treinta millones de mensajes procesados. ¿Pondría yo un servidor de producción con esa carga en VI3?... pues a lo mejor si, pero previo desdoblaje del mismo en dos o tres VM, y balanceando carga. Respecto a Exchange... digo lo mismo. Si en nuestra instalación tenemos un sólo exchange haciendo de client access y de store, puer si, virtualizo, pero desdoblando funciones. Quizá montaría un Exchange para OWA, un SMTP y quizá un par de stores. ¿Tendrá más rendimiento? No necesariamente. ¿Funcionará mejor? Vamos... yo creo que sí. Si al servidor de storage groups le quitas el proceso adicional de cargar con clientes, es obvio que debería ir mejor.

Respecto a los DC... he escuchado de todo... desde que las diferencias de reloj producidas por la virtualización (¿?) afectan al dominio, hasta que las VM no dan potencia suficiente para un DC (más ¿?). Conozco directorios activos completamente virtualizados, y no por ello son menos eficientes. No sé porqué, pero veo la mano oculta de Microsoft cuando no tenía producto con el que competir en la propagación de estos rumores. Y puestos a rumorear, hay quien dice y afirma que Microsoft utiliza VMware ESX en sus departamentos de desarrollo....

La conclusión es que la cuestión no gira alrededor de la virtualización, sino del balanceo de carga de funciones sobre una determinada infraestructura.

¿Dónde virtualizar?
Parece que está de moda usar blades para ESX. Y yo, para no variar, no estoy demasiado de acuerdo. No me parece demasiado lógico utilizar un hardware que comparte I/O entre múltiples servidores para un sistema operativo que necesita un control exhaustivo del hardware para ofrecérselo a las máquinas virtuales. Se me ocurren unas cuantas razones para no pensar en blades para soportar VI3.

Versatibilidad.
El hecho de que la ampliación de un sistema dependa hasta en el menor de los aspectos de un determinado fabricante me hace recordar otros tiempos, y me plantea escenarios donde ESX soporte determinado hardware que el fabricante aún no haya (o haya decidido) no implementar. En estos momentos, donde VI3 aún tiene que mejorar cosas como el soporte iSCSI, atarse a un fabricante de blades que puede o no implementar HBA iSCSI o adaptadores TOE con soporte iSCSI (véase Alacritech), decidirse por una arquitectura absolutamente propietaria (como cualquier host IBM o SUN) me parece arriesgado. Por otra parte, el hardware de conectividad de los blades sigue siendo algo especialito. De acuerdo, hay fabricantes que incorporan switches ethernet y fibre channel de fabricantes reconocidos, pero... ¿os habéis pasado por las páginas de descarga de Cisco o Brocade? Esas "versiones específicas" siempre son pelín distintas... y no dejan de preocuparme esas "pequeñas diferencias" cuando hablo de ESX...

Rendimiento.
Otro tema es el rendimiento. Aún espero que algún integrador comprometido con los blades (no nombraré a nadie) me demuestre que, a igual configuración hardware, el blade dá el mismo rendimiento y escalabilidad (aspectos fundamentales en ESX) que una máquina independiente.

Impactos en el servicio.
Otro aspecto que me preocupa son los impactos en el servicio. Imaginemos que, en un cajón, hemos de actualizar el firmware del chasis, o el del módulo de switch giga que nos dá conectividad: Hay que parar de un tirón catorce máquinas.... Creo que con los problemas que me dá el tener que parar la SAN cuando tengo que hacer lo mismo ya tengo bastante.

Costes.
Pues no, tampoco me parecen tan baratos. Si, efectivamente, el coste del blade es sensiblemente inferior a la máquina de 1 U.... hasta que empiezas a sumar las fuentes adicionales, el dobre switch blade ethernet (¿o no tienen nuestras pizzas de 1 U múltiples puertos ethernet que conectamos a donde queremos?) El doble switch Fiberchannel.... creo que al final no salen tan baratos.

Entonces... ¿Porqué nos los ofrecen?
Razones no faltan. Al fabricante le interesan porque sus costes de soporte son inferiores, al integrador le interesan porque los fabricantes incentivan al canal para que los venda, e indiscutiblemente, hay quien los compra porque efectivamente, hay escenarios donde ofrecen ventajas indiscutibles.

Conclusión.
He instalado blades a lo largo de mi vida profesional: Granjas de servidores web, Granjas Citrix, aplicaciones ASP y .NET... y efectivamente para estas cosas tienen su aquel, pero en lo reference a ESX, sigo prefiriendo servidores independientes, y os recomiendo lo mismo.

Un saludo.

lunes, 25 de diciembre de 2006

Caso Práctico: Virtualización de entorno de Producción - Descripción del entorno

Bueno... lo prometido es deuda, así que vamos con los casos prácticos. En primer lugar, definamos el entorno. Tomaremos, por ejemplo, un entorno de producción mediano/grande, donde pretendemos aplicar la virtualización. Es una compañía de unos 500 usuarios, con un Directorio Activo, y una serie de aplicaciones que se ejecutan en entorno web, a través de servidores de aplicaciones, y otras que utilizan citrix. Como servidor de base de datos utilizan SQL server. Disponen, además, de un portal web para publicar, además de su sitio web, una serie de aplicaciones. El siguiente gráfico muestra el esquema de red.


A continuación os desgloso la configuración de esta red:

En todas las redes, el gateway por defecto es la última IP de cada red. El dominio DNS es "acme.local".

Nomenclatura de los servidores.

Os incluyo también el nomenclator de los nombres de las máquinas y sus funciones. Cuando pasemos a la parte de configuración nos permitirá saber a qué máquinas nos referimos.


La nominación de los servidores de desarrollo es similar a la de Producción y Front end, salvo que los nombres de las máquinas comienzan por "s" .

También os adjunto una leyenda de los gráficos, para que todos sepamos de qué estamos hablando:

Como blogger no me deja subir imágenes grandes, a continuación adjunto "zooms" de cada una de las redes.

Red de Producción - Back End.

Esta red contiene los servidores de back-end de la compañía, aquellos que no deben ser directamente accesibles por el usuario, o que deben ser protegidos contra posibles amenazas internas. Entre estos, incluyo servidores de base de datos, servidores de correo, controladores de dominio, etc. Esta red está separada del resto de la compañía por un firewall.


Red de Producción - Front End.

Esta red acoge a los servidores que ofrecen servicio directamente a los usuarios. También está protegida por un firewall (UTM)


Red de Apoyo.

Esta red recoge todos los servidores que suministran servicios a los entornos de producción o a los PC de usuario. En él se incluyen servidores de actualización de sistemas y antivirus, monitorización, backup y proxies de acceso a internet.


Red de Desarrollo.

Esta red incluye todo una réplica del entorno de producción donde se realizarán labores de test y evaluación de aplicaciones y sistemas, incluyendo un firewall de test.


Red de usuarios.

Esta red concentra a los usuarios de la compañía.


Red VMware.

Esta "red" (ya que realmente no es una red IP ya que nuestros VMware's estarán dispersos por toda la red), contendrá a nuestros servidores ESX. Nótese que las conexiones de red de estas máquinas deben ser troncales 802.1q para todas las VLAN's antes descritas. La configuración del troncal en la electrónica de red dependerá del fabricante.




En el siguiente post describiremos la infraestructura virtual que utilizaremos.

Son bienvenidos comentarios, sugerencias y/o aportaciones.

¡¡¡ Hasta la próxima !!!

sábado, 23 de diciembre de 2006

Nota Técnica: Ejecutar VMware ESX bajo VMware Workstation - I

Bueno... siguiendo la estela de nuestro amigo que intentó montar VMware ESX bajo Workstation, me he encontrado algunas cosillas que quizá serán de interés de todos.

Parece que gran parte del desarrollo de ESX se realiza en VMs bajo VMware (¿qué menos, no?) y, consecuentemente, es "posible" ejecutrar ESX 3.0.x bajo VMware.

Ejecutar ESX 3.0 como VM bajo Workstation presenta varios problemas. El primero, y fundamental, es que ESX se ejectuta en el ring 0 del procesador, y eso es lo que impide, por ejemplo, que OS2 funcione bajo VMware, ya que la emulación, como ya dije, no deja de ser una emulación.

El segundo, el soporte de las tarjetas de red. VMware ESX no soporta PCnet 32 como VMnic... esto impide claramente el usar VMware ESX dentro de una VM como entorno de pruebas y/o documentación.

Pero como ya dije, los chicos de VMware parece que usan Workstation para su entorno de desarrollo de ESX, así que parece que hay un par de "puertas traseras" permitir la ejecución de ESX como VM.

Tipo de sistema operativo.

Como nuestro amigo, asumí que definiendo la VM como "Linux 2.6" debería, al menos, arrancar... pero investigando hay un tipo de SO específico para este modo. Uno de los parámetros del fichero de configuración de la VM nos permite especificar un modo de compatibilidad con ESX.

Tarjetas de Red.

VMware ofrece, en todos sus productos, la emulación AMD PCnet 32 para las tarjetas de red virtuales. En VMware ESX 3.0, como soporte de sistemas operativos de 64 bits, VMware ofrece un driver alternativo, el Intel Pro e1000. Parece ser que es posible usar este driver como alternativa al PCnet 32.

Respecto al tipo de sistema operativo, si en el archivo de configuración substituimos la siguiente línea:

guestOS = ""

por

guestOS = "vmkernel"

Parece que habremos mejorado la situación.

En lo referente a la tarjeta de red, todos los productos de VMware que soporten sistemas operativos de 64 Bits admiten la siguiente línea de configuración:

ethernetX.virtualDev="e1000"

donde la X en rojo la substituiremos por la tarjeta de red en cuestión.

Esto hará que nuestro amado VMware emule una Intel Pro 1000 en lugar de una PCnet 32.

Pruebas realizadas.

Intenté, inspirándome en San Google bendito, virtualizar un ESX 3.0.x (probé desde la beta de 3.0.0 build 23447 hasta 3.0.1 build 32039)... y lo único que conseguí fué un hermoso panic... aunque el VMkernel ha cargado... Os adjunto pantallazo

Comencé a investigar, y según los chicos de VMware, la inexistencia de MTRRS, dado que los procesadores virtuales de VMware no soportan los MTRR's Memory Type Range Registers, no deberían impedir la ejecución de ESX bajo VMware Workstation. ( ver este enlace, este otro, y para acabar, este) ... en cualquier caso, y tras llegar a esta prometedora pantalla....


... terminó en la PSOD (Purple Screen of Death)...


En todos los casos, el resultado es el mismo. Recorriendo esas interneses de dios, he encontrado un link interesante que, como recompensa por esta odiséica instalación no está pero que nada mal.

http://sanbarrow.com/

En cualquier caso, estoy intentando instalar ESX 2.5.4 en Workstation 5.5.3... y no me quedaré sin probarlo con la Beta de Workstation 6.0

Ya os iré contando.

Un saludo.

jueves, 7 de diciembre de 2006

¿Qué es virtualizar? - Introducción

Virtualizar básicamente es eliminar el hierro (hardware) de una máquina o servidor y substituirlo por un software que lo emule, de forma que un sistema operativo pueda "hablar" con este hierro simulado o emulado como habla con el hierro real. La idea no debería resultarnos extraña, ya que, de hecho, hoy los sistemas operativos hablan con los drivers, que a su vez hablan con los firmware de los dispositivos que son los que realmente mueven el hard. Así que esto de software hablando con hardware a través de otro software no debería sonarnos a nuevo. El paso adelante dado por las estrategias de virtualización ha sido abstraer totalmente al driver del hardware, creando una capa de traducción entre lo que vé nuestro sistema operativo y el hardware que realmente hay debajo.

Pero un servidor no sólo es memoria, tarjeta gráfica o controladora SCSI: Un servidor también es fuente de alimentación, una caja metálica de una a varias unidades de rack, teclado, pantalla... y en otro orden de cosas, también es consumo eléctrico, conexiones de red, almacenamiento compartido, mantenimiento de drivers, instalación de sistema operativo, administración... y cómo no... costes.

Una de las cosas que yo siempre me he preguntado es, por ejemplo, cuánto ancho de banda puede manejar cómodamente un servidor Windows. El día que descubrí que a duras penas podía manejar picos de 400 Mb/sec, miré inmediatamente la última factura que representaba el coste de la última tarjeta de 10/100/1000 que le instalé al flamante Cisco Catalyst 6500 que tenía a mi espalda... dividí el coste por el número de puertos y descubrí que el hecho de que ese famante servidor que movía picos de 400 Mb segundo se conectase a Gigabit me estaba costando.... ¡¡¡ casi como el propio servidor !!!.... Cuando me dió por aplicar la misma fórmula al Fibre Channel, al coste de las baterías de la UPS, al precio de la unidad de rack que ocupaba y a la cuota de mantenimiento anual.... descubrí que el hecho de que un servidor hable con el mundo es casi tres veces más caro que el propio servidor.

También, y es interesante pensar en ello, Ni todo el disco, ni toda la memoria, ni todo el uso de procesador de un servidor están siendo usados constantemente... Y ni siquiera se justifican. Hoy te dá por poner un servidor DHCP en tu red, por ejemplo, y el juguete más pequeño que puedes comprar es un Pentium 4 a 2.8 Ghz con 1 Gb de RAM y 250Gb de disco duro... todo eso mientras miras a tu venerable servidor de base de datos, comprado hace tres años y que con su Xeon 3 a 900 Mhz aún sigue dando guerra.

Fué entonces cuando recibí la epifanía mística que terminó de convencerme sobre las bondades de la virtualización: las inversiones en hardware en servidor donde ejecutas el software de virtualización, se reparten equitativamente entre todas las máquinas virtuales. Por poner un ejemplo, dispongo de un servidor con cuatro vías, fuente redundante, 4 conexiones a gigabit, mirror para disco de arranque y almacenamiento SAN donde se ejecutan.... veinticuatro servidores, todos automáticamente equipados con las bondades en lo que a tolerancia de fallos se refiere, y un uso conjunto de red no superior a los 1.5Gb por segundo.


Aquí podéis ver de qué os hablo.

En lo que a rendimiento se refiere, es más que aceptable respecto a nuestras necesidades.

Este servidor es el último de los cuatro que tengo dedicados a virtualizar, donde ejecuto todo un entorno de desarrollo, un par de clusters (si, clusters) de base de datos (SQL 2000 y 2005), el servidor de distribución de antiviros, monitorización, aplicativo de helpdesk, entorno Microsoft Sharepoint, etc...

Bueno... seguiremos hablando.

J.

Empezamos, ¿no?

En primer lugar, presentarme y explicar mis motivos. Mi nombre es Jose y soy de esos viejos dinosaurios en esto de la tecnología, casi veinte años peleándome con un teclado. No os voy a aburrir con mi C.V., pero desde 1.999 (siglo pasado, impresiona, ¿eh?) soy usuario y fanático apóstol de la virtualización, especialmente con los productos de VMware. A principios del 2001, instalé de los primeros VMware ESX que se montaron en este nuestro país, en sitios de bastante importancia. Desde entonces, y a través de todas las empresas donde he trabajado, he aplicado, recomendado, implementado y explotado entornos VMware con total éxito. A estas alturas de siglo, me sigue sorprendiendo la poca penetración que la tecnología de VMware (y de otros, claro) tiene en los entornos de producción de España, y por otro lado, la ausencia casi total de información y casos de estudio de esta tecnología en castellano. Hoy, aunque desarrollo mi labor profesional en un cliente final (donde por supuesto he virtualizado hasta el infinito), sigo asesorando y realizando consultoría para antiguos clientes (y algunos nuevos) sobre múltiples aspectos de la tecnología, incluyendo la virtualización.

Espero que este intento de "españolizar" VMware sirva de ayuda a los lectores de este blog, y os anímo a participar con vuestras experiencias o consultas. Seguro que aprenderemos todos.

Un saludo.

J.