13.07.2015 Views

PVFS2 Un sistema de archivo paralelo para asegurar rendimiento ...

PVFS2 Un sistema de archivo paralelo para asegurar rendimiento ...

PVFS2 Un sistema de archivo paralelo para asegurar rendimiento ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>PVFS2</strong><strong>Un</strong> <strong>sistema</strong> <strong>de</strong> <strong>archivo</strong> <strong><strong>para</strong>lelo</strong> <strong>para</strong> <strong>asegurar</strong><strong>rendimiento</strong>, seguridad y recuperacion <strong>de</strong> fallosPrimer Trabajo <strong>de</strong> la asignatura Diseño <strong>de</strong> Sistemas OperativosAutor: FABRIZIO SAPONARO


Que vamos a ver...●●●se introducen los <strong>sistema</strong>s <strong>de</strong> <strong>archivo</strong>s <strong><strong>para</strong>lelo</strong>s;se habla <strong>de</strong>l <strong>PVFS2</strong>, <strong>de</strong> cómo el almacena y distribuye los datos y <strong>de</strong>l autómata finito<strong>de</strong> I/O, también se hace referencia a la instalación <strong>de</strong> <strong>PVFS2</strong> sobre un clúster yaexistente;se introduce otro <strong>sistema</strong> <strong>de</strong> <strong>archivo</strong> llamado De<strong>PVFS2</strong> que tiene como objetivomejorar el anterior y se habla <strong>de</strong> la técnica <strong>de</strong> generación <strong>de</strong> código <strong>de</strong> redundanciamás importante <strong>para</strong> ello.


Sistema <strong>de</strong> <strong>archivo</strong> <strong><strong>para</strong>lelo</strong>●●Servicio ofrecido <strong>de</strong>s<strong>de</strong> el <strong>sistema</strong> operativo o <strong>de</strong>sarrollado a nivel aplicativoque es capaz <strong>de</strong> guardar y ofrecer los datos disponibles en el ámbito <strong>de</strong> unared informática.Proprieda<strong>de</strong>s:– transparencia;– concurrencia;– tolerancia a los fallos;– portabilidad;– seguridad;– buenas prestaciones.


Arquitectura <strong>de</strong> un <strong>sistema</strong> <strong>de</strong> <strong>archivo</strong>s <strong><strong>para</strong>lelo</strong>●●●●●Se utiliza un <strong>sistema</strong> cliente-servidor<strong>para</strong> la comunicación <strong>de</strong> las maquinasconectadas a la red.Los nodos computacionalesrepresentan la parte cliente <strong>de</strong>l<strong>sistema</strong>.Los servidores <strong>de</strong> <strong>archivo</strong>s son losnodos <strong>de</strong>stinados a almacenar losdatos.Los servidores <strong>de</strong> directorios son losnodos que tienen las informacionesrelativas a los datos.Los clientes y los servidores hacenoperaciones <strong>de</strong> I/O <strong><strong>para</strong>lelo</strong>s a travesla interfaz Message PassingInterface.


<strong>PVFS2</strong> Parallel Virtual File System 2●Caracteristicas generales:– Desarollado <strong>para</strong> obtener gran<strong>de</strong>smejoras en la lectura y en laescritura <strong>de</strong> gran<strong>de</strong>s cantida<strong>de</strong>s <strong>de</strong>datos sobre nodos <strong>de</strong> red;– Semantica muy sencilla– Escalable, portátil y compatiblecon la MPI.– Arquitectura cliente-servidor,hecha por niveles.– Lado cliente y lado servidorparticularizados según el papel<strong>de</strong>sarrollado por el nodo en el<strong>sistema</strong>.


Arquitectura Software <strong>de</strong> <strong>PVFS2</strong>Nivel Aplicativo:Lado cliente:●●Se proporciona un elevado nivel <strong>de</strong> abstracción.La librería <strong>de</strong>l cliente (System Interface) pue<strong>de</strong> dialogar a traves dos interfaces anivel usuario (UserLevel Interface):– la interfaz kernel;– la interfaz <strong>de</strong> MPI.Lado servidor:●Se distinguen dos tipos <strong>de</strong> servicios:– servidor <strong>de</strong> metadata, que conserva los metadatos;– servidor <strong>de</strong> storage, que se ocupa <strong>de</strong>l almacenamiento <strong>de</strong> los <strong>archivo</strong>s.


Arquitectura Software <strong>de</strong> <strong>PVFS2</strong>Comunicación con el nivel físico:●Buffered Message Interface (BMI):– interfaz abstracta <strong>para</strong> acce<strong>de</strong>r a los servicios ofrecidos por la red;●– permite el diálogo entre clientes y servidores a traves un protocolo <strong>de</strong> peticionesy respuestas.TROVE:– interfaz que se ocupa <strong>de</strong> configurar y utilizar el espacio <strong>de</strong> storage;– contiene datos y metadatos;Transferencia <strong>de</strong> los datos:●Capa Flows:– permite el intercambio <strong>de</strong> los datos entre dos endpoint (memoria, endpoint BMI,endpoint TROVE);– convierte mensajes complejos en ca<strong>de</strong>nas <strong>de</strong> byte.


