Estratégias Avançadas com SQL Server AlwaysOn
DBP-301
SP_WHO
Especialistas em SQL Server
Microsoft Most Valuable Professional (MVP)
Palestrantes em vários eventos Online e presenciais Co-autores dos livros:
• SQL Server 2014: Alta Disponibilidade na Prática com AlwaysOn Failover Cluster Instances
• SQL Server: Além do conceito SQL Server Blog Post Collection
Blog
http://marcelodba.wordpress.com https://www.mcdbabrasil.com.br
Contatos
fernandes_dba@hotmail.com
@marcelodba
niltonpinheiro@msn.com
@nilton_pinheiro
Nilton Pinheiro Marcelo Fernandes
Agenda
• SQL Server Failover Cluster – Tradicional
• Tipos de Storage para SQL Server
• Escolhendo a Storage Baseado no Workload
• SQL Server Failover Cluster usando iSCSI como opção de Storage
• SQL Server Failover Cluster usando File Share (SMB 3.0) como opção de Storage
• SQL Server Failover Cluster com Cluster Sare Volume
(CSV)
SQL Server Failover Cluster - Tradicional
SQL DB
Log
Rede Privada (Heartbeat)
Standby
SQLINST1 (nome virtual)
E:\
F:\
G:\
W:\
SQL DB
SRVNODE1 SRVNODE2
Heartbeat
Rede Pública
A necessidade de uma storage é um fator limitante
para muitas empresas!
Tipos de Storage para SQL Server
• iSCSI Target Server
• SMB FileShare (usando SMB 3.0 ou 3.02)
• Cluster Shared Volume (CSV)
• Discos Internos – HDD tradicional ou SSDs
• Placa de armazenamento PCI-E
• Direct-attached storage (DAS) – HDD ou SSDs
• Storage area networks (SAN) - HDD ou SSDs
• Server Message Block (SMB) 3.0 file shares
• Disponível no Windows Server 2012 e 2012 R2
• SQL Server suporta o uso do File Share a partir da versão 2012 (stand-alone ou FCI)
Storage HDD vs SSD
• 100-200MB/sec. por disco
• 100-200 IOPS por disco
• 6Gbps SAS/SATA pode atingir até 550MB/sec. por disco
• 3Gbps SAS/SATA pode atingir até 275MB/sec. por disco
• Placa PCI-E pode atingir até 6.5GB/sec.
• 6Gbps SAS/SATA pode atingir até 100,000 IOPS
• PCI-E storage cards pode atingir até 1.3 milhões IOPS
Comparativo de Desempenho de I/O
MB/s I/O per s AvgLat MB/s I/O per s AvgLat MB/s I/O per s AvgLat
Storage Comp. SSD High-end
Read IO 66.25 8479.36 6.978 146.66 18772.01 2.698 181.5 23232.62 2.469
Write IO 22.1 2828.59 1.7 49 6271.93 2.113 60.61 7758.36 0.853
Total IO 88.34 11307.95 5.658 195.66 25043.94 2.552 242.12 30990.98 2.064
0.51 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768
Comparativos de Storages
Read IO Write IO Total IO
diskspd -b8K -d180 -o16 -t4 -h -r -w25 -L -Z1G -c10G D:\iotest.dat
Escolhendo a Storage baseado no Workload
• Também oferece melhor desempenho sequencial em relação ao HDD
• SSD é mais caro que o HDD (por GB)
• O preço do SSD está cada vez mais acessível
• HDD têm uma performance ruim para I/O randômico (que pode ser
“mascarado” através do cache da controladora)
• Cache baseado em Flash pode prover melhor desempenho para o HDD
• Recomendado para ambientes com alto overhead de I/O randômicos
• Recomendado para ambientes que apresentam gargalos de I/O
SQL Server FCI usando iSCSI
como opção de Storage
iSCSI Target Server
• Ativação da role “iSCSI Target Server”
• Quando configurada promove o servidor a um “Storage Server”
• Integrada ao Windows Failover Clustering
Não recomendado para discos SQL Server
iSCSI Target Server - Arquitetura
C:\
C:\
C:\
E:\
Target1 SERVER01 SERVER02
Target2 SERVER01 SERVER02
Target1 Target2
SQLINST1-G-DADOS= G:\
SQLINST1-I-LOG=I:\
SQLINST1-E-BIN=E:\
QUORUM=Q:\
SQLINST2-H-DADOS=H:\
SQLINST2-F-BIN=F:\
SQLINST2-J-LOG=J:\
Switch
Target1 Target2
Conjunto independente de discos para cada instância
instalada no cluster SQLINST1-E-BIN.vhdx
SQLINST1-G-DADOS.vhdx SQLINST1-I-LOG.vhdx QUORUM.vhdx SQLINST2-F-BIN.vhdx SQLINST2-H-DADOS.vhdx SQLINST2-J-LOG.vhdx
iSCSI Initiator
iSCSI Initiator Storage
Server
SERVER01
SERVER02
QUORUM=Q:\
Demo SQL Server FCI usando o iSCSI como opção de Storage
TECHEDBR15 C:\
C:\
E:\
Target1 SERVER01 SERVER02
Target1
SQLINST1-G-DADOS= G:\
SQLINST1-I-LOG=I:\
SQLINST1-E-BIN=E:\
Switch
Target1
SQLINST1-E-BIN.vhdx SQLINST1-G-DADOS.vhdx SQLINST1-I-LOG.vhdx QUORUM.vhdx
iSCSI Initiator
iSCSI Initiator Storage
Server
C:\
SQL Server FCI usando o File Share
(SMB3.0) como opção de Storage
SMB 3.0 File Shares
• Suporta I/O usando múltiplas placas de rede simultâneas,
• Tolerância a falhas de interfaces de rede,
• Integrado ao Windows Failover Clustering
• Windows Server 2012 suporta “SMB Direct”, que permite o uso de placas de rede com suporte a “Remote Direct Memory Access” (RDMA)
• RDMA requer SMB Multichannel
• RDMA oferece alta velocidade com baixa latência e baixo consumo de CPU
• File share é lento
• A conexão com o file share pode falhar ou cair
• SMB consome muita CPU
SMB 3.0 File Shares
SQL Server 2014 Windows Server 2012 R2
Shared Storage
File Server no
Windows Server 2012 R2 File Server no
Windows Server 2012 R2 SQLINST
Scale-Out File Server (SOFS)
Storage Compartilhada
Hyper-V Cluster
Scale-Out File Server O que é?
• Nova solução para armazenamento de arquivos para servidores de aplicações
• Os cenários incluem máquinas virtuais Hyper-V e bancos de dados SQL Server Destaques
• Armazenamento de nível corporativo: escalável, confiável e sempre disponível
• Fácil provisionamento e gerenciamento, usando ferramentas familiares da Microsoft
• Utiliza as mais recentes tecnologias de rede (converged Ethernet, RDMA)
• Maior flexibilidade, incluindo live migration e implantações de multi-clusters
• Reduz as despesas de capital e operacionais Recursos suportados
• SMB Transparent Failover - Disponibilidade contínua se um nó falhar
• SMB Scale-out -clusters de servidor de arquivo ativo/ativo, automaticamente balanceados
• SMB Direct (SMB sobre RDMA) - Baixa latência, alto rendimento, baixo uso de CPU
• SMB Multichannel - O aumento da tolerância a falhas da rede e throughput
• SMB Encryption - Transmissão de dados segura, sem a custosa infra-estrutura PKI
• VSS for SMB File Shares - Backup e restauração usando a estrutura VSS existente
• SMB PowerShell, VMM Support - Capacidade de gerenciamento e suporte System Center
Fonte (José Barreto): http://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/DCIM-B337
SMB Multichannel Performance
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
512 1024 4096 8192 16384 32768 65536 131072 262144 524288 1048576
MB/sec
I/O Size
SMB Client Interface Scaling - Throughput
1 x 10GbE 2 x 10GbE 3 x 10GbE 4 x 10GbE
Windows Server 2012 usando 4 placas de rede 10GbE
Dimensionamento da largura de banda Linear
• 1 NIC – 1150 MB/sec
• 2 NICs – 2330 MB/sec
• 3 NICs – 3320 MB/sec
• 4 NICs – 4300 MB/sec
Aproveita o suporte da NIC para RSS (Receive Side
Scaling)
Largura de banda para
pequenos IO é um gargalo na CPU
Fonte (José Barreto): http://channel9.msdn.com/Events/TechEd/NorthAmerica/2014/DCIM-B337
SMB com SQL Server
Ps: Recomendado uso a partir do Windows Server 2012 R2 (SMB 3.02)
Demo SQL Server FCI usando o File Share como opção de Storage
TECHEDBR15 C:\
C:\
C:\
E:\
\\TECHEDFS\SQLP3-BIN
Switch
VSQLINSTP3\P3
\\TECHEDFS\SQLP3-DADOS
\\TECHEDFS\SQLP3-LOG
\\TECHEDFS\SQLP3-BIN
\\TECHEDFS\SQLP3-DADOS
\\TECHEDFS\SQLP3-LOG Cluster File Server
SQL Server FCI e
Cluster Shared Volume (CSV)
Cluster Shared Volume (CSV)
• Oferece tolerância a falhas de I/O (nós, rede ou HBA),
• Redirecionamento de dados via SMB 3.0 em casos de falha no acesso direto à storage pelos nós,
• Recurso do SQL Server não depende mais dos recursos de disco
• O failover do SQL Server é realizado sem a troca de “owner dos discos”
• Durante o Failover não existe mais a desmontagem e remontagem dos volumes
• Tempo de Failover muito mais rápido
• Maior disponibilidade
• Falha no acesso direto ao disco não provoca o failover da instância
Cluster Share Volume - Arquitetura
Disk
NTFS Stack
SQLNode 2
Disk
SQLNode 1 SQLNode 3
CSV Proxy File System
Stack
Falha de conexão com a storage Coordination Node
CSV Proxy File System
Stack
CSV Proxy File System
Stack
SMB 3.0 SMB 3.0
Cluster Shared Volume File System (CSVFS)
Direct I/O
I/O redirecionado via SMB3.0 (Block Redirected I/O)
Disk
Direct I/O Shared
Storage read-write I/O
read-write simultâneo em todos os nós do
cluster
SQL rodando no SQLNode3 não é
afetado.
Sincronização de
“Metadata” entre os nós do cluster.
read-write I/O read-write I/O
Direct I/O
Fonte : Cluster Shared Volumes Reborn in Windows Server 2012: Deep Dive, TechEd 2012
SQLINST1 SQLINST2 SQLINST3
CSV – Falha de nós
SQLNode2 se torna o novo “CoordinatorNode”
Shared Storage Coordination Node
Os volumes são realocados para o nó que estiver
Online no cluster
É gerada uma breve file de I/O enquanto a propriedade dos volumes é
alterada.
SQL rodando no SQLNode2 não é
afetado.
Coordination Node
SQLINST
SMB 3.0
Determinando o status dos volumes CSV
Demo SQL Server FCI usando Cluster Shared Volume
(CSV)
Considerações para implementação
• AG requer que os nomes dos bancos de dados sejam únicos entre os sites,
• Ajudará a evitar ou minimizar a contenção de I/O
Referências
• SQL Failover Cluster without Shared Storage – SQL Server 2012 and SMB
Install SQL Server with SMB Fileshare as a Storage Option iSCSI Target Server in Windows Server 2012 R2
Deployments and Tests in an iSCSI SAN
Understanding the state of your Cluster Shared Volumes in Windows Server 2012 R2
Deploying SQL Server 2014 with Cluster Shared Volumes
Q&A
Visite o espaço Ask the Experts, próximo dos expositores
Continue sua capacitação
Microsoft Virtual Academy
http://aka.ms/ch9 http://aka.ms/mva