Saltar al contenido

stack

OpenStack Newton for Dummies – Introducción – Newton Networking for Dummies (II)

OpenStack Newton Networking for Dummies – Introducción – Decisiones de Networking (II)

Como pudimos ver en la primera entrega OpenStack está formado para varias componentes que interactúan entre si para ofrecer el resultado final de IaaS y lógicamente esto no sería posible sin la correcta gestión del networking.

Las consideraciones acerca del networking en una plataforma cloud tan potente (y compleja) como OpenStacj pueden ser muchas, pero en este punto nos limitaremos a decidir entre el tipo de despliegue que realizaremos, siendo las opciones:

 

  • Network Provider
  • Self Service Network

 

La opción de Netowrk provider es la más sencilla de todas y básicamente trabajara a nivel 2 (Layer 2), realizando funciones de bridging y switching para conectar la red virtual con la física. Por supuesto tendremos disponible las funciones de segmentación en vLans.

 

OpenStack Network Provider

<imagen cortesía del proyecto OpenStack>

La siguiente opción es la más completa y nos permitirá incorporar a nuestro juego de herramientas la capa 3 (Layer 3), lo que nos permitirá realizar el autoservicio de redes con “overlay” en la segmentación, lo que nos posibilitará por ejemplo el uso de vXlan.

Simplificando podemos decir que la conexión entre las redes virtuales y físicas se realizará usando NAT.

 

OpenStack_SelfService_Network

 

¿Qué opción es preferible?

Pues depende mucho de nuestro entorno. Si hacemos caso al principio Kiss lo lógico sería optar por un diseño Networkk Provider salvo que preveamos necesitar funcionalidades de Self Service.

¿Qué opciones pueden hacer recomendable un diseño Self Service?

 

Pues hay varias cosas que pueden hacer necesario este tipo de despliegue. La primera de ellas es que seamos muy grandes y preveamos necesitar más de 4096 vLans, por lo que necesitaremos hacer uso de cosas como las vXlan, la segunda sería que necesitásemos el uso de funcionalidades como Balanceador o Firewall como servicio (LBaaS/FWaaS)

 

y vosotros, ¿por qué opción optaríais para vuestro cloud?

OpenStack Newton for Dummies – Introducción(I)

OpenStack Newton for Dummies – Introducción(I)

Cloud Conputing es un nuevo paradigma de computación y aunque no es objeto de este artículo explicar que es, o que variantes podemos encontrar, si indicaremos que estas son:

  • SAAS: software as service
  • IAAS: infraestructura as service
  • PAAS: platform as service.

OpenStack

OpenStack es un proyecto apoyado por importantes actores del mundo Cloud (NASA, RackSpace, Huawei, DELL, CISCO, Intel y un largo etc. que puedes ver aquí), que encajaría en la categoría de IAAS, siendo la alternativa comercial más cercana y conocida el servicio AWS (Amazon Web Service) de Amazón. Newton es la última versión disponible de este software.

¿Es realmente una alternativa a Amazon AWS?, bueno hay que matizar que Amazon comercializa un “producto” soportado por su propia implementación de la nube, por tanto OpenStack sería el software que nos permitiría montar un servicio cloud equiparable a Amazon ( lógicamente condicionado por nuestra infraestructura, conectividad, etc.). OpenStack es realmente potente y la mayoría de grandes actores y competidores en el mundo Cloud lo usan.

Explicarlo todo en un artículo sería realmente complicado, por lo que voy a optar por estructurarlo en varios entregas más pequeñas que vayan cubriendo los aspectos principales.

Arquitectura de OpenStack:

Como imaginaréis está formado por un número significativo de componentes, que se reparten las distintas funciones y entre las que podemos encontrar:

  • Controller: es el nodo de control de nuestra plataforma y por tanto deberá estar conectado a la red de gestión de la misma
  • Compute Node: son los nodos que alojan la capacidad de computo en si misma (Hypervisor)
  • Block Storage: es una componente opcional y permite servir almacenamiento de bloque a la plataforma
  • Object Storage Node: son nodos de almacenamiento en forma de objetos. Es una componente opcional

 

