O blog da AWS

Como implantar um cluster de failover do SQL Server com o Amazon EBS Multi-Attach no Windows Server

Por Rafet Ducic

Atualizado em 15 de fevereiro de 2024.

Nesta postagem do blog, orientaremos você na criação de um cluster de failover do Microsoft SQL Server na Amazon Web Services (AWS) com o Amazon Elastic Block Storage (Amazon EBS) Multi-Attach, usando o recém-introduzido Amazon EBS Multi-Attach em volumes io2 com recurso de reservas persistentes. Também destacaremos o potencial de economia de custos que essa abordagem oferece.

Introdução

O Microsoft SQL Server fornece duas estratégias principais de alta disponibilidade e recuperação de desastres: Instâncias de Cluster de Failover (FCIs) e Grupos de Disponibilidade (AGs). Ambas as opções usam o Windows Server Failover Cluster (WSFC), mas têm finalidades e recursos distintos.

Uma Instância de Cluster de Failover (FCI) é uma instância do SQL Server instalada em vários nós em um Windows Server Failover Cluster (WSFC). Se um nó falhar, todos os componentes do SQL Server, incluindo bancos de dados do sistema, logins, jobs do agente e certificados, passarão para outro nó. A implantação de FCIs do SQL Server exige armazenamento compartilhado; anteriormente, precisávamos confiar no Amazon FSx for NetApp ONTAP ou no Amazon FSx for Windows File Server, bem como em algumas soluções de armazenamento compartilhado de terceiros.

Lançados em 18 de setembro de 2023, os volumes io2 do Amazon EBS com reservas NVMe para Multi-Attach criam mais uma possibilidade de implementar armazenamento compartilhado para suportar Windows Server Failover Clusters. Os volumes io2 do Amazon EBS são replicados automaticamente em sua zona de disponibilidade (AZ), oferecendo 99,999% de durabilidade.

O NVMe Reservations é um conjunto de protocolos de isolamento de armazenamento padrão do setor que permitem gerenciar o acesso a um dispositivo de bloco compartilhado entre várias instâncias. Isso é semelhante às Reservas Persistentes SCSI (SCSI PR) usadas em dispositivos locais de Rede de Área de Armazenamento (SAN). Para implantar Windows Server Failover Clusters usando volumes io2 do Amazon EBS, você deve usar os drivers mais recentes do Windows que traduzem os comandos de reserva SCSI em comandos de reserva NVMe.

O Amazon EBS Multi-Attach com reservas NVMe permite a criação de volumes SQL Server FCI com Amazon EBS io2 como armazenamento compartilhado nos Windows Server Failover Clusters.

Visão geral da solução

No diagrama de arquitetura mostrado na Figura 1, o cluster de failover do SQL Server usa o volume Amazon EBS io2 Multi-Attach com reserva persistente para alta disponibilidade.

Architecture Overview Figura 1 Visão geral da arquitetura

Pré-requisitos

A implementação de um cluster de failover do SQL Server no Windows Server usando o Amazon EBS Multi-Attach exige os seguintes pré-requisitos:

  1. Amazon Virtual Private Cloud (Amazon VPC) com pelo menos uma AZ e duas sub-redes privadas na mesma AZ.
  2. Grupos de segurança para garantir o fluxo seguro de tráfego entre as instâncias implantadas na Amazon VPC.
  3. Duas ou mais instâncias do Amazon EC2 executando o Windows Server 2016 ou posterior em sub-redes separadas dentro da mesma AZ. As instâncias devem ser iniciadas usando uma AMI lançada após agosto de 2023 ou ter os drivers mais recentes.
  4. Uma implantação existente ou nova do Active Directory (AD) com acesso à rede para dar suporte ao Windows Server Failover Cluster e à implantação do SQL Server. O AD pode ser implantado usando o AWS Directory Service for Microsoft Active Directory ou no Amazon (EC2) usando o AWS Launch Wizard for Active
  5. Um usuário do domínio AD com as permissões necessárias para configurar um cluster de failover.
  6. Um usuário do domínio AD para a conta de serviço do SQL Server.
  7. Grupo de posicionamento distribuído no qual as instâncias são lançadas; isso garante que cada instância seja colocada em um hardware distinto.

Passo a passo

Este passo a passo mostrará como usar volumes Amazon EBS io2 Multi-Attach para clusters de failover do SQL Server em uma única AZ

Etapa 1: Criação de instâncias do Amazon EC2

  • Crie duas ou mais instâncias do Amazon EC2 em sub-redes separadas.
  • Em Configuração de rede avançada ou em Gerenciar endereços IP de uma instância existente, atribua dois endereços IP secundários, conforme mostrado na Figura 2.

