vCD

Servidores virtuales ESXi (Nested) y valores de %KAVG

rsz_vmware

Que tal gente, el día de hoy les voy a platicar sobre un problema que tuve en mi laboratorio. Me encontraba instalando un vPOD de Horizon Suite donde incluía Mirage, View, etc, lo interesante es que también estoy incluyendo VSAN para poder mostrar la interacción. Como he platicado en algunas otras ocasiones, mi laboratorio esta […]

Openstack… ¿Que es?, ¿Que NO es?

Openstack

NOTA: Aquí comparto con ustedes lo que yo he aprendido a lo largo del tiempo, no es la verdad absoluta ni pretendo ser experto en el tema (al menos en el momento que escribo este articulo) por lo que si en este articulo notan errores o áreas que puedan ser mejoradas, modificadas, etc. Por favor ¡Comenten!  Recuerden que estamos acá para compartir conocimiento y ser lo mas acertados posible.

Que tal gente, el día de hoy les voy a hablar sobre algo que esta en todos,TODOS lados… que al igual que el cloud computing o “computo de nube” ha sido repetido una y otra vez hasta que nos (Hemos ¿cansado?) familiarizado con el. En esta ocasión estaré hablando sobre Openstack, daremos un vistazo a que es Openstack, que necesidades o casos de uso cubre y donde exactamente estaría situado en nuestro datacenter o en el stack de software y de igual manera estaré hablando de que NO es openstack.

En VMworld asistí a varias sesiones de Openstack debido a que mi interés ha crecido bastante por lo que me dí a la tarea de dejar de ser alguien que lee sobre el tema y pasar a ser alguien que conozca openstack y pueda contribuir a la comunidad de habla hispana sobre este tema.

¿Que es Openstack?

Openstack es un conjunto de proyectos “open-source” o de codigo abierto, en sus inicios quienes contribuyeron con mas código fué rackspace y la NASA. Este conjunto de proyectos y grupo de empresas/desarrolladores tienen como objetivo el construir una plataforma de nube, como tal Openstack podría considerarse como un CMP o “Cloud Management Platform” que permite orquestrar y gestionar distintos aspectos de una infraestructura para dar servicios de nube. Si quisieramos hacer una analogía contra el stack de VMware, Openstack estaría al mismo nivel de vCAC (aunque podría compararse en ciertos puntos con vCD).

Lo interesante de OpenStack es su capacidad de extensibilidad a través de APIs que son “faciles” de consumir (muy al estilo de AWS), públicos y son “vendor free”, por lo que muchos service providers han volteado a ver a OpenStack como un posible elemento clave para su infraestructura. Esta pensado de manera modular de tal manera que en base a los requerimientos de “nube” que se necesiten entregar podemos ir integrando distintos proyectos a nuestra arquitectura.

Existen varios proyectos que conforman a Openstack, vamos a revisar los mas relevantes (para quienes venimos de un mundo VMware):

archopenstackImagen compartida por Scott Lowe @scott_lowe

  • OpenStack Compute (Nova)  – Este componente y/o proyecto de OpenStack se encarga de el ciclo de vida de las “instancias” que si lo comparamos con vSphere serían “VMs”, se comunica con los distintos hipervisores a través de APIs específicos a cada uno (KVM, ESXi, QEMU, Xen, y demás) para instanciar o crear estas VMs decidiendo donde deberán ser ejecutas las mismas y brindando los distintos servicios que estas requieren. Al igual que todos los componentes de OpenStack tiene APIs para su integración y consumo del servicio. En el caso especifico de VMware OpenStack ofrece dos “drivers” vmwareapi.VMwareESXDriver y vmwareapi.VMwareVCDriver para integrarse y poder hablar con vSphere, el primer driver nos permite consumir recursos de ESXi directamente mientras que el segundo permite consumir recursos desde un vCenter (construcciones lógicas como un cluster de DRS).

novahypshow(Cluster de vCenter registrado en Nova)

  • Glance – este servicio nos permite almacenar “imágenes” para nuestras “instancias” o VMs, estas imágenes pueden ser almacenadas en formatos como ISO, OVF, etc.. Puede trabajar en conjunto con Swift para poder contar con almacenamiento sea local,  S3 de Amazon, etc.

horizonimages(imagenes disponibles vistas desde horizon)

