Implantar uma Testemunha de Nuvem para um cluster de failover
Testemunha de Nuvem é um tipo de testemunha do quórum do cluster de failover que usa o Microsoft Azure para dar um voto no quórum do cluster. Este artigo contém uma visão geral do recurso Testemunha de Nuvem, com quais situações o recurso é compatível e instruções sobre como configurar uma testemunha de nuvem para um cluster de failover. Para obter mais informações, consulte Configurar uma testemunha de cluster.
O que é Testemunha de Nuvem?
Antes de começarmos, você deve refrescar sua memória com relação ao que são quóruns de cluster e testemunhas de quórum lendo o artigo Noções básicas sobre quóruns de cluster e de pool.
Agora, vamos começar examinando um exemplo de configuração de um quórum de cluster de failover para o Windows Server abrangendo vários locais, mostrado no diagrama a seguir.
Esse exemplo é uma configuração com dois nós simplificada em dois data centers locais. Em clusters típicos, nos quais cada nó tem um voto, uma testemunha de compartilhamento de arquivos permite um voto extra para a testemunha do quórum. Esse voto extra permite que o cluster continue em execução mesmo no caso de um dos data centers ser desligado. No exemplo, o quórum do cluster tem cinco votos possíveis e só precisa de três votos para continuar em execução.
No entanto, você talvez perceba que, além dos dois data centers, também existe um terceiro data center intitulado testemunha de compartilhamento de arquivos. Esse data center é mantido separado dos outros dois locais e hospeda um servidor de arquivos que garante o compartilhamento de arquivos do sistema. Nessa configuração de quórum de cluster, a testemunha de compartilhamento de arquivos funciona como uma testemunha de quórum, certificando-se de que o sistema continue sendo executado mesmo se um dos data centers for desligado inesperadamente.
A presença de uma testemunha de compartilhamento de arquivos fornece redundância suficiente para manter o servidor de arquivos altamente disponível. No entanto, lembre-se de que hospedar a testemunha de compartilhamento de arquivos em outro servidor em um site separado requer configuração, manutenção regular e conectividade independente com os outros sites.
A Testemunha de Nuvem é diferente das configurações tradicionais de uma testemunha de quórum do cluster porque usa como testemunha de quórum uma VM do Azure na nuvem, em vez de um data center físico. A Testemunha de Nuvem usa o Armazenamento de Blobs do Azure para ler e gravar um arquivo de blob que o sistema usa como o voto decisivo para obter o quórum. O diagrama a seguir mostra um exemplo de configuração que usa a Testemunha de Nuvem.
Como você pode ver, as configurações de Testemunha de Nuvem não exigem um terceiro data center separado. A Testemunha de Nuvem, como qualquer outra testemunha de quórum, recebe um voto extra e ajuda a evitar um desligamento total no caso de um dos outros data centers ser desligado. No entanto, não precisa de um local extra para armazenar a testemunha de quórum. A Testemunha de Nuvem tampouco precisa da manutenção física regular necessária para um data center no local.
Juntamente com a redundância, existem alguns outros benefícios de se usar o recurso Testemunha de Nuvem:
Você não precisa usar um data center extra separado para obter o quórum.
O uso do Armazenamento de Blobs do Azure elimina as despesas adicionais de manutenção normalmente necessárias para hospedar VMs na nuvem pública.
Você pode usar a mesma conta de Armazenamento do Azure para vários clusters. As únicas exigências são de que você use apenas um blob por cluster e dê ao arquivo de blob um nome baseado na ID exclusiva do cluster.
Os custos contínuos da sua conta de armazenamento são reduzidos porque o arquivo de blob não precisa de muitos dados, só sendo atualizado quando o estado do nó do cluster é alterado.
O Azure vem com um tipo de recurso de Testemunha de Nuvem integrado.
Pré-requisitos
Para configurar a Testemunha de Nuvem, você precisa ter uma conta do Azure com uma assinatura ativa e uma conta válida de armazenamento do Azure para uso geral. Essa conta de armazenamento é o local onde a Testemunha de Nuvem cria o contêiner msft-cloud-witness
para armazenar o arquivo de blob necessário para a arbitragem por votação.
Observação
A Testemunha de Nuvem não é compatível com os seguintes tipos de contas de armazenamento do Azure:
- Armazenamento de Blobs
- Armazenamento Premium do Azure
Você também pode usar essa conta e o contêiner msft-cloud-witness
que a Testemunha de Nuvem cria automaticamente para configurar uma Testemunha de Nuvem em diversos clusters diferentes. Cada cluster tem seu próprio arquivo de blob que é armazenado no contêiner.
Ao criar sua conta de Armazenamento do Azure, se o cluster para o qual você está configurando a Testemunha de Nuvem estiver no local, ou no Azure, dentro da mesma região e zonas de disponibilidade do Azure, selecione Armazenamento com Redundância Local (LRS) ao configurar o campo Replicação. Se o cluster estiver na mesma região do Azure, mas em zonas de disponibilidade diferentes, selecione Armazenamento com Redundância de Zona (ZRS).
Você deve usar uma das seguintes conjunturas com suporte:
Recuperação de desastres para clusters abrangendo vários locais, conforme mostrado no artigo O que é Testemunha de Nuvem.
Clusters de failover sem armazenamento compartilhado, como, por exemplo, SQL Sempre Ativado.
Clusters de failover em execução dentro de um sistema operacional convidado, hospedado na função de Máquina Virtual do Microsoft Azure ou em qualquer outra nuvem pública.
Clusters de failover constituídos de VMs hospedadas em nuvens privadas em execução dentro de um sistema operacional convidado.
Clusters de armazenamento com ou sem armazenamento compartilhado, como clusters do Servidor de Arquivos de Expansão.
Pequenos clusters de filial, o que inclui até mesmo clusters de dois nós.
Recomendamos que você sempre configure uma testemunha se estiver usando o Windows Server 2012 R2 e posterior. Os clusters de versões posteriores do Windows Server gerenciam o voto de uma testemunha automaticamente e seus respectivos nós votam com Quórum Dinâmico.
Você também precisa se certificar de que todos os firewalls entre o cluster de failover e o serviço de conta do Armazenamento do Azure permitam tráfego da porta 443, também conhecida como porta HTTPS. A Testemunha de Nuvem usa a interface REST HTTPS para o serviço de Armazenamento do Azure. Portanto, as portas 443 precisam estar abertas em todos os nós do seu cluster de failover para que a Testemunha de Nuvem funcione conforme o pretendido.
Quando você cria uma conta de Armazenamento do Azure, o Azure a associa automaticamente às chaves de acesso primárias e secundárias que são geradas. Ao configurar a Testemunha de Nuvem pela primeira vez, recomendamos que você use a chave de acesso primária. Depois disso, você pode usar tanto a chave de acesso primária quanto a secundária.
Configurar Testemunha de Nuvem como uma testemunha de quorum para o cluster
Você pode configurar a Testemunha de Nuvem usando o fluxo de trabalho de definição da Configuração de Quórum integrado ao aplicativo Gerenciador de Cluster de Failover ou usando o PowerShell.
Para usar o fluxo de trabalho de definição da Configuração de Quórum para configurar a Testemunha de Nuvem:
Abra o Gerenciador de Cluster de Failover.
Clique com o botão direito do mouse no nome do seu cluster.
Vá para Mais Ações>Definir Configurações de Quórum do Cluster, conforme mostrado na captura de tela a seguir, para iniciar o fluxo de trabalho Configurar Quórum do Cluster.
Na página Selecionar Configuração de Quorum, escolha Selecionar a testemunha de quorum.
Na página Selecionar Testemunha de Quorum, escolha Configurar uma testemunha de nuvem.
Na página Configurar Cloud Witness, insira as seguintes informações:
Nome da sua conta de Armazenamento do Azure.
A chave de acesso associada à sua conta de armazenamento.
Se estiver criando uma testemunha de nuvem pela primeira vez, use sua chave de acesso primária.
Se estiver rotacionando sua chave de acesso primária, use a chave de acesso secundária.
Observação
Em vez de armazenar chaves de acesso diretamente, seu cluster de failover gera um token de Segurança de Acesso Compartilhado (SAS) para armazená-las com segurança. O token só é válido enquanto a chave de acesso à qual estiver associado permanecer válida. Quando rotacionar a chave de acesso primária, você precisará atualizar com a chave secundária as testemunhas de nuvem em todos os clusters que usam essa conta de armazenamento antes de regenerar a chave primária.
Opcionalmente, você poderá inserir o nome de um outro servidor existente no campo Nome do servidor de ponto de extremidade, caso esteja planejando usar um ponto de extremidade de serviço do Azure diferente para a sua testemunha de nuvem como, por exemplo, Azure China.
Se a configuração for bem-sucedida, você deverá ser capaz de ver sua nova Testemunha de Nuvem no menu sanfona (accordion) do Gerenciador de Cluster de Failover, conforme mostrado na captura de tela a seguir.
Considerações de proxy com Testemunha de Nuvem
A Testemunha de Nuvem usa HTTPS (porta padrão 443) para estabelecer a comunicação de saída com o serviço Blob do Azure. O Azure usa .core.windows.net como o ponto de extremidade. Você precisa garantir que esse ponto de extremidade esteja incluído em qualquer lista de permissões de firewall que estiver usando entre o cluster e o Armazenamento do Azure. Se um proxy for necessário para acessar o Armazenamento do Azure, configure os serviços HTTP do Windows (WinHTTP) com as configurações de proxy necessárias. O cluster de failover utiliza WinHTTP para comunicação HTTPS.
Para usar o comando Netsh para configurar um servidor proxy padrão, execute estas etapas:
Observação
- Isso alterará a configuração de proxy padrão para WinHTTP. Qualquer aplicativo, incluindo serviços do Windows, que usa WinHTTP pode ser afetado.
Abra uma linha de comando com privilégios elevados:
- Vá para Iniciar e digite cmd.
- Clique com o botão direito do mouse no prompt de comando e selecione Executar como administrador.
Digite o comando a seguir e pressione Enter:
netsh winhttp set proxy proxy-server="<ProxyServerName>:<port>" bypass-list="<HostsList>"
Por exemplo:
netsh winhttp set proxy proxy-server="192.168.10.80:8080" bypass-list="<local>; *.contoso.com"
Consulte Sintaxe de comando Netsh, contextos e formatação para saber mais.