SafeChildren Banner

Havoc Oracle Solaris Experts

jueves, 24 de diciembre de 2009

Diferencias entre LDOM, Dynamic System Domains y Solaris Zones

Introducción
En la actualidad el tema de la virtualización está más de moda que nunca, sin embargo, cuando hablamos de las diferentes tecnologías que Sun Microsystems nos aporta tenemos algunos problemas para ver las diferencias. Por ello, he creado este post con la intención de mostrar todos los tipos de virtualización que nos ofrecen y las principales diferencias entre ellos.

Tipos de Virtualización
Antes de comenzar con el post sobre las diferentes soluciones, vamos a definir qué tipos de virtualización o particionamiento disponemos. Yo las he clasificado en tres tipos:
  • Electrical. Particionamiento a nivel más bajo de máquina que se produce por una división eléctrica de los componente de forma que son completamente independientes
  • Firmware. Particionamiento a nivel de firmware que produce una separación lógica dentro del controlador del sistema (sin entrar en el Sistema Operativo)
  • Software. Particionamiento o Virtualización de los recursos del sistema mediante la separación lógica por software dedicado
Partición Eléctrica, Dynamic System Domains
Este tipo de particionamiento está incluido en la gama alta de Sun y también es conocido como Dominios <en el argot castellano>. Cada servidor está compuesto de una o varias Physical System Board  (PSB) y cada una de estas PSB puede estar lógicamente dividida en 1 unidad (no dividida) o lógicamente dividida en cuatro unidades. Si no está dividida, entonces se hace referencia como Uni-XSB; si está lógicamente dividida en cuatro, se hace referencia como Quad-XSB. Cada una de las divisiones lógicas se llama Extended System Board (XSB).

Un dominio puede estar compuesto con cualquier combinación de XSB disponibles en el sistema. Debemos tener en cuenta, que esta definición de partición lógica por PSB se aplica a high-level (M8000/M9000) en entry-level(M3000/M4000) una PSB siempre es Uni-XSB, en definitiva, una XSB debe ser CPU+RAM+IO.

Vamos a ver si podemos explicar este detalle con mayor claridad. Si tenemos una M4000 con dos SysB cada una de ellas con 2 CPU UltraSPARC VII QuadCore y 32Gb cada una (un total de 64Gb), como hemos explicado antes, es necesario tener CPU+RAM+IO y no es divisible, así que en el caso de la M4000 al contar con 2SysB es como si la máquina estuviese partida en dos partes simétricas y por lo tanto, eléctricamente divisibles, así que esta máquina soporta hasta 2 dominios siendo las configuraciones posibles las siguientes:
  • Un único dominio
1[2]SysB+32[64]GB RAM+IO (Dominio1)
  • Dos dominios
1SysB + 32GB RAM + IO (Dominio1)
1SysB + 32GB RAM + IO (Dominio2)
Si por el contrario sólo disponemos de una única SysB, únicamente podemos hacer un dominio, además las configuraciones mezcladas no están soportadas, por ejemplo, dominioA 3CPU+(32+16GB RAM), dominioB 1CPU + 16GB RAM, ya que la división tiene que ser "lineal"



 Así mismo, cada máquina que soporta Dynamic System Domains tiene sus propias limitaciones y os recomiendo leer la documentación específica de cada una de ellas.

Este tipo de particionamiento nos proporciona redimensionado en caliente de los recursos de los dominios y, además, una separación completa de máquinas. En definitiva, hemos partido nuestro chasis en n máquinas completamente independientes, por lo tanto, con diferentes kernel, parches, etc.

Firmware, LDOMS Logical Domains
Un escalón por encima nos encontramos LDOMS <Logical Domains> que nos proporciona una virtualización a nivel de firmware y por lo tanto, en teoría muy estable. Este tipo de virtualización nos proporciona aislamiento e independencia de kernel ya que estamos exponiendo un boot enviroment diferente para cada uno de los dominios.

Este tipo de virtualización está compuesta de una parte a nivel de firmware y una instalación de Solaris especial llamada Domain Controller que será la encargada de gestionar los Logical Domains creados. Podemos comparar <aunque no es exactamente igual> este tipo de vitualización a la que se realiza con VMWare ESX ya que nuesto SPOF <Single Point Of Failure> se encuentra en esta instalación concreta de Solaris que hace de Controlador, puesto que si se produce un panic en él, los Logical Domains dejarán de ser operativos.

