• No se han encontrado resultados

nivel de homogeneidad de agrupaci´on: Si el nivel de homogeneidad de agrupaci´on es alto implica que los grupos de almacenamiento tienen una distribuci´on similar en cuanto a n´umero de servidores. En este caso, la distribuci´on f´ısica de los servidores es homog´enea. Por el contrario, si el nivel de homogeneidad de agrupaci´on es bajo implica que la distribuci´on f´ısica de los servidores no es homog´enea.

nivel de homogeneidad de carga: A diferencia del anterior concepto, ´este tiene en cuenta la carga de los diferentes servidores. Si el nivel de homogeneidad de carga es alto implica que los grupos de almacenamiento tienen una distribuci´on similar de carga y, por tanto, el tr´afico en la red tendr´a una distribuci´on homog´enea y el servidor de ficheros dar´a un servicio eficiente. Por el contrario, si el nivel de homogeneidad de carga es bajo algunos tramos de la red estar´an m´as cargados que el resto y ser´an “cuello de botella” del sistema. Si la pol´ıtica utilizada es “agrupaci´on por similitud”, el significado de los par´ametros es el siguiente:

factor de agrupaci´on: se trata del nivel de agrupaci´on que tienen los servidores, teniendo en cuenta que los grupos est´an formados por servidores que son t´ecnicamente similares. En este caso, el factor de agrupaci´on est´a intimamente relacionado con las caracter´ısticas t´ecnicas de los equipos utilizados. Si el factor de agrupaci´on es alto implica que todos los servidores son similares y, por tanto, tienen una capacidad de procesamiento similar. Por el contrario, un valor muy bajo de este par´ametro indica diferencias t´ecnicas importantes entre todos los servidores que constituyen el sistema. En este caso es importante redistribuir las peticiones dependiendo del n´umero y caracter´ısticas t´ecnicas de los servidores que forman cada grupo de almacenamiento.

nivel de homogeneidad de agrupaci´on: Si el nivel de homogeneidad de agrupaci´on es alto implica que los grupos de almacenamiento tienen una distribuci´on similar en cuanto a n´umero de servidores. En este caso, hay un n´umero similar de servidores con diferentes caracter´ısticas t´ecnicas. Por el contrario, si el nivel de homogeneidad de agrupaci´on es bajo implica que la distribuci´on de los servidores respecto a sus capacidades de procesamiento no es homog´enea. En este ´ultimo caso, interesa estudiar de nuevo el n´umero y caracter´ısticas t´ecnicas de los servidores que forman cada grupo de almacenamiento, a fin de redistribuir las peticiones.

nivel de homogeneidad de carga: Si el nivel de homogeneidad de carga es alto implica que los grupos de almacenamiento tienen una distribuci´on similar de carga y, por tanto, la carga es independiente de la capacidad de procesamiento. Esto puede no interesar en el caso de que haya muchas diferencias de un grupo a otro. Lo ideal es que los servidores con mayor carga sean aqu´ellos con mayor capacidad de procesamiento. Por otro lado, si el nivel de homogeneidad de carga es bajo, es posible que haya servidores no utilizados y otros sobrecargados y que, por tanto, constituyan el “cuello de botella” del sistema. Los restantes par´ametros no est´an relacionados con la pol´ıtica utilizada, sino con las caracter´ısticas de los servidores y el modelo de cooperaci´on e implementaci´on del sistema de ficheros MAPFS.

7.8. Nombrado de ficheros

Como vimos en la secci´on 5.4.3, MAPFS utiliza un esquema de nombrado basado en los sistemas de ficheros tipo UNIX, pero en el caso de MAPFS hay que extender dicho concepto para que permita el

manejo de grupos de almacenamiento. Ahora que conocemos los grupos de almacenamiento, estamos en condiciones de especificar esta extensi´on.

En cada uno de los nodos se almacenan los ficheros correspondientes al grupo de almacenamiento al que pertenecen.

El nombre del fichero es un nombre global, igual para cada uno de los nodos en los que se almacena. El sistema de directorios tiene la siguiente estructura:

/mapfs/group<id stg group>/<filename>

dondeid stg groupcorresponde al identificador del grupo de almacenamiento y

filenamees el nombre del fichero global

Siguiendo esta estructura, se puede utilizar otro concepto b´asico del sistema de ficheros tipo UNIX, el montaje. Se puede utilizar como punto de montaje del grupo de almacenamiento <i> cualquier directorio y como directorio de almacenamiento en el servidor /mapfs/group<i>, de modo que se monten de forma transparente al usuario cada uno de los directorios /mapfs/group<i<de los nodos servidores sobre el directorio especificado por el usuario. Las operaciones se realizar´an contra dicho grupo de almacenamiento.

La figura 7.8 muestra la forma de llevar a cabo el proceso de montaje mediante el uso de grupos de almacenamiento. La figura representa el proceso, mostrando cada una de las capas de la arquitectura de MAPFS y estableciendo el orden en el que se llevan a cabo cada uno de los subprocesos.

Como se puede observar en la figura, este proceso est´a formado por un conjunto de pasos: 1. El cliente MAPFS se encarga de “montar” un determinado grupo de almacenamiento, sobre

el cual va a realizar las operaciones de E/S. Este grupo de almacenamiento se montar´a sobre un determinado directorio. El directorio donde est´an almacenados los ficheros MAPFS en los servidores es mapfs/group<i>para el grupo principal cuyo identificador sea i. La interfaz del subsistema MAPFS FS proporciona la operaci´on de montaje, que tiene la siguiente estructura:

void mapMount (Mapfs_Group group, char *dir);

2. Para realizar el montaje, se debe acceder a la base de datos de grupos9, que contiene la informa-

ci´on sobre los nodos que forman el grupo de almacenamiento. El sistema multiagente se encarga de implementar este paso. En el caso de que el fichero est´e almacenado en un grupo principal, la matriz de agrupaci´on contiene esta informaci´on.

3. Una vez conocida la configuraci´on, se puede acceder a los nodos en los que se distribuye el fichero.

4. Una vez conocido el nodo, se puede acceder al directoriomapfs/group<i>de dicho servidor. 5. Las operaciones de E/S se realizan de forma transparente al usuario sobre los ficheros almace-

nados en los nodos servidores. Dependiendo de la funci´on de distribuci´on utilizada, los datos se distribuyen de distinto modo entre los nodos existentes en dicho grupo de almacenamiento (v´ease secci´on 7.9.

Esta es la operativa para los grupos de almacenamiento principales. Para los grupos secundarios y de replicaci´on el nombrado es diferente. A los grupos secundarios se les a˜nade el sufijo “ s” y el n´umero

7.8. NOMBRADO DE FICHEROS 141 Nodo 3 / mapfs group1 Grupo 1 Nodo 1 Cliente

MAPFS mount <grupo 1>

INTERFAZ MAPFS_MAS BD de grupos Sistema Multiagente Grupo1 .. .. Matriz de agrupación <grupo 1>: <nodo 1> <nodo 2> <nodo 3> INTERFAZ DEL SERVIDOR

mount <nodo 1> mount <nodo 2> mount <nodo 3> Nodo 2 / mapfs ... 1 2 3 4 5 INTERFAZ MAPFS_FS group1 / mapfs group1 dir / ....

Figura 7.8: Proceso de montaje en MAPFS

del grupo secundario, de forma que los ficheros pertenecientes al grupo secundario n´umero 3 del grupo principal 2 se almacenan en la ruta /mapfs/group<2>s3 de cada uno de los servidores. De forma an´aloga, a los grupos de replicaci´on se les a˜nade el sufijo “ r” y el n´umero de grupo de replicaci´on, de tal forma que los ficheros pertenecientes al grupo de replicaci´on n´umero 1 del grupo principal 3 se almacenan en la ruta /mapfs/group<3>r1. El proceso de montaje es an´alogo al de los grupos principales, salvo que no se utiliza la matriz de agrupaci´on para obtener los nodos correspondientes.

De este modo, pueden existir ficheros con el mismo nombre en distintos grupos de almacenamiento. El nombrado es transparente al usuario. La aplicaci´on de usuario s´olo debe especificar el punto de montaje. A trav´es de las tablas de la base de datos de grupos se puede conocer si el fichero se encuentra en un grupo principal o en un grupo secundario. De forma transparente, tambi´en se puede acceder a posibles r´eplicas en otros grupos de almacenamientos.

Por ´ultimo, cuando un cliente no vaya a utilizar un determinado grupo de almacenamiento, es conveniente que realice una operaci´on que “desmonte” el grupo de almacenamiento. Esta operaci´on tiene el siguiente formato:

void mapUmount (char *dir);

namiento correspondiente.

Las ventajas que ofrece el montaje de ficheros MAPFS son principalmente dos:

1. Permite ocultar el uso de grupos de almacenamiento. Una vez montado el grupo, las aplicaciones acceden a los ficheros pertenecientes a dicho grupo a trav´es del punto de montaje.

2. Homogeneidad con otros sistemas de ficheros, como el de UNIX, que utilizan el montaje para acceder a diferentes dispositivos del sistema.