Como executar o cluster de failover do Windows Server


Crie um cluster de failover usando o Windows Server no Google Cloud Platform (GCP). Um grupo de servidores trabalha em conjunto para fornecer mais capacidade de alta disponibilidade (HA, na sigla em inglês) para seus aplicativos do Windows. Se um node de cluster falhar, outro node poderá passar a fazer a execução do software. Você pode configurar o failover para ocorrer automaticamente, que é a configuração comum, ou acioná-lo manualmente.

Neste tutorial, pressupõe-se que você esteja familiarizado com o cluster de failover, o Active Directory (AD) e a administração do Windows Server.

Para ver um resumo sobre a rede no GCP, consulte GCP para profissionais de data center: rede.

Arquitetura

Neste tutorial, você aprenderá a criar um exemplo de cluster de failover no Compute Engine. O sistema de exemplo contém os dois servidores a seguir:

  • Uma instância de VM primária do Compute Engine que executa o Windows Server 2016 na zona a.
  • Uma segunda instância configurada para corresponder à instância primária na zona b.

Além disso, você implantará um controlador de domínios do AD que, neste tutorial, terá as finalidades a seguir:

  • Fornecer um domínio do Windows.
  • Resolver nomes de host em endereços IP.
  • Hospedar a testemunha de compartilhamento de arquivos, que atua como um terceiro "voto" para alcançar o quórum exigido pelo cluster (em inglês)

É possível criar o controlador de domínio em qualquer zona. Neste tutorial, a zona c é usada. Em um sistema de produção, é possível hospedar a testemunha de compartilhamento de arquivos em outro lugar. Não é necessário ter um sistema de AD separado somente para ter compatibilidade com o cluster de failover. A seção A seguir inclui links para artigos sobre como usar o AD no GCP.

Os dois servidores que serão usados para implantar o cluster de failover estão localizados em zonas diferentes para garantir que cada servidor esteja em uma máquina física diferente, e para proteger contra a possibilidade improvável de uma falha regional.

Veja no diagrama a seguir a arquitetura que você implantará seguindo este tutorial.

Diagrama de arquitetura que mostra duas VMs do Compute Engine em um cluster de failover

Opções de armazenamento compartilhado

Neste tutorial, não abordaremos a configuração de um servidor de arquivos para armazenamento compartilhado de alta disponibilidade.

O Google Cloud é compatível com várias soluções de armazenamento compartilhado que podem ser usadas com o cluster de failover do Windows Server, incluindo:

Para mais informações sobre outras possíveis soluções de armazenamento compartilhado, consulte estes tópicos:

Como entender o roteamento de rede

Quando ocorre o failover do cluster, os pedidos precisam ir para o node recém-ativado. A tecnologia de cluster normalmente administra o roteamento usando o protocolo de resolução de endereços (ARP, na sigla em inglês), que associa endereços IP a endereços MAC. No GCP, o sistema de nuvem privada virtual (VPC) usa a rede definida por software, que não usa endereços MAC. Isso significa que as alterações transmitidas pelo ARP não afetam o roteamento. Para fazer o roteamento funcionar, o cluster requer alguma ajuda no nível do software do balanceador de carga interno.

Geralmente, o balanceamento de carga interno distribui o tráfego de rede recebido entre várias instâncias do back-end que são internas ao seu VPC, a fim de compartilhar a carga. Para o cluster de failover, você usa o balanceamento de carga interno para rotear todo o tráfego para apenas uma instância: o node do cluster atualmente ativo. Veja como o balanceamento de carga interno detecta o nó correto:

  • Em cada instância de VM, é executada uma instância do agente do Compute Engine que tem compatibilidade com o cluster de failover do Windows. O agente acompanha os endereços IP da instância de VM.
  • Com o front-end do balanceador de carga, é fornecido o endereço IP referente ao tráfego recebido para o aplicativo.
  • O back-end do balanceador de carga fornece uma verificação de integridade. O processo de verificação de integridade dá um ping periodicamente no agente em cada nó do cluster, usando o endereço IP fixo da instância de VM por meio de determinada porta. A porta padrão é 59998.
  • A verificação de integridade inclui o endereço IP do aplicativo como um payload na solicitação.
  • O agente compara o endereço IP na solicitação com a lista de endereços IP da VM do host. Quando encontra uma correspondência, ele responde com o valor 1. Caso contrário, a resposta é 0.
  • O balanceador de carga marca qualquer VM que passe na verificação de integridade como íntegra. A qualquer momento, apenas uma máquina virtual passa na verificação de integridade, porque apenas uma VM tem o endereço IP da carga de trabalho.

O que acontece durante um failover

Quando ocorre um failover no cluster, ocorrem as seguintes alterações:

  • O cluster de failover do Windows altera o status do node ativo para indicar que ele falhou.
  • O cluster de failover move todos os recursos e funções do cluster do node com falha para o melhor node, conforme definido pelo quórum. Essa ação inclui mover os endereços IP associados.
  • O cluster de failover transmite pacotes ARP para notificar aos roteadores de rede baseados em hardware que os endereços IP foram movidos. Para esse cenário, a rede do GCP ignora esses pacotes.
  • Após a movimentação, o agente do Compute Engine na VM para o nó com falha muda a resposta dele para a verificação de integridade de 1 para 0, porque a VM já não hospeda o endereço IP especificado na solicitação.
  • O agente do Compute Engine na VM do nó recém-ativado também muda a resposta para a verificação de integridade de 0 para 1.
  • O balanceador de carga interno para de rotear o tráfego ao node com falha e, em vez disso, encaminha o tráfego para o node recém-ativado.

Como reunir tudo

Agora que você conferiu determinados conceitos, veja alguns detalhes importantes sobre o diagrama da arquitetura:

  • O agente do Compute Engine na VM chamada wsfc-2 responde à verificação de integridade com o valor 1. Isso indica o nó de cluster ativo. Em wsfc-1, a resposta é 0.
  • O balanceador de carga está roteando solicitações para wsfc-2, conforme indicado pela seta.
  • O balanceador de carga e wsfc-2 têm o endereço IP 10.0.0.9. Para o balanceador de carga, esse é o endereço IP do front-end especificado. Para a VM, é o endereço IP do aplicativo. O cluster de failover configura esse endereço IP no nó atualmente ativo.
  • O cluster de failover e wsfc-2 têm o endereço IP 10.0.0.8. A VM tem esse endereço porque atualmente hospeda os recursos do cluster.

