Evento: Azure Summit Brasil 2014
Palestra: Microsoft Azure Storage - Tudo o que você precisa saber sobre armazenamento de alta performance
Palestrante: Lucas A. Romão
Descrição: Esta palestra foi baseada em uma das seções do TechEd North America '14 onde foram tratadas as principais características do Storage do Microsoft Azure, como por exemplo, modelos de redundância, como explorar o recurso Azure Files, melhores práticas e cenários.
Azure Files - Compartilhamento de arquivos na nuvem
1. AUDITÓRIO 1
DESENVOLVIMENTO
Microsoft Azure Storage -
Tudo o que você precisa
saber sobre
armazenamento de alta
performance
Palestrante
Lucas A. Romão
Microsoft Azure MVP
N3 Results
Lucas.Romao@n3results.com
AUDITÓRIO 3
DATA/ANALYSIS
2. Agenda
• Introdução
• O que tem de novo
• O que está vindo
• Patterns para Scalable & Resilient Apps
4. Microsoft Azure Storage
• Cloud Storage – Acesso de qualquer lugar a qualquer momento
• Blobs, Disks, Tables e Queues
• Altamente Durável, Disponível e Massivamente Escalável
• Fácil construção de aplicações do tipo “internet scale”
• Mais de 25 trilhões de objetos armazenados
• Em média 2.5+ milhões de requests/sec
• Pague por aquilo que você usa
• Acesso fácil através de APIs REST, Client Libraries and Tools
5.
6. Abstrações – Blobs e Discos
• Blobs – Escala massivamente o armazenamento de objetos na nuvem
• Acesso simples através de REST (Put, Get, Delete)
• Data sharing – compartilhe documentos, imagens, videos, musicas, etc.
• Big Data – armazena dados/logs não tratados e processa/map reduce nestes
dados
• Backups –backups de dados (dispositivos móveis, laptops, servers, etc…)
• Discos – Discos persistentes para VMs no Azure
• Mova aplicações on-premises para a nuvem
• Os Discos são VHDs armazenados em Blobs no Azure
7. Abstrações – Tables e Queues
• Tables – Solução NoSQL altamente escalável na nuvem
• Armazene Key/Attribute(s) para escalar
• Load balance automático para gerenciamento de tráfico
• Armazene nomes de usuários, dispositivos, ou qualquer tipo de metadado para o seu
serviço
• Protocolo OData (AtomPub ou JSON)
• Queues – Confiável Sistema de mensageria
• Confiável, baixa latênciua, alta velocidade no Sistema de mensageria
• Desassocie componentes/roles
• Web role para comunicar com worker role
• Permite a escala de roles de forma independente
• Implemente tarefas assíncronas agendadas
• Construa processos/work flows
8. Armazenamento Geo Redundante (GRS)
• Dados geo-replicados entre regiões distantes
• Provê dados duráveis em face a possibilidade de desastres regionais
• Disponível para Blob, Tables e Queues
• Usuário escolhe a região no momento da criação da conta
• Cada região primária possui uma região secundária pré-definida
• Geo-replicação assíncrona
• Não interfere na performance
US West US East
US North US South
US Central US East 2
Europe North Europe West
Asia East Asia South East
China North China South
Japan East Japan West
South Brazil US South
9. Accesso read-only ao GRS (RA-GRS) – Cenários
• Acesso somente leitura ao dado secundário mesmo se o primário estiver
indisponível
• Accesso a uma cópia consistente do dado em outra região.
• Para isso, a sua aplicação precisa permitir a eventual leitura destes dados
10. RA-GRS – Como ele trabalha? (1 of 2)
• Clientes que usam o GRS podem optar em ter o acesso read-only
para acessar uma cópia dos dados na região secundária
• Clientes selecionam a região primária, e a região secundária é pré-definida
• Obtenha dois endpoints para acessar sua conta de
armazenamento
• Endpoint primário - accountname.<service>.core.windows.net
• Endpoint secundário - accountname-secondary.<service>.core.windows.net
• Aplicação controla de qual localidade o dado será lido
• Use um dos dois endpoints acima
• As bibliotecas fornecem Recursos para selecionar a localidade
• Opções de Retry: PrimaryOnly, SecondaryOnly, PrimaryThenSecondary, etc.
11. RA-GRS – Como ele trabalha? (2 of 2)
• Mesma storage keys funciona para ambos endpoints
• Consistência
• Toda Escrita de dados é feito na localidade primária
• Leitura na Primária são Fortemente Consistentes
• Leitura na Secundária possui uma Consistência “Eventual”
• Aplicações poderm pesquisar sobre o max delay na geo-replication para
cada serviço (blob, table, queue) em sua conta de armazenamento
• Storage possui métricas analíticas independents para as localidades
primária e secundária.
13. O que temos de mais recente?
• Limites de escala para as contas de armazenamento foram
aumentadas
• Cada conta de armazenamento pode armazenar 500TBs. Disponível para todas regiões
• Aumento da largura de banda para as regiões dos EUA por conta de armazenamento
• 10Gbps para ingress e 20Gbps para egresso
• Melhoria nas “Shared Access Signatures”
• Client Libraries & Tools
• .NET Library Desktop, Phone e Runtime com suporte para Files e Rest Version 2014-02-14
• Java 1.0 RTM
• Android 0.1 CTP
• C++ Library CTP
• AzCopy for Files CTP
• PowerShell for Files CTP
• Azure Files Preview
15. Azure Files – Feedbacks de Usuários
• “I wish I could go to storage and provision a cloud drive, giving it a
namespace, and that drive would then be UNC-addressable by the
OSes.”
• “I need two VM's running with a shared drive. One will write to the drive,
the other will read [it].”
• “Hi, I have two VM's in Microsoft Azure. All I want to do is set up a file
share between them. Is this possible?”
• “Is it possible to share a secondary disk between different VM
instances?”
16. Compartilhando Arquivos – Modo Antigo
• Monte uma IaaS VM para habilitar o File Share com um Disco
• Escrever Código para encontrar o File Share em IaaS para todos os
serviços da sua VM.
• Escrever Código para garantir a alta disponibilidade
• Tratando upgrades de host, falhas de nós, etc….
• Acesso ao File Share apenas por VMs
17. Azure Files
• Shared Network File Storage para Azure
• Disponibilidade, durabilidade, escalabilidade são gerenciados
automaticamente
• Suporta duas interfaces: SMB e REST
18. Azure Files - Cenários
• Compartilha dados através de VMs e aplicações
• Multiplas escritas, multiplas leituras usando métodos padrão de
desenvolvimento.
• Compartilhe configurações através de serviços
• VMs podem ler configurações e arquivos de um local comum. Este conteúdo
pode ser atualizado externamente através de chamadas REST.
• Dev/Test/Debug
• Muito utilizado para se ter um local compartilhado para instalar aplicações,
configurar VMs, tools, e manter anotações enquanto desenvolve, testa e
“debuga” serviços em nuvem.
19. Azure Files - Protocolo SMB 2.1
• É possível mover conteúdos on-premise que
necessitam de ambiente compartilhado para o Azure
• Azure VMs podem “net use” para compartilhar
• Suporte native para SO APIs, bibliotecas, e ferramentas
• Windows (CreateFile, ReadFile, WriteFile, …)
• CRTs (fopen, fread, fwrite, …)
• .Net (FileStream.Read, FileStream.Write, …)
• …
• Suporta semanticas padrões de file system
• Mova e renomeie arquivos e diretórios
• Read-only, write through, overlapped
20. Azure Files - File REST APIs
• Permite o acesso através da internet para o mesmo Sistema de arquivo
compartilhado.
• Construa aplicações híbridas (on premises + cloud)
• Suporta uma variedade de APIs comuns:
• Criar/’Delete’ Arquivos e Diretórios
• Escrever/Ler Arquivos
• Obter as propriedades de Arquivos e Diretórios
• Listar Arquivos
21. Arquitetura do Storage do Azure
“Windows Azure Storage: A Highly Available Cloud Storage Service with Strong Consistency”, ACM Symposium
on Operating System Principals (SOSP), Oct. 2011
22. Azure Files: Como iniciar?
• Solicite um token
• Obtendo o token
• Crie uma nova storage account
• Crie um ‘share’ (utilizando powershell)
• Armazene seus dados no ‘share’ (azcopy)
• Conecte ao ‘share’ através de uma VM
24. Azure Files vs Blobs
Descrição Azure Blobs Azure Files
Durability
Options
LRS, ZRS, GRS (and RA-GRS for higher
availability)
LRS, GRS
Accessibility REST APIs
SMB 2.1 (standard file system APIs)
REST APIs
Connectivity REST – Worldwide
SMB 2.1 - Within region
REST – Worldwide
Endpoints
http://myaccount.blob.core.windows.net/myc
ontainer/myblob
myaccount.file.core.windows.netmysharemyfile.txt
http://myaccount.file.core.windows.net/myshare/myfile.txt
Directories
Flat namespace however prefix listing can
simulate virtual directories
True directory objects
Case Sensitivity of Names Case sensitive Case insensitive, but case preserving
Capacity Up to 500TB containers 5TB file shares
Throughput Up to 60 MB/s per blob Up to 60 MB/s per share
Object size Up to 1 TB/blob Up to 1 TB/file
Billed capacity Based on bytes written Based on file size
25. Azure Files vs Disks
Descrição Disk Azure Files
Relationship with Azure
VMs
Required for booting (OS Disk)
Scope Exclusive/Isolated to a single VM Shared access across multiple VMs
Snapshots and Copy Yes No
Configuration Configured via portal/Management APIs and available at boot time Connect after boot (via net use on windows)
Built-in authentication Built-in authentication Set up authentication on net use
Cleanup Resources can be cleaned up with VM if needed Manually via standard file APIs or REST APIs
Access via REST
Can only access as fixed formatted VHD (single blob) via REST. Files
stored in VHD cannot be accessed via REST.
Individual files stored in share are accessible
via REST
Max Size 1TB Disk
5TB File Share
1TB file within share
Max 8KB IOps 500 IOps 1000 IOps
Throughput Up to 60 MB/s per Disk Up to 60 MB/s per File Share
26. Azure Files – SOs Suportados
• Suporte Windows:
• Windows Server 2008 R2
• Windows Server 2012
• Windows Server 2012 R2
• Suporte Linux (em breve (?)):
• Ubuntu 13.10
• Ubuntu 14.04 LTS
28. O que temos de mais recente??
• Client Libraries
• Node.js Library support for 2014-02-14 CTP
• iOS Library CTP (By end of CY ‘14)
• JavaScript Library CTP (By end of CY 14)
• Mais uma oferta de Storage - Zone Redundant Storage for Block Blobs
29. 3 Tipos de Disponibilidade do Azure Storage
• LRS
• Mantém 3 réplicas do dado em uma única zona, em uma única região
• Fornece durabilidade dos discos, node e falhas de rack
• ZRS
• Disponível apenas para block blobs
• Armazena 3 réplicas dos dados em multiplas zonas. Desenhado para manter todas as 3 replicas
através das zonas de uma mesma região, mas pode expandir para uma segunda região.
• Fornece uma garantia extra de disponibilidade contra falhas no ambiente (fogo, hardware, etc)
• GRS
• Armazena 6 réplicas dos dados em duas regiões diferentes (3 em cada região)
• Fornece uma garantia extra de disponibilidade contra desastres regionais (tornado, terremoto,
etc)
30. Resumo
• Azure Storage
• Durável, Escalável e altamente disponível
• Load balances automáticos quando necessário escalar
• Azure Files – File shares na nuvem
• Opções de Disponibilidade do Storage – LRS, ZRS, e GRS
• RA-GRS
• Provê Alta Disponibilidade para que aplicações possam ler as informações de um local secundário,
quando a primeira não estiver disponível.
• Possível fazer este gerenciamento através dasClient Libraries
• Detalhes sobre ‘Internals’ vc encontra no paper SOSP:
• “Windows Azure Storage: A Highly Available Cloud Storage Service with Strong Consistency”, ACM
Symposium on Operating System Principals (SOSP), Oct. 2011