Secondary IP addresses Figura 2 Endereços IP secundários

Etapa 2: Provisionar e anexar volumes io2 do Amazon EBS às suas instâncias

  • Crie os volumes io2 necessários do Amazon EBS, garantindo que o Multi-Attach esteja habilitado para quorum de cluster (pelo menos 4 GiB), dados, registros e qualquer armazenamento adicional necessário.
  • Anexe os volumes às instâncias criadas na Etapa 1.

Etapa 3: Inicializar e formatar volumes

  • Depois de anexar o (s) volume (s), faça RDP em uma das instâncias do Windows Server EC2 como usuário com permissões para criar cluster de failover.
  • Abra a ferramenta de gerenciamento de disco. Você verá o volume anexado como um disco bruto e não alocado.
  • Inicialize o disco.
  • Online, o disco.
  • Crie um novo volume simples.
  • Formate o volume usando NTFS. Atribua uma letra de drive.
  • Repita o procedimento para qualquer volume adicional do Amazon EBS io2 que você tenha criado.

Etapa 4: Configurar reservas persistentes de SCSI:

  • Em todas as instâncias do Amazon EC2 usadas para o cluster de failover, abra o Windows PowerShell ISE e selecione Executar como administrador. Certifique-se de abrir o Painel de Scripts, onde você colará os scripts.
  • Ative as reservas persistentes SCSI com o comando a seguir, que define EnableSCSIPersistentReservations com um valor de 1 no registro:
$registryPath "HKLM:\SYSTEM\CurrentControlSet\Services\AWSNVMe\Parameters\Device"
Set-ItemProperty -Path $registryPath -Name EnableSCSIPersistentReservations -Value 1

Etapa 5: Criar cluster de failover

  • No Windows PowerShell ISE, instale os recursos de clustering:
Install-WindowsFeature -Name RSAT-AD-Powershell,Failover-Clustering -IncludeManagementTools;
  • Reinicialize as instâncias após a conclusão do comando do PowerShell.
  • Após a reinicialização, abra o Windows PowerShell ISE na primeira instância do Amazon EC2 usada para failover cluster e selecione Executar como administrador. Certifique-se de abrir o Painel de Scripts, onde você colará os scripts.
  • Execute o processo de validação do cluster:
test-cluster -node node1, node2
  • Analise o relatório de validação do cluster, garantindo que as verificações de armazenamento sejam bem-sucedidas. O relatório de validação é criado no diretório C:\Windows\Cluster\Reports no host do failover cluster.
  • Na console da AWS, copie o primeiro endereços IP secundários de cada nó e use-os no comando create cluster:
New-Cluster -Name ClusterName -Node Node1, Node2 -StaticAddress Node1SecondaryIP, Node2SecondaryIP
  • Durante a instalação do SQL Server, o processo de configuração criará o nome da rede do SQL Server. Isso pode falhar se a unidade organizacional (OU) em que o cluster está localizado não tiver permissão para criar objetos secundários. Você pode pré-configurar o nome da rede do SQL Server ou fornecer permissões para criar um nome de rede do SQL Server.

Etapa 6: Instalar o novo cluster de failover do SQL Server

  • Na primeira instância do Amazon EC2 usada para o failover cluster, execute a configuração do SQL Server e selecione uma nova instalação de failover cluster do SQL Server.
  • Siga as instruções de instalação para instalar o SQL Server.
  • Você pode receber uma mensagem na página Cluster Resource Group, conforme mostrado na Figura 3, informando que o armazenamento disponível e o cluster group não podem ser usados. Isso é esperado, pois o cluster reserva o disco de quórum do cluster e os cluster groups.

Cluster Resource GroupFigura 3 Grupo de recursos de cluster

  • Selecione os discos compartilhados na página Seleção de discos do cluster, conforme mostrado na Figura 4:

Cluster Disk SelectionFigura 4 Seleção de disco de cluster

  • Na página Configuração de rede do cluster, desmarque o DHCP e especifique o segundo IP secundário do nó atual, conforme mostrado na Figura 5.

Cluster Network ConfigurationFigura 5 Configuração de rede de cluster

Etapa 7: Adicionar um nó a um cluster de failover do SQL Server

  • Nas instâncias secundárias do Amazon EC2 usadas no cluster de failover, execute a configuração do SQL Server e selecione Adicionar um nó a um failover do SQL Server.
  • Siga as instruções de instalação para instalar o SQL Server.
  • Na página Configuração de rede do cluster, desmarque o DHCP e especifique o segundo IP secundário do nó atual, conforme mostrado na Figura 6. Clique em Avançar.