Orientação para acompanhar este tutorial

Este tutorial contém muitas etapas. Às vezes, será necessário seguir etapas em documentos externos, como a documentação da Microsoft. Não deixe de ler as observações neste documento que fornecem detalhes para seguir as etapas externas.

Este tutorial usa o Cloud Shell no console do Google Cloud. Embora seja possível usar a interface do usuário do console do Google Cloud ou a CLI gcloud para configurar o cluster de failover, este tutorial usa principalmente o Cloud Shell para facilitar. Essa abordagem ajuda você a concluir o tutorial mais rapidamente. Quando for mais apropriado, algumas etapas usarão o console do Google Cloud.

Cloud Shell

É uma boa ideia tirar snapshots dos discos permanentes do Compute Engine durante o processo. Se algo der errado, você pode usar um snapshot para não ter que recomeçar desde o início. Neste tutorial, sugerimos bons momentos para tirar os snapshots.

Se você achar que as coisas não estão funcionando como você espera, veja as instruções na seção que está lendo. Caso contrário, consulte a seção Solução de problemas.

Objetivos

  • Criar uma rede.
  • Instalar o Windows Server 2016 em duas VMs do Compute Engine.
  • Instalar e configurar o Active Directory em uma terceira instância do Windows Server.
  • Configurar o cluster de failover, incluindo uma testemunha de compartilhamento de arquivos para o quórum e um papel para a carga de trabalho.
  • Configurar o balanceador de carga interno.
  • Testar a operação de failover para verificar se o cluster está funcionando.

Custos

Neste tutorial, usamos imagens do Compute Engine que incluem licenças do Windows Server. Isso significa que o custo para executar este tutorial pode ser significativo se você deixar as VMs em execução. É uma boa ideia interromper as VMs que não são usadas.

Consulte a Calculadora de preços para ter uma estimativa dos custos para concluir este tutorial.

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  4. Ative a API Compute Engine.

    Ative a API

  5. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  6. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  7. Ative a API Compute Engine.

    Ative a API

  8. Inicie uma instância do Cloud Shell.
    Acesse o Cloud Shell

Como criar a rede

O cluster exige uma rede personalizada. Use a VPC para criar uma rede personalizada e uma sub-rede. Basta executar comandos gcloud no Cloud Shell.

  1. Crie a rede:

    gcloud compute networks create wsfcnet --subnet-mode custom
    

    O nome da rede criada é wsfcnet.

  2. Crie uma sub-rede. Substitua [YOUR_REGION] por uma região do GCP próxima:

    gcloud compute networks subnets create wsfcnetsub1 --network wsfcnet --region [YOUR_REGION] --range 10.0.0.0/16
    

    O nome da sub-rede criada é wsfcnetsub1.

O intervalo CIDR (em inglês) de endereços IP nessa sub-rede é 10.0.0.0/16. Esse é um exemplo do intervalo usado no tutorial. Nos sistemas de produção, trabalhe com seus administradores de rede para alocar intervalos apropriados de endereços IP para seus sistemas.

Criar regras de firewall

Por padrão, sua rede está fechada para o tráfego externo. É necessário abrir portas no firewall para ativar as conexões remotas com os servidores. Use comandos gcloud no Cloud Shell para criar as regras.

  1. Para este tutorial, abra a porta 3389 na rede principal para ativar conexões por RDP. No comando a seguir, substitua [YOUR_IPv4_ADDRESS] pelo endereço IP do computador usado para se conectar às instâncias de VM. Em um sistema de produção, forneça um intervalo de endereços IP ou uma série de endereços.

    gcloud compute firewall-rules create allow-rdp --network wsfcnet --allow tcp:3389 --source-ranges [YOUR_IPv4_ADDRESS]
    
  2. Na sub-rede, permita todos os protocolos em todas as portas para que os servidores possam se comunicar entre si. Nos sistemas de produção, o ideal é abrir apenas portas específicas, conforme necessário.

    gcloud compute firewall-rules create allow-all-subnet --network wsfcnet --allow all --source-ranges 10.0.0.0/16
    

    O valor source-ranges corresponde ao intervalo CIDR usado para criar a sub-rede.

  3. Veja as regras de firewall:

    gcloud compute firewall-rules list
    

    O resultado será semelhante a:

    NAME              NETWORK  DIRECTION  PRIORITY  ALLOW            DENY  DISABLED
    allow-all-subnet  wsfcnet  INGRESS    1000      all                    False
    allow-rdp         wsfcnet  INGRESS    1000      tcp:3389               False

Como ativar o cluster de failover no Compute Engine

Para ativar o clustering de failover no agente do Compute Engine, é necessário adicionar a sinalização enable-wsfc=true às definições da VM. Para fazer isso, especifique-a como metadados personalizados da VM ou crie um arquivo de configuração em cada VM, conforme descrito na documentação do Compute Engine.

Neste tutorial, a sinalização é definida como metadados personalizados no momento da criação das VMs, conforme descrito na próxima seção. O tutorial também se baseia no comportamento padrão de wsfc-addrs e wsfc-agent-port. Portanto, não é necessário definir esses valores.

Como criar servidores

A próxima etapa é criar os três servidores. Use o comando gcloud no Cloud Shell.

Criar o primeiro servidor de nó de cluster

Crie uma nova instância do Compute Engine. Configure a instância desta maneira:

  • Nomeie a instância wsfc-1.
  • Defina a sinalização --zone como uma zona conveniente perto de você. Por exemplo, us-central1-a.
  • Defina a sinalização --machine-type como n1-standard-2.
  • Defina a sinalização --image-project como windows-cloud.
  • Defina a sinalização --image-family como windows-2016.
  • Defina a sinalização --scopes como https://www.googleapis.com/auth/compute.
  • Defina a sinalização --can-ip-forward para ativar o encaminhamento de IP.
  • Defina a sinalização --private-network-ip como 10.0.0.4.
  • Defina a rede como wsfcnet e a sub-rede como wsfcnetsub1.
  • Use o parâmetro --metadata para definir enable-wsfc=true.

