Este documento discute o uso de máquinas virtuais do Windows Azure para hospedar o SQL Server. Ele explica os benefícios do Windows Azure, como máquinas virtuais, redes virtuais e armazenamento funcionam, e fornece diretrizes sobre como configurar o SQL Server para obter o melhor desempenho, incluindo o uso de vários discos de dados e cache de E/S.
7. Automação em Windows Azure
Recursos
necessários
Agent
Switches
Load-balancers
Fabric
Controller
Agent
Agent
Faz
acontecer
8. Windows Azure
Windows Azure é um SO para o datacenter
Modelo: Trata o datacenter como uma única máquina
Trata a gestão dos recursos, aprovisionamento e monitorização
Gere o ciclo de vida das aplicações
Permite aos programadores concentrarem-se na lógica de negócio
Fornece serviços para aplicações distribuídas
Filas de mensagens, armazenamento estruturado, armazenamento
relacional
Serviços de controlo de acesso e conectividade
9. Windows Azure – Escala Global
South Central US
West US East US
16. Tamanhos e Discos
Virtual Machine
Size
CPU Cores Memory
Maximum data
disks (each up to
1 TB)
Maximum
IOPS
ExtraSmall Shared 768 MB 1 1 x 500
Small 1 1.75 GB 2 2 x 500
Medium 2 3.5 GB 4 4 x 500
Large 4 7 GB 8 8 x 500
ExtraLarge 8 14 GB 16 16 x 500
A5 2 14GB 4 4 x 500
A6 4 28 GB 8 8 x 500
A7 8 56 GB 16 16 x 500
17. 20
Imagens
Imagens com SQL Server
Imagens com Windows Server
Criar a nossa própria imagem
Construída na Cloud
Construída On-Prem
22. Dentro de uma Máquina Virtual
Virtual Machine
C:
OS Disk
E:, F:, etc.
Data Disks
D:
Temp Disk
(Dynamic VHD)
RAM Cache
Local Disk
Cache
23. Disco do Sistema Operativo
Exemplo: arranque
Virtual Machine
C:
OS Disk
E:, F:, etc.
Data Disks
D:
Temp Disk
(Dynamic VHD)
RAM Cache
Local Disk
Cache
24. Disco Local Temporário
Contém page files do sistema operativo
Disco attached ao host físico
Disco físico, partilhado com outras VM
Apagado após falha ou recycling da VM
Virtual Machine
C:
OS Disk
E:, F:, etc.
Data Disks
D:
Temp Disk
(Dynamic VHD)
RAM Cache
Local Disk
Cache
25. Disco de Dados
Attached VHDs
Em Azure Storage
Para guardar dados
Até 1TB de tamanho
Até 16 discos em VMs XL
Virtual Machine
C:
OS Disk
E:, F:, etc.
Data Disks
D:
Temp Disk
(Dynamic VHD)
RAM Cache
Local Disk
Cache
26. Sistema de IO
Performance pode variar
- Host machines
- Network bandwidth
- Operações de manutenção
Cost vs control trade-off
3 cópias no mesmo datacenter
Geo-redundante
- Opcional
- 6 cópias
Storage Stamp
Stream Layer
Partition Layer
Front-ends
LB
Intra-stamp replication
Stream Layer
Partition Layer
Front-ends
LB
Intra-stamp replication
Storage Stamp
Geo-replication
Storage Location Service
27. VM disk caching
Reduz o número de transacções de storage
Cache na RAM da host machine
Cache no Disco da host machine
Tamanho da cache baseado no tamanho da máquina
29. Cache setting – read write
Persistido para local cache primeiro se "write through“ não for especificado
Outras escritas (SQL Server) são persistidas directamente para storage
30. Cache setting - none
Atenção aos custos das transacções de storage
31. VM cache settings options
Disk type Read Only Read Write None (disabled)
OS disk Supported Default Not supported
Data disks Supported (up to 4) Supported (up to 4) Default
Temporary disk N/A
35. Requisitos do SQL Server
Cada vez mais
Latência
IOPs
Taxa de Transferência (Throughput)
As questões relacionadas com CPU e Memória
são semelhantes em Windows Azure
36. 39
Requisitos de I/O – OLTP
Metric Requirements
Mix of reads vs writes Mostly reads
Nature of writes Mostly asynchronous
Average rows per I/O Low
I/O size 8 to 64 KB common
I/O pattern Mostly random
Concurrent users High
37. 40
Requisitos de I/O – log files
Metric Requirements
Mix of reads vs writes Mostly writes
Nature of writes Mostly synchronous (low latency critical)
Average rows per I/O Low
I/O size 8 to 64 KB common
I/O pattern Mostly sequential
39. 42
Latência
Latência de Rede mais alta
Virtualização, segurança, balanceamento de carga, proximidade
Reduzir round trips pode ter grande impacto
Criar VMs no mesmo cloud service
Permite comunicação através de endreços IP internos (DIPs)
Usar Windows Azure Virtual Network para VMs em cloud services diferentes
Fazer load balance de multiplas VMs no mesmo cloud service via endreço IP
público
Consolidar camadas “muito faladoras” na mesma
máquina
40. 43
IOPs – Usar múltiplos discos
SQL Server Files and Filegroups
Apresenta a melhor performance
Windows Server 2012 Storage Spaces
No Windows Server 2012 R2 é ainda melhor
Striped Volumes
Windows Server 2008 (evitar se possível)
41. 44
IOPs - Storage Account
Limites de escalabilidade de uma Azure Storage Account
20 000 IOPs por conta
Limites de escalabilidade de um blob (VHD)
60 MBytes/s por blob
É recomendável manter tudo numa única conta de Storage
É a unidade de recuperação em caso de falha
Não usar geo-replicação com vários discos
Não é garantida uma ordem escrita consistente em vários discos
42. Apenas disco do Sistema Operativo
BDs pequenas < 10GB
Read-write cache
tempdb
System databases
User databases
43. Um disco de dados
Perfomance aceitável
Pouca complexidade
Recuperação simples
Read-write cache
tempdb
User databases
Random I/O
(8KB Pages)
Sequential I/O
(64KB Extents)
Sequential I/O
(256KB Blocks)
Reads Writes Reads Writes Reads Writes
IOPS 500 500 500 300 300 300
Bandwidth 4 MB/s 4 MB/s 30 MB/s 20 MB/s 70 MB/s 70 MB/s
44. Vários discos de dados
Apresenta a melhor performance nos testes
Striping (avoid)
WS2012 storage spaces
46. tempdb
(Apesar de recomendações anteriores)
Discos de SO e dados apresentam a mesma ou melhor performance
Drive D é partilhada e pode ter uma performance variável
SQL Server precisa de criar a tempdb num restart
São necessárias permissões de administrador para criar pastas no disco D
Particularly number of files
tempDB IO best practices
47. 50
Caching
OS Disk
“Read Write” (default)
• DBs (<=10GB)
• Reduz latência em IO intensivo
• Working set cabe na cache ou memória
Data disks
• DBs > 10GB
• Depende do IO
• Usar “None” (disable) para random IOs
(e.g. OLTP)
• Read cache para workloads com muitas
leituras e requisitos de latência baixa
48. 51
Disk warm-up
Particionamento adaptativo e balanceado (ajusta à carga)
As partições espalham-se se a carga aumentar
Podem condensar-se se a carga diminuir
As leituras são distribuídas pelas 3 réplicas
51. Ferramentas de monitorização
psping
Traceroute (tracert)
SQL Server Management Studio (client statistics)
Process(SQLServ)% Processor Time (max and avg)
Processor(_Total)% Processor Time (max and avg)
SQLServer:SQL StatisticsBatch Requests/sec (max and avg)
52. Gráficos no Portal
VM Dashboard
Monitor tab for storage
Enabled under the Configure tab
53. Métricas de Windows Azure storage
analytics
Monitors BLOBs, tables and queues
Access via storage account namespace
https://<accountname>.table.core.windows.net/Tables("$MetricsTransactionsBlob")
Capacity: number of containers, BLOBs
Requests: number of requests, total ingress/egress, average end-to-end latency, server latency, total
failures
54. 57
Conclusões
As principais diferenças estão nos discos e I/O
Optimizar para reduzir I/O e numero de pedidos
Identificar o melhor tamanho para as VMs
Usar Filegroups e vários discos para bases de dados grandes
Rever as decisões de optimização à medida que a carga muda
Começar por planear a VPN
The OS and Data Disks are stored in Windows Azure storage. So in addition to the data being persistent you also get the benefits of storage which means your VHD is replicated 3X’s locally and also 3X’s in a separate data center in the same region (geo-replication)
This slide simply highlights that if the physical hardware backing your VM goes down a new server will start and pick up the same VHD.
Slide Objective:Multiple virtual machines grouped in an availability set are required to have an SLA
Slide ObjectivesUnderstand the Windows Azure Storage scalability modelVALUE PROPWindows Azure Storage scales automatically to provide the best performanceSpeaker NotesFanout is automatic, handles by Windows AzureThe key here is “elasticity”. The ability to automatically scale based on load.Fanout is based on the load. Fanout isn’t immediate…Windows Azure will wait several seconds to ensure that the load is a true load and not just a temporary spikePartitioning is based on Partition Key – the choice of the partition key is criticalPartitions can be condensed when load increasesReads are load balanced against the three replicasNotes