glance(Detalles de la imagen a través de glance)

  • Swift – almacenamiento de “objetos”, nos permite almacenar archivos considerados como objetos, pero estos al final del día no serán montados como directorios o utilizados como puntos de montaje, tiene una estructura de contenedores donde serán almacenados los distintos objetos.
  • Cinder – Cinder nos permite presentar almacenamiento de bloque directamente a las instancias, este proyecto surgió como la evolución de novavolume (que forma parte de nova) que permite montar almacenamiento de bloque a través iSCSI directamente a las instancias para que a través de LVM estas puedan utilizar dicho espacio como persistente. De igual manera nos permite presentar NFS a las instancias.

cindertest1GB(Prueba de volumen 1GB)

  • Neutron (antes Quantum) – este proyecto nos permite entregar networking a nuestras instancias, trabaja de la mano de distintos fabricantes para entregar el acceso, por ejemplo VMware a través de NSX, Cisco, etc…
  • Horizon – este proyecto nos ofrece gestión de OpenStack desde una interfaz web, aquí podemos crear instancias, modificarlas, gestionar swift, conectarnos a una consola de VM, etc, etc…

horizonopenstack

  • Keystone – servicio de identidad, maneja el autenticación, acceso y permisos a distintos componentes como nova, swift, cinder, y demás. Tiene su propio API (RESTful) para el consumo e integración con 3eros. Nos permite gestionar usuarios, grupos y roles. Trabaja a través de “tokens” para brindar acceso a los demás servicios una vez que se ha autenticado a un usuario.

rolestenantskeystone

Como podemos ver distintos proyectos conforman el “framework” de OpenStack, en este articulo no tocamos todos los proyectos que están allá afuera, pero estaré escribiendo artículos de mayor profundidad en los proyectos y tratar de hablar sobre los que aquí no fueron descritos.

¿Que NO es Openstack?

OpenStack no es:

  • Un producto – como lo hemos visto a lo largo del articulo se trata de un conjunto de servicios, que constituyen una nube. Es open source, por lo que el código esta allá afuera y lo podemos modificar para nuestras necesidades e incluso contribuir de vuelta a la comunidad. Este conjunto de código es mantenido y controlado por la fundación OpenStack.
  • Virtualización (hipervisor) – pudimos ver que Nova compute habla con hipervisores para poder crear instancias y demás, pero quien virtualiza es el hipervisor en cuestión… ej. ESXi, XenServer, KVM, etc… No nos confundamos, cuando estamos creando un ambiente de nube no necesitamos decidir si vamos a irnos por VMware o por OpenStack (al menos en esa capa de virtualización) ya que OpenStack esta en una capa muy arriba de la nube, podría competir con vCD y vCAC hablando específicamente de VMware y con otras CMPs de 3eros que están allá afuera.
  • 100% Gratis – Recordemos que aunque el código sea abierto y que nosotros podemos construir nuestra infraestructura a partir de OpenStack no quiere decir que los costos para mantenerlo, entrenamiento, troubleshooting, gestión y mantenimiento de capas que estén por debajo (ej. vSphere, networking, storage, etc.) sean gratuitas. Los Distros mas grandes de Linux están comenzando a ofertar su “sabor” o flavor de OpenStack, tenemos a Red Hat, a Canonical, etc. en este caso claramente se tendrá un costo no por el código si no por el soporte y demás.
  • Solo para Service Providers – OpenStack puede ser utilizado por cualquier tipo de empresa, no solo SPs, claramente la modularidad y facilidad de consumo a través de APIs es lo que hace tan interesante OpenStack para los SPs.

Algunos casos de Uso

