Entendiendo el Sistema de Almacenamiento de Datos y SQL Server
Jose Redondo
Expositor
Jose Redondo Chapter Leader SQL PASS Venezuela – Caracas Chapter DPA SolidQ Senior Consultant SynergyTPC, Bogotá - Colombia MCP | MCTS - MS SQL Server; MTA - DAF | SQL Server MVP
Organización
Patrocinadores / Sponsors
GOLD
SILVER
BRONCE
Personal/Swag
Dispositivos de almacenamiento
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
Estructura del sistema base
Bus del SistemaEl 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
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
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
Controlador de Discos, Adaptador de Bus del Host e InterfacesUnidad 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
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
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
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
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
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
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
Los Fundamentos de Discos de AlmacenamientoCalculando 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!!!
Los Fundamentos de Discos de AlmacenamientoUtilizació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!!!
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
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
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
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
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
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
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
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
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
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
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
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
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
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 GBEscrituraMB/Seg
LecturaMB/Seg
Escritura/Seg
Lectura/Seg
Seek WL/D $ $/GB $/Lectura $/Escritura
IoDriveDou
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
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
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
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
SQL Server y el Sistema de Archivoshttp://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.
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
Probando el nuevo sistema de almacenamientoSQLIO 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
Supervisión del sistema de almacenamientoTiempo 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
Entendiendo el Sistema de Almacenamiento de Datos y SQL Server
Jose Redondo - SQL Server MVPCorreos: [email protected] | [email protected]
Twitter: @redondoj
Blog: redondoj.wordpress.com