Arquitectura Software <strong>de</strong> <strong>PVFS2</strong>Job Manager●Capa Job: cumple las interfaces BMI, Flow y TROVE bajo una única interfaz común,gestionandole y notificando al nivel superior como se comportan.System Interface y la interacción con los servidores●Utilizada por las aplicaciones cliente <strong>para</strong> acce<strong>de</strong>r a los servidores <strong>de</strong>l <strong>sistema</strong> <strong>de</strong><strong>archivo</strong>s.Protocolo:●●se programa en el lado cliente una StateMachine <strong>para</strong> interactuar con losservidores;En el lado servidor se <strong>de</strong>scodificaran los mensajes <strong>de</strong>l cliente a partir <strong>de</strong>s<strong>de</strong>unexpected message <strong>de</strong> BMI y se empieza la state machine relativa; <strong>de</strong>spués sepondrá en espera <strong>de</strong> un nuevo unexpected message (Server Main Loop).


Elaboración <strong>de</strong> las peticiones: State Machine lado cliente


Elaboración <strong>de</strong> las peticiones: State Machine lado servidor


Dependable <strong>PVFS2</strong>●●Es una evolución <strong>de</strong> <strong>PVFS2</strong>.Se introducen mecanismos <strong>para</strong> el Fault Tolerance:– se aña<strong>de</strong>n códigos <strong>de</strong> redundancia (erasure co<strong>de</strong>);– se hace mas restrictiva la semántica <strong>de</strong> actualización <strong>de</strong> los <strong>archivo</strong>s;●●●– se aña<strong>de</strong> un nuevo componente a nivel <strong>de</strong> aplicación: el Modulo <strong>de</strong>Recuperación.Se pue<strong>de</strong> efectuar la <strong>de</strong>tención <strong>de</strong>l error, gracias a las informaciones <strong>de</strong>redunciancia;Se asegurando la consistencia y la disponibilidad <strong>de</strong>l <strong>sistema</strong> <strong>de</strong> <strong>archivo</strong>.El eventual fallo <strong>de</strong> un cliente, lleva a la inconsistencia en los datos; talsituación se soluciona a posteriori volviendo a calcular la información <strong>de</strong>paridad.


Erasure Co<strong>de</strong> - ejemploSuponemos tener a disposición 4 nodos <strong>de</strong> storage y que queremos introduciren el <strong>sistema</strong> un cierto nivel <strong>de</strong> fiabilidad.<strong>Un</strong>a técnica que utiliza los Erasure Co<strong>de</strong> en una configuración “2 <strong>de</strong> 4”, es <strong>de</strong>ciren que dos nodos son <strong>para</strong> los datos y los otros dos <strong>para</strong> la redundancia, sepue<strong>de</strong> tolerar los fallos reconstruyendo <strong>de</strong>s<strong>de</strong> b y f(a,b) la información a, don<strong>de</strong><strong>para</strong> f(a,b) se entien<strong>de</strong> el erasure co<strong>de</strong> correspondiente.


Consi<strong>de</strong>raciones finales●●El problema <strong>de</strong>l <strong>PVFS2</strong> es que no permite gestionar muy bien los fallos– Hecho que no pasa en su versión mejorada <strong>de</strong> De<strong>PVFS2</strong> gracias a los ErasureCo<strong>de</strong>.Sería bueno hacer test utilizando un clúster y <strong>PVFS2</strong> <strong>para</strong> que se veadon<strong>de</strong> el <strong>sistema</strong> podría ser mejorado.Otimizaciónes posible:●●Mejorìa <strong>de</strong> la lectura en ausencia <strong>de</strong> fallos, por ejemplo efectuandopeticiones discontinuas a los servidores, con el auxilio <strong>de</strong> las funciones <strong>de</strong>MPI <strong>para</strong> las peticiones que <strong>PVFS2</strong> soporta.Garantizar redundancia poniendo los datos y su réplica en <strong>archivo</strong>sse<strong>para</strong>dos en el servidor, tal vez con un tipo <strong>de</strong> erasure co<strong>de</strong> que lo permita.


Bibliografia[1] Generoso Paolillo, “Strategies for achieving <strong>de</strong>pendability inParallel File Systems, Naples, Noviembre 2006[2] Weikuan Yu, Shuang Liang and D.K. Panda, <strong>PVFS2</strong> over Quadrics:Design, Implementation and Performance Evaluation, OSU-CISRC,Diciembre 04[3] Tobias Eberle, “Distribution functions in <strong>PVFS2</strong>, hints inMPICH2 and performance measurement”, Abril 2005[4] <strong>PVFS2</strong> Development Team, “A Quick Start Gui<strong>de</strong> to <strong>PVFS2</strong>”, 16 Apr2008

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!