Esas componentes se integrarán para dar soporte desde a arquitecturas pequeñas, como a los más complejos despliegues para ISPs.

 

Para nuestro Homelab, podemos partir de los siguientes parámetros básicos:

<imagen cortesía del proyecto OpenStack>

Sistemas Operativos Soportados

Podemos instalarlo en cualquiera distribución Linux, aunque sin duda para una prueba de concepto Ubuntu es la mejor opción, por similitud en los ciclos de desarrollo (disponibilidad de versiones). Centos es otra muy buena opción para probar OpenStack si nos encontramos más comodos con un RedHat Like flavor.

Hypervisores soportados:

OpenStack, soporta un número importante de Hypervisores (con distinto grado de funcionalidades), Xen, XenServer/XCP, KVM, UML, Hyper-V y VMware, siendo hoy por hoy KVM el preferido de la comunidad.

En la siguiente url, podéis encontrar la mátriz de compatibilidad y funciones soportadas por cada uno de los hypervisores.

https://wiki.openstack.org/wiki/HypervisorSupportMatrix

 

Simplivity y Huawei unen fuerzas

El 6 de Diciembre de 2016, Simplivity y Huawei anunciaron un acuerdo para distribuir la plataforma Ommistack sobre los Fusion Server de Huawei, lo cual supondrá mejorar la oferta de HW disponible para uno de los principales actores en el mundo de la Hyperconvergencia.

 

 

La noticia ha sido una de las grandes sorpresas de final de año, más incluso después de los recientes rumores de adquisición de Simplivity por parte de HPE.

El acuerdo en principio solo afecta a los servidores Huawei FusionServer RH2288H V3, que son por así decirlo los pequeñitos de la familia:

 

pero no deja de ser una noticia de impacto, por lo que pudiese significar acuerdos con terceros para el uso de servidores “superiores”, no hay que olvidar que Huawei es uno de los principales players en venta de equipos por encima de 4 vías y cuenta en su arsenal con equipos muy potentes y versatiles, como el x6800 o los RH8100.

 

 

Tampoco deja de ser interesante la capacidad de Huawei para alcanzar acuerdos y colaborar con “competidores” (Huawei cuenta con su propia solución de Hyperconvergencia)

 

Puedes leer el comunicado oficial, aquí.

 

Charlas OpenStack Summit Barcelona 2016

OpenStack, es uno de los productos OpenSource más interesantes que hay hoy en día y aunque los que me conocen, saben que opino que no es una solución apta para cualquiera, no por ello deja de ser una maravilla en el ámbito para el cual fue diseñado (grandes despliegues Cloud).

openstack-summit-2016-barcelona

 

Pues bien a finales de Octubre se ha desarrollado en Barcelona el OpenStack Summit, que ha dejado muchas y muy interesantes charlas que podéis consultar aquí.

4 años (o casi) de Open Stack en números

Open Stack es uno de los proyectos más prometedores relacionados con el despliegue de tecnología Cloud, sus excelentes características y el ser Open Source lo han catapultado a la primera línea de batalla, por lo que como buenos arquitectos de sistemas que somos, deberíamos conocer que puede ofrecernos.

 

Para aquellos que se pregunten, ¿cual es el peso de Open Stack? en el panorama IT actual les dejo esta magnifica infografía.

 

openstack_os_timeline

 

el original de la imagen puedes consultarlo aquí.

Linux IP Stack tuning guide

En general Linux ha mejorado mucho en la configuración por defecto de la pila IP, sin embargo en redes de alto tráfico (los 10 Gbs son cada vez más habituales) es posible que necesitemos personalizarla algo, para mejorar el rendimiento.