Execute o comando a seguir, substituindo [YOUR_ZONE_1] pelo nome da primeira zona:

gcloud compute instances create wsfc-1 --zone [YOUR_ZONE_1] --machine-type n1-standard-2 --image-project windows-cloud --image-family windows-2016 --scopes https://www.googleapis.com/auth/compute --can-ip-forward --private-network-ip 10.0.0.4 --network wsfcnet --subnet wsfcnetsub1 --metadata enable-wsfc=true

Criar o segundo servidor de nó de cluster

Para criar o segundo servidor, siga as mesmas etapas, exceto pelos seguintes aspectos:

  • Defina o nome da instância como wsfc-2.
  • Defina a sinalização --zone como uma zona diferente daquela usada no primeiro servidor. Por exemplo, us-central1-b.
  • Defina a sinalização --private-network-ip como 10.0.0.5.

Substitua [YOUR_ZONE_2] pelo nome da segunda zona:

gcloud compute instances create wsfc-2 --zone [YOUR_ZONE_2] --machine-type n1-standard-2 --image-project windows-cloud --image-family windows-2016 --scopes https://www.googleapis.com/auth/compute --can-ip-forward --private-network-ip 10.0.0.5 --network wsfcnet --subnet wsfcnetsub1  --metadata enable-wsfc=true

Criar o terceiro servidor para o Active Directory

Para o controlador de domínio, siga as mesmas etapas, exceto pelos seguintes aspectos:

  • Defina o nome da instância como wsfc-dc.
  • Defina a sinalização --zone como uma zona diferente daquelas usadas nos outros servidores. Por exemplo, us-central1-c.
  • Defina a sinalização --private-network-ip como 10.0.0.6.
  • Omita --metadata enable-wsfc=true.

Substitua [YOUR_ZONE_3] pelo nome da zona:

gcloud compute instances create wsfc-dc --zone [YOUR_ZONE_3] --machine-type n1-standard-2 --image-project windows-cloud --image-family windows-2016 --scopes https://www.googleapis.com/auth/compute --can-ip-forward --private-network-ip 10.0.0.6 --network wsfcnet --subnet wsfcnetsub1

Ver as instâncias

Você pode ver os detalhes das instâncias que criou.

gcloud compute instances list

Você verá um resultado semelhante a este:

NAME     ZONE           MACHINE_TYPE  PREEMPTIBLE INTERNAL_IP  EXTERNAL_IP     STATUS
wsfc-1   us-central1-a  n1-standard-2             10.0.0.4     35.203.131.133  RUNNING
wsfc-2   us-central1-b  n1-standard-2             10.0.0.5     35.203.130.194  RUNNING
wsfc-dc  us-central1-c  n1-standard-2             10.0.0.6     35.197.27.2     RUNNING

Como se conectar às VMs

Para se conectar a uma VM baseada em Windows, é preciso antes gerar uma senha. Em seguida, use o RDP para se conectar à VM.

Como gerar senhas

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Clique no nome da instância da VM que precisa de uma nova senha.

  3. Na página de detalhes da instância, clique no botão Definir senha do Windows. Uma senha será gerada. Copie e armazene esta senha em um local seguro.

Como estabelecer uma conexão por meio de RDP

A documentação do Compute Engine fornece detalhes sobre como estabelecer conexão com as instâncias de VM do Windows usando o RDP. Você também pode:

  • usar um cliente atual;
  • Adicionar um plug-in RDP do Chrome ao navegador e estabelecer uma conexão por meio do console do Google Cloud.

Neste tutorial, sempre que houver uma orientação para estabelecer uma conexão com uma instância do Windows, use a conexão RDP da sua preferência.

Como configurar redes do Windows

Os endereços IP internos atribuídos no momento da criação das VMs são estáticos. Para garantir que o Windows trate os endereços IP como estáticos, é necessário adicioná-los à configuração de rede do Windows Server com os endereços IP do gateway padrão e do servidor DNS.

Use o RDP para se conectar a wsfc-1, wsfc-2 e wsfc-dc e repita as etapas a seguir para cada instância:

  1. No Server Manager, no painel à esquerda, selecione Local Server.
  2. Na entrada Ethernet do painel Propriedades, clique em Endereço IPv4 atribuído por DHCP, IPv6 ativado.
  3. Clique com o botão direito do mouse em Ethernet e selecione Propriedades.
  4. Clique duas vezes em Protocolo IP versão 4 (TCP/IPv4).
  5. Selecione Usar o seguinte endereço IP.
  6. Digite o endereço IP interno atribuído à VM na criação.

    • Em wsfc-1, digite "10.0.0.4".
    • Em wsfc-2, digite "10.0.0.5".
    • Em wsfc-dc, digite "10.0.0.6".
  7. Em Máscaea de sub-rede, digite "255.255.0.0".

  8. Em Gateway padrão, digite 10.0.0.1, que é o endereço IP reservado automaticamente para o gateway padrão quando você criou a sub-rede wsfcnetsub1.

    O endereço IP do gateway padrão é sempre o segundo endereço no intervalo de IP principal de uma sub-rede. Consultes Endereços inutilizáveis em intervalos de sub-rede IPv4

  9. Apenas para wsfc-1 e wsfc-2:

    1. Clique em Usar os seguintes endereços de servidor DNS.

    2. Para o Servidor DNS preferencial, digite "10.0.0.6".

  10. Feche todas as caixas de diálogo.

    Você perde a conectividade RDP porque essas alterações redefinem o adaptador de rede virtual para a instância de VM.

  11. Feche a sessão RDP e, em seguida, estabeleça conexão com a instância novamente. Se uma caixa de diálogo da etapa anterior ainda estiver aberta, feche-a.

  12. Na seção de propriedades do servidor local, verifique se a configuração Ethernet reflete o endereço IP do servidor local (10.0.0.4,10.0.0.5,ou10.0.0.6). Caso contrário, reabra a caixa de diálogo Protocolo TCP/IP Versão 4 (TCP/IPv4) e atualize a configuração.