Cluster Network ConfigurationFigura 6 Configuração de rede de cluster

  • Selecione Sim, confirmando que você está implantando o SQL Server em uma configuração de várias sub-redes, conforme mostrado na Figura 7.

Multi-subnet warningFigura 7 Aviso de várias sub-redes

  • Após a instalação, abra o Failover Cluster Manager e conecte-se ao cluster local. No nó Funções, selecione a função do SQL Server e valide se esses recursos estão online, conforme mostrado na Figura 8. Observe que somente um endereço IP estará on-line devido a várias sub-redes.

Failover Cluster Manger – SQL Server RoleFigura 8 Gerenciador de cluster de failover — Função do SQL Server

Limpeza

  • Encerre instâncias do Amazon EC2:
    • No Console de Gerenciamento da AWS, navegue até a seção “Instâncias”.
    • Localize e selecione as instâncias do EC2 usadas para o cluster de failover.
    • Escolha o menu “Estado da instância” e clique em “Encerrar”.
    • Confirme o processo de encerrar quando solicitado.
  • Exclua volumes do Amazon EBS:
    • Navegue até o AWS Management Console.
    • Na seção “Elastic Block Store”, selecione “Volumes”.
    • Localize os volumes do Amazon EBS criados para essa configuração e selecione-os.
    • Escolha o menu “Ações” e clique em “Excluir volume”.
    • Confirme a exclusão quando solicitado.
  • Se você implantou o AD gerenciado:
    • Navegue até o AWS Management Console.
    • Em Serviços, selecione Serviço de Diretório.
    • Localize o Diretório criado para essa configuração e selecione-o.
    • Escolha o menu “Ações” e clique em “Excluir diretório”.
  • Se você implantou o AD usando o AWS Launch Wizard:
    • Navegue até o AWS Management Console.
    • Na caixa de pesquisa, pesquise por Launch Wizard.
    • Selecione Microsoft Active Directory.
    • Localize o Diretório criado para essa configuração e selecione-o.
    • Escolha o menu “Ações” e clique em “Excluir diretório”.

Conclusão

Orientamos você na implantação de um cluster de failover do Microsoft SQL Server usando volumes io2 do Amazon EBS no Windows Server. Essa solução não só oferece um benefício econômico ao exigir apenas um conjunto de volumes para o cluster de failover, ao contrário dos grupos de disponibilidade Always On, que precisam de volumes separados para cada nó de alta disponibilidade, mas também simplifica o processo de configuração do cluster de failover ao permitir que você crie um cluster de failover usando volumes io2 do Amazon EBS. Embora os volumes io2 do Amazon EBS só possam ser anexados a instâncias na mesma AZ, você pode aumentar a disponibilidade implantando o FCI no grupo de posicionamento distribuído, garantindo que as instâncias não compartilhem hardware físico.


A AWS tem significativamente mais serviços e mais recursos dentro desses serviços do que qualquer outro provedor de nuvem, tornando mais rápido, fácil e econômico mover seus aplicativos existentes para a nuvem e criar praticamente qualquer coisa que você possa imaginar. Ofereça aos seus aplicativos Microsoft a infraestrutura de que eles precisam para gerar os resultados comerciais que você deseja. Visite nosso. NET nos blogs da AWS e do banco de dados da AWS para obter orientações e opções adicionais para suas cargas de trabalho da Microsoft. Entre em contato conosco para iniciar sua jornada de migração e modernização hoje mesmo.

Este blog é uma tradução do contéudo original em inglês (link aqui).

Biografia do Autor

Rafet Ducic é arquiteto sênior de soluções na Amazon Web Services (AWS). Ele aplica seus mais de 20 anos de experiência técnica para ajudar clientes industriais e automotivos globais a fazer a transição de suas cargas de trabalho para a nuvem de forma econômica e com desempenho ideal. Com experiência em tecnologias de banco de dados e licenciamento da Microsoft, Rafet é especialista em orientar empresas de todos os tamanhos em direção a custos operacionais reduzidos e altos padrões de desempenho.

Biografia tradutor e revisor

Gustavo Lima é Arquiteto de Soluções na AWS no segmento de Partner First SP High Biller. Ele possui mais de 13 anos de experiência na área de soluções de armazenamento e proteção de dados. Juntou-se ao time da AWS em 2022.

https://www.linkedin.com/in/gustavo-lima-21940212/

Rubens Karklin é arquiteto de soluções da AWS que atua no Setor Público. Ele com quase 18 anos de experiência e 9 anos no setor público vem ajudando clientes a prosperarem seus negócios com expertise nas áreas de Redes, Segurança, Armazenamento de Dados, Computação e sempre ávido a aprender novas tecnologias.

https://www.linkedin.com/in/rubenskarklin