Windows Azure Availability Set e a Vulnerabilidade a Falhas

Cloud Computing & Microsoft Azure

as01

A primeira informação aqui é lembrar que a infra-estrutura do Windows Azure está disposta entre seus diversos Datacenters em máquinas físicas em racks de servidores. Embora a base da Cloud Computing seja a virtualização, esta infra física necessária para proporcionar os serviços é como qualquer outra e está vulnerável a falhas e problemas da mesma maneira que as demais, não é possível descartar falhas locais de rede, falhas de hardware, discos e afins. É lógico que a Microsoft toma todas as precauções necessárias e podemos contar com a SLA para os seus serviços mas em casos extremos de falha em um lote de rack isso acarretaria na breve interrupção de todos os serviços (e VMs) rodando neste rack.

updatedomains

Para evitar um ponto único de falha, você pode implantar duas instâncias de um serviço, por exemplo a implantação de dois Domain Controllers (DCs) no Windows Azure. No entanto, você não tem nenhuma garantia dessas duas instâncias vão estar rodnado racks distintos, e, portanto, uma falha no rack afetaria ambos os serviços!

Você sempre deve especificar um conjunto disponibilidade ao criar mais de uma máquina virtual para a mesma finalidade.

Agora vamos implementar duas VMs usando o Availability Set. Usando este conceito, estamos dizendo de maneira explícita que queremos nossas máquinas em domínios de falha diferentes, ou seja, em racks diferentes. A ideia é evitar um único ponto de falha que possa afetar todas as instâncias de um serviço.

Você pode criar um Availability Set no momento da criação de uma VM ou adicionar uma VM a um Availability Set já existente.

 

Criando um Availability Set

as03

 

Adicionando uma VM a um Availability Set já existente

av02 copy

O Availability Set surge no cenário para garantir que nem todas as  VMs do conjunto criado possam sofrer falhas ao mesmo tempo. Isto significa que em um Availability Set é possível ter duas VMs no mesmo domínio de falha. O domínio de falha pode ser visto acessando a sessão Cloud Services e selecionando um item específico e visualizando a guia INSTANCES.

 

as05

Perceba que temos valores diferentes para os domínios de falhas – neste caso temos duas VMs no Conjunto de Disponibilidade, onde uma VM terá um domínio de falhas de número 0 e o outro um domínio de uma falha de número 1.

Repare no exemplo abaixo eu tenho três VMs no Conjunto de Disponibilidade sendo que dois deles estão no mesmo domínio de falha. É, portanto, muito importante para garantir que os conjuntos de disponibilidade só contêm VMs executando exatamente a mesma função. Isso porque, se você misturar as funções em um único conjunto de disponibilidade, é possível que estas VMs acabem no mesmo domínio de falha, o que é exatamente o contrário desta estratégia.

AzureIaaSAvailSet2

 

Para mais informações indico o seguinte artigo: Manage the Availability of Virtual Machines

 

Até mais e bom estudo a todos!


Author's profile picture

Vitor is a computer scientist who is passionate about creating software that will positively change the world we live in.

MVP Azure - Cloud Architect - Data science enthusiast


3 minutes to read