Este é o momento apropriado para criar snapshots de wsfc-1 e wsfc-2.

Como configurar o Active Directory

Agora, configure o controlador de domínios.

  1. Use o RDP para estabelecer uma conexão com o servidor chamado wsfc-dc.
  2. Usando o app para computador do Gerenciamento do Computador do Windows, defina uma senha para a conta de administrador local.
  3. Ative a conta de administrador local.
  4. Siga as etapas nas instruções da Microsoft abaixo para configurar o controlador de domínio, com essas observações adicionais. Você pode usar valores padrão para a maioria das configurações.

    • Marque a caixa de seleção de papéis do servidor DNS. Esta etapa não está especificada nas instruções.
    • Marque a caixa de seleção Reiniciar o servidor de destino automaticamente, se necessário.
    • Promova o servidor de arquivos para um controlador de domínio.
    • Durante a etapa Adicionar uma nova floresta, nomeie seu domínio "WSFC.TEST".
    • Defina o nome de domínio NetBIOS como "WSFC" (o padrão).

    Instruções da Microsoft

Este é o momento apropriado para criar um snapshot de wsfc-dc.

Criar a conta de usuário do domínio

Pode levar algum tempo para a reinicialização de wsfc-dc ser concluída. Antes de juntar servidores ao domínio, use o RDP para fazer login em wsfc-dc e confirmar que o controlador de domínios está em execução.

Você precisa de um usuário de domínio que tenha privilégios de administrador nos servidores de cluster. Siga estas etapas:

  1. No controlador de domínios wsfc-dc, clique em Iniciar e digite dsa para encontrar e abrir o aplicativo Usuários e computadores do Active Directory.
  2. Clique com o botão direito do mouse em WSFC.TEST, aponte para Novo e selecione Usuário.
  3. Em Nome Completo e Nome de Logon do Usuário, digite cluster-admin.
  4. Clique em Próxima.
  5. Digite e confirme uma senha para o usuário. Selecione as opções de senha na caixa de diálogo. Por exemplo, configure a senha para nunca expirar.
  6. Confirme as configurações e clique em Concluir.
  7. Transforme cluster-admin em um administrador em wsfc-dc:

    • Clique com o botão direito do mouse em cluster-admin e selecione Adicionar a um grupo.
    • Digite Administradores e clique em OK.

Neste tutorial, WSFC.TEST\cluster-admin é usada como conta de administrador sempre que uma conta é exigida. Em um sistema de produção, siga as práticas habituais de segurança para alocar contas e permissões. Para mais informações, consulte Visão geral das contas do Active Directory exigidas por um cluster de failover (em inglês).

Integrar os servidores ao domínio

Adicione os dois servidores de nó do cluster ao domínio WSFC.TEST. Siga as etapas a seguir em cada servidor de nó do cluster (wsfc-1 e wsfc-2):

  1. No Server Manager > Servidor Local, no painel Propriedades, clique em Grupo de Trabalho.
  2. Clique em Alterar.
  3. Selecione Domínio e, em seguida, digite "WSFC.TEST".
  4. Clique em OK.
  5. Forneça as credenciais de WSFC.TEST\cluster-admin para integrar o domínio.
  6. Clique em OK.
  7. Feche as caixas de diálogo e siga as instruções para reiniciar o servidor.
  8. No Server Manager, transforme cluster-admin em um administrador em wsfc-1 e wsfc-2. Outra opção é gerenciar privilégios administrativos usando uma política de grupo.

    • No menu Ferramentas, selecione Gerenciamento do computador > Usuários e grupos locais > Grupos > Administradores e clique em Adicionar.
    • Digite "cluster-admin" e clique em Verificar nomes.
    • Clique em OK.

Este é um bom ponto para tirar snapshots das três máquinas virtuais.

Como configurar o cluster de failover

Reservar um endereço IP para o cluster no Compute Engine

Ao criar o cluster de failover, você define um endereço IP em que será criado um ponto de acesso administrativo. Em um ambiente de produção, é possível usar um endereço IP de uma sub-rede separada. No entanto, neste tutorial, será reservado um endereço IP da sub-rede já criada. Reservar o endereço IP evita conflitos com outras atribuições de IP.

  1. Abra um terminal em uma VM do host ou o Cloud Shell.

    Acessar o Cloud Shell

  2. Reserve um endereço IP. Neste tutorial, use 10.0.0.8:

    gcloud compute addresses create cluster-access-point --region [YOUR_REGION] --subnet wsfcnetsub1 --addresses 10.0.0.8
  3. Para confirmar a reserva do endereço IP:

    gcloud compute addresses list

Criar o cluster

Para criar e configurar o cluster de failover:

  1. Use o RDP para conectar wsfc-1 e wsfc-2.
  2. Siga as etapas nas instruções da Microsoft abaixo, com estas observações extras:

    • Instale o recurso de clustering de failover em wsfc-1 e wsfc-2. Não instale o recurso em wsfc-dc.
    • Execute o aplicativo Gerenciador de Cluster de Failover como o usuário do domínio WSFC.TEST\cluster-admin. Caso contrário, talvez haja problemas de permissões. É recomendado sempre executar o Gerenciador de Cluster de Failover dessa forma ou conectar-se a um servidor como cluster-admin para garantir que você tenha as permissões necessárias.
    • Adicione wsfc-1 e wsfc-2 ao cluster como nós.
    • Ao validar a configuração:

      • Na página Opções de teste, selecione Executar apenas testes que eu selecionar e clique em Avançar.
      • Na página Seleção de teste, desmarque Armazenamento porque a opção Armazenamento falhará se executada no Compute Engine (como ocorreria com servidores físicos independentes separados).

        Veja alguns problemas comuns que é possível encontrar durante a validação do cluster:

        • Apenas uma interface de rede entre as réplicas. Ignore esse problema, porque não ele se aplica a uma configuração baseada em nuvem.
        • As atualizações do Windows não são as mesmas em ambas as réplicas. Se você configurou suas instâncias do Windows para aplicar atualizações automaticamente, um dos nós pode ter aplicado atualizações que o outro ainda não recebeu por download. Recomenda-se manter os servidores em configurações idênticas.
        • Reinicialização pendente. Você fez alterações em um dos servidores e precisa de uma reinicialização para aplicá-las. Não ignore esse problema.
        • Nem todos os servidores têm o mesmo papel de domínio. Ignore esse problema.
        • Os servidores não estão todos na mesma unidade organizacional (UO). Neste tutorial, uma unidade organizacional não é usada. No entanto, em um sistema de produção, coloque o cluster na sua própria unidade organizacional. Essa prática recomendada está descrita nas instruções da Microsoft.
        • Drivers não assinados foram encontrados. Você pode ignorar esse problema.
    • Na página Resumo, é possível selecionar Criar o cluster agora usando os nós validados para continuar a criar o cluster, em vez de fechar o assistente e reabri-lo.

    • No assistente de criação de cluster, na página de Ponto de acesso:

      • Nomeie o cluster como "testcluster".
      • No campo Endereço, insira o endereço IP que você reservou anteriormente, 10.0.0.8.

    Instruções da Microsoft

