cp-20 - Universidad Autónoma del Estado de Hidalgo

Anuncio
CP-20
PON 44
ALTA DISPONIBILIDAD EN CLUSTER BAJO CENTOS
Raúl Hernández Palacios1, Waseem M. Haider2, Víctor Tomás Tomás Mariano1, Felipe de Jesús Núñez
Cardenas1
1
Universidad Autónoma del Estado de Hidalgo - Escuela Superior Huejutla. Corredor Industrial S/N, Parque de
Poblamiento, Huejutla de Reyes, Hidalgo. CP. 43000. Tel. 771-7172000, ext. 5880,5881, E-mail:
[email protected], [email protected]
2
Centro de Investigación en Tecnologías de la Información y Comunicaciones, Departamento de Arquitectura y
Tecnología de Computadores, Universidad de Granada, España. E-mail: [email protected]
Abstract--- The availability of design and
implementation of a cluster for high-performance,
working with parallel file system using PVFS via a
RAID on a Linux platform makes the distribution
process more reliable and low cost, and that combining
the use of a software RAID-10 and PVFS2 more fault
tolerant storage system, avoiding the minimum data loss
and working through replication within the RAID
system. This is intended to cover any expectation
regardless of the type of process running as it will be able
to adapt to their needs, and to expand the number of
nodes in the cluster to obtain scalability, better
performance and greater performance platform.
Keywords--- parallel file system, RAID, replication,
cluster.
INTRODUCCION
Actualmente las aplicaciones necesitan un procesamiento
alto que las computadoras personales actuales no cubren.
La computación de alto rendimiento basada en clúster
ofrece capacidades de cómputo a gran escala, en la cual
involucra desde un sistema de archivos que se encarga de
almacenar los datos en los nodos del clúster, hasta la
comunicación de los nodos del clúster. La E/S se ha
convertido en un aspecto importante en la computación
de alto rendimiento ó altas prestaciones.
ROC&C’2012 / CP-20 PONENCIA RECOMENDADA
POR EL COMITÉ DE COMPUTACIÓN DEL
IEEE SECCIÓN MÉXICO Y PRESENTADA EN LA
REUNIÓN INTERNACIONAL DE OTOÑO, ROC&C’2012,
ACAPULCO, GRO., DEL 11 AL 15 DE NOVIEMBRE DEL 2012.
En años recientes, las computadoras paralelas,
incluyendo clústers en particular, se están incrementando
en cantidad de nodos de procesamiento como forma de
conseguir mayores prestaciones globales del sistema.
Una de las investigaciones actuales para este proyecto
radica en la mejora de las comunicaciones entre los
nodos del clúster, empleando protocolos de
comunicación más ligeros y redes Gigabit Ethernet o
Infiniband, con la finalidad de que las comunicaciones en
un sistema clúster no se convierta en el cuello de botella
del sistema global. Otra de las investigaciones que
surgirán es el de mantener un sistema, además de alto
rendimiento, que el mismo ofrezca tolerancia a cualquier
fallo, principalmente en los servidores de datos para que
las aplicaciones sean siempre disponibles para los
usuarios, a nivel de red es posible también dar esta
disponibilidad al sistema, primeramente mediante la
técnica Channel Bonding [1] del núcleo de Linux que
permite dar soporte de alta disponibilidad y balanceo de
carga en las interfaces de red de cada nodo del sistema
clúster, se obtiene de esta manera una redundancia en el
sistema global y las aplicaciones, además de dar
disponibilidad a nivel de datos mediante DRBD
(Distributed Replicated Block Device).
DESARROLLO
DEFINICIÓN DE CLUSTER
Un clúster se puede definir, según lo expresado en
[2] como “la agrupación de ordenadores (generalmente
computadoras personales) conectadas mediante una
red y trabajando en un problema de tamaño
considerable que ha sido dividido para ser
procesado de forma paralela”.
Otra definición que puede ser considerada lo bastante
concreta en [3] que define clúster como “Un conjunto
de máquinas unidas por una red de comunicación
trabajando por un servicio en conjunto”, teniendo
en cuenta que el término máquina hace relación
únicamente a las computadoras personales.
SISTEMA RAID
RAID (Redundant Array of Independent Disk) [4]. La
idea central en RAID es replicar datos sobre varios
discos de manera que los datos no se pierdan si alguno de
los discos falla. Existen diversas configuraciones RAID
con diferentes características en rendimiento y formas de
replicación de datos. RAID 10 es una combinación de los
RAID 0 y 1, que proporciona velocidad y tolerancia al
fallo simultáneamente. El nivel de RAID 10 fracciona los
datos para mejorar el rendimiento, pero también utiliza
un conjunto de discos duplicados para conseguir
redundancia de datos. Al ser una variedad de RAID
híbrida, RAID 10 combina las ventajas de rendimiento de
RAID 0 con la redundancia que aporta RAID 1. Sin
embargo, la principal desventaja es que requiere un
mínimo de cuatro unidades y sólo dos de ellas se utilizan
para el almacenamiento de datos. Las unidades se deben
añadir en pares cuando se aumenta la capacidad, lo que
multiplica por dos los costes de almacenamiento. La
elección de esta versión de RAID se ha dado por la
capacidad de discos de almacenamiento que tienen los
nodos para la plataforma desarrollada.
SISTEMA PVFS2
PVFS [5] es un sistema de ficheros paralelo gratuito para
Linux que actualmente se encuentra en su segunda
versión. Para implementar alta disponibilidad en PVFS2
es necesario utilizar Heartbeat [6] que permite verificar
el estado de cada uno de los servidores de datos o
metadatos del sistema de almacenamiento. Pero esta
alternativa requiere que el almacenamiento esté
compartido (con una SAN). Para permitir tolerancia a
fallos, evitando compartir el almacenamiento, se ha
agregado a PVFS2 replicación de datos en el lado de los
servidores como se describe en [7]. De esta forma se
evita el coste de usar una SAN y se pueden aprovechar
los discos incluidos en los nodos del clúster. En la
implementación actual de replicación un bloque de datos
de archivo es almacenado en dos servidores diferentes
con su respectiva copia de bloque.
PVFS en su primera versión implementa una alternativa
para lograr la tolerancia a fallos, en [8] son consideradas
las escrituras grandes con RAID5 y escrituras pequeñas
con RAID1.
PVFS2 utiliza, como capa de comunicaciones, la
librearía BMI [9] (Buffered Message Interface) que
soporta diversas tecnologías de red, dentro las que se
encuentran Infiniband y Mirynet, que permiten alcanzar
grandes anchos de banda y baja latencia en las
comunicaciones del sistema, pero a un costo elevado,
esto debido a la infraestructura física necesaria para
mantener todo el sistema de comunicaciones de un
clúster. En cambio la tecnología Ethernet, también
soportada por BMI, que son las interfaces de red que
comercialmente se encuentran a nuestro alcance y a un
ancho de banda conveniente de 1000Mbps.
COMUNICACIÓN CON SSH
SSH ó Secure SHell [10] es un protocolo que facilita las
comunicaciones seguras entre dos sistemas usando una
arquitectura cliente/servidor y que permite a los usuarios
conectarse a un host remotamente. A diferencia de otros
protocolos de comunicación remota tales como FTP o
Telnet, SSH encripta la sesión de conexión, haciendo
posible la integridad y seguridad de los datos en la
comunicación.
REPLICACIÓN A NIVEL DE BLOQUE
DRBD (Distributed Replicated Block Device) [11] da
soporte para un almacenamiento distribuido a nivel de
bloque a plataformas basadas en Linux. Este sistema de
almacenamiento es apoyado en la filosofía RAID1, pero
a nivel de red, el funcionamiento radica en realizar el
almacenamiento en el servidor primario y las réplicas en
el servidor secundario a través de la red, en la Fig. 1 se
muestra el esquema de funcionamiento de DRBD.
Fig. 1 Replicación de DRBD.
DRBD da soporte a de alta disponibilidad a la tecnología
clúster, como se muestra en la figura anterior, DRBD
actúa como un módulo que se encarga de almacenar los
datos en el disco duro del servidor primario (izquierda) y
hacer las réplicas al servidor secundario, actuando el
sistema con un modelo primario/secundario o
activo/pasivo, por defecto DRBD usa el protocolo
TCP/IP para realizar la comunicación, en cuanto al
sistema de archivos se puede hacer uso de ext3, ext4 o
cualquier sistema de archivos local que soporta Linux,
por lo tanto las réplicas a nivel de bloque son
transparentes para el usuario.
DESCRIPCIÓN DE LA METODOLOGÍA
El esquema que se muestra en la Fig. 2 consiste en
seguir una serie de etapas; la etapa 1 consiste en analizar
los requerimientos tanto de hardware y software que se
tiene y que se necesite, en la segunda etapa se realiza un
diseño global en el cual nos basaremos posteriormente,
en la etapa 3 se desarrollara el prototipo mas adecuado a
las necesidades en el cual se pondrá en práctica todo lo
que se analizó al principio para hacer el prototipo, en la
etapa 4 se realizarán las pruebas necesarias para
diagnosticar su funcionalidad, y de este punto depende si
se concluye o no la última etapa ya que debe de cumplir
con todo lo requerido para dar un funcionamiento de
calidad o de lo contrario se regresará a la etapa 1, si
cumple con los requerimientos planteados se pasa a la
etapa 5 que es la entrega final.
RESULTADOS EXPERIMENTALES
EVALUACIÓN DE FUNCIONAMIENTO DEL SISTEMA
Para la primera fase, se realizaron las configuraciones
necesarias en únicamente dos de los nodos que formarán
el clúster, en primer lugar la instalación del sistema
operativo Linux CentOS 5.8 con kernel 2.6.18308.13.1.el5, además de las configuraciones de la
conectividad de las tarjetas de red y de la comunicación
segura con SSH, para la interconexión de los nodos se
usa un Switch con capacidad de soportar Gigabit
Ethernet (1000Mbps). De la misma manera se han
realizado las configuraciones necesarias de la librería
MPI para dar soporte al sistema de ficheros PVFS2.
EXPERIMENTACIÓN CON RAID-10
En la Fig. 3 muestra el panorama de funcionamiento
lógico del sistema RAID-10, todas las réplicas del
Disco1 y Disco3, se hacen en el Disco2 y Disco4
respectivamente. Esta misma configuración se mantiene
en cada uno de los nodos del clúster que tienen el rol de
servidor de datos de la configuración de PVFS2.
La experimentación se obtuvo en cada uno de los nodos
de clúster para verificar que el sistema RAID que se ha
configurado durante la instalación tenga el funcionando
adecuado, esta prueba se realizo desde la consola de
CentOS. Para ello se utilizo el comando cat /proc/mdstat
el cual muestra el estado del RAID, esto se hace solo
para verificar que este se muestre como activo.
Fig. 2 Esquema grafico sobre la metodologia evolutiva
empleada
Fig. 3 Funcionamiento lógico de RAID-10
USO DE PVFS2
En PVFS2 mantiene una estructura dónde un nodo es
configurado como servidor de datos o servidor de
metadatos o ambos roles al mismo tiempo y en el mismo
nodo. El servidor de metadatos o metaservers almacenan
los metadatos de los archivos, además de los atributos de
los archivos creados, la distribución dentro del sistema
global. Los nodos clientes del clúster se comunican en
primer lugar con el servidor de metadatos para saber la
ubicación del archivo que se quiere leer o escribir. Los
servidores de datos o dataservers, comúnmente llamados
servidores de E/S se encargan de almacenar trozos de los
ficheros. Estos trozos se almacenan de una manera
siguiendo la técnica Round Robin que se muestra en la
Fig. 4. El archivo original se divide en tamaños iguales
para hacer la distribución en cada uno de los servidores
de E/S.
Fig. 4 Esquema de distribución Round Robin.
En la configuración inicial del sistema de alto
rendimiento se define como primer prototipo utilizar dos
servidores con la configuración de RAID10 en cada
nodo, un nodo es configurado como servidor de E/S y
servidor de metadatos, y el segundo servidor sólo como
E/S. La ventaja del primer servidor es que el servidor de
metadatos sólo se tendrá que comunicar con un servidor,
con esto se ahorra el tráfico en la red y se evita la
congestión en el caso de transferencias grandes de datos.
En la Fig. 5 se observa la configuración del sistema
global, cada uno de los servidores con su correspondiente
configuración RAID de cuatro discos duros, accediendo
a este sistema por dos nodos clientes.
Fig. 5 Esquema de configuración lógica del sistema de
almacenamiento.
EXPERIMENTACIÓN CON DRBD
Para hacer uso de este sistema de almacenamiento en
Centos 5.8 ha sido necesario instalar DRBD que viene
integrado en: drbd84-utils y kmod-drbd84, que refieren
la versión 8.4 del sistema, drbd84-utils es necesaria para
la administración de los recursos, y kmod-drbd84 se
requiere para que el sistema DRBD sea incluido en el
Kernel de Linux, además de adquirir las fuentes desde
www.drbr.org, para realizar la compilación y
posteriormente la configuración necesaria para este
desarrollo. Dando como resultado la siguiente
configuración:
resource r0 {
on centos1 {
device
disk
address
meta-disk
}
on centos2 {
device
disk
address
meta-disk
}
}
/dev/drbd1;
/dev/sda1;
192.168.1.20:7789;
internal;
/dev/drbd1;
/dev/sda1;
192.168.1.30:7789;
internal;
La configuración anterior es almacenada en el archivo
/etc/drbd.d/r0.res, en /etc/drbd.d es el directorio dónde se
almacenan todos los recursos que son compartidos, en
este caso el recurso compartido es denominado r0.res que
incluye:
- on centos1 y on centos2: se refiere a que son dos los
nodos del cluster que serán configurados, centos1 como
nodo primario y centos2 como nodo secundario.
- device /dev/drbd1: es el dispositivo lógico que se crea
al momento de compilar DRBD, este dispositivo es
declarado en los dos nodos.
- disk /dev/sda1: físicamente este el dispositivo donde
serán almacenados todos los archivos tanto en el nodo
primario como en el nodo secundario existe este
dispositivo físico.
- address 192.168.1.20:7789 y 192.168.1.30:7789: son
las direcciones IP de los nodos primario y secundario
respectivamente, y ambas declaran utilizar el mismo
puerto para la comunicación.
- meta-disk internal: de esta manera se le dice al sistema
que los metadatos serán almacenados en el mismo disco
físico en cada nodo, los metadatos dan información
referente a cada archivo como lo hace PVFS2.
DRBD utiliza tres modos o protocolos para la
comunicación, que al mismo tiempo deben de mantener
la sincronización de los datos en ambos servidores, para
que en el caso de que el nodo primario falle, el nodo
secundario mantiene tanto el servicio, como la
coherencia de los datos. Para esto se utiliza el Protocolo
C (Synchronous replication protocol) que garantiza la
sincronización mediante una confirmación del nodo
secundario hasta que las escrituras son realizas en el
disco de ambos nodos.
DRBD CON HEARTBEAT
Para conocer el estado de los nodos del clúster, en este
trabajo se ha utilizado el software Heartbeat o latido de
corazón, su uso ha sido fundamental para conocer el
estado de conexión del nodo primario desde el nodo
secundario, de tal manera que, al momento de que el
nodo secundario no detecta la actividad de servicio del
nodo primario, este nodo secundario actúa como nodo
primario y da el servicio hasta que el nodo primario
tenga nuevamente la actividad para dar el servicio.
almacenamiento de cada uno de los servidores de datos.
En segundo lugar, mediante el sistema de
almacenamiento distribuido DRBD, que ha dado soporte
en el fallo del servidor primario con el uso del software
Heartbeat. Con la configuración global del sistema se
considera una amplia redundancia de los niveles del
clúster como: almacenamiento local con las réplicas de
datos entre los discos en el mismo nodo y con las réplicas
de datos entre los nodos primario y secundario del
clúster, consideramos que este nivel de configuración
dará soporte necesario para la fiabilidad y disponibilidad
de los datos.
Como trabajo futuro se realizará un análisis importante
en el nivel de comunicaciones del sistema, debido a que
es necesario que la plataforma también mantenga un
soporte de fiabilidad y disponibilidad en los enlaces de
red que conectan los dos nodos del clúster. Para esto se
pretende hacer uso en cada nodo de dos tarjetas de red
configuradas con la Técnica Channel Bonding nativa en
Linux, de tal manera que se cree un enlace simbólico que
agregue los dos canales de comunicación de cada nodo y
con esto se logre un ancho de banda teórico de
2000Mbps. Además, se incrementará el número de nodos
del clúster y así también se logre una mayor
disponibilidad de las aplicaciones y los datos, y un
incremento en el rendimiento global del sistema
ejecutando las aplicaciones en un menor tiempo posible.
BIBLIOGRAFÍA
[1]
C. University, «Parallel Virtual File System,» 2011.
[En línea]. Available: www.pvfs.org.
[2]
«Heartbeat,» [En línea]. Available: http://www.linuxha.org/.
[3]
E. Nieto, R. Hernández, H. Camacho, A. Díaz, M.
Anguita Y J. Ortega, «Replicación de Datos en PVFS2
para Conseguir Tolerancia a Fallos,» XX Jornadas de
Paralelismo, 2007.
[4]
P. Carns, W. I. Ligon, R. Ross y P. Wyckoff, «BMI: a
network abstraction layer for parallel I/O,» Parallel and
Distributed Processing Symposium. Proceedings. 19th
IEEE International, 2005.
[5]
D. Barrett, R. Silverman y R. Byrnes, SSH, The Secure
Shell: The Definitive Guide. Second Edition, O'Reilly
Media, 2005.
CONCLUSIONES Y TRABAJO FUTURO
En esta primera implementación se ha podido comprobar
la alta disponibilidad de los datos de dos maneras. En
primer lugar, implementando los sistemas RAID en el
nivel 10, que, al momento de un fallo de disco los datos
estaban disponibles en el disco duro espejo, manteniendo
la disponibilidad de la información a nivel local de
[6]
D. A. Patterson, G. Gibson y R. H. Katz, «A case for
redundant arrays of inexpensive disks (RAID),» ACM
SIGMOD international conference on Management of
data, vol. 17, nº ISBN:0-89791-268-3, pp. 109 - 116,
1988.
[7]
A. F. Diaz, J. Ferreira, J. Ortega, A. Cañas y A. Prieto,
«CLIC: Fast Communication on Linux Clusters,»
Second IEEE International Conference on Cluster
Computing (CLUSTER'00), p. 365, 2000.
[8]
D. H. Milone, A. A. Azar y L. H. Rufiner,
«Supercomputadoras basadas en “Clusters” de PCs,»
Revista Ciencia, Docencia y Tecnología, vol. XIII, nº
25, pp. pp. 173-208, 2002.
[9]
M. Lauria y M. Pillai, «A high performance redundancy
scheme for cluster file systems,» Proceedings of the
2003 International Conference on, pp. 216-223, 2003.
[10]
C. V. Juan Esteban y M. A. Cristian Alejandro,
Implementación de un Servidor Web Apache, Talca,
Chile, 2007.
CURRICULUM
Raúl Hernández Palacios, Maestro en
Ingeniería de Computadores y Redes,
egresado de la Universidad de Granada,
España en 2007. Actualmente como
Profesor Investigador y Perfil Promep de la
Escuela Superior de Huejutla de la Universidad
Autónoma del Estado de Hidalgo, incorporado a la
Licenciatura de Sistemas Computacionales de la misma
Universidad. En la actualidad realizando estancia de
investigación en el Centro de Investigación en
Tecnologías de la Información y Comunicación (CITICUGR) de la Universidad de Granada. Interés en área de
investigación de Sistemas Distribuidos; sistemas de
archivos en red; optimización de comunicaciones
eficientes en clúster de computadoras con mecanismos
como Multicast, Socket Direct Protocol (SDP), Remote
Direct Memory Access (RDMA); alta disponibilidad en
sistemas clúster a nivel de red, servidor y
almacenamiento (iSCSI).
Waseem M. Haider. Doctor en Ingeniería
de Computadores por la Universidad de
Granada, España. Actualmente investigador
adjunto al Centro de Investigación en
Tecnologías de la Información y
Comunicación (CITIC-UGR) de la Universidad de
Granada. Desarrollo de línea de investigación en
optimización de las prestaciones de redes y alternativas
de externalización de los protocolos de comunicación en
coordinación con el Departamento de Arquitectura de
Computadores de la misma Universidad.
Víctor Tomas Tomás Mariano es Maestro
en Ciencias Computacionales egresado de
la Universidad Autónoma del Estado de
Hidalgo (UAEH), en Pachuca de soto,
Hidalgo, México en el 2007. Profesor
investigador titular, con perfil PROMEP y está
incorporado
a
la
Licenciatura
en
Sistemas
Computacionales de la Escuela Superior Huejutla
UAEH, en Huejutla de Reyes, Hidalgo, desde el año
2008. Su interés en áreas de investigación incluye:
planeación de trayectorias, maze search problem,
laberintos virtuales 2D y 3D, computación inteligente,
Entre las publicaciones más recientes están:
Algoritmo para la Generación de Laberintos de Conexión
Múltiple en 2D. Vigesimosegunda Reunión Internacional
de Otoño, de Comunicaciones, Computación,
Electrónica, Automatización, Robótica y Exposición
Industrial ROC&C2011. La Conjunción de las
Tecnologías Digitales en las Redes Inteligentes. IEEE
Sección México. Acapulco, Guerrero, México. Propuesta
para la generación de laberintos ampliados en 2D.
Simposio Iberoamericano Multidisciplinario de Ciencias
e Ingeniería SIMCI 2011. Zempoala, Hidalgo.
Felipe de Jesús Núñez Cárdenas es Maestro
en Ciencias de la Administración con
Especialidad en Informática egresado del
Centro de posgrado en Administración e
Informática A. C. (CPAI). Profesor
Investigador Asociado, incorporado a la Licenciatura en
Sistemas Computacionales de la Escuela Superior
Huejutla UAEH, en Huejutla de Reyes, Hidalgo, desde el
año 2011. Su interés en áreas de investigación incluye:
Ingeniería de Software, Sistemas de Información, Base
de Datos, Minería de Datos, ha publicado:
Portal Integral de Educación Superior en el XIV
Congreso Internacional Sobre educación electrónica,
virtual y a distancia. TELEEDU 2007 (Bogotá
Colombia)
Descargar