FPFSun sistema de ficheros paralelo basado en dispositivos OSD+= FPFS : a parallel file system based on OSD+ devices

  1. Aviles González, Ana
Dirigida por:
  1. Juan Piernas Cánovas Director
  2. María Pilar González Férez Directora

Universidad de defensa: Universidad de Murcia

Fecha de defensa: 16 de diciembre de 2014

Tribunal:
  1. Angelos Bilas Presidente/a
  2. Antonio Javier Cuenca Muñoz Secretario
  3. María de los Santos Pérez Hernández Vocal
  4. Emmanouil Marazakis Vocal
  5. Antonio Cortés Roselló Vocal
Departamento:
  1. Ingeniería y Tecnología de Computadores

Tipo: Tesis

Resumen

A medida que los supercomputadores aumentan su potencia, es posible ejecutar aplicaciones con mayor carga computacional y que procesan volúmenes de datos cada vez más grandes. Tradicionalmente, para proporcionar un rendimiento rápido y fiable, los sistemas de ficheros paralelos se centraban en la distribución escalable de los datos. Sin embargo, mayores cargas de trabajo presionan los servidores de metadatos todavía más, con un número de peticiones de metadatos cada vez mayor. Estas operaciones hacen un gran consumo de CPU, y, generalmente, un sólo servidor de metadatos ya no es suficiente. En esta tesis presentamos la arquitectura de un nuevo sistema de ficheros paralelo que proporciona un servicio de metadatos completamente distribuido. Creemos que esto es clave al enfrentarse a la era exabyte en los sistemas de ficheros paralelos. Nuestra primera propuesta es "Fusion Parallel File System" (FPFS). FPFS es un sistema de ficheros paralelo donde todos los dispositivos trabajan como servidores tanto de datos como de metadatos. Con esta arquitectura sencilla incrementamos la capacidad del clúster de metadatos, que pasa a ser tan grande como el clúster de datos. Asimismo, incrementamos el rendimiento y escalabilidad de todo el sistema. Nuestra segunda contribución es el dispositivo OSD+. Proponemos el uso de dispositivos OSD mejorados para construir la arquitectura de FPFS. Los OSD regulares sólo pueden manejar objetos de datos y sus operaciones; nuestra propuesta amplía los dispositivos OSD, de manera que también puedan manejar metadatos a través de lo que hemos llamado "objetos de directorio". Nuestra tercera aportación es el diseño e implementación de un clúster de metadatos basado en dispositivos OSD+ para FPFS. En el clúster distribuimos de forma uniforme los metadatos a través de los nodos del clúster por medio de los objetos de directorio. Nuestra distribución del espacio de nombres minimiza las migraciones en caso de renombramientos de directorios o de cambios dentro del clúster. Garantizamos la atomicidad por medio de un protocolo de compromiso en tres fases y de los sistemas de ficheros locales en cada OSD+. Nuestra cuarta contribución es el diseño e implementación del manejo de directorios gigantes en FPFS. Estos directorios almacenan desde miles a millones de entradas que son accedidas por miles de clientes concurrentemente. Utilizamos los objetos de directorio para permitir a FPFS distribuir de forma dinámica esos directorios a través de varios servidores. A su vez, este diseño mejora el manejo que hacemos de los renombramientos, evitando gran parte de las migraciones de datos. Nuestra última contribución es el diseño e implementación de las operaciones por lotes. Estas operaciones juntan cientos o miles de entradas del mismo tipo de operación en un sólo paquete. Con ellas conseguimos hacer un mejor uso de los recursos existentes, desplazando, en muchos casos, el cuello de botella de la red a los servidores. Para evaluar el rendimiento de nuestra propuesta, hemos implementado un prototipo del servicio de metadatos en un entorno Linux, y comparado su rendimiento con otros sistemas de ficheros paralelos como: Lustre, OrangeFS y Ceph. En las pruebas, se han usado distintos tipos de sistemas de ficheros, y distintos tipos de discos (discos duros y de estado sólido) en los servidores. Asimismo, se han usado benchmarks con distintos tipos de carga de trabajo de metadatos con el fin de evaluar el rendimiento de los metadatos. Los experimentos muestran que FPFS puede crear, stat, y borrar cientos de miles de ficheros vacíos por segundo con unos pocos OSD+s. Los ratios obtenidos con FPFS son un orden de magnitud mayor que el rendimiento que obtiene Lustre con un sólo servidor de metadatos, y que el rendimiento de OrangeFS y Ceph con un clúster de metadatos. The growth in the number of nodes and computational power of supercomputers allow us to process not only larger and more compute-intensive workloads, but also data-intensive workloads that access and store vast amounts of data. Traditionally, to provide fast and reliable performance, parallel file systems have focused on scalable data distribution to share out the storage and management of large data volumes between several nodes. However, increasing workload is now pushing metadata servers to their limits, with not only greater volumes of data but also critically ever-greater numbers of metadata requests. Metadata operations are very CPU consuming, and a single metadata server is often no longer sufficient. In this thesis we define a new parallel file system architecture that provides a completely distributed metadata service. We believe this is key as we approach the exabyte scale-era in parallel file systems. The main contributions to reach this aim are the following. First, we introduce the Fusion Parallel File System (FPFS) that presents a novel architecture that merges the metadata cluster and the data cluster into one large cluster through the use of a single type of server. This enlarges the capacity of the metadata cluster because it becomes as large as the data cluster, also augmenting the overall system capacity. Second, we propose OSD+ devices to support the FPFS architecture. Object-based Storage Devices (OSDs) have proved to be a perfect tool for parallel file systems, since their inherent intelligence allows file systems to delegate tasks to the devices themselves, such as the management of the device space. OSD+s are improved object-based storage devices that, in addition to handle data objects, as traditional OSDs do, can also manage "directory objects", a new type of object able to store and handle metadata. Third, we develop a scalable metadata cluster made up of hundreds to thousands of OSD+ devices. The design takes into account essential aspects, like a balanced namespace distribution, able to adapt to cluster changes, and the atomicity of operations that involve several OSD+s. Fourth, we enlarge the metadata service capabilities by including support for huge directories. Directories storing thousand to millions of files accessed by thousands of clients at the same time are becoming common in file systems, and present performance downgrades if not handled properly. We modify OSD+ devices to dynamically distribute these directories among several objects in different OSD+s in the cluster. Finally, we propose the use of batch operations, which embed several operations of the same type into a single network packet. This way, we optimize network resources, and significantly reduce network traffic on the system, reducing network delays and round-trips. To evaluate the performance of our proposal, we have implemented a prototype built on a Linux environment, and compared its performance with other well-known parallel file systems as: Lustre, OrangeFS, or Ceph. In the tests, we have used different backend file systems, and different type of backend devices (hard disks, and solid state drives). We have run benchmarks with different types of metadata workloads, in order to evaluate the metadata performance. Experiments show that FPFS can create, stat and unlink hundreds of thousands of empty files per second with a few OSD+s. The rates obtained by FPFS are an order of magnitude better than what Lustre achieves when a single metadata server is used, and what OrangeFS and Ceph achieve when a metadata cluster is deployed.