La parametrización de la pila ip en Linux se hace en el fichero /etc/sysctl.conf y su contenido para una Centos 6.2 recién instalada es:

# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1

# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

# Controls the default maxmimum size of a mesage queue
kernel.msgmnb = 65536

# Controls the maximum size of a message, in bytes
kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296

¿Qué podemos mejorar aquí?

cuentarevoluciones

 

 

 

 

 

Parámetros net.core.wmem_max y net.core.rmem_max que por defecto tienen un valor de 128KB y aunque este parámetro es adecuado en redes con latencia baja si no es nuestro caso puede que necesitemos ampliarlos

net.core.wmem_max=12582912
net.core.rmem_max=12582912

también sera necesario fijar los tamaños iniciales, mínimos y máximos

net.ipv4.tcp_rmem= 10240 87380 12582912
net.ipv4.tcp_wmem= 10240 87380 12582912

habilitar  window_scaling

net.ipv4.tcp_window_scaling = 1

habilitar timestamp conforme a RFC1323

net.ipv4.tcp_timestamps = 1

número máximo de paquetes encolados para proceso

net.core.netdev_max_backlog = 300000

net.core.somaxconn = 3000000
net.ipv4.tcp_max_tw_buckets = 1440000
¿Son estos parámetros validos para todos los escenarios?

No, cada escenario es diferente y deberemos hacer pruebas hasta conseguir la configuración óptima para todos los elementos de la red.

Recordad que los cambios deben realizarse de uno en uno y comprobando en cada uno de ellos su efecto positivo o negativo.

Se pueden hacer algunas cosas más, pero eso lo dejamos para una segunda entrega :-).

Referencias:

http://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt

OpenStack (III) – SWIFT, arquitectura detallada

Swift es un sistema de almacenamiento con dos características principales, es altamente masivo (capaz de almacenar billones de objetos en nodos distribuidos hasta alcanzar varios petabytes) y altamente redundante, para entendernos sería el equivalente al S3 de Amazon.

Swift es la capa de almacenamiento de OpenStack, pero sus características transcienden las típicas atribuibles al almacenamiento (Redundancia, escalabilidad, Backup, etc.),  aportando funcionalidades adicionales:

  • Capacidad de streaming de medios.
  • Almacenaje de gran número de objetos y de gran tamaño-
  • Almacenaje seguro de los objetos.
  • Almacenaje de imágenes de máquinas virtuales.

¿Cuáles son sus componentes?

  • Swift Account:
  • Swift Container:
  • Swift Object:
  • Swift Proxy:
  • RING:

Los componentes uno a uno.

Proxy Server: los clientes interactuan con la API de Swift a través de los Proxy, aportando estos tolerancia a fallos.

Object Server: su función es manejar el almacenamiento y se encargar de copiar, borrar, etc. los objetos, que son básicamente ficheros binarios almacenados en un sistema de ficheros.

El sistema de ficheros puede ser cualquier soportado por Linux, siempre y cuando tenga soporte para xattr, no obstante hoy po hoy XFS es la mejor opción.

Container Server: se encarga de las estadísticas de uso y de mantener la lista de objetos almacenados, estas listas se almacenan en ficheros SQLite.

Account Server: realiza la misma función que el Container Server, solo que en vez de con los objetos, con los Containers.

RING: bajo este nombre tan curioso se esconde una de las funcionalidades más importantes, mapear los nombres de las entidades (objetos) a su ubicación física real.

Referencias:

OpenStack Swift eventual consistency analysis & bottlenecks

Swift Tech Overview

Cronograma de un año de vida en OpenStack

OpenStack es uno de los proyectos de software libre, con más desarrollo y futuro por delante, para los que no lo conozcáis deciros simplemente que se trata de software para implementar clouds (tanto públicos como privados), que cuenta con importante soporte de la industria, además por supuesto de la comunidad OpenSource.

La infografía es de RackSpace, una de las empresas que colabora en el proyecto.