Adicionar o administrador do cluster

Ao adicionar uma conta de domínio como administrador do cluster, você realiza ações no cluster usando ferramentas como o Windows PowerShell. Adicione a conta de domínio cluster-admin como administrador do cluster.

  1. No nó que hospeda os recursos do cluster, no Gerenciador do Cluster de Failover, selecione o cluster no painel à esquerda e clique em Propriedades no painel à direita.
  2. Selecione a guia Permissões de Cluster.
  3. Clique em Adicionar e adicione cluster-admin.
  4. Com cluster-admin selecionado em Lista de nome do grupo ou usuário, selecione Controle Total no painel Permissões.
  5. Clique em Aplicar e em OK.

Este é um bom ponto para tirar snapshots.

Como criar a testemunha de compartilhamento de arquivos

Você tem um cluster de failover de dois nodes, mas ele usa um mecanismo de votação para decidir qual node deve estar ativo. Para chegar a um quórum, adicione uma testemunha de compartilhamento de arquivos.

Neste tutorial, simplesmente adicionamos uma pasta compartilhada ao servidor do controlador de domínio. Se esse servidor ficasse off-line ao mesmo tempo que um dos nodes do cluster estivesse reiniciando, todo o cluster poderia parar de funcionar porque o servidor restante não poderia votar por conta própria. Neste tutorial, pressupõe-se que os recursos de infraestrutura do GCP, como a migração em tempo real e a reinicialização automática, ofereçam confiabilidade suficiente para manter a pasta compartilhada ativa.

Caso queira criar uma testemunha de compartilhamento de arquivos com mais disponibilidade, você tem estas opções:

  • Usar um conjunto de servidores Windows para fornecer o compartilhamento usando o Storage Spaces Direct. Esse recurso do Windows Server 2016 pode fornecer um compartilhamento altamente disponível para a testemunha de quórum. Por exemplo, crie um cluster para seu controlador de domínio do Active Directory a fim de fornecer serviços de domínio altamente disponíveis e o compartilhamento de arquivos ao mesmo tempo.
  • Usar um software de replicação de dados, como o SIOS Datakeeper, com o clustering de servidor de failover do Windows na replicação síncrona ou assíncrona.

Siga estas etapas para criar o compartilhamento de arquivos da testemunha:

  1. Conecte-se a wsfc-dc. Esse servidor hospeda o compartilhamento de arquivos.
  2. No Explorer, navegue até a unidade C.
  3. Na barra de título, clique no botão Nova Pasta.
  4. Nomeie a nova pasta como shares.
  5. Clique duas vezes na pasta shares para abri-la.
  6. Adicione uma nova pasta e dê a ela o nome de clusterwitness-testcluster.

Configurar o compartilhamento na testemunha do compartilhamento de arquivos

É necessário definir permissões na pasta da testemunha de compartilhamento de arquivos para permitir que o cluster a utilize.

  1. No Explorer, clique com o botão direito do mouse na pasta clusterwitness-testcluster e selecione Propriedades.
  2. Na guia Compartilhamento, clique em Compartilhamento avançado.
  3. Selecione Compartilhar esta pasta.
  4. Clique em Permissões e clique em Adicionar.
  5. Clique em Tipos de objeto, selecione Computadores e clique em OK.
  6. Adicione a conta de máquina testcluster$.
  7. Conceda as permissões de Controle total a testcluster$.
  8. Clique em Aplicar e feche todas as caixas de diálogo.

Adicionar a testemunha de compartilhamento de arquivos ao cluster de failover

Agora, configure o cluster de failover para usar a testemunha do compartilhamento de arquivos como um voto do quórum.

  1. No computador que hospeda os recursos do cluster (wsfc-1), abra o Gerenciador de Cluster de Failover.
  2. No painel à esquerda, clique com o botão direito do mouse no nome do cluster (testcluster.WSFC.TEST), aponte para More Actions e clique em Configurar Quorum do Cluster.
  3. No painel Selecionar Opção de Configuração de Quorum, selecione Selecione a Testemunha de Quorum.
  4. No painel Selecione a Testemunha de Quorum, selecione Configurar uma Testemunha de Compartilhamento de Arquivos.
  5. Em Caminho do Compartilhamento de Arquivos, digite o caminho para a pasta compartilhada, como \\wsfc-dc\clusterwitness-testcluster.
  6. Confirme as configurações e clique em Concluir.

Como testar o cluster de failover

Seu cluster de failover do Windows Server agora estará funcionando. Você pode testar movendo os recursos do cluster manualmente entre suas instâncias. Você ainda não terminou, mas este é um bom momento para confirmar se tudo o que você fez até agora está funcionando.

  1. Em wsfc-1, anote o nome do Servidor Host Atual no Gerenciador de Cluster de Failover.
  2. Execute o Windows PowerShell como cluster-admin.
  3. No PowerShell, execute o comando a seguir para alterar o servidor de host atual:

    Move-ClusterGroup -Name "Cluster Group"
    

O nome do servidor de host atual deve mudar para a outra VM.

