Presentación de los fundamentos claves sobre los componentes que conforman el sistema de almacenamiento de datos en escenario de alto desempeño con MS SQL Server 2012.
6. Agenda
Estructura del sistema base
Controlador de Discos, Adaptador de Bus del Host
e Interfaces
Fundamentos de discos de almacenamiento
Arreglos redundantes de discos de bajo perfil
Fundamentos de arreglos SAN
Conceptos básicos de almacenamiento de estado solido
SQL Server y el Sistema de Archivos
Probando el nuevo sistema de almacenamiento
Supervisión del sistema de almacenamiento
7. Estructura del sistema base
Bus del Sistema
El servidor se compone de varios bus y
controladores que se comunican el uno
del otro y a la CPU.
Bus Frontal
Por lo general, único acceso a la
memoria
Bus del sistema más veloz
HyperTransport / Quickpath
reemplazando a FSB
Bus Controlador I/O
También conocido como el bus de
periféricos
Todos los dispositivos
Todas las ranuras de expansión
8. Estructura del sistema base
Tipo de Bus Velocidad MB / Segundo
PCI 32-bit/33 MHz 133
PCI-X 1066
PCI Express x1, 4, 8, 16 250, 1000, 2000, 4000
PCI Express 2.0 x16, 32 8000,16000
PCI Express 3.0 x16 (2011~) 32000
Buses Periféricos y Velocidades
9. Estructura del sistema base
Tipo de Bus Velocidad MB / Segundo
SATA/SAS150, 300, 600 150, 300, 600
Fibre Channel 1G,2G, 4G, 8G 106, 212, 425, 850
iSCSI1Gbit, 10Gbit 125, 1250
Velocidades de las Interfaces
10. Controlador de Discos, Adaptador de Bus
del Host e Interfaces
Unidad de caché de 2MB a 64 MB+
Segmentación Adaptable
Pre-Fetch
Adaptadores RAID de Bus Host
Lee la memoria caché
Todo el almacenamiento escrito en caché
¡ADVERTENCIA!
Escribe habitualmente
Pagar ahora o pagar más tarde
Escribe la toma precedencia sobre lecturas efectuadas
Pool de buffer de 16GB vs. 256 MB de caché de I/O. Hagan
los cálculos
11. Los Fundamentos de Discos de
Almacenamiento
SAS es el rey de las cargas de trabajo pesadas
Comando en cola
SAS admite un máximo de 216 por lo general un límite de 64
SATA admite un máximo de 32
Detección y recuperación de errores
No es inteligente
El comando set en SCSI es mejor
Dúplex
SAS es full dúplex y dual por unidad puerto
SATA es única a doble cara y maneja un solo puerto
I/O Multi-path
Nativo de SAS a nivel de unidad.
Disponible para SATA a través de expansores.
SAS o SATA
12. Los Fundamentos de Discos de
Almacenamiento
Los discos duros emiten lo siguiente: Sólo eres tan rápido como el canal más lento o
más estrecho, ya que para alimentar a otras partes del sistema, hay que añadir una
cantidad extra de unidades de discos solo para obtener el I/O deseado a consumir en el
servidor.
Breaking news: El problema no es el tamaño es la velocidad.
Unidades de Discos
Tiempo Por el año 1981 Hoy día Mejora
Capacidad 10MB 1470MB 147x
Busqueda HDD 85ms/busqueda 3.3ms/busqueda 20x
IO/Seg 11.4 IO/Seg 303 IO/Seg 26x
Rendimiento de
Procesamiento HDD
5mbit/Seg 1000mbit/Seg 200x
Velocidad CPU 8088 4.77Mhz (.33 MIPS) Core i7 965(18322 MIPS) 5521x
13. Los Fundamentos de Discos de
Almacenamiento
Cabecera/Sectores/Cilindros
No una verdadera representación física!!!
Ubicación del dato/pista
Pistas exteriores comprimen más datos = Más MB / Seg
Pistas interiores buscan más rápido = Más I/O Seg
Más discos no = Más velocidad!!!
HDD actual sólo tienen un canal de lectura/escritura
Estructura Física
14. Los Fundamentos de Discos de
Almacenamiento
Las pistas son un camino
alrededor del disco
Los sectores son una sola porción
/ pedazo de un disco
Cilindro son a través de los discos
y se componen de sectores
Cabezas de hacen la lectura y la
escritura
Ubicación del sector de dato
15. Los Fundamentos de Discos de
Almacenamiento
Velocidades típicas 73 GB SAS/SCSI
Velocidad de rotación - 15,000 RPM
Promedio de búsqueda aleatoria I/O - En la realidad 5.5 ms Tiempo
de lectura; 6.0 ms Escritura teórica; 2.9 ms Lectura; 3.3 Escritura
Tasa de Transferencia Secuencial 65MB ~ 120MB/seg
Tasa de Transferencia Aleatoria 10MB ~ 30MB/seg
Memoria caché puede afectar el tamaño de bloque de dato entre 4 ~ 64k
Búsqueda secuencial entre pista en I/O - 0.5 ms de lectura, 0.7 ms
de escritura
Latencia de rotación - 2.0 ms
Rendimiento de disco
16. Los Fundamentos de Discos de
Almacenamiento
Tiempo de búsqueda El tiempo necesario para mover las cabezas de lectura/escritura sobre la superficie del disco a la pista requerida. El tiempo de
búsqueda es aproximadamente proporcional a la distancia que deben mover las cabezas.
Latencia de rotación Pasa el tiempo tomado, después de la finalización de la búsqueda, para el disco hasta que el primer sector dirigida sus
acciones bajo las cabezas de lectura/escritura. En promedio, la latencia de rotación es la mitad de una rotación completa.
Tiempo de transferencia El tiempo necesario para que el disco gire o rote hasta que hayan pasado todos los sectores incluidos en el marco de las
cabezas de lectura - escritura.
Velocidad de giro (RPM) Tiempo Promedio de Latencia (ms) Aplicaciones Típicas Actuales
5,400 5.6 IDE Desktop/Laptop
7,200 4.2 Estándar Actual IDE/SATA
10,000 3 High-end estándar SATA SAS/SCSI
15,000 2 Máximo Actual SAS/SCSI
17. Los Fundamentos de Discos de
Almacenamiento
Calculando la búsqueda máxima aleatoria por segundo
Búsqueda máxima aleatoria por segundo
1000 / (Tiempo de búsqueda[ms] + latencia[ms]) = IO/Seg
1000 / (4.7 + 2.0) = 204 Lectura/Seg
1000 /(3.3+2.0) = 188 Escritura/Seg
Latencia de efectos en cola!!!
18. Los Fundamentos de Discos de
Almacenamiento
Utilización máxima para mejor rendimiento
Escritura máxima de búsqueda por segundo = 188
La curva de ejecución sea en un 80%
Configure para que el promedio I/O de 140 aplique
aleatoriamente por segundo en disco I/O
Esto es un 75% de capacidad máxima
Mantener baja latencia!!!
19. Arreglos redundantes de discos de bajo
perfil
El I/O secuencial es mucho más rápido
Tiempo de búsqueda 5.5ms → 0.7ms
Cálculo rinde 370 I/O por segundo
o 277 I/O por segundo @ 75%
> 300+ I/O por segundo es común para secuencial
A medida que aumenta el I/O también incrementa la
Latencia
Rendimiento secuencial del disco puede estar cerca del
rendimiento del SSD
20. Fundamentos de arreglos SAN
Se necesitan dos o más discos
No hay espacio en el disco
perdido debido a la creación
de bandas
El rendimiento es más rápido
al leer y escribir
No ofrece ninguna protección
de datos
Cuantos más discos, más
riesgo
RAID 0 - Striping
21. Fundamentos de arreglos SAN
Sólo dos discos
Velocidad de escritura de un
disco
Velocidad de lectura de dos
discos
La capacidad es igual al
tamaño de un disco
RAID 1 - Mirroring
22. Fundamentos de arreglos SAN
Requiere 4 o más unidades
Es un espejo de 2 Raid 0
Stripes
Puede perder dos unidades y
todavía funcionar
Sólo la mitad del espacio
disponible
No es lo mismo que RAID 10
RAID 0 + 1 – Dos Mirroring RAID 0 Stripes
23. Fundamentos de arreglos SAN
Mejor rendimiento de lectura y
escritura
Requiere 4 o más unidades
Es un juego de espejos striped
Puede perder n/2 unidades en
donde es el número total de
unidades en el arreglo
Sólo la mitad de la capacidad
disponible
RAID 10 – Dos RAID 1 Striping Mirrors
24. Fundamentos de arreglos SAN
Considerado el mejor arreglo
Requiere 3 o más unidades
Stripe en todas las unidades
con paridad
Puede perder 1 unidad y
seguir funcionando
La capacidad es n-1 donde n
es el número de unidades en
el arreglo
RAID 5 – Striping con paridad
25. Fundamentos de arreglos SAN
Doble protección RAID 5
4 o más discos
Es un Stripe con dos unidades
de paridad
Puede perder dos unidades y
seguir funcionando
La capacidad es n-2, donde n
es el número de unidades en
el arreglo
RAID 6 – RAID 5 con esteroides
26. Fundamentos de arreglos SAN
RAID 0 = Fallo del disco = Perdida de dato
Más disco más riesgo
RAID 1 = Dos veces la seguridad
RAID 5 = Fiabilidad a pequeña escala
Más disco = Mayor riesgo
RAID 6 = Fiabilidad a gran escala
Más GB = Más riesgo
RAID 10 = Fiabilidad en cualquier escala
Susceptible a fallos de disco correlacionados
Es complicado calcular las tasas de fracaso
La regla de oro, más de 8 unidades en un RAID 5 podrían ser desastrosas
Velocidad de lectura no aplicable en las grandes unidades de 1 TB son un peligro real
Los discos del mismo lote sufren la misma suerte (Fallos Correlacionados)
Aplique en páginas corruptas en versión 2000 y haga CheckSum para versión 2005/2008
Restaurar copias de seguridad con regularidad.
Atención: Esto un Plan de Recuperación NO ES un Plan de Copia de Seguridad...
Confiabilidad RAID
27. Fundamentos de arreglos SAN
RAID 10
1 IOPs Lectura - 2 IOPs Escritura
RAID 5
1 IOPs Lectura - 4 IOPs Escritura
Ambos objetivos, tanto Stripe así como el de Paridad Stripe deben ser
leído y la paridad calculada serán escrita en ambas
Advertencia de lectura puede ser tan rápido como n-1 disco
RAID 6
1 IOPs Lectura - 6 IOPs Escritura
Ambos objetivos, tanto Stripe así como las dos Paridades Stripes deben
ser leído y la paridad calculada deberán escribirse en las tres
Advertencia de lectura puede ser tan rápido como n-2 discos
Capacidad o Performance
28. Fundamentos de arreglos SAN
SQL Server Data Files
Pagina de 8k
Extensible a 64k
256k lectura por delante
El tamaño del cluster RAID debe establecerse en 64k o
256k
Iniciar el tamaño del cluster en 64k
Mover el tamaño del cluster a 256k para un mejor rendimiento secuencial
Conocer el I/O del escenario
Por lo general, 256k encaja en el 99% de nuestras necesidades
Configurando y estableciendo el nivel de RAID
29. Fundamentos de arreglos SAN
Tipos de I/O separados!!!
Los archivos de datos tienden a Leer - Escribir aleatoriamente
Los archivos del Registro de Transacciones tienen 0 aleatorio al Leer - Escribir
Más de un Log en una unidad = Aleterioridad Lecturas - Escritura
Mejor aplicar el Log con datos AUNQUE...
LUN's separado sin disco compartido
RAID 1 o 10 para el Registro de Transacciones
Exige una carga fuerte de ejecución
RAID 5, 6 o 10 para Datos
Si son mas del 10% de ejecución de escritura en disco, debería empozar a buscar un RAID
10
Entendiendo las escrituras incurriendo en las lecturas!!!
Configurando y estableciendo el nivel de RAID
30. Fundamentos de arreglos SAN
Sectores del disco físico 512 bytes, 4,096 bytes
No se puede restaurar o adjuntar una base de datos de un tamaño más
grande del sector en un disco de tamaño de sector más pequeño. 4096
puede continuar en un 512 pero no 512 a 4096
Esté al tanto de un posible mayor rendimiento al configurar arreglos
RAID
Tamaño de Stripe y tamaño del requerimiento de I/O determinan el
rendimiento del escenario
Pequeños Stripe + Grandes requerimientos de I/O = Dividir el I/O en
subprocesos mas eficientes
No se suman, :-(.
10 unidades de 80MB/seg = 800MB/seg
La regla de oro es 15MB/seg por unidad
Tamaño de Stripe, de Bloques y Modelo de I/O
31. Conceptos básicos de almacenamiento de
estado solido
Sin partes móviles, I/O medidos en microsegundos.
Por lo tanto, al azar el I/O es 200 x o mejor que el disco duro
Por lo general, se lee más rápido que cuando escribe
Cuando a mucho, de 4 a 1 depende del fabricante
Uso diferente que un HDD
Puede perder capacidad con el tiempo
Puede ralentizar su entorno debido a la nivelación de desgaste
Varias capas de corrección de errores
Costoso
SAS 15k drive $2.00/GB
SSD $8.00/GB
No tiene que ser una condición para establecer un disco duro!!!
Discos de Estado Solido
32. Conceptos básicos de almacenamiento de
estado solido
Entender lo que está comprando y por qué.
¿Estás comprando desempeño de lectura secuencial?
¿Estás comprando desempeño de lectura aleatoria?
¿Están comprando ejecución de rendimiento aleatorio?
¿Estás comprando fiabilidad?
Estado Solido vs. Estado Solido
Unidad GB
Escritura
MB/Seg
Lectura
MB/Seg
Escritura
/Seg
Lectura
/Seg
Seek WL/D $ $/GB $/Lectura $/Escritura
IoDrive
Dou
640 1GB 1.4GB 127K 181K 80μs 5TB $15k $25.39 $0.11 $0.08
X25-M 160 70MB 250MB 35K 3.3K 85μs 100GB $750 $4.60 $0.02 #0.02
Imp. -4x -5x -5x -4x -55x - -10x -20x -5x -5x 3x
33. Conceptos básicos de almacenamiento de
estado solido
Redes de área de almacenamiento / Almacenamiento IP
Esencialmente un sistema informático especializado
Red especializada mediante Fibre Channel
O Ethernet mediante iSCSI
Ideal para redundancia o agrupamiento
Se centró en la consolidación del almacenamiento de
información no velocidad
NAS no es un SAN!
Red de área de almacenamiento
34. Conceptos básicos de almacenamiento de
estado solido
Configuración interna del disco
Los discos se dividen en slicers
Los sectores se agrupan en números de unidad lógica (LUN's)
Se presentan como los volúmenes de su host
Tamaño para cargas de IO no de espacio en disco.
No comparta sus discos con otras aplicaciones como Exchange
Usted y su administrador de Exchange les aseguro que estarán muy
tristes
Esté atento a esos lugares nada gratos
Red de área de almacenamiento
35. SQL Server y el Sistema de Archivos
Escrituras en registro de transacciones
Secuencial 512 bytes a 64KB
Archivo de datos de Lectura/Escritura
8KB
Lectura adelantada, muy importante en la versión Enterprise Edition
8 KB para 125KB
Bulk Insert
8 KB para 128KB
Crear base de datos
512 byte - Inicialización completa solamente en el registro de transacciones
Copia de seguridad de Lectura/Escritura secuencial
1 MB
Restauración secuencial de Lectura/Escritura
64K
DBCC CHECKDB
Lectura secuencial 8K-64K
DBCC DBREINDEX
Leer fase secuencial (Ver Lectura adelantada)
Escribir fase secuencial
Cualquier múltiplo de 8K hasta 128K
DBCC SHOWCONTIG
Lectura secuencial 8K-64K
36. SQL Server y el Sistema de Archivos
http://technet.Microsoft.com/en-us/library/cc966500.aspx
ACID y WAL
ACID (Atomicidad, Coherencia, Aislamiento y Durabilidad) es lo que hace a nuestra base de datos confiable
WAL (Write-Ahead Logging) es cómo se logra el ACID. Básicamente, el registro debe ser tratado en el disco antes
de que se modifique el archivo de datos
Los canales estable
Medios estable no es sólo la unidad de disco. Un controlador con una memoria caché con respaldo de batería
también se considera estable
FUA (Forced Unit Access - Unidad de Acceso Forzado)
FILE_FLAG_WRITETHROUGH le indica el sistema operativo subyacente que no utilice el almacenamiento en
caché de escritura ya que no se considera un canal estable
FILE_FLAG_NO_BUFFERING le indica el sistema operativo no utilizar la caché del sistema con el archivo de datos
a tratar
Acceso a archivos
SQL Server utiliza acceso asincrónico para archivos de registro y datos.
SQL Server intentará y garantizará escribir en el archivo de datos dentro de bloques más grandes
El registro de transacciones siempre se escribe en forma secuencial.
Todas estas reglas son aplicadas en los escenarios expuestos con la salvedad del "TempDB". Puesto que TempDB es
recreado cada vez que se reinicia el servidor conllevando con esto que cada vez que el tiempo de recuperación no es un
problema.
37. SQL Server y el Sistema de Archivos
Formato de las particiones de datos a 64k de tamaño en clúster
para el rendimiento. SQL Server lee 64k en bloque si es posible
Alineamiento de sectores para evitar dividir el I/O
MBR ocupa los primeros 63 sectores dejando su partición a partir de los
64
Uso diskpar (Windows 2000/2003 pre SP1)
Use diskpart (Windows 2003 SP1 o superior)
Windows 2008 establece salida de 1MB
Atención: Desfragmentación del disco no va a arreglar esto!!!
El formato de partición completa no va a arreglar esto tampoco!!!
Compruebe los servidores en estado de pre compilación
('Build'), Win2k/2003
La app WMIC PARTITION ubica los
BlockSize, StartingOffset, Nombre, Índice, etc
38. Probando el nuevo sistema de
almacenamiento
SQLIO
Pruebas de lecturas o escrituras
No es el mejor para cargas de trabajo mixtas
Encontraras capacidad máxima y mayores problemas
Iometer
http://www.iometer.org/
General IO System Tester
Muy flexible
Prueba de cargas de trabajo mixtas
Puede ser difícil de usar
39. Supervisión del sistema de almacenamiento
Tiempo de respuesta = Tiempo de Servicio + Tiempo de Espera
Disk Queue Length - Longitud de la cola en disco
Más relevante desde hace 10 años a la fecha
Máscara de cache DQ
Focalizado en latencia y en espera
sys.dm_io_virtual_file_stats
Te da que tiempo a leer y escribir el I/O
Te da una cantidad superior de datos tanto escritos y leídos a nivel de
archivo
Ideal para encontrar zonas álgidas en la SAN
sys.dm_os_wait_stats
Te imparte lo que SQL Server está haciendo del lado del I/O
Sólo en un nivel de instancia es aplicado
40. Entendiendo el Sistema de
Almacenamiento de Datos y SQL Server
Jose Redondo - SQL Server MVP
Correos: redondoj@gmail.com | jredondo@solidq.com
Twitter: @redondoj
Blog: redondoj.wordpress.com