Dentro de esta arquitectura, nuestro hypervisor se encuentra a nivel de firmware, y nuestro control domain <primary> a nivel de Sistema Operativo, en definitiva, podemos decir que nuestro Control Domain es el encargado de gestionar los dominios y comunicarse con el firmware.

Existe diferentes tipos de Logical Domains, como ya hemos comentado siempre debe existir como mínimo el Domain Controller y a partir de aquí podemos tener los siguientes tipos:
  • Control Domain. Gestiona los Dominios y se comunica con el Firmware. Siempre debe existir uno.
  • Service Domain. Proporciona servicios al resto de los dominios, como por ejemplo, red virtual, discos virtuales, etc. Este tipo de dominios son los productores de servicios
  • IO Domain. Este tipo de dominio tiene acceso directo al IO, por ejemplo, PCI, NIC, etc. y puede compartir <exportar> el servicio si quiere
  • Guest Domain. Este tipo de dominio hace uso de los servicios proporcionados por los demás, es decir, es un consumidor y es gestionado por el Domain Controller
Este tipo de virtualización nos permite redimensionado en caliente, y diferentes versiones de kernel, parches, etc. El comportamiento del firmware proporciona un OpenBoot diferente para cada uno de los lógical domains y, teóricamente, es posible instalar "cualquier" Sistema Operativo con arquitectura SPARC.

Además, el soporte de LDOMS en la actualidad sólo está disponible para los procesadores UltraSPARC T1, T2 y T2+.

Software, Solaris Zones
Aunque es el método de virtualización probablemente más conocido de Sun, como ya hemos comentado antes no es el único. Las Zonas de Solaris nos permiten instanciar el Sistema Operativo con diferente configuración de: Hostname, ip, users, devices

De esta forma, tenemos un único kernel  compartido aunque aislado. Un panic en una zona "no tiene" por qué afectar a otra. Sin embargo, seguimos teniendo el mismo SPOF, en este caso, la instalación base del sistema.

Esta funcionalidad es la suma de Resource Manager más Kernel Isolation introducida en la versión 10 de Solaris. Cada instalación de Solaris 10, tendrá como mínimo una zona global y tantas zonas non-global como queramos <o pueda nuestro host>

Al igual que sucede con LDOMS, nuestra zona global será la encargada de gestionar las demás y, a diferencia de LDOMS aquí no hay productores y consumidores.

La principal diferencia, a parte del kernel compartido, está en la reconfiguración dinámica que no es posible. Es necesario reiniciar para que cualquier cambio en la configuración de la zona se vea reflejada.