Se isso não acontecer, reveja as etapas anteriores e verifique se deixou algo para trás. O problema mais comum é uma regra de firewall ausente que bloqueia o acesso na rede. Consulte a seção Solução de problemas para ver mais problemas a verificar.

Caso contrário, agora você pode avançar para configurar o balanceador de carga interno, que é necessário para rotear o tráfego de rede para o servidor de host atual no cluster.

Este é um bom momento para tirar snapshots.

Como adicionar um papel ao cluster de failover

No cluster de failover do Windows, os papéis hospedam as cargas de trabalho em cluster. É possível usar um papel para especificar no cluster o endereço IP que seu aplicativo usa. Neste tutorial, será adicionado um papel à carga de trabalho de teste, que é o servidor da Web IIS. Também será atribuído um endereço IP ao papel.

Reservar um endereço IP para o papel no Compute Engine

Para evitar conflitos de endereçamento IP na sub-rede do Compute Engine, reserve o endereço IP do papel.

  1. Abra um terminal em uma VM do host ou o Cloud Shell.

    Acessar o Cloud Shell

  2. Reserve um endereço IP. Neste tutorial, use 10.0.0.9:

    gcloud compute addresses create load-balancer-ip --region [YOUR_REGION] --subnet wsfcnetsub1 --addresses 10.0.0.9
  3. Para confirmar a reserva do endereço IP:

    gcloud compute addresses list

Adicionar o papel

Siga estas etapas:

  1. No Gerenciador de Cluster de Failover, no painel Ações, selecione Configurar função.
  2. Na página Selecionar Função, selecione Outro Servidor.
  3. Na página Ponto de Acesso do Cliente, digite o nome IIS.
  4. Defina o endereço como 10.0.0.9.
  5. Ignore as opções Selecionar Armazenamento e Selecionar Tipos de Recursos.
  6. Confirme as configurações e clique em Concluir.

Caixa de diálogo de confirmação mostra as configurações do papel.

Como criar o balanceador de carga interno

Crie e configure o balanceador de carga interno, que é necessário para rotear o tráfego da rede para o nó host do cluster ativo. Use então o console do Google Cloud, porque a interface do usuário oferece uma boa visão de como o balanceamento de carga interno é organizado.

Você também criará um grupo de instâncias do Compute Engine para cada zona do cluster. O balanceador de carga usa esse grupo para gerenciar os nós do cluster.

Criar os grupos de instâncias

Crie um grupo de instâncias em cada zona que tenha um nó de cluster e adicione cada nó ao grupo de instâncias da zona. Não adicione o controlador de domínio wsfc-dc a um grupo de instâncias.

  1. Crie um grupo de instâncias para cada zona do cluster, substituindo [ZONE_1] pelo nome da primeira zona e [ZONE_2] pelo nome da segunda:

    gcloud compute instance-groups unmanaged create wsfc-group-1 --zone=[ZONE_1]
    gcloud compute instance-groups unmanaged create wsfc-group-2 --zone=[ZONE_2]
  2. Adicione o servidor de cada zona ao grupo de instâncias dessa zona:

    gcloud compute instance-groups unmanaged add-instances wsfc-group-1 --instances wsfc-1 --zone [ZONE_1]
    gcloud compute instance-groups unmanaged add-instances wsfc-group-2 --instances wsfc-2 --zone [ZONE_2]
  3. Confirme se os grupos de instâncias foram criados e se cada grupo tem uma instância:

    gcloud compute instance-groups unmanaged list
      NAME          ZONE           NETWORK  NETWORK_PROJECT   MANAGED  INSTANCES
      wsfc-group-1  us-central1-a  wsfcnet  exampleproject    No       1
      wsfc-group-2  us-central1-b  wsfcnet  exampleproject    No       1

Criar o balanceador de carga

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acessar o "Balanceamento de carga"

  2. Selecione Criar balanceador de carga.

  3. No card Balanceador de carga de rede (TCP/SSL), clique em Iniciar configuração.

  4. Selecione Somente entre minhas VMs e clique em Continuar.

  5. Para o Nome, digite "wsfc-lb".

Não clique em Criar ainda.

Configurar o back-end

Lembre-se de que o balanceador de carga interno do GCP usa uma verificação de integridade periódica para determinar o node ativo. A verificação de integridade mostra o agente do host de cluster do Compute Engine que está sendo executado no node do cluster ativo. O payload de verificação de integridade é o endereço IP do aplicativo, representado pelo papel em cluster. O agente responde com um valor 1 se o node estiver ativo ou 0 se não estiver.

  1. Clique em Configuração de back-end.
  2. Selecione sua região atual.
  3. Selecione wsfcnet em Rede.
  4. Em Back-ends, adicione cada grupo de instâncias criado. Para isso, selecione o nome do grupo e clique em Concluído.
  5. Crie uma verificação de integridade.

    • Para Nome, digite "wsfc-hc".
    • Aceite a configuração padrão de Protocolo em TCP e altere a Porta para "59998" para as respostas do agente do host de cluster.
    • Para solicitação, digite "10.0.0.9".
    • Para Resposta, digite "1".
    • Para Intervalo de verificação, digite "2".
    • Para Tempo limite, digite "1".
    • Clique em Salvar e continuar.

Configurar o front-end

A configuração do front-end cria uma regra de encaminhamento que define o modo como o balanceador de carga lida com as solicitações recebidas. Neste tutorial, para simplificar, você testará o sistema fazendo pedidos entre as VMs na sub-rede.

No seu sistema de produção, você pode abrir o sistema para o tráfego externo, como o tráfego de Internet. Para fazer isso, crie um host Bastion que aceite o tráfego externo e o encaminhe para sua rede interna. O uso de um host Bastion não é abordado neste tutorial.

  1. No painel central, clique em Configuração do front-end.
  2. Em Nome, digite "wsfc-lb-fe".
  3. Selecione a sub-rede (wsfcnetsub1).
  4. Em IP interno, selecione load-balancer-ip (10.0.0.9). Esse é o mesmo endereço IP definido para a função.
  5. Para Portas, digite "80".
  6. Clique em Concluir.

