Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

Qué son los Cluster's.

  • 5 Respuestas
  • 4334 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado xyz

  • *
  • Moderador
  • Mensajes: 478
  • Actividad:
    8.33%
  • Reputación 10
    • Ver Perfil
    • Under0cde
« en: Mayo 09, 2017, 10:35:47 am »
Buenas, en esta ocasión veremos que son los Clúster's, tipos de Clúster, características generales.

¿ Qué es un Cluster ? Wikipedia
El término clúster (del inglés cluster, "grupo" o "racimo") se aplica a los conjuntos o conglomerados de ordenadores unidos entre sí normalmente por una red de alta velocidad y que se comportan como si fuesen una única computadora.

Para hacer una idea visual de lo que es un clúster, aquí va una imagen.


El objetivo de desplegar y/o implementar un Clúster tiene por objetivo:
  • Alto rendimiento: Debido a su potencia de cálculo distribuida (Cpu / Memoria Ram / Gpu ).
  • Alta disponibilidad: Tiempo de up-time y on-line cercano al 100%
  • Balanceo de carga: Distribuye la carga entre los "n" nodos configurados.
  • Escalabilidad: Permite añadir nuevos nodos sin tener que bajar todos los equipos.

Elementos que componen un Clúster.
  • Nodos: Son las computadores que componen el clúster.
  • Almacenamiento: Topologías de almacenamiento (San / Nas / Das).
  • Sistemas Operativos: Encargado de gestionar el Clúster (Nodo administrador) y estaciones (Nodos atachados a la red)
  • Conexiones de Red: Ethernet / Fibre Channel / Infiniband (Redes de altas velocidades -- superiores a los 1000Mbps)
  • Middleware: Software que actua de intermediaria entre el Sistema Operativo y las Aplicaciones.
  • Protocolos de Comunicación y Servicios: Deben ser homogeneos -- Depende del tipo de conexión de Red.
  • Aplicaciones: Son las que se ejecutarán al lanzar el Script / Proceso / Tarea que necesita potencia de cálculo.
  • Ambientes de Programación Paralela: Lenguajes de programación que soporten paralelismo.

Hasta aquí tenemos los conocimientos necesarios para comprender lo que significa "Clúster", bien, la variedad de Clústers buscan el mismo objetivo, distribución de carga, tiempo de up-time, potencia de cálculo; ahora, veremos algunas topologías sobre los tipos de clústers que hay.

Clúster de Base de Datos.
[/size]

Ms-Msql.


Explicando la imagen, los Nodos que tienen instaladas las instancias de MsSql tienen una conexión directa, el objetivo es determinar si los equipos estan on-line o no (heartbeat) para responder a las solicitudes; luego se aprecia que existe un array de discos (Shared Disks) donde se realizarán todas las operaciones de Lectura/Escritura; y por otro lado tenemos el equipo cliente el cual realiza las consultas.

En resumen ésta topología tiene:
  • Dos nodos de aplicación (MsSql)
  • Uno o mas nodos de almacenamiento y consulta de información (Shared Disk -- array de discos)

MySql.


Para MySql cambia un poco la distribución de Nodos, en este caso se tiene:
  • Un nodo de Administración (encargado de gestionar todo el clúster)
  • "N" nodos de datos (donde se almacenará la informacíon)
  • "N" nodos de Servicios MySql (son los encargados de realizar las consultas a los nodos y responder a los clientes)

PgSql

Para éste caso, es la misma topología y distribución que MySql.

Aclaración: Los únicos nodos visibles a los clientes son los de consulta, los nodos Administradores y de datos pertenecen a un segmento de red diferente.

Un ejemplo simple.
  • Un nodo Administrador con Ip. 172.16.10.10/28
  • Dos nodos de datos con ip's: 172.16.10.11/28 y 172.16.10.12/28
  • Dos nodos de consultas Sql con ip's: 172.16.10.13/28 y 192.168.10.10/24 también 172.16.10.14/28 y 192.168.10.11/24
    • Los equipos que realizarán las consultas, unicamente ven los nodos de consultas con ip's 192.168.10.10 y 192.168.10.11.

