P g i n a | 1 Alineacin de Disco Windows Server 2003 Son mucos los !actores "ue entran en #uego$ a la ora de conseguir %uenos rendimientos$ en la entrada & salida de los discos' !actores como el n(mero$ tama)o & velocidad de los discos$ tama)o de la unidad$ si los discos estn dedicados$ com*artidos$ o son virtuales$ los niveles de +AID$ la velocidad del %us$ almacenamiento ,SA-. as como las con/guracin de ada*tadores ,01A.$ versiones de los controladores$ carga de tra%a#o $etc2 3n *unto im*ortante "ue !recuentemente se *asa *or alto es la alineacin en las *articiones de disco2 4a mala o errnea con/guracin del almacenamiento$ *ara el so!tware de 5icroso!t S64 Server$ *roduce *enali7acin en los tiem*os de I89 ,entradas & salidas en disco.2 :l no reali7ar una alineacin de *articin correcta *uede causar una degradacin del rendimiento2 4a alineacin de la *articin del disco es un re"uisito *ara las *articiones8discos8vol(menes "ue e;igen un alto rendimiento$ *ara los "ue se crearon dis*ositivos de disco en +AID en versiones anteriores a Windows Server 200<$ donde era necesario a*licar dico alineamiento2 0o& da$ gracias a Windows Server 200<$ se crea un des*la7amiento inicial en las *articiones con un tama)o su/ciente ,=02>?%. *ara "ue "ueden alineados$ casi con toda *ro%a%ilidad2 4os sistemas de almacenamiento modernos son lo su/cientemente com*le#os como *ara "ue el vie#o modelos *ara re*resentar a los discos %asado en @ilindros$ @a%e7as & Sectores ,@0S.$ o el es"uema 41A *ara direccionar la in!ormacin "ue almacenan$ se *uedan considerar una mera sim*li/cacin conce*tual2 Sin em%argo$ estos tres !actores tienen es*ecial relevancia en el !enmeno del alineamiento8des alineamiento de las *articiones de un arra& de discos2 Partition ofset: :sta ci!ra re*resenta el sector del disco a *artir del cual em*ie7a la *articin & es la *rinci*al res*onsa%le de todo este #aleo2 :l 5aster 1oot +ecord ,51+.$ "ue ocu*a siem*re el *rimer sector del disco ,A=2 B1.$ al%erga la ta%la de *articiones "ue locali7an la u%icacin !sica de los di!erentes vol(menes$ la !amosa C/rmaD del disco & el cdigo m"uina "ue se encarga de reci%ir el control de la 1I9S tras el P9SE e invoca el cdigo del 1oot Sector de la *articin "ue estF activa$ "ue ser "uien comience a cargar los %inarios del sistema o*erativo2 4a *rimera *articin no comien7a inmediatamente des*uFs$ en el segundo sector$ sino "ue se des*la7a un cierto n(mero de ello2 :sto es as *or"ue istricamente mucos sistemas o*erativos$ entre ellos Windows$ P g i n a | 2 o%liga%an a "ue las *articiones em*e7aran en el *rinci*io de un cilindro$ *or lo "ue el 51+ aca "ue u%iese "ue descartar la *rimera *ista del disco ,*2e$ G3 sectores H G3 ; A=2 1 H 3=$A B1. Stripe Unit Size: :n los sistemas en los "ue un volumen com*rende ms de un disco !sico$ las controladoras de/nen un cierto tama)o *or de!ecto *ara cada una de las %andas "ue se usarn *ara almacenar datos & *aridades en los sistemas +AID2 :stas %andas suelen com*render un cierto n(mero de sectores de cada disco & *or tanto su tama)o ser un m(lti*lo del tama)o de sector2 Por lo general este es un valor con/gura%le "ue de%e ser cuidadosamente elegido teniendo en cuenta cmo la carga de tra%a#o va a reali7ar las o*eraciones de lectura8escritura so%re el almacenamiento2 :l Windows Iolume 5anager de/ne un valor de G> B1 *ara la Stri*e 3nit Si7e$ & las di!erentes soluciones ardware *ueden es*eci/car valores "ue van desde > B1 asta = 51$ e incluso ms2 Allocation Unit' Eam%iFn llamado C@lusterD$ este valor re*resenta el menor tama)o *osi%le "ue *uede ocu*ar un /cero2 Su valor *or de!ecto de*ende del tama)o del volumen$ aun"ue se *uede es*eci/car e;*lcitamente a la ora de !ormatear2 :n -EFS$ & *ara vol(menes de ms de 2 J1$ es de > B1 & *uede tener un valor m;imo de G> B12 So%re el *a*el$ *or cuestiones de a*rovecamiento de es*acio su valor de%e a*ro;imarse al tama)o medio de /cero$ & *or ra7ones de rendimiento al del Caverage dis? trans!er si7eD2 El alineamiento de las particiones se basa en buscar una buena combinacin de los tres parmetros anteriores, de manera que una cierta operacin de lectura/escritura no suponga tener que ir a buscar los datos a ms de un disco de los que conforman el volumen. Si *ara ciertas *eticiones tenemos "ue aca%ar le&endo o escri%iendo en di!erentes discos$ la acumulacin de las mismas *uede conllevar una *Frdida de rendimiento mu& signi/cativa2 Para evitar esto$ es im*ortante "ue las siguientes relaciones den como resultado un n(mero entero' Partition 9Kset 8 Stri*e Si7e 3nit Stri*e Si7e 3nit 8 Allocation 3nit P g i n a | 3 :sto se entiende mu& %ien con un el siguiente gr/co2 :n el vamos a su*oner "ue la Stri*e Si7e 3nit es G> B1 & anali7aremos cinco casos en los "ue usaremos di!erentes Partition 9Ksets & tama)os de cluster2 4amenta%lemente no se *uede *intar %ien a escala$ *or lo "ue los guioncillos intermedios re*resentan "ue la gr/ca se CestiraD *or ellos2 @ada sector re*resenta A=2 1&tes2 =2 Particin CdesalineadaD con un oKset de G3 sectores H G3 ; A=2 1 H 322AG 1 H 3=$A B1$ & con un tama)o de cluster de > B1' :n este caso$ el noveno %lo"ue de > B1 cae entre dos discos ,recordemos "ue el di%u#o no est a escala & "ue ,G>L3=$A.8>H<$=.2 Desa!ortunadamente este oKset es un valor *or de!ecto %astante com(n en el *asado2 22 Particin CcuasiLalineadaD con un oKset de G> sectores H G> ; A=2 1 H 32MG< 1 H 32 B1$ & con un tama)o de cluster de > B1' A"u nos ca%en < %lo"ues e;actos de > B1 en la *rimera %anda & =G en las siguientes$ *ero ning(n cluster se e;*ande a ms de un disco2 @omo se *uede o%servar$ la divisin del Partiton 9Kset & la Stri*e Si7e 3nit no da un n(mero entero$ *or lo "ue no nos *odramos /ar2 @omo veremos en el cuarto e#em*lo$ una variacin del tama)o de cluster *odra estro*ear las cosas2 32 Particin CalineadaD con un oKset de =2< sectores H =2< ; A=2 1 H GAA3G 1 H G> B1$ & con un tama)o de cluster de > B1' :n este caso$ el oKset coincide e;actamente con el Stri*e Set 3nit2 Por consiguiente$ cual"uier situacin en la "ue este valor sea m(lti*lo del tama)o de cluster de#a la *articin alineada2 >2 Particin CdesalineadaD con un oKset de G3 sectores H G3 ; A=2 1 H 322AG 1 H 3=$A B1$ & con un tama)o de cluster de G> B1' A"u emos aumentado el tama)o del cluster al valor m;imo *ermitido en -EFS ,G> B1.$ "ue se recomienda *or e#em*lo *ara los vol(menes "ue va&an a almacenar %ases de datos de :;cange o S642 :sta es la *eor situacin *osi%le$ *or"ue cada o*eracin so%re un cluster siem*re nos va a su*oner una do%le lectura o escritura en dos discos di!erentes2 P g i n a | 4 0emos usado G3 sectores como oKset$ *ero lo mismo u%iera dado cual"uier valor "ue no sea =2< sectores$ "ue es #usto el (ltimo e#em*lo2 A2 Particin CalineadaD con un oKset de =2< sectores H =2< ; A=2 1 H GAA3G 1 H G> B1$ & con un tama)o de cluster de G> B1' Aora emos elegido el mismo valor ,G> B1. tanto *ara el Partition 9Kset$ el Stri*e Si7e 3nit & la Allocation 3nit$ lo cual nos da de !orma inmediata una *articin alineada2 4a %uena noticia es "ue el des alineamiento es !cil de detectar$ & tam%iFn es !cil crear *articiones alineadas2 4a mala es "ue corregir la situacin a *osteriori su*one re*articionar & !ormatear de nuevo2 @om*ro%ando si las *articiones estn o no alineadas 0a%ida cuenta de "ue conocemos el Stri*e Set 3nit "ue utili7a nuestro almacenamiento$ el Partition 9Kset & el tama)o de cluster los *odemos o%tener as' wmic partition get BlockSize, StartingOset, !ame, "nde#$ De a"u sacamos el 9Kset de cada *articin en %&tes2 1loc?Si7e se re/ere al tama)o de sector2 wmic volume get %rive&etter, BlockSize, %evice"d$ :n este caso el valor de 1loc?Si7e re*resenta la Allocation 3nit o tama)o de cluster del sistema de arcivos2 Puede utili7arse tam%iFn el comando !sutil !sin!o nt!sin!o Nletra unidad'O P g i n a | :l comando DISBPA+E tam%iFn muestra el 9Kset de las *articiones$ sin em%argo no es de /ar$ *or"ue lo da en B1 & redondea2 :n el *rimer e#em*lo de la gr/ca anterior nos u%iera enga)ado misera%lemente mostrando 32 B12 Si nos salen las cuentas$ estu*endos2 Si no$ nos es*era la tediosa tarea de reacer nuestras *articiones$ con lo "ue eso su*one en lo tocante al salvaguardado de los datos & su dis*oni%ilidad durante el *roceso2 !enerando particiones alineadas @uando creamos una *articin so%re una 43- con Windows Server 200<$ Windows Iista o *osteriores$ &a se inclu&e *or de!ecto un oKset de = 51 ,=0><AMG %&tes.2 :sto *roduce un alineamiento automtico *ara casi todos los Stri*e Si7es *resentes en los sistemas de almacenamiento$ &a "ue = 51 es un m(lti*lo de G> B1$ =2< B1$ 2AG B1 & A=2 B12 -o o%stante siem*re es *osi%le a/nar o incrementar dico valor e;actamente igual "ue lo aremos en Windows Server 2003$ o incluso de una manera ms elegante2 P@on/gurndolo en el registroQ "n Windows Server 2000 # Windows Server 2003 $sare%os las &erra%ientas D'S(PA) # D'S(PA)* 3na ve7 creada la *articin$ la !ormatearemos usando el tama)o de cluster deseado$ *ero recordando "ue la relacin Stri*e 3nit8Allocation 3nit de%e dar tam%iFn un entero2 Sin em%argo es mu& im*ro%a%le "ue esto no sea as2 "li+iendo sa,ia%ente los valores de la Stripe Set Unit # Allocation Unit antes de ponerse %anos a la o,ra P g i n a | - Desa!ortunadamente$ a"u no *odemos a%lar de la e;istencia de una regla general2 :stos valores de%en ser elegidos en !uncin de la naturale7a de la carga de tra%a#o$ teniendo en cuenta el %alance entre lecturas & escritoras$ si sern secuenciales o aleatorias$ en %lo"ues de "uF tama)o se escri%ir8leer la in!ormacin$ etc2$ & tam%iFn de cmo se com*ortan las cacFs & cada almacenamiento en *articular2 Por eso es mu& !recuente encontrar guas es*ec/cas de cada !a%ricante *ara las cargas de tra%a#o ms !recuentes2