Revisar e finalizar

  1. Para ver um resumo das configurações do balanceador de carga interno, no painel central, clique em Revisar e finalizar. O resumo é exibido no painel direito.
  2. Clique em Criar. Demora um pouco para criar o balanceador de carga.

    O console do Google Cloud mostra as configurações finais para o balanceamento de carga interno.

Criar regras de firewall para a verificação de integridade

Você pode ter notado que o console do Google Cloud notificou que o sistema de verificação de integridade exigiria uma regra de firewall para permitir que as verificações de integridade alcancem suas metas. Nesta seção, você configura a regra de firewall.

  1. No Console do Google Cloud, acesse o Cloud Shell.

    Acessar o Cloud Shell

  2. Execute o comando a seguir para criar uma regra de firewall:

    gcloud compute firewall-rules create allow-health-check --network wsfcnet --source-ranges 130.211.0.0/22,35.191.0.0/16 --allow tcp:59998
    

Abrir o Windows Firewall

Em cada nó do cluster, wsfc-1 e wsfc-2, crie uma regra no Windows Firewall para permitir que o balanceador de carga acesse cada sistema do Windows.

  1. Abra o aplicativo Firewall do Windows com Segurança Avançada.

  2. No painel de navegação à esquerda, selecione Regras de entrada.

  3. No painel de navegação à direita, selecione Nova regra.

  4. No painel Tipo de regra, selecione Personalizado como o tipo de regra e clique em Avançar.

  5. No painel Programa, aceite o padrão e clique em Avançar.

  6. No painel Protocolo e portas:

    1. No campo Tipo de Protocolo:, selecione TCP.
    2. No campo Porta:, selecione Portas Específicas e digite 59998.
  7. No painel Escopo, em A quais endereços IP remotos esta regra se aplica?:

    1. Selecione Estes endereços IP:.
    2. Adicione cada um dos endereços IP a seguir ao campo Este endereço IP ou sub-rede clicando em Adicionar:

      • 130.211.0.0/22
      • 35.191.0.0/16
    3. Clique em Avançar.

  8. No painel Ação, aceite Permitir a conexão e clique em Avançar.

  9. No painel Perfil, aceite os padrões e clique em Avançar.

  10. Dê um nome para a regra de firewall e clique em Concluir.

Como validar o balanceador de carga

Depois que o balanceador de carga interno estiver em execução, verifique o status dele para validar se ele pode encontrar uma instância íntegra e, em seguida, teste o failover novamente.

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acesse Balanceamento de carga

  2. Clique no nome do balanceador de carga (wsfc-lb).

    Os grupos de instâncias são listados na seção Back-end do resumo.

    Na imagem a seguir da página de detalhes do balanceador de carga wsfc-lb, o grupo de instâncias wsfc-group-1 tem o nó ativo, conforme indicado por 1/1, na coluna Íntegra. O grupo de instâncias wsfc-group-2 contém o nó inativo, conforme indicado por 0/1.

    O status do balanceador de carga mostra instâncias íntegras 1/1 no grupo de instâncias "wsfc-group-1", o que indica que ele tem um nó ativo.

    Se ambos os grupos de instâncias mostram 0/1, o balanceador de carga ainda pode ser sincronizado com os nós. Às vezes, é necessário fazer pelo menos uma ação de failover para que o balanceador de carga encontre o endereço IP.

  3. No Gerenciador de Cluster de Failover, expanda o nome do cluster e clique em Funções. Na coluna Nó Proprietário, anote o nome do servidor no papel IIS.

  4. Para iniciar um failover, clique com o botão direito do mouse no papel IIS e selecione Mover > Melhor Nó Possível. Essa ação move o papel para o outro nó, como mostrado na coluna Nó Proprietário.

    Campo "Nó Proprietário" mostrado no Gerenciador de Cluster de Failover.

  5. Aguarde até que o Status seja Em Execução.

  6. Volte para a página Detalhes do balanceador de carga, clique em Atualizar e verifique se os valores 1/1 e 0/1 da coluna Íntegra mudaram os grupos de instância.

    O status do balanceador de carga mostra uma instância íntegra de duas.

gcloud compute backend-services get-health wsfc-lb --region=[REGION]

A saída será assim:

backend: https://compute.googleapis.com/compute/v1/projects/exampleproject/zones/us-central1-a/instanceGroups/wsfc-group-1
status:
  healthStatus:
  - healthState: HEALTHY
    instance: https://compute.googleapis.com/compute/v1/projects/exampleproject/zones/us-central1-a/instances/wsfc-1
    ipAddress: 10.0.0.4
    port: 80
  kind: compute#backendServiceGroupHealth
---
backend: https://compute.googleapis.com/compute/v1/projects/exampleproject/zones/us-central1-b/instanceGroups/wsfc-group-2
status:
  healthStatus:
  - healthState: UNHEALTHY
    instance: https://compute.googleapis.com/compute/v1/projects/exampleproject/zones/us-central1-b/instances/wsfc-2
    ipAddress: 10.0.0.5
    port: 80
  kind: compute#backendServiceGroupHealth

Como instalar seu aplicativo

Agora que você tem um cluster, pode configurar seu aplicativo em cada node e defini-lo para execução em um ambiente em cluster.

Neste tutorial, é necessário configurar algo que possa demonstrar que o cluster está realmente trabalhando com o balanceador de carga interno. Configure o IIS em cada VM para veicular uma página da Web simples.

Você não está configurando o IIS para HA no cluster. Você está criando instâncias separadas do IIS, e cada uma delas exibe uma página da Web diferente. Após um failover, o servidor da Web veicula o próprio conteúdo, e não o conteúdo compartilhado.

A configuração do aplicativo ou do IIS para HA está além do escopo deste tutorial.

Configurar o IIS

  1. Em cada nó do cluster, instale o IIS.

    • Na página Selecionar serviços de função, verifique se Documento padrão está selecionado em Recursos HTTP comuns.
    • Na página Confirmação, marque a caixa de seleção que permite o reinício automático do servidor de destino.
  2. Valide o funcionamento de cada servidor da Web.

    1. Use o RDP para estabelecer uma conexão com a VM chamada wsfc-dc.
    2. No Server Manager, clique em Servidor Local no painel de navegação do lado esquerdo da janela.
    3. Na seção Propriedades, na parte superior, desative a opção Configuração de segurança reforçada do IE.
    4. Abra o Internet Explorer.
    5. Navegue até o endereço IP de cada servidor:

      http://10.0.0.4/
      http://10.0.0.5/