Clúster de Memoria Compartida (Shared Memory) y Cálculos Paralelos
[/size]


El objetivo de un clúster de memoria compartida es distribuir la carga de memoria entre los "n" nodos que se configuren en la red, puede ser de Memoria cache o para realizar cálculos que requieran el uso de memoria.

Como ejemplo, propondremos el siguiente esquema:
Habrá 20 Pc con el siguiente hardware:
  • Cuatro procesadores Intel Xeon E5-4620 8c/16T.
  • Memoria RAM: 256GB DDR3 (ratio 8GB/core).
  • 2 x interfaces 10GbE.
  • 2 x Interfaces GbE.
  • 2 x FC 8Gb/seg.

Al realizar la sumatoria de 20 equipos cada uno con 256Gb de memoria Ram tenemos como resultado: 5120Gb de memoria ram, número más que interensante para realizar cálculos.

Lo mismo obtendremos si sumamos la potencia de todos los procesadores en red.

Tendremos una salvedad, la disponibilidad de los recursos estará brindada por el uso o no del recurso. O sea, si se lanza un proceso por lotes que requiera el uso de 1000Gb de memoria ram y una potencia de cálculo de 10 procesadores, los recursos hardwares libres serán distribuidos a los procesos que vayan quedando en cola [FIFO].

Un pequeño ejemplo gráfico.


Todos éstos laboratorios se pueden realizar utilizando Máquinas Virtuales.

Síguenos en nuestros grupos de Fan page de Underc0de, Grupo de Facebook de Underc0de , Underc0de en Twitter y nuestro canal de noticias Noticias de Underc0de en Telegram

Autoria: @xyz
Saludos ![/list][/list]
« Última modificación: Mayo 09, 2017, 05:00:12 pm por xyz »

Desconectado kob

  • *
  • Underc0der
  • Mensajes: 18
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
  • Skype: asanchezm@partner-ti.com
« Respuesta #1 en: Junio 20, 2017, 02:47:03 pm »
Como se podria realizar esos laboratorios en un ambito virtual me interesa mucho los clusters.
Saludos muy interesante tu tema. Gracias

Desconectado rush

  • *
  • Underc0der
  • Mensajes: 383
  • Actividad:
    0%
  • Reputación 7
    • Ver Perfil
  • Skype: iruxh1773
« Respuesta #2 en: Junio 20, 2017, 04:08:21 pm »
Como se podria realizar esos laboratorios en un ambito virtual me interesa mucho los clusters.
Saludos muy interesante tu tema. Gracias

Como dice el tema puedes hacer maquinas virtuales y configurar clusters, alguna vez trate de usar weblogic de oracle para configurar clusters, pero no recuerdo bien, tendrías que investigar para poder realizar la practica.

Exsisten diferentes servicios en los cuales puedes hacerles clustering, https://geekytheory.com/como-crear-un-cluster-de-servidores-con-apache-spark


Desconectado zoro248

  • *
  • Underc0der
  • Mensajes: 242
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email
« Respuesta #3 en: Junio 20, 2017, 05:16:58 pm »
Muy bueno, esta info es buena tenerla a disposición


Saludos!

Desconectado xyz

  • *
  • Moderador
  • Mensajes: 478
  • Actividad:
    8.33%
  • Reputación 10
    • Ver Perfil
    • Under0cde
« Respuesta #4 en: Junio 20, 2017, 08:27:02 pm »
Hola @kob, complementando la información brindada por @rush.

 Cualquiera de los cluster's podés desplegarlos utilizando máquinas virtuales, teniendo en cuenta lo siguiente:
  • Segmento de red que utilizarás
  • Como recomendación, utiliza en modo host las interfaces virtuales.
  • Características hardware de tu propio equipo.
  • Características hardwares emuladas que utilizarás para cada nodo
  • Sistema Operativo Homogéneo

Saludos !

Desconectado kob

  • *
  • Underc0der
  • Mensajes: 18
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
  • Skype: asanchezm@partner-ti.com
« Respuesta #5 en: Junio 22, 2017, 07:02:30 pm »
Gracias @xyz Lo mirare en estos días ando de un bajon animico

 

¿Te gustó el post? COMPARTILO!