Podéis encontrar más información en algún post sobre Gestión Básica de Zonas.

    Software, VirtualBox
    Por último, sólo nos queda comentar el hypervisor de Sun para tecnologías x86 similar a VMWare. Por ello, no vamos a entrar en hacer un análisis detallado ya que asumo que la tecnología de VM es conocida por todos.

    Y ... cuál utilizo?
    Bueno, esto es una pregunta con dificil respuesta. Depende mucho de: Dinero y Necesidades. Si tenemos necesidades de reconfiguración en caliente,por ejemplo tenemos mucha carga de CPU la última semana del mes y el resto es mínima, y disponemos de arquitectura Mx000, entonces, nuestra solución pasa por utilizar dominios.

    Si queremos consolidar aplicativos web, correo, j2ee y tenemos máquinas CMT aka T1, T2 o T2+ la solución pasa por utilizar LDOMS y sobre algunos Solaris Zones.

    Por último, si queremos trastear y necesitamos entornos de pruebas rápidos y sencillos, las zonas son nuestro gran aliado.

    Y mi RDBMS dónde encaja? Bien, mi recomendación es que no se sitúe Oracle en Zonas de Solaris si estamos en un momento de expansión ya que Existen Problemas y Limitaciones de Oracle en Zonas además, si disponemos de hardware SPARC y necesitamos alta disponibilidad, es más fácil otro tipo de Soluciones.

    Conclusión
    Espero no haber soltado un rollo muy largo, pero creo que una explicación sobre las diferentes posibilidades que nos ofrece Sun son muchas y variadas, más allá de las Zonas de Solaris. Además, prometí que escribiría sobre el tema, y así lo he hecho,

    Las ilustraciones han sido obtenidas de los documentos de Sun Microsystems "Guide to LDOMS" y "Mx000 Administation Guide"

    Referencias

    12 comentarios:

    1. Maestro, Si tengo un SunFire V880, con procesadores de tecnologia UltraSPARC III, puedo virtualizar, segun lo que he leido no puedo con LDom, pues solo admite tecnologia T1 o T2. Estoy en lo cierto?

      Un saludo!

      ResponderEliminar
    2. Hola Mauricio,

      Si, como bien dices LDOM sólo se puede utilizar en UltraSPARC T y no en UltraSPARC III. Para esa máquina, tienes la opción de Solaris Containers (Zonas) sobre Solaris 10.

      Los Dynamic System Domains no están soportados en esa máquina, una pena ... .

      Un Saludo,
      Urko

      ResponderEliminar
    3. Urko!

      Mil gracias por tu pronta respuesta!! Entocnes voy a utilizar tu manual para instalar Oracle en Zonas!

      Un saludo! y otra vez Gracias!

      ResponderEliminar
    4. Hola Mauricio,

      Te dejo un post aquí que escribí sobre las "limitaciones de reconfiguración en caliente" que tenemos al ejecutar Oracle RDBMS sobre Zonas.

      Aunque te puedo decir, que tengo muchos Oracles sobre Solaris 10 en Zonas y están totalmente certificados.

      Aquí te dejo el Post

      http://sparcki.blogspot.com/2009/10/problemas-y-limitaciones-de-oracle-en.html

      ResponderEliminar
    5. Hola Urko tengun una duda es posible activas una auditoria basica que solo apunte a historial de comandos por RBAC a traves de LDOM, debe crearse una particion en la zonaGlobal para asi no existe problemas de espacio?

      ResponderEliminar
      Respuestas
      1. Hola Anónimo,

        Si estás utilizando LDOM, lo mejor es crear un dominio I/O donde puedas establecer un mayor control sobre el acceso y tamaño de auditorias.

        Espero haber respondido a tus dudas,

        Un Saludo,
        Urko

        Eliminar
    6. El post me ha parecido muy útil, hacen falta más documentos así de prácticos y menos teoría...mucha gente tiene servidores SUN y de cara a la virtualización muy poco se hace por falta de recursos y comparativas! enfangarse en montar una infraestructura sin saber bien como irá o las garantías de rendimiento para luego tener que hacer marchas atrás.. Una pena que haya encontrado tu blog tan tarde! Estamos migramos físicos de Solaris 10 con sus respectivas zonas 8 a linux :-(

      Te pongo una chincheta al post, ha estado muy bien! :-)

      Un saludo.

      ResponderEliminar
    7. Hola Mike,

      Me alegro mucho de que te guste. Lo escribí con la intención de "aclarar un poco" las diferentes posibilidades de virtualización de máquinas Sun, porque ... como bien dices, algunas veces, nos metemos en cosas que luego no sirven ...

      Es una pena que os paséis de Solaris a Linux ... :'( espero que pronto hagáis un "rollback"!

      Un Saludo,
      Urko

      ResponderEliminar
    8. Buenos dias ;

      Urko

      Como puedo instalar un linux en un M3000 DE SUN

      Un Saludo.

      ResponderEliminar
    9. Hola Anónimo,

      La verdad es que de Linux no tengo mucha idea, pero ... me imagino que tienes que buscar una distribución compatible con UltraSPARC y hacer un "boot cdrom" desde el prompt.

      El tema de particionar los discos, ten en cuenta no empezar en el cilindro "0" -recuerdo que había algún problema-

      He buscado un poco por Google y Ubuntu funciona sobre UltraSPARC así que no creo que tengas mayores problemas ..

      Ya lo siento no poder ayudarte más ...

      Un Saludo,
      Urko

      ResponderEliminar
    10. Gracias por tu Blog, es fantástico.
      Rodolfo

      ResponderEliminar
    11. Hola Urko,
      Nos ha surgido la necesidad de hacer una migración de de un 25K a 2 T4. El 25K dispone de varias zonas, algunas de ellas con Solaris 8 y Suncluster.
      Entiendo que la solución parte por instalar un LDOM en cada T4 y a partir de ahí crear las zonas correspondientes. Supongo que al migrar las aplicaciones contenidas en dichas zonas, no será necesario recompilarlas (están desarrolladas en C), y la parte de SunCluster unicamente habría que adaptar la configuración de red (ya que van a otro CPD distinto).
      Un saludo y muchas gracias,

      PD - Muy buen blog!!!

      ResponderEliminar