Em cada caso, você vê a página de Boas-vindas, que é a página padrão do IIS.

Editar as páginas da Web padrão

Altere cada página da Web padrão para que você veja facilmente qual servidor está veiculando a página atualmente.

  1. Use o RDP para estabelecer uma conexão com a VM chamada wsfc-1.
  2. Execute o Bloco de Notas como administrador.
  3. Abra C:\inetpub\wwwroot\iisstart.htm no Bloco de Notas. Lembre-se de procurar por Todos os arquivos, e não apenas arquivos de texto.
  4. No elemento <title>, altere o texto para o nome do servidor atual. Por exemplo:

        <title>wsfc-1</title>
    
  5. Salve o arquivo HTML.

  6. Repita essas etapas para wsfc-2, definindo o elemento <title> como wsfc-2.

Agora, ao visualizar uma página da Web fornecida por um desses servidores, o nome do servidor será exibido como o título na guia do Internet Explorer.

Testar o failover

  1. Use o RDP para estabelecer uma conexão com a VM chamada wsfc-dc.
  2. Abra o Internet Explorer.
  3. Navegue para o endereço IP do papel de balanceador de carga:

    http://10.0.0.9/
    

    Você verá a página de Boas-vindas com o nome do servidor atual exibido no título da guia.

  4. Interrompa o servidor atual para simular uma falha. No Cloud Shell, execute o comando a seguir, substituindo [INSTANCE_NAME] pelo nome do servidor atual que você viu na etapa anterior, como wsfc-1:

    gcloud compute instances stop [INSTANCE_NAME] --zone=[ACTIVE_ZONE]
    
  5. Troque para a conexão RDP com wsfc-dc.

    Pode levar alguns instantes para que o balanceador de carga detecte a mudança e redirecione o tráfego.

  6. Após 30 segundos ou mais, atualize a página no Internet Explorer.

    Agora você verá o nome do novo nó ativo exibido no título da guia. Por exemplo, se você começou com wsfc-1 ativo, agora verá wsfc-2 no título. Se você não vir a alteração imediatamente ou vir um erro de página não encontrada, atualize novamente o navegador.

Parabéns! Agora você tem um cluster de failover do Windows Server 2016 em execução no GCP.

Solução de problemas

Aqui estão alguns problemas comuns que você pode verificar se algo não estiver funcionando.

As regras de firewall do GCP bloqueiam a verificação de integridade

Se a verificação de integridade não estiver funcionando, verifique se você tem uma regra de firewall para permitir o tráfego recebido dos endereços IP que o sistema de verificação de integridade usa: 130.211.0.0/22 e 35.191.0.0/16.

O Windows Firewall bloqueia a verificação de integridade

Verifique se a porta 59998 está aberta no Firewall do Windows em cada nó do cluster. Consulte Abrir o Windows Firewall.

Nós de cluster que utilizam DHCP

É importante que cada VM no cluster tenha um endereço IP estático. Se uma VM estiver configurada para usar o DHCP no Windows, altere as configurações de rede no Windows para que o endereço IPv4 corresponda ao endereço IP da VM, como mostrado no console do Google Cloud. Defina também o endereço IP do gateway para corresponder ao endereço do gateway de sub-rede na VPC do GCP.

Tags de rede do GCP nas regras de firewall

Se você usa tags de rede em suas regras de firewall, verifique se as corretas estão definidas em cada instância de VM. Neste tutorial, não usamos tags, mas, se você as configurou por algum outro motivo, elas precisam ser usadas com consistência.

Limpeza

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.

Depois de concluir o tutorial, limpe os recursos que você criou para que eles parem de usar a cota e incorrer em cobranças. Nas seções a seguir, você aprenderá a excluir e desativar esses recursos.

Excluir o projeto

O jeito mais fácil de evitar cobranças é excluindo o projeto que você criou para o tutorial.

Para excluir o projeto, faça o seguinte:

  1. No Console do Google Cloud, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

Como limpar recursos sem excluir o projeto

É possível excluir os recursos do tutorial individualmente, caso você precise manter o projeto.

Como excluir instâncias

Para excluir uma instância do Compute Engine, faça o seguinte:

  1. No Console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

  2. Marque a caixa de seleção de a instância que você quer excluir.
  3. Para excluir a instância, clique em Mais ações, clique em Excluir e siga as instruções.

Como excluir grupos de instâncias

  1. No Console do Google Cloud, acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

  2. Selecione a caixa de seleção de é o grupo de instâncias que você quer excluir.
  3. Para excluir a instância, clique em Excluir.

Como excluir um balanceador de carga

Para excluir um balanceador de carga:

  1. No Console do Google Cloud, acesse a página Balanceamento de carga.

    Acesse Balanceamento de carga

  2. Marque a caixa ao lado do nome do balanceador de carga que você quer excluir.

  3. Clique no botão Excluir na parte superior da página.

Como excluir uma rede VPC

Para excluir uma rede VPC:

  1. No Console do Google Cloud, acesse a página Redes VPC.

    Acessar redes VPC

  2. Clique no nome da rede que você quer excluir.

  3. Clique no botão EXCLUIR REDE VPC na parte superior da página.

Liberar endereços IP reservados

Use o Cloud Shell para liberar os endereços IP reservados:

  1. No Console do Google Cloud, acesse o Cloud Shell.

    Acessar o Cloud Shell

  2. Libere os endereços IP reservados:

    gcloud compute addresses delete cluster-access-point load-balancer-ip

Como excluir discos permanentes

Para excluir um disco permanente:

  1. No Console do Google Cloud, acesse a página Discos.

    Acessar "Discos"

  2. Marque a caixa de seleção ao lado do nome do disco que quer excluir.

  3. Clique no botão Excluir na parte superior da página.

A seguir