Introducción: Es un sistema de archivos paralelo que permite a las aplicaciones paralelas y seriales almacenar y recuperar datos desde de un conjuto de nodos o servidores de I/O unidos a través de la red. El éxito de los PFS es el alto rendimeinto que tiene cuando se escriben archivos de gran tamaño.
Componentes del PFS Un sisema PVFS consta de los sigueintes componentes: El client code : Estos corren en los nodos. El server code : Estos corren en los servidores I/O. El metadata server : Todos los sistemas deben manetener los archivos de metadatos, en donde se indican las caracteristicas mas importantes de cada uno, tales son: nombre, dueño, permiso y tipo de archivo.
Diferencia entre PFS, NFS y Samba Hay muchas caracteristicas que comparten PFS, NFS y Samba como por ejemplo, todos corren en un sistema, el cliente accesa a los datos almacenados en otro sistema. En el entorno NFS y Samba un solo servidor maneja los datos almacenados; En un entorno PFS los datos pueden ser almacenada en un conjunto de servidores, esto es lo que permite que el PFS maneje multiples servidores de I/O.
Ques es PVFS? Es una implementación open source de un sistema de archivos paralelo, desarrollado especificamente para clustes BeoWulf y para sistemas operativos Linux. Provee distribuciómn simple de los datos, permitiendo a los usuarios especificar el número de partes, el tamaño y el número de nodos en un par de archivos basicos. El PVFS contiene tres demonios: mgr es el que mantiene la metadata en los sistemas de archivos. iod es el que responde a las peticiones de lectura y escritura de archivos. pvfsd este demonio es opcional y forma parte del modulo para el kernell.
Configuración del PVFS 1. El primer paso para configuración del PVFS es decidir que papel debe desempeñar cada nodo. 2. El segundo. Es cuantos nodos desempeñaran el papel de servidores de discos. 2.1. Los componentes que los servidores de discos van a utilizar.
Servidor de Meta Datos Aquí se mantiene la información de los archivos y directorios que están almacenados en el sistema PVFS, tal como permisos, dueños, localización de la data. Los clientes contactan al servidor de meta datos para realizar cualquier operación sobre la data, como por ejemplo: Copiar, eliminar, mover, abrir o cerrar archivos, leer directorios.
Servidores I/O Es en estos servidores donde se almacena la data, puede existir varios de estos se y por supuesto, el espacio total de escritura del sistema es la suma de todos los espacios proporcionados por cada uno de los servidores I/O.
Clientes Son los usuarios del sistema PVFS. Aplicaciones que acceden a los directorios y archivos contenidos dentro del sistema PVFS.
Construcción de los componentes del PVFS
Descarga de los archivos fuentes Se descarga los Fuentes desde la siguiente dirección URL: http://www.parl.clemson.edu/pvfs/, estos son pvfs- versión y pvfs-kernel- versión. La versión del pvfs y la versión del pvfskernel no tienen que ser explícitamente iguales. Descompresión de los archivos Se descomprime y se desempaqueta Se hace un enlace simbolico a pvfs- versión. Ejemplo ln s pvfs-1.6.0 pvfs
Compilación del PVFS- VERSION Se cambia al directorio pvfs y se ejecuta la siguiente sintaxis../configure enalbe-lfs *La opción enable-lfs permite la escritura de archivos de tamaños mayores a 2 Gb aproximadamente. Se compila ejecutando la siguiente sintanxis. make Se instala ejecutando la siguiente sintaxis. make install
Compilación del PVFS-KERNEL- VERSION Se cambia al directorio pvfs-kernel- versión Se ejecuta la siguente sintaxis./configure with-libpvfs-dir=../pvfs/lib *La opción with-libpvfs-dir es para incluir las librerias del pvfs en la compilacion del modulo Se compila ejecutando la siguiente sintaxis. make Se instala ejecutando la siguiente sintaxis make install Se copia el archivo mount.pvfs al directorio /sbin Se copia el modulo para el kernel pvfs.o al directorio /lib/modules/ versión /kernel/drivers /net
Configuración del PVFS en el nodo metadata-server Se elige cual será el directorio donde residirán los meta datos. En nuestro caso será el directorio /pvfs-meta-data. Este directorio debe estar en una partición que tenga en suficiente espacio libre para almacenar dichos datos, no tiene que ser necesariamente una partición para este proposito.
Se cambia al directorio /pvfs-metad-data y se ejecuta la siguiente sintaxis mkmgrconf Enter the root directory (metadata directory): /pvfs-meta-data Enter the user id of directory: root Enter the group id of directory: root Enter the mode of the root directory: 777 Enter the hostname that will run the manager: localhost Enter the port number on the host for manager: (Port number 3000 is the default): 3000 Enter the I/O nodes: (can use form node1, node2,... or nodename{#-#,#,#}): nodo1, nodo2, nodo3, nodo4 Enter the port number for the iods: (Port number 7000 is the default): 7000
configuración de los servidores de disco (IO servers) Se elige la partición la cual va a almacenar los datos /pvfs-data Los permisos y dueños de este directorio: Dueño nobody Grupo nobody Perimos 700 Si los nodos io servers son de diferente arquitectura a el nodo metadata server, se debe compilar e instalar el paquete bajo esta arquitectura, siguiendo los pasos antes descritos para la compilación del mismo.
Una vez instalado el paque se configura el archivo iod.conf, este archivo va en el directorio /etc. El contenido de este archivo es: datadir /pvfs-data user nobody group nobody
Configuración de los clientes Se crea el directorio (punto de montaje) /pvfs mkdir /pvfs Se crea el siguiente dispositivo dispositivo mknod /dev/pvfsd c 60 0 Se crea el siguente archivo en el directorio /etc/pvfstab y su contenido es el sigueinte head:/pvfs-meta-data /pvfs pvfs port=3000 0 0
Inicio y detención de los demonios en los ioservers Se inicia el servicio ejecutando la siguiente sintaxis /usr/local/sbin/iod Se detiene el servicio ejecutando la siguiente sintaxis Killall iod
Inicio y detención de los demonios en el metadaserver Se inicia el servicio ejecutando la siguiente sintaxis /usr/local/sbin/mgr Se inicia detiene el servicio ejecutando la siguiente sintaxis Killall mgr
Inicio de los clientes Cargar el modulo del pvfs Insmod pvfs.o Se ejecuta la siguiente sintaxis /usr/local/sbin/pvfsd Se monta el directorio desde el servidor de metadatos con la siguiente sintaxis mount.pvfs head:/pvfs-meta /pvfs Para desmontar el directorio se hace con la sigueinte sintaxis umount /pvfs
Test del espacio disponible en el clientes Cambice al directorio /pvfs y ejecute la sigeuinte sintaxis odf -h /pvfs Para comprobar que se puede escribir archivos de grandes tamaños en la partición ejecute la siguiente sintaxis dd if=/dev/zero of=/pvfs/test bs=1m count=10000
Herramientas de utilidad Como hacer ping directamente a loa servidores de disco (ioservers) /usr/local/bin/iod-ping h nodo1 p 7000 Como hacer ping directamente a el servidor de metadatos. /usr/local/sbin/mgr-ping h head p 3000