• No se han encontrado resultados

Funciones de distribuci´on

Las funciones de distribuci´on determinan c´omo distribuir la informaci´on a trav´es de los distintos nodos que forman un grupo de almacenamiento. La distribuci´on de los datos proporciona la capacidad al sistema para realizar las operaciones de E/S de una forma paralela. Por este motivo, la distribuci´on y, por extensi´on, las funciones de distribuci´on toman un papel fundamental en MAPFS.

Una funci´on de distribuci´on asocia un determinado offseto desplazamiento de la informaci´on con un nodo en el grupo de almacenamiento.

Definici´on 21 Se denomina funci´on de distribuci´on a una funci´onf dG(Gx, f ile, of f set) = (Sy, Oy), donde:

Gx: Identificador del grupo de almacenamiento en el cual se va a realizar la distribuci´on. file: Nombre del fichero al que se va a acceder.

offset: Desplazamiento de la informaci´on.

Sy: Identificador del nodo al que corresponde dicho desplazamiento.

Oy: Desplazamiento de la informaci´on correspondiente al nodo.

De cara a optimizar el rendimiento global del sistema, el criterio que se suele utilizar para definir diferentes funciones de distribuci´on es maximizar la distribuci´on para favorecer el paralelismo en las operaciones de acceso a los datos. Es por ello que la funci´onround-robin, que permite distribuir los da- tos de una forma circular, dependiendo del tama˜no de bloque elegido, puede proporcionar unos buenos par´ametros de distribuci´on. La elecci´on del tama˜no de bloque es un aspecto clave en el rendimiento de esta funci´on de distribuci´on, ya que si seleccionamos un tama˜no de bloque peque˜no lograremos maximizar la distribuci´on entre los nodos, pero se incrementar´a el n´umero de operaciones de E/S, ya que los datos est´an m´as fragmentados entre los diferentes nodos. Por otro lado, si elegimos un tama˜no de bloque grande, los datos pueden no distribuirse homog´eneamente entre los servidores10 (a no ser

que el tama˜no del fichero sea un m´ultiplo del tama˜no de bloque), pero se decrementar´a el n´umero de operaciones de E/S. Por tanto, es necesario llegar a un compromiso entre ambas opciones. Adem´as, dependiendo del tama˜no de los ficheros utilizados por el sistema, la elecci´on del tama˜no de bloque tambi´en puede variar.

De este modo, y de una forma operativa, en el caso de utilizarround-robin, los par´ametros que nos interesa calcular a la hora de llevar a cabo la distribuci´on en un grupo de almacenamiento compuesto por servidores vac´ıos a partir de los datos proporcionados por el usuario a las operaciones de E/S son:

Nodo o nodos en el que debe almacenarse/obtenerse la informaci´on. Para ello se utiliza el nodo inicial, descrito en la secci´on 7.4.2. Una vez almacenados los datos en este nodo inicial, el resto se almacena de forma circular.

7.9. FUNCIONES DE DISTRIBUCI ´ON 143 Nodo Dist. vertical 0 1 2 Ba 0 Bh 0 Ba 1 Bh 0 Ba 2 Bh 0 Ba 3 Bh 1 Ba 4 Bh 1 Ba 5 Bh 1 Ba 6 Bh 2 Ba 7 Bh 2 Ba 8 Bh 2 ... ... offset vertical Ba 1 Bh 0 Ba 4 Bh 1 Ba 0 Bh 0 Ba 1 Bh 0 Ba 7 Bh 2 ... offset

Ba: Bloque absoluto Bh: Bloque horizontal Tb: Tamaño bloque

Ba 7 Bh 2

Tb

Figura 7.9: Distribuci´on de los datos en el sistema de ficheros MAFPS

Bloque absoluto:Se trata del bloque de un fichero visto de una forma global, del fichero completo, es decir, como si no se hubiera distribuido.

Bloque horizontal: Se trata del concepto de bloque desde el punto de vista de la distribuci´on horizontal del mismo sobre los diferentes nodos.

Offset vertical:Se trata del desplazamiento de un fichero visto desde el punto de vista de un nodo. Se calcula a partir deloffsetglobal11.

La figura 7.9 muestra el proceso de distribuci´on suponiendo que en un determinado grupo de almacenamiento tenemos tres servidores y que el nodo inicial es el nodo 0. El esquema ser´ıa equivalente en caso de que el nodo inicial fuera diferente, salvo que los bloques se mostrar´ıan desplazados respecto al nodo inicial.

Las expresiones que permiten calcular los par´ametros anteriores se enuncian a continuaci´on y requieren conocer el tama˜no del bloque del sistema (tBloque), el n´umero de servidores del grupo de almacenamiento (N SERV) y eloffset global(que de forma simplificada denominaremosoffset) a partir del cual se realizara la operaci´on de E/S.

Nodo (nodo):El nodo inicial a partir del cual se van a distribuir o est´an distribuidos los datos de un determinado fichero se calcula a partir de un algoritmo que tiene como salida dicha

informaci´on y que est´a descrito en la secci´on 7.4.2. Los datos se van distribuyendo en un orden circular a trav´es de los nodos del grupo de almacenamiento. Por tanto:

nodo = (nodo anterior+1) %N SERV

donde % representa la operaci´on m´odulo. A esta funci´on de distribuci´on se le denomina

round-robin, por analog´ıa con el algoritmo de planificaci´on con el mismo nombre [Tan87], [Dei87]. Se puede utilizar cualquier otra funci´on de distribuci´on. Este tipo de funciones junto con las pol´ıticas a la hora de crear los grupos de almacenamiento son configurables y van a condicionar el rendimiento del sistema (v´ease secciones 7.7 y 7.9).

Bloque absoluto (bAbsoluto): Determinar el bloque absoluto consiste en calcular el n´umero de orden que ocupa el bloque que contiene el dato representado por offset en el fichero global o completo. Por tanto:

bAbsoluto = offset/tBloque

Bloque horizontal: (bHorizontal) Determinar el bloque horizontal consiste en calcular el n´ume- ro de orden que ocupa el bloque que contiene el dato representado por offset respecto a la distribuci´on horizontal del fichero a trav´es de los nodos. Por tanto:

bHorizontal = bAbsoluto/N SERV

Offset vertical (oVertical):Eloffset verticalrepresenta el desplazamiento de un dato a trav´es de un ´unico nodo. Por tanto:

oVertical = (bHorizontal∗tBloque) +of f set%tBloque

Conociendo el nodo y eloffset vertical, conocemos el lugar exacto donde se ubica un determinado dato que se desea leer o escribir.

Por tanto, la funci´on de distribuci´on round-robinse puede definir: f dRRG(Gx, f ile, of f set) = (Sy, Oy)

f dRRG= ((beginningN ode(f ile, StorageCapList) + (of f set/tBloque)) %N SERV, oVertical )

considerando que los nodos del grupo de almacenamiento se numeran desde el 0 hasta N SERV. Como podemos ver, la elecci´on del tama˜no de bloque (tBloque) condiciona la distribuci´on round- robin.

El sistema MAPFS permite la definici´on de otras funciones de distribuci´on diferentes, las cuales ser´an utilizadas por las operaciones de E/S a la hora de acceder a la informaci´on.