OpenStack ofrece la capacidad de IaaS muy al estilo de AWS, donde las cargas,instancias o VMs, como nosotros nos guste llamarlas no son del todo tratadas a un nivel tan especifico como lo podemos hacer a nivel de vSphere+vCD, vSphere+vCD+vCAC, esto debido a que no existen mecanismos para el control de los SLAs (alta disponibilidad, control de “noisy neighbors (NetIOC,SIOC, etc)”, donde tal vez el brindar alta disponibilidad lo realizamos a través de la aplicacion/gOS, donde básicamente tenemos que diseñar para el fallo. Ambientes enterprise donde manejemos aplicaciones tier1 que tienen que cumplir al 100% con sus SLAs, tener manera de asegurar el rendimiento y demás (básicamente consentirlas mas :D) en este punto se verían mas beneficiadas de ambientes basados en vSphere.

Les recomiendo TOTALMENTE leer dos artículos de Massimo Re Ferre @mreferre sobre este tema donde podrán entender el principio de como se tratan a las cargas en distintos tipos de nube y cuales son indicadas para que tipo de aplicación y/o servicio:

http://it20.info/2012/12/vcloud-openstack-pets-and-cattle/

http://it20.info/2011/04/tcp-clouds-udp-clouds-design-for-fail-and-aws/

Entonces, regresando al tema de VMware vs OpenStack, mas bien les diría que piensen en OpenStack sobre “(aquí va el hipervisor/CMP)”…

Actualización a Lab

Que tal gente, solo para platicarles que debido a requerimientos de recursos de computo para poder tener ambientes mas complejos y poder estudiar, escribir en mi blog y en otras fuentes me dí a la tarea de actualizar mi laboratorio.

Como parte de este esfuerzo se agregó un nuevo nodo ESXi para sustituir otros 2 nodos de menor capacidad que gestionaban las cargas de Management (vCD, vCenter, vCO, etc). Podemos ver que en la capacidad actual cluster ya se cuenta con 128GB de memoria RAM y 29GHz de CPU.

Screen Shot 2013-07-28 at 11.14.11 PM

Además de la capacidad para poder contar con ambientes mas complejos que consumen mas recursos de computo, también esto fue con el objetivo de poder reducir la cantidad de energía consumida, podemos ver que con los 2 servidores (whiteboxes) encendidos y un servidor que ya se convirtió en workstation (16GB de RAM/proc hexa core) se consumen aprox 420 – 450 Kw (esto en estado “steady” sin carga), falta realizar una prueba de estrés al ambiente para poder determinar los consumos reales en el momento de estar trabajando con el mismo.

imageEl consumo que podemos ver en la imagen esta siendo realizado por los siguientes elementos de mi laboratorio:

* 2 “Servidores” (Whiteboxes)

* NAS PX6 -300D Iomega con 6 discos SATA

*Switch Dell Powerconnect 2708

*Switch TRENDnet teg-s80g (soporte para jumbo frames, tráfico iSCSI)

* Workstation

Características de Whiteboxes:

“Servidor 1”

  • Motherboard Gigabyte X79-UP4 Socket LGA2011 8 DIMMs
  • Procesador Intel Core i7-3820 Quad/HT
  • 64GB RAM DDR3 / 1333MHz (no ECC)
  • 2 Puertos LAN gigabit onboard, intel 82579V/Realtek

“Servidor 2”

  • Motherboard Asus P9X79 Deluxe Socket LGA2011 8 DIMMs             la foto
  • Procesador Intel Core i7-3820 Quad/HT
  • 64GB RAM DDR3 / 1333MHz (no ECC)
  • 2 Puertos LAN gigabit onboard, intel 82579V/Realtek

Workstation

  • Motherboard Gigabyte GA-880GM Socket AM3 4 DIMMs
  • Procesador AMD Phenom II X6 1090T
  • 16GB RAM DDR / 1333MHz (No ECC)
  • 1 Puerto LAN gigabit Realtek onboard RTL8169
  • 1 Puerto LAN gigabit Realtek en tarjeta PCI RTL8169

¿Siguientes Pasos?

Como siguientes mejoras tengo en mente mejorar el networking del laboratorio tal vez con un switch SG300-x para poder contar con capacidades de L3 y poder consolidar el networking en solo un switch administrable.
También se tiene la necesidad de crecer el almacenamiento disponible, por cuestiones de presupuesto en su tiempo adquirí discos duros de 250GB SATA para la NAS Iomega, cosa que pienso crecer a discos de 3TB.

Ya con el tiempo iremos viendo que mas se agrega, tal vez podrán considerar esto como una inversión que no se justifique, pero aparte de utilizarlo para escribir aquí, estudio, y me divierto en el ambiente (si para mi es divertido el tiempo en laboratorio) así que siempre que pueda estaré agregando mejores componentes a este lab.

VCAP5-CID aprobado

Que tal gente, el día de hoy a las 8:00 am presenté el examen de VCAP5-CID (VCID510), y pues bueno quería platicarles un poco sobre este examen. El examen es de diseño, por lo que aquellos que hayan presentado el examen de VCAP-DCD les parecerá familiar el tipo de preguntas, ejercicios de diseño estilo visio, etc. Lo complicado desde mi perspectiva de este examen es el hecho de combinar distintas capas de tecnología, gestión, consideraciones para el diseño, etc debido a que tenemos la primera capa que es vSphere, después otras capas como vCD, vCC, vCO, Chargeback por lo que debemos manejar perfectamente bien el diseño de vSphere y después pensar en “cloud”. El examen consiste de 115 preguntas, yo realicé al rededor de 8 diseños estilo visio y las demás preguntas son de opción múltiple.

Les diría que seguí el blueprint si así lo hubiera hecho, pero en realidad solo me enfoque en el vCAT (vCloud Architecture Toolkit) y fue mas que suficiente, por lo que yo se y he logrado confirmar internamente, el examen esta basado en vCD 5.1, vCC 2.0 y el vCAT 2.0.1, esto se los digo debido a que hay algunas experiencias del examen beta donde comentan que el examen estaba basado en vCD 1.5 (lo cual es cierto pero solo para el BETA).

Desde mi punto de vista es un examen complicado, difícil, por lo que les sugiero que si están pensando en presentarlo se tomen algo de tiempo para estudiar.

La buena noticia para mi es que lo aprobé 😉pero tal vez con algo mas de tiempo habría podido obtener una mejor calificación.

 

Tip de diseño – Dimensionamiento de vShield Edge

Que tal gente creo que la información que estaremos tocando en este articulo es de crucial importancia para un correcto dimensionamiento de un ambiente de vCloud o en el caso de estar utilizando vCNS en un ambiente vSphere. vShield Edge cuenta con 3 distintos tamaños para poder cumplir con distintos requerimientos, vamos a conocer que tamaños tenemos y en donde aplican cada uno de ellos. Es importante saber que aún cuando realicemos la entrega de algún tamaño en especifico, tenemos la opción de poder modificar posteriormente su tamaño.

Si realizamos la entrega de un appliance vShield edge a través de vShield Manager tenemos las siguientes opciones o tamaños de vShield edge:

tamañosedge

Y si lo comparamos en el caso de vCloud Director tenemos lo siguiente:

tamañosedgevcd

Básicamente en el caso de vCloud Director no contamos con el tamaño x-large, solo contamos con compacta y full que vendrían siendo compacta y large en vShield Manager. Pero… ¿Que diferencia existe entre estos distintos tamaños?

  • Compacta – Esta configuración o tamaño de vShield edge cuenta con 1 vCPU, 256MB de RAM y 512MB de Disco duro para almacenamiento de logs. Este tamaño esta pensado para un uso bajo en cuanto a ancho de banda y conexiones concurrentes se refiere, los casos de uso vendrían siendo VMs de bajo consumo en red o ambientes de lab/Desarrollo. Esta pensada para hasta 64,000 conexiones concurrentes y un throughput de <1Gbps. El uso de IPsec VPN o SSL VPN-Plus no es recomendado con este tamaño de apliance debido al overhead o la cantidad de procesamiento que se requiere para manejar dichas conexiones.
  • Large – Cuenta con 2 vCPUs , 1GB en RAM y 320 MB en disco para logs. Este tamaño o configuración esta pensado para soportar hasta 1,000,000 de conexiones con aproximado de 7Gbps y soporta el uso de SSL VPN-Plus y IPsec. Este es el tamaño que debemos de utilizar en ambientes productivos en vCD aunque no esta pensado para VMs con un tráfico excesivo.
  • x-large – Este tamaño de vShield edge cuenta con 2 vCPUs, 8GB en RAM y 320MB para logs. En este caso utiliza un sistema operativo de 64-bits a diferencia de large y compact. Este tamaño esta pensado para mas de 1,000,000 conexiones concurrentes pero no cuenta con soporte para SSL VPN-Plus. No esta soportado para vCloud Director.

Aunque no tengamos soporte por vCD para x-large, podemos realizar el “upgrade” o modificar el tamaño de nuestros vShield Edge desde la consola de administración de vShield Manager, claramente esto no esta soportado.

En la siguiente imagen podemos ver que tenemos 2 appliances de vShield Edge, ambas de tamaño “Large” estas fueron entregadas desde vCD 5.1:

applianceslab

Para poderlas llevar al tamaño x-large es tan simple como seleccionar el appliance en cuestión y hacer click en el menu de “actions” lo que nos permitirá seleccionar “Convert to X-large”:

conv-x-large