• No se han encontrado resultados

Par´ametros de agrupaci´on de MAPFS

Los grupos de almacenamiento permiten la gesti´on del almacenamiento y recuperaci´on de infor- maci´on en el sistema de ficheros MAPFS.

Hay varios factores relacionados con los grupos de almacenamiento que se pueden ajustar de forma que se optimice el funcionamiento de dicho sistema. Estos factores permiten el an´alisis de determinadas caracter´ısticas que pueden afectar al rendimiento de las aplicaciones y est´an basados en los grupos de almacenamiento principales, sin tener en cuenta los grupos de almacenamiento invisibles o secundarios. Esto no supone ninguna limitaci´on, por dos motivos:

Las aplicaciones s´olo ven los grupos de almacenamiento principales.

La operaci´onmapGroupDefragm()permite la defragmentaci´on de los grupos de almacenamiento, de forma que los grupos invisibles desaparecen, quedando s´olo los grupos de almacenamiento principales. Como se mencion´o previamente, a pesar de ser una operaci´on costosa, puede ser realizada durante horas de baja ocupaci´on del sistema.

Por este motivo, para calcular estos par´ametros se utilizar´a la relaci´on de agrupaci´on principal, que por simplicidad a partir de este momento se va a denotar como relaci´on de agrupaci´on.

A continuaci´on se describen los factores o par´ametros de agrupaci´on:

Factor de agrupaci´on. Se denota como αG(S,G), donde Ses el conjunto de servidores y G

7.6. PAR ´AMETROS DE AGRUPACI ´ON DE MAPFS 131

servidores. Para calcular este factor, se halla el ratio entre el n´umero de servidores y el n´umero de grupos de almacenamiento. Suponiendo que existenpservidores yngrupos, la expresi´on que permite calcular el factor de agrupaci´on es:

αG(S,G) = P

i,jSi(j)

Pn

z=0Gz =p/n

En los casos l´ımites, el valor del factor de agrupaci´on oscila entre los siguientes valores:

αG(S,G) = 1 ⇐⇒ p=n, es decir, hay un grupo de almacenamiento por cada uno de los

servidores. En este caso, el uso de los grupos de almacenamiento no aporta ninguna ventaja, ya que un grupo corresponde a un servidor y viceversa.

αG(S,G) =p⇐⇒ n=1, es decir, s´olo existe un grupo de almacenamiento. En este caso,

todos los servidores son tratados de la misma forma desde el punto de vista del almacena- miento y se utilizan como copias exactas. Es lo que denominaremosservidores clones.

Nivel de homogeneidad de agrupaci´on. Se denota comoβG(S,G) y consiste en medir c´omo

se distribuyen los servidores a trav´es de los grupos de almacenamiento, de forma queβG(S,G)

toma un valor alto en el caso de que la distribuci´on sea homog´enea y toma un valor bajo si es poco uniforme. Si denotamos como Nr al n´umero de servidores que existen en un grupo

de almacenamientoGr y ordenamos los grupos de forma ascendente en funci´on del n´umero de

servidores que tienen, la expresi´on que nos permite calcular el valor del nivel de la homogeneidad de agrupaci´on es la siguiente: Nr= X j Sr(j) βG(S,G) = n Y i=1,j=i Ni/Nj

Ejemplo 7.1. Supongamos que tenemos 10 servidores. Se pueden llevar a cabo diferentes agrupa- ciones. Algunas de estas distribuciones las mostramos a continuaci´on. El factor de agrupaci´on (αG(S,G)) y el nivel de homogeneidad (βG(S,G)) aparecen junto a la distribuci´on correspon-

diente:

Primera distribuci´on:

G1={S1, S2, . . . , S9, S10} αG(S,G) = 10/1 = 10 (Servidores clones)

βG(S,G) = 10/10 = 1 (Nivel de homogeneidad m´aximo: los servidores est´an distribui-

dos en la misma proporci´on a trav´es de los grupos de almacenamiento).

Segunda distribuci´on:

G1={S1, S2} G2={S3, S4} G3={S5, S6} G4={S7, S8} G5={S9, S10} αG(S,G) = 10/5 = 2

βG(S,G) = (2/2)15 = 1 (Nivel de homogeneidad m´aximo: los servidores est´an distri-

buidos en la misma proporci´on a trav´es de los grupos de almacenamiento).

Tercera distribuci´on:

G1={S1, S2} G2={S3, S4, S5}

G3={S6, S7, S8, S9, S10} αG(S,G) = 10/3 = 3,ˆ3

βG(S,G) = (2/2)(2/3)(2/5)(3/3)(3/5)(5/5) = 0,16 Cuarta distribuci´on:

G1={S1, S2} G2={S3, S4} G3={S5, S6, S7} G4={S8, S9, S10} αG(S,G) = 10/4 = 2,5 βG(S,G) = (2/2)2(2/3)2(2/2)(2/3)2(3/3)30,20 Quinta distribuci´on:

G1={S1} G2={S2} G3={S3} G4={S4} G5={S5} G6={S6} G7={S7} G8={S8} G9={S9} G10={S10} αG(S,G) = 1 βG(S,G) = 1

Nivel de homogeneidad de carga. Conociendo el nivel de homogeneidad de agrupaci´on,

podemos modificar la funci´on de agrupaci´on de forma din´amica para lograr un mayor equilibrado de carga, suponiendo que los servidores reciban la carga de forma homog´enea.

En caso de que la carga no sea homog´enea, podemos hablar de un nuevo ´ındice a medir:nivel de homogeneidad de carga, que denotaremos comoγG(S, G). El nivel de homogeneidad de carga

es equivalente al nivel de homogeneidad de agrupaci´on, en el caso de que cada servidor tenga igual carga de trabajo. En otro caso, para definir el nivel de homogeneidad de carga hay que tener en cuenta un nuevo par´ametro: la carga de cada servidor, que denominaremoslr(u)para un

servidorSr(u)dado. Este par´ametro no es est´atico, es decir, depende del tiempo (lr(u)≡lr(u)(t))

7.6. PAR ´AMETROS DE AGRUPACI ´ON DE MAPFS 133

Si denotamos comoLr(t) a la carga de un grupo de almacenamiento en un instante t, se cumple

que:

ÃLr= X

j

lr(j)

En un determinado instante de tiempo t,γG(S,G, t) se define como:

γG(S,G, t) = n Y i=1,j=i

Li(t)/Lj(t)

es decir, se calcula de forma similar al nivel de homogeneidad de agrupaci´on, pero teniendo en cuenta la carga del grupo de almacenamiento en lugar del n´umero de servidores del mismo.

Granularidad de un grupo de almacenamiento. Se denomina granularidad a la raz´on

existente entre la cantidad de trabajo realizado por una tarea y la cantidad de comunicaci´on que llev´o a cabo. En t´erminos gen´ericos se habla de granularidadfinacuando hay poca computaci´on por comunicaci´on, mientras que esgruesacuando hay gran cantidad de computaci´on por comu- nicaci´on entre tareas. En el caso de un grupo de almacenamientoGi, se define su granularidad

en un determinado intervalo de tiempo T (δG(Gi, T)) como la raz´on entre la carga del mismo y

la cantidad de comunicaci´on realizada por el grupo de almacenamiento en dicho intervalo, que denotaremos comoC(Gi). Es decir,

δG(Gi, T) = (LGi(t+T)−LGi(t))/C(Gi)

Para definirC(Gi), necesitamos conocer la cantidad de comunicaci´on de cada uno de los servi-

dores que lo forman, es decir:

C(Gi) = X

j

c(Si(j))

considerando quec(Si(j)) es la cantidad de comunicaci´on llevada a cabo por el servidor Si(j).

Este par´ametro es dif´ıcil de formalizar y depende mucho de la plataforma de distribuci´on uti- lizada, aunque puede ser medido a trav´es de herramientas de monitorizaci´on de la plataforma correspondiente.

El valor deC(Gi) puede ser dividido en coste de comunicaci´on intra-grupal, es decir, comunica-

ci´on debida a los mensajes establecidos por los servidores del grupoGiy coste de comunicaci´on inter-grupal, es decir, comunicaci´on debida a los mensajes establecidos entre los servidores de Gi y cualquier otro servidor de un grupo diferente. En principio, con el uso de los grupos de

almacenamiento se tiende a minimizar este segundo t´ermino:

C(Gi) =Cintra−grupal(Gi) +Cinter−grupal(Gi)

C(Gi) = X j,k c(Si(j), Si(k)) + X j,k,l6=i c(Si(j), Sl(k))

De la expresi´on anterior y de las motivaciones de los grupos de almacenamiento, se suponen las siguientes premisas:

c(Si, Si) = 0

Se ha de intentar minimizar el segundo t´ermino, es decir: Pj,k,l6=ic(Si(j), Sl(k)) 0.

En el funcionamiento normal del sistema, este t´ermino es despreciable frente al valor de Cintra−grupal, ya que las operaciones son realizadas dentro de un mismo grupo de alma-

cenamiento. En fases de reajuste de grupos (aplicaci´on de las operaciones mapJoin(),

mapBreak() y mapChange()), es cuando este factor no es despreciable. Pero estas fases

no suelen llevarse a cabo de forma muy frecuente ni intercaladas con las fases de trabajo normal.

Esfuerzo de paralelizaci´on. Este factor se puede medir como el tiempo de gesti´on de las tareas paralelas. El tiempo total de trabajo se puede calcular como la suma del tiempo de gesti´on y el tiempo de trabajo ´util.

Nivel de cooperaci´on. Este factor mide el grado de coordinaci´on que existe entre dos gru- pos de almacenamiento. Al igual que con la comunicaci´on, existen dos niveles de cooperaci´on: cooperaci´on interna y cooperaci´on externa.

La cooperaci´on interna es aqu´ella que existe dentro de un grupo de almacenamiento y tiene sentido debido a que dicho grupo no es una entidad at´omica, sino que est´a formado por un conjunto de MAS (v´ease secci´on 5.5). Por tanto, si denominamos²G(Gi) al nivel de cooperaci´on

interna de un grupo de almacenamiento Gi, se cumple que:

²G(Gi) = X

j

ζM(j)

dondeζM(j) mide el nivel de cooperaci´on del sistema multiagente j.

Denotaremos ζG(Gi, Gj) al nivel de cooperaci´on externa entre dos grupos de almacenamiento

Gi yGj. De este modo, se cumple que:

ζG(Gi, Gj, T) = X

j

θM(i, j)

dondeθM(i, j) mide el nivel de cooperaci´on entre dos sistemas multiagente i y j.

Capacidad de almacenamiento de un grupo de almacenamiento: Este par´ametro es

utilizado para medir la capacidad sobrante de un determinado grupo de almacenamiento. Este factor puede ser ´util para determinados procesos, uno de los cuales es el c´alculo de la selecci´on del grupo de almacenamiento sobre el cual se va a realizar la redistribuci´on de ficheros, tal y como se describe en la secci´on 7.4.8. La capacidad de un grupo de almacenamientoGrse denota

como Pr y es igual a la suma de las capacidades de todos los servidores que forman parte del

mismo. Al igual que el par´ametro “carga de un grupo de almacenamiento”, la capacidad de almacenamiento de un grupo es dependiente del tiempo. Por tanto, se cumple que:

Pr(t) = X

j

7.7. POL´ITICAS DE AGRUPACI ´ON 135

dondepr(j)(t) corresponde a la capacidad de almacenamiento sobrante del servidor Sr(j) en el

instantet.

Un par´ametro relacionado con ´este ´ultimo es la capacidad total de un grupo de almacenamiento Gr, que denominaremosP Try que es igual a la suma de las capacidades totales de cada uno de

los servidores que posee (ptr(j)). Por tanto, la relaci´on existente entre la carga de un grupo de

almacenamiento y su capacidad de almacenamiento viene dada por la siguiente expresi´on:

Lr(t) =P Tr(t)−Pt