PDF de programación - Enhanced Network Ram Disk. Un sistema de almacenamiento fiable usando memoria remota

Imágen de pdf Enhanced Network Ram Disk. Un sistema de almacenamiento fiable usando memoria remota

Enhanced Network Ram Disk. Un sistema de almacenamiento fiable usando memoria remotagráfica de visualizaciones

Actualizado el 23 de Junio del 2018 (Publicado el 14 de Enero del 2017)
934 visualizaciones desde el 14 de Enero del 2017
45,1 KB
11 paginas
Enhanced Network Ram Disk. Un
sistema de almacenamiento fiable

usando memoria remota
Alejandro Lucero, Pedro Lopez, Jose Duato

Se otorga permiso para copiar, distribuir y/o modificar este documento bajo los términos de la Licencia de Docu-
mentación Libre GNU, Versión 1.1 o cualquier otra versión posterior publicada por la Free Software Foundation, no
habiendo Secciones Invariantes, ni Textos de Portada ni Textos de Contra Portada. La licencia completa se puede
consultar en: http://www.gnu.org/copyleft/fdl.html

La capacidad de los procesadores se dobla cada 18 meses, y las tecnologías en redes de área local están acercándose al
rendimiento reservado a sistemas multiprocesadores. Los discos magnéticos aumentan su capacidad de almacenamien-
to a un ritmo similar, sin embargo, la latencia de acceso a los mismos está limitada por la naturaleza mecánica de estos
dispositivos. Esto convierte a los discos magnéticos en el pricipal cuello de botella de los actuales sistemas, siendo un
problema que se agudizará en el futuro. Gracias a los avances en los procesadores y sobre todo en las comunicaciones
en redes de área local, es posible usar la memoria de nodos remotos como sistema de almacenamiento. La principal
desventaja de este tipo de sistemas es su fiabilidad, ya que la probabilidad de fallo aumenta proporcionalmente con el
número de nodos, y que el fallo de un nodo afecta a todo el sistema. En este trabajo exponemos un nuevo método para
obtener la fiabilidad. Hemos basado nuestro proyecto en un trabajo anterior, consiguiendo mejorar sus prestaciones
además de eliminar su principal limitación: su uso en sistemas transaccionales.

Tabla de contenidos

1. Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2. Porqué mejorado: Desarrollos anteriores
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Diseño e implementación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.1. Diseño del nodo backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2. Experiencias en la implementación
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4. Resultados de las pruebas
5. Conclusiones y trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
6. Bibliografía
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1. Introducción

La capacidad de los procesadores se dobla cada 18 meses (Ley de Moore), y las tecnologías en redes de área local están
alcanzando cotas que hasta hace bien poco eran sólo posibles es sistemas multiprocesadores. Los discos magnéticos

1

aumentan su capacidad de almacenamiento a un ritmo similar, sin embargo, la latencia de acceso a los mismos está
limitada por la naturaleza mecánica de estos dispositivos. Esta limitación convierte a los discos en el principal cuello
de botella de los sistemas actuales, siendo este un problema que se agudizará en el futuro.

Gracias a los avances de los procesadores y de las comunicaciones en redes de área local, es factible desde un punto
de vista de rendimiento, usar la memoria de nodos remotos como un disco virtual mucho más rápido que los discos
magnéticos. Sin embargo, desde un punto de vista de la fiabilidad del sistema, el principal problema de utilizar la
memoria de nodos remotos es que la caída de un nodo afecta a todo el conjunto, aumentando la probabilidad de fallo
proporcionalmente con el número de nodos utilizados. Para obtener la fiabilidad en este tipo de sistemas hay que hacer
tres consideraciones:

1. El trabajo extra introducido en el cliente debe ser mínimo, ya que es un coste a pagar incluso cuando no hay

caídas en el sistema.

2. La memoria extra utilizada debe ser mínima, ya que la memoria reservada para obtener la fiabilidad puede ser

utilizada por otros procesos o por el propio sistema operativo.

3. El tiempo de recuperación cuando se produce un fallo debe ser bajo.

Flouris y Markatos trabajaron sobre este problema en [1], y diseñaron e implementaron el Network Ram Disk (NRD)
para Linux, el cual conseguía excelentes resultados en comparación con el rendimiento de los discos magnéticos.
El problema de la fiabilidad lo solucionan creando la técnica Adaptative Parity Caching. Sin embargo, esta técnica
contiene ciertas desventajas que limitan sus posibles aplicaciones, como su uso en sistemas transaccionales, además
de consumir recursos en el cliente.

Enhanced Network Ram Disk (ENRD) es un proyecto basado en NRD que soluciona los problemas de éste utilizando
otro diseño para obtener la fiabilidad, consiguiendo mejorar el rendimiento y disminuyendo la complejidad en el
código. ENRD está basado en la idea de utilizar un nodo remoto como almacenamiento de backup: dicho nodo
recibirá todos los bloques de escritura y los guardará a disco magnético, siendo su funcionamiento asíncrono respecto
al nodo cliente. Mientras que el trabajo original de Flouris y Markatos era un proyecto de investigación, ENRD
busca la posibilidad de usar la memoria remota como una utilidad para los clusters Linux, donde su configuración
sea rápida y sencilla y posibilite al administrador una herramienta más para ofrecer al usuario de estos sistemas. Una
de las aplicaciones del ENRD es como área swap donde puede ayudar a mejorar el tiempo de ejecución de sistemas
limitados en memoria RAM. Es frecuente en grupos de investigación científicos ejecutar aplicaciones secuenciales
creados por ellos mismos, no estando dispuestos a un coste extra de tiempo y esfuerzo en paralelizar la aplicación. En
estos casos, ENRD ayudaría a mejorar el rendimiento de estas aplicaciones, que suelen necesitar enormes cantidades
de memoria RAM, y por consiguiente hacen uso del área swap.

En sistemas transaccionales de gran volumen se usa Solid State Disks como almacenamiento, que es almacenamiento
hardware basado en memoria RAM. Mientras que SSD es una solución profesional y más cara, ENRD ofrece un uso
más dinámico y la posibilidad de mejorar proporcionalmente a la velocidad de CPU’s y tecnologías de comunicaciones.

2

2. Porqué mejorado: Desarrollos anteriores

La idea de usar la memoria de nodos remotos no es nueva, habiéndose completado en el pasado varios proyectos
donde la implementación de prototipos demostró las posibilidades que aparecen en estos sistemas. En especial se
estudió la forma de mejorar el rendimiento cuando se hace uso intensivo de grandes cantidades de memoria RAM,
lo que obliga a utilizar área swap degradando el rendimiento. En [2] y [3] se detallan dos prototipos diseñados para
Digital Unix. El primero explota la posibilidad de Network Ram en todos los niveles del sistema operativo (paginación
de memoria virtual, ficheros mapeados en memoria y buffer del sistema de ficheros), consiguiendo la fiabilidad con
escrituras asíncronas a disco. En el segundo, se usa Network Ram solo para paginación, estudiando diversas formas
de conseguir la fiabilidad, como escrituras asíncronas a disco, mirroring y parity logging.

Los mismos autores de [3] son los creadores del NRD, donde utilizan la misma técnica para obtener la fiabilidad,
pero modificada teniendo en cuenta las distintas características entre el acceso a un área swap y a un sistema de
ficheros. Esta técnica denominada Adaptative Parity Caching, consigue obtener un mayor rendimiento en comparación
con el uso de discos magnéticos. Sin embargo, el uso de una caché en el cliente limita su aplicación en sistemas
transaccionales, ya que no garantiza que los bloques escritos se encuentren en almacenamiento fiable en caso de fallo
en el cliente. Además, esta cache consume recursos en el cliente (segunda consideración en la introducción) que
podrían ser usados por otros procesos o por el sistema operativo: para un Network Ram Disk de 16Gbytes, la caché
usaría 80Mbytes. Finalmente, el cálculo de la paridad de bloques lo debe realizar el cliente (primera consideración en
la introducción), que aunque despreciable en una simple operación, deja de serlo cuando se ejecuta millones de veces.

Para evitar estas limitaciones diseñamos e implementamos Enhanced Network Ram Disk(ENRD), consiguiendo
incluso mejorar las prestaciones del NRD original, además de liberar al código de la complejidad de implementar
Adaptative Parity Caching. Para ello, evitamos el uso de memoria en el cliente para obtener la fiabilidad y el coste
extra en el calculo de la paridad. En el nuevo diseño, el cliente enviará los bloques de escritura al nodo remoto y a
un nuevo nodo denominado backup, mientras que las peticiones de bloques de lectura las enviará únicamente al nodo
remoto. El cliente no trabaja con el backup directamente, sino que lo hace con los servidores, salvo que falle alguno
de estos. El funcionamiento del backup es asíncrono respecto al cliente, y utiliza varias técnicas para realizar su tarea
eficientemente, como unir bloques secuenciales en la misma llamada al sistema (en el siguiente apartado se explica con
detalle su implementación). Para evitar que el cliente envíe el mismo bloque dos veces usamos Multicasting[4]: cada
nodo remoto pertenece a un grupo Multicast diferente, mientras el nodo backup pertenece a todos. De esta manera el
envío de un bloque a una dirección Multicast será recibido por el nodo remoto y por el nodo backup, liberando al cliente
de esta tarea y dejándosela a las tecnologí
  • Links de descarga
http://lwp-l.com/pdf1372

Comentarios de: Enhanced Network Ram Disk. Un sistema de almacenamiento fiable usando memoria remota (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad