Você está na página 1de 6

15-6-2015

Alineamiento de discos

Ingeniero: German Cayo Morales


Nombre y Apellidos: Evelyn Guevara Alanya

Alineamiento de particiones, en discos para bases de


datos SQL Server

Son muchos los factores que entran en juego, a la hora de conseguir buenos rendimientos, en la entrada
y salida de los discos: factores como el nmero, tamao y velocidad de los discos, tamao de la unidad, si
los discos estn dedicados, compartidos, o son virtuales, los niveles de RAID, la velocidad del bus,
almacenamiento (SAN) as como las configuracin de adaptadores (HBA), versiones de los controladores,
carga de trabajo, un punto importante que frecuentemente se pasa por alto es la alineacin en las
particionesde disco.
La mala o errnea configuracin del almacenamiento, para el software de Microsoft SQL Server, produce
penalizacin en los tiempos de I/O (entradas y salidas en disco). El no realizar una alineacin de particin
correcta puede causar una degradacin del rendimiento. La alineacin de la particin del disco es un
requisito para las particiones/discos/volmenes que exigen un alto rendimiento, para los que se crearon
dispositivos de disco en RAID en versiones anteriores a Windows Server 2008, donde era necesario aplicar
dicho alineamiento. Hoy da, gracias a Windows Server 2008, se crea un desplazamiento inicial en
las particiones con un tamao suficiente (1024kb) para que queden alineados, casi con toda probabilidad
(esto se tocar en detalle ms adelante)
En ocasiones se piensa errneamente que el alineamiento es til slo para Microsoft Exchange
Server. De hecho, la alineacin de particin es importante para todos los servidores de los cuales
se espera un alto rendimiento, especialmente de SQL Server.

Datos necesarios para una correcta alineacin


La unidad fundamental del almacenamiento de los datos en SQL Server es la pgina. El espacio en disco
asignado a un archivo de datos (.mdf o .ndf) de una base de datos se divide lgicamente
en pginas numeradas de forma contigua de 0 a n. Las operaciones de E/S de disco se realizan a nivel de
pgina. Es decir, SQL Server lee o escribe pginas de datos enteras. El tamao de pgina es de 8 KB. Esto
significa que las bases de datos de SQL Server tienen 128 pginas por megabyte.

Starting Partition Offset


Starting Partition Offset, es el desplazamiento inicial en la particin del volumen, que garantice la omisin
de asignacin de pginas de datos en n sectores ocultos (creados por el hardware de almacenamiento)
al principio de los volmenes. El valor de Starting Partition Offset, nos da el tamao exacto o superior de
la Partition Offset, esta cifra representa el tamao de los sectores ocultos (creados por el hardware de
almacenamiento) al principio de la particin, donde se alberga informaciones tales como, la tabla de
particiones que localizan la ubicacin fsica de los diferentes volmenes, la famosa firma del disco y el
cdigo mquina que se encarga de recibir el control de la BIOS tras el POST e invoca el cdigo del Boot
Sector de la particin que est activa, que ser quien comience a cargar los binarios del sistema operativo.
La primera particin, donde albergar las pginas de datos no comienza inmediatamente despus, en el
segundo sector, sino que se suele desplazar un nmero.

Es necesario conocer el valor de recomendacin de Starting partition Offset a la hora de alinear las
particiones. El hardware reporta un nmero de sectores ocultos iniciales (en muchos casos 63) que hace
que sistemas Windows Server 2003 alineen incorrectamente la particin basndose en este dato.

Si vuestro proveedor de hardware no tiene ninguna recomendacin sera deseable conocer el tamao de
estos sectores ocultos (hidden sectors) para tomar una decisin. Por este motivo, se ha creado para las
particiones un desplazamiento inicial, para sistemas Windows Server 2008, con un tamao
suficiente (1024kb), garantizando la no utilizacin de los sectores ocultos, para que queden alineados los
discos que forman esas particiones, casi con toda probabilidad.
Para versiones Windows Server 2003 y anteriores, Definir el desplazamiento inicial a 32 KB o incluso
a 64 KB, suele ser este ltimo, el mnimo ms comn, vlido para la particin inicial de desplazamiento
para SQL Server debido a las correlaciones ms frecuentes de discos.
Windows Server 2008 por defecto tiene la alineacin a 1024 KB (es decir, 1.048.576 bytes). Este
valor proporciona una
solucin normalmente
buena. Se correlaciona bien con tamaos tales como64
KB, 128 KB y 256 KB, as como los valores de uso menos frecuente de 512 KB y 1024 KB. Garantizando la
omisin de asignacin de datos a estructuras de sectores ocultos creados por el hardware de
almacenamiento.

Stripe_Unit_Size
Stripe_Unit_Size es la unidad mnima de asignacin en la escritura en banda (En el caso de una Cabina,
donde se asignan varios discos o porciones de varios discos a un Volumen, se balancea la escritura/lectura
en una serie de discos, cada escritura/lectura por disco tiene un tamao mnimo, ese es el dato que
necesitamos conocer. Los tcnicos dedicados al almacenamiento o proveedor del mismo, pueden
proporcionar este dato. Debera ser mltiplo de 8, ya que 8 Kb es el tamao de pgina, y de esta forma
asegurar la inclusin de pginas completas, en la unidad mnima de asignacin en la escritura en banda
(Stripe_Unit_Size).
De esta forma, se intenta garantizar pginas de datos completas, dentro de un mismo posicionamiento de
la cabeza lectora en disco, sin que la ltima pgina quede fragmentada al final y al principio de dos
posicionamientos, evitando de esta forma, el segundo posicionamiento si no fuera necesaria la lectura de
mas pginas de datos.

Implementacin
Esta seccin proporciona informacin sobre el uso de medidas y herramientas especficas para
implementar las recomendaciones presentadas anteriormente en este documento. Tambin se ocupa de
cuestiones a considerar en relacin con los proveedores.
Las correlaciones Esenciales: Partition offset, de asignacin de archivos Tamao de la unidad, y la unidad
de la raya Tamao
Utilice la informacin de esta seccin para confirmar la integridad de la configuracin de alineacin de
particin de disco para particiones existentes y nuevas implementaciones.
Hay dos correlaciones que cuando satisfechos son una condicin previa fundamental para el rendimiento
de E / S de disco ptima. Los resultados de los siguientes clculos deben dar lugar a un valor entero:
Partition_Offset Stripe_Unit_Size
Stripe_Unit_Size File_Allocation_Unit_Size

Ejemplo de escenario con desalineacin en los discos


Dada una particin con desplazamiento inicial StartingPartition Offset de 32.256 bytes (31,5Kb) y con un
tamao de escritura en banda StripeUnitSize de 65.536 bytes (64 Kb), el resultado de
Partition_Offset Stripe_Unit_Size es de 0.4921875, no es un nmero entero, por lo que se consideran que
los discos no estn alineados.

Ejemplo de escenario con alineacin en los discos

Dada una particin con desplazamiento inicial Starting Partition Offset de 1048576 bytes (1Kb) y con un
tamao de escritura en banda Stripe Unit Size de 65.536 bytes (64 Kb), el resultado de Partition_Offset
Stripe_Unit_Size es exactamente 8, un numero entero exacto, lo cual se puede decir que la alineacin es
correcta.
A modo de ejemplo en estudios realizados, sobre rendimiento con accesos a I/O en bases de datos de
SAP sobre SQL Server, usando servidores de 8-cores y 16GB de memoria y sobre cabinas de
almacenamiento EMC Symetrix SAN, ajustando el Stripe_Unit_Size se han obtenido mejoras de
rendimiento de:
Con Stripe_Unit_Size a 8 KB se obtienen mejoras del 18%
Con Stripe_Unit_Size a 64 KB se obtienen mejoras del 26%
Con Stripe_Unit_Size a 256 KB se obtienen mejoras del 23%.
Frente a Volmenes de discos, no alineados.

Consultar el estado de los actuales discos


La sintaxis del comando WMIC mas utilizada para sacar todos los datos del disco es la siguiente:
wmic partition get BlockSize, BootPartition, DeviceID, DiskIndex, HiddenSectors, NumberOfBlocks,
StartingOffset, Name, Index
Pero se puede sacar ms datos con la multitud de sintaxis que tiene el comando, mirndole la ayuda
con: wmicpartitionget /? Se puede sacar mucho mas.

Impacto Rendimiento
En el experimento se detalla a continuacin, la alineacin redujo tanto la latencia de disco y la
duracin de consulta en aproximadamente un 30 por ciento. El rendimiento de seis discos
alineados era comparable o mejor que ocho discos no alineados.
Este trabajo fue realizado en un Dell PowerEdge 2950 con dos procesadores de doble ncleo de
3,00 GHz Intel Xeon, un controlador PERC 5 / E y 8 GB de memoria RAM fsica.Seis u ocho discos
SAS, DAS, 73 GB 15K RPM, se configuran en RAID 10 con un tamao de clster de 64 KB y un
tamao de unidad de banda de 64 KB. Se instalaron Windows Server 2003 y SQL Server
2005. Una consulta se ejecut de que el cliente utiliza para comparar el desempeo. Antes de
cada ejecucin, DBCC DROPCLEANBUFFERS fue ejecutado para borrar la cach del bfer de SQL
Server, que se aseguraron de que todos los datos requeridos para satisfacer la carga de trabajo
se cargan desde el disco.
Se recopilaron datos de latencia de disco, duracin y otros parmetros pertinentes. El
Promedio. Transferencias de disco / seg contadores de los DiscoFsico y DiscoLgicoobjetos de
rendimiento se utilizaron para medir la latencia de disco. Latencia de disco es una medida
fundamental del rendimiento del disco.
El experimento fue sencillo, pero convincente. Los resultados fueron consistentes y
significativo. Figura 1 documenta el resultado.

Figura: Resultados de un experimento que documenta los beneficios de la alineacin de la


particin del disco
Anlisis dio lugar a las siguientes conclusiones:

Alineacin disco producido una mejora significativa en comparacin con los discos no
alineados. Las mejoras mediciones de documentos en exceso de 30% para la latencia de
disco y duracin.
El rendimiento de seis discos alineados era comparable o mejor que ocho discos no
alineados.

Conclusin
Muchos factores contribuyen a un rendimiento ptimo E/ S de disco. Para particiones de disco
creadas con Windows Server 2003, la alineacin de particin adecuadamente correlacionada
con el tamao de la unidad de la raya y el tamao de la unidad de asignacin de archivos es
una buena prctica, y proporciona una base fundamental para un rendimiento ptimo.
Windows Server 2008 se alinea particiones por defecto. Cuando los servidores se actualizan a
Windows Server 2008, las particiones preexistentes no se alinean automticamente y deben ser
reconstruidas para un rendimiento ptimo. As, hasta particiones desalineadas existentes
creados utilizando Windows Server 2003 o Windows 2000 Server se reconstruyen
correctamente, la alineacin de particin de disco seguir siendo una tecnologa relevante.