40
Entendiendo el Sistema de Almacenamiento de Datos y SQL Server Jose Redondo

Entendiendo el sistema de almacenamiento de datos y SQL Server

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Entendiendo el sistema de almacenamiento de datos y SQL Server

Entendiendo el Sistema de Almacenamiento de Datos y SQL Server

Jose Redondo

Page 2: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 3: Entendiendo el sistema de almacenamiento de datos y SQL Server

Organización

Page 4: Entendiendo el sistema de almacenamiento de datos y SQL Server

Patrocinadores / Sponsors

GOLD

SILVER

BRONCE

Personal/Swag

Page 5: Entendiendo el sistema de almacenamiento de datos y SQL Server

Dispositivos de almacenamiento

Page 6: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 7: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 8: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 9: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 10: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 11: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 12: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 13: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 14: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 15: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 16: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 17: Entendiendo el sistema de almacenamiento de datos y SQL Server

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!!!

Page 18: Entendiendo el sistema de almacenamiento de datos y SQL Server

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!!!

Page 19: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 20: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 21: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 22: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 23: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 24: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 25: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 26: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 27: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 28: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 29: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 30: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 31: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 32: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 33: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 34: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 35: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 36: Entendiendo el sistema de almacenamiento de datos y SQL Server

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.

Page 37: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 38: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 39: Entendiendo el sistema de almacenamiento de datos y SQL Server

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

Page 40: Entendiendo el sistema de almacenamiento de datos y SQL Server

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