Implantar um conjunto de clusters

Aplica-se a: Windows Server 2019

Este artigo fornece informações sobre como implantar um conjunto de clusters para os Clusters de Failover do Windows Server usando o PowerShell. Um conjunto de clusters é um grupo de vários clusters de failover que são clusterizados juntos. Usando um conjunto de clusters, você pode aumentar o número de nós de servidor em uma só nuvem do SDDC (Data Center Definido pelo Software) por ordens de magnitude.

Os conjuntos de clusters foram testados e têm suporte para um total de até 64 nós de cluster. No entanto, os conjuntos de clusters podem ser escalados para limites muito maiores e não têm um limite embutidos em código.

Benefícios

Os conjuntos de clusters oferecem os seguintes benefícios:

  • Aumentam significativamente a escala de nuvem do SDDC com suporte para executar VMs (máquinas virtuais) altamente disponíveis, combinando vários clusters menores em uma só malha grande, mantendo o limite de falha de software a um só cluster. Você pode migrar com facilidade as VMs no conjunto de clusters.

  • Maior resiliência. Ter quatro clusters de quatro nós em um conjunto de clusters oferece uma resiliência melhor do que um só cluster de 16 nós, pois vários nós de computação podem ficar inativos e a produção permanece intacta.

  • Gerenciamento do ciclo de vida do cluster de failover, incluindo integração e desativação de clusters, sem afetar a disponibilidade da VM do locatário.

  • Flexibilidade de VM em clusters individuais e um namespace de armazenamento unificado.

  • Alteram com facilidade a proporção de computação/armazenamento da carga de trabalho no seu ambiente hiperconvergente.

  • Beneficiam-se dos domínios de falha e dos conjuntos de disponibilidade semelhantes ao Azure em clusters individuais no posicionamento inicial da VM e na posterior migração.

  • Podem ser usados mesmo se o hardware de computação e armazenamento entre nós de cluster não for idêntico.

  • Migração dinâmica de VMs entre clusters.

  • Conjuntos de disponibilidade e domínios de falha semelhantes ao Azure em vários clusters.

  • Movimentação de VMs do SQL Server entre clusters.

Requisitos e limitações

Há alguns requisitos e algumas limitações para o uso dos conjuntos de clusters:

  • Todos os clusters membro de um conjunto de clusters precisam estar na mesma floresta do AD (Active Directory).

  • Os servidores membro do conjunto precisam executar a mesma versão do sistema operacional. As máquinas virtuais não podem ser migradas online entre sistemas operacionais diferentes. Você pode ter um conjunto de clusters que consiste em qualquer uma das seguintes opções, mas não várias delas:

    • Cluster de Failover do Windows Server 2019 e Cluster de Failover do Windows Server 2019
    • Cluster de Failover do Windows Server 2019 e Espaços de Armazenamento Diretos do Windows Server 2019
    • Espaços de Armazenamento Diretos do Windows Server 2019 e Espaços de Armazenamento Diretos do Windows Server 2019
  • Um hardware de processador idêntico é necessário para que todos os servidores membro para que ocorra a migração dinâmica entre clusters membro, caso contrário, selecione Compatibilidade do Processador de CPU nas configurações de máquinas virtuais.

  • As VMs do conjunto de clusters precisam ser migradas manualmente em tempo real entre clusters. Elas não podem fazer failover automaticamente.

  • A Réplica de Armazenamento precisa ser usada entre os clusters membro para obter resiliência de armazenamento para falhas de cluster. Ao usar a Réplica de Armazenamento, tenha em mente que os caminhos UNC de armazenamento de namespace não serão alterados automaticamente no failover da Réplica de Armazenamento para o cluster de destino de réplica.

  • Os Espaços de Armazenamento Diretos não funcionam entre clusters membro em um conjunto de clusters. Em vez disso, os Espaços de Armazenamento Diretos se aplicam a um só cluster, com cada cluster tendo um pool de armazenamento próprio.

Arquitetura

O seguinte diagrama ilustra um conjunto de clusters em um alto nível:

Diagram showing a cluster set.

Veja abaixo um resumo de cada um dos elementos mostrados:

Cluster de gerenciamento

O cluster de gerenciamento hospeda o plano de gerenciamento altamente disponível e o SOFS (servidor de arquivos de escalabilidade horizontal) de referência de namespace para o conjunto de clusters. Um cluster de gerenciamento é separado logicamente dos clusters membro individuais que executam cargas de trabalho de VM. Isso torna o plano de gerenciamento do conjunto de clusters resiliente a falhas localizadas em todo o cluster, como perda de energia de um cluster membro.

SOFS de referência do namespace do conjunto de clusters

Um namespace para o conjunto de clusters é fornecido com uma função de servidor SOFS em execução no cluster de gerenciamento. Isso é semelhante a um DFSN (namespace do Sistema de Arquivos Distribuído). No entanto, ao contrário do DFSN, os metadados de referência de namespace do conjunto de clusters são preenchidos automaticamente em todos os nós de cluster sem nenhuma intervenção, ou seja, quase não há sobrecarga de desempenho no caminho de acesso de armazenamento. Esse mecanismo de referência leve não participa do caminho de E/S.

Cada compartilhamento de referência do protocolo SMB no SOFS de referência de namespace do conjunto de clusters é do tipo SimpleReferral. Essa referência permite que os clientes SMB acessem o compartilhamento SMB de destino hospedado no SOFS do cluster membro. As referências são armazenadas em cache perpetuamente em cada um dos nós do cliente e o namespace do conjunto de clusters atualiza dinamicamente as referências conforme necessário de modo automático. As informações de referência são armazenadas em cache de maneira persistente em cada nó do conjunto de clusters, mesmo durante as reinicializações.

Mestre do conjunto de clusters

A comunicação entre os clusters membro é acoplada de maneira flexível e coordenada pelo recurso mestre do conjunto de clusters (CS-Master). Assim como outros recursos do conjunto de clusters, o CS-Master é altamente disponível e resiliente a falhas de clusters membro individuais ou a falhas de nó do cluster de gerenciamento. Por meio de um provedor WMI do conjunto de clusters, o CS-Master fornece o ponto de extremidade de gerenciamento para todas as ações de gerenciamento do conjunto de clusters.

Cluster membro

Um cluster membro executa cargas de trabalho de VM e dos Espaços de Armazenamento Diretos. Vários clusters membro participam de uma implantação de conjunto de clusters, formando a malha de nuvem do SDDC mais ampla. Os clusters membro diferem do cluster de gerenciamento em dois aspectos principais: os clusters membro participam de constructos de domínio de falha e conjunto de disponibilidade e são dimensionados para hospedar cargas de trabalho de VM e dos Espaços de Armazenamento Diretos. As VMs que se movem entre os clusters membro não são hospedadas no cluster de gerenciamento por esse motivo.

Trabalho do conjunto de clusters

O CS-Master interage com um recurso de cluster em clusters membro chamado de trabalho do conjunto de clusters (CS-Worker). O CS-Worker responde às solicitações do CS-Master, incluindo o posicionamento da VM e o inventário de recursos. Há uma instância do CS-Worker por cluster membro.

Domínios de falha

Um domínio de falha é um grupo de hardware e software que pode falhar juntos. Embora você possa designar um ou mais clusters juntos como um domínio de falha, cada nó pode participar de um domínio de falha em um conjunto de disponibilidade. Os limites de domínio de falha são baseados na topologia de data center, na arquitetura de rede e em outras considerações.

Conjunto de disponibilidade

Um conjunto de disponibilidade é usado para configurar a redundância desejada de cargas de trabalho clusterizadas em domínios de falha agrupando e implantando cargas de trabalho. Para um aplicativo de duas camadas, você deve configurar, pelo menos, duas VMs em um conjunto de disponibilidade para cada camada, o que garante que, quando um domínio de falha em um conjunto de disponibilidade ficar inativo, seu aplicativo terá, no mínimo, uma VM em cada camada hospedada em um domínio de falha diferente.

Criar um conjunto de clusters

Use o PowerShell no exemplo de fluxo de trabalho a seguir para criar um conjunto de clusters usando dois clusters. O nome do conjunto de clusters aqui é CSMASTER.

Nome do cluster Nome do SOFS de infraestrutura
SET-CLUSTER SOFS-CLUSTERSET
CLUSTER1 SOFS-CLUSTER1
CLUSTER2 SOFS-CLUSTER2
  1. Use um computador cliente de gerenciamento executando o Windows Server 2022 ou o Windows Server 2019.

  2. Instale as ferramentas de Cluster de Failover no servidor de cluster de gerenciamento.

  3. Crie dois membros de cluster e com, pelo menos, dois CSVs (Volumes Compartilhados Clusterizados) em cada cluster.

  4. Crie um cluster de gerenciamento (físico ou convidado) que abranja os clusters membro. Isso garante que o plano de gerenciamento do conjunto de clusters continue disponível, apesar das possíveis falhas no cluster membro.

  5. Para criar o conjunto de clusters:

    New-ClusterSet -Name CSMASTER -NamespaceRoot SOFS-CLUSTERSET -CimSession SET-CLUSTER
    

    Observação

    Se você estiver usando um endereço IP estático, inclua -StaticAddress x.x.x.x no comando New-ClusterSet.

  6. Para adicionar membros do cluster ao conjunto de clusters:

    Add-ClusterSetMember -ClusterName CLUSTER1 -CimSession CSMASTER -InfraSOFSName SOFS-CLUSTER1
    Add-ClusterSetMember -ClusterName CLUSTER2 -CimSession CSMASTER -InfraSOFSName SOFS-CLUSTER2
    
  7. Para enumerar todos os clusters membro no conjunto de clusters:

    Get-ClusterSetMember -CimSession CSMASTER
    
  8. Para enumerar todos os clusters membro do conjunto de clusters, incluindo os nós de cluster de gerenciamento:

    Get-ClusterSet -CimSession CSMASTER | Get-Cluster | Get-ClusterNode
    
  9. Para listar todos os nós de servidor de todos os clusters membro:

    Get-ClusterSetNode -CimSession CSMASTER
    
  10. Para listar todos os grupos de recursos no conjunto de clusters:

    Get-ClusterSet -CimSession CSMASTER | Get-Cluster | Get-ClusterGroup
    
  11. Para verificar se o conjunto de clusters contém um compartilhamento SMB (ScopeName sendo o nome do Servidor de Arquivos de Infraestrutura) no SOFS de infraestrutura de cada volume CSV do membro do cluster:

    Get-SmbShare -CimSession CSMASTER
    
  12. Revise os arquivos de log de depuração do conjunto de clusters para o conjunto de clusters, o cluster de gerenciamento e cada membro do cluster:

    Get-ClusterSetLog -ClusterSetCimSession CSMASTER -IncludeClusterLog -IncludeManagementClusterLog -DestinationFolderPath <path>
    
  13. Configure o Kerberos com delegação restrita entre todos os membros do conjunto de clusters.

  14. Configure o tipo de autenticação de migração dinâmica de VM entre clusters para o Kerberos em cada nó do conjunto de clusters:

    foreach($h in $hosts){ Set-VMHost -VirtualMachineMigrationAuthenticationType Kerberos -ComputerName $h }
    
  15. Adicione o cluster de gerenciamento ao grupo de administradores locais em cada nó de servidor membro do cluster no conjunto de clusters:

    foreach($h in $hosts){ Invoke-Command -ComputerName $h -ScriptBlock {Net localgroup administrators /add <management_cluster_name>$} }
    

Criar VMs do conjunto de clusters

Após a criação do conjunto de clusters, a próxima etapa será criar as VMs. Você deve executar as seguintes etapas antecipadamente:

  • Verificar a memória disponível em cada nó do servidor de cluster
  • Verificar o espaço em disco disponível em cada nó do servidor de cluster
  • Verificar os requisitos específicos de armazenamento de VM em termos de velocidade e desempenho

O comando Get-ClusterSetOptimalNodeForVM identifica o cluster e o nó ideais no conjunto de clusters e, em seguida, implanta a VM nele. No seguinte exemplo, uma VM é criada com:

  • 4 GB disponíveis
  • Um processador virtual
  • CPU mínima de 10% disponível
# Identify the optimal node to create a new virtual machine
$memoryinMB=4096
$vpcount = 1
$targetnode = Get-ClusterSetOptimalNodeForVM -CimSession CSMASTER -VMMemory $memoryinMB -VMVirtualCoreCount $vpcount -VMCpuReservation 10
$secure_string_pwd = convertto-securestring "<password>" -asplaintext -force
$cred = new-object -typename System.Management.Automation.PSCredential ("<domain\account>",$secure_string_pwd)

# Deploy the virtual machine on the optimal node
Invoke-Command -ComputerName $targetnode.name -scriptblock { param([String]$storagepath); New-VM CSVM1 -MemoryStartupBytes 3072MB -path $storagepath -NewVHDPath CSVM.vhdx -NewVHDSizeBytes 4194304 } -ArgumentList @("\\SOFS-CLUSTER1\VOLUME1") -Credential $cred | Out-Null

Start-VM CSVM1 -ComputerName $targetnode.name | Out-Null
Get-VM CSVM1 -ComputerName $targetnode.name | fl State, ComputerName

Após a conclusão, você verá o nó de cluster no qual a VM foi implantada. Para o exemplo acima, isso será mostrado como:

State         : Running
ComputerName  : 1-S2D2

Se não houver memória, capacidade de CPU ou espaço em disco suficiente disponível para adicionar a VM, você receberá o seguinte erro:

Get-ClusterSetOptimalNodeForVM : A cluster node isn't available for this operation.

Depois que a VM é criada, ela é exibida no gerenciador do Hyper-V no nó específico especificado. Para adicioná-la como uma VM do conjunto de clusters e adicioná-la ao cluster, use este comando:

Register-ClusterSetVM -CimSession CSMASTER -MemberName $targetnode.Member -VMName CSVM1

Após a conclusão, a saída será:

Id  VMName  State  MemberName  PSComputerName
--  ------  -----  ----------  --------------
 1  CSVM1     On   CLUSTER1    CSMASTER

Se você criou um cluster usando VMs existentes, as VMs precisarão ser registradas no conjunto de clusters. Para registrar todas as VMs de uma só vez, use:

Get-ClusterSetMember -Name CLUSTER3 -CimSession CSMASTER | Register-ClusterSetVM -RegisterAll -CimSession CSMASTER

Em seguida, adicione o caminho da VM ao namespace do conjunto de clusters.

Por exemplo, suponha que um cluster existente seja adicionado ao conjunto de clusters com VMs pré-configuradas que estejam no CSV (Volume Compartilhado Clusterizado) local. O caminho para o VHDX será algo semelhante a C:\ClusterStorage\Volume1\MYVM\Virtual Hard Disks\MYVM.vhdx1.

Uma migração de armazenamento é necessária, pois os caminhos CSV são, por design, locais para um só cluster de membros e, portanto, não são acessíveis para a VM depois de migrados em tempo real entre os clusters membro.

Neste exemplo, CLUSTER3 é adicionado ao conjunto de clusters usando Add-ClusterSetMember com o servidor de arquivos de escalabilidade horizontal SOFS-CLUSTER3. Para mover a configuração e o armazenamento da VM, o comando é:

Move-VMStorage -DestinationStoragePath \\SOFS-CLUSTER3\Volume1 -Name MyVM

Após a conclusão, você poderá receber um aviso:

WARNING: There were issues updating the virtual machine configuration that may prevent the virtual machine from running. For more information view the report file below.
WARNING: Report file location: C:\Windows\Cluster\Reports\Update-ClusterVirtualMachineConfiguration '' on date at time.htm.

Esse aviso pode ser ignorado, pois não houve alterações físicas na configuração de armazenamento de função de máquina virtual. O local físico real não é alterado, apenas os caminhos de configuração são.

Para obter mais informações sobre Move-VMStorage, confira Move-VMStorage.

A migração dinâmica de uma VM em um conjunto de clusters envolve o seguinte:

Set-VMHost -UseAnyNetworkForMigration $true

Em seguida, para mover uma VM do conjunto de clusters de CLUSTER1 para NODE2-CL3 no CLUSTER3, por exemplo, o comando será:

Move-ClusterSetVM -CimSession CSMASTER -VMName CSVM1 -Node NODE2-CL3

Esse comando não move os arquivos de configuração ou de armazenamento da VM e isso não é necessário, pois o caminho para a VM permanece sendo \\SOFS-CLUSTER1\VOLUME1. Depois que uma VM for registrada com o caminho de compartilhamento do servidor de arquivos de infraestrutura, as unidades e a VM não precisarão estar no mesmo nó da VM.

Criar o servidor de arquivos de escalabilidade horizontal de infraestrutura

Há uma função de cluster SOFS de infraestrutura em um cluster. A função do SOFS de infraestrutura é criada com a especificação do parâmetro de opção -Infrastructure para o cmdlet Add-ClusterScaleOutFileServerRole. Por exemplo:

Add-ClusterScaleoutFileServerRole -Name "my_infra_sofs_name" -Infrastructure

Cada volume CSV criado dispara automaticamente a criação de um compartilhamento SMB com um nome gerado de modo automático com base no nome do volume CSV. Não é possível criar nem modificar diretamente compartilhamentos SMB em uma função SOFS, exceto usando operações de criação e modificação de volume CSV.

Em configurações hiperconvergentes, um SOFS de infraestrutura permite que um cliente SMB (host do Hyper-V) se comunique com a CA (disponibilidade contínua) com o servidor SMB do SOFS de infraestrutura. Essa CA de loopback SMB hiperconvergente é obtida pelas VMs que acessam os arquivos VHDX (disco virtual), em que a identidade da VM proprietária é encaminhada entre o cliente e o servidor. Esse encaminhamento de identidade permite o uso de ACLs para arquivos VHDx, assim como nas configurações de cluster hiperconvergente padrão como antes.

Depois que um conjunto de clusters é criado, o namespace do conjunto de clusters depende de um SOFS de infraestrutura em cada um dos clusters membro e, além disso, de um SOFS de infraestrutura no cluster de gerenciamento.

No momento em que um cluster membro é adicionado a um conjunto de clusters, você pode especificar o nome de um SOFS de infraestrutura nesse cluster, caso ele já exista. Se o SOFS de infraestrutura não existir, uma função de SOFS de infraestrutura no novo cluster membro será criada. Se uma função de SOFS de infraestrutura já existir no cluster membro, a operação Adicionar a renomeará implicitamente para o nome especificado, conforme necessário. Todos os servidores SMB existentes ou as funções de SOFS que não sejam de infraestrutura nos clusters membro não são usados pelo conjunto de clusters.

Quando o conjunto de clusters é criado, você tem a opção de usar um objeto de computador do AD existente como a raiz do namespace no cluster de gerenciamento. A criação do conjunto de clusters cria a função de cluster SOFS de infraestrutura no cluster de gerenciamento ou renomeia a função de SOFS de infraestrutura existente. O SOFS de infraestrutura no cluster de gerenciamento é usado como o SOFS de referência de namespace do conjunto de clusters.

Criar domínios de falha e conjuntos de disponibilidade

Domínios de falha e conjuntos de disponibilidade semelhantes ao Azure podem ser configurados em um conjunto de clusters. Isso é útil para os posicionamentos iniciais de VM e as migrações entre clusters.

O exemplo abaixo tem quatro clusters em um conjunto de clusters. No conjunto, um domínio de falha é criado com dois dos clusters e um segundo domínio de falha é criado com os outros dois clusters. Esses dois domínios de falha compõem o conjunto de disponibilidade.

No exemplo abaixo, CLUSTER1 e CLUSTER2 estão no domínio de falha FD1, e CLUSTER3 e CLUSTER4 estão no domínio de falha FD2. O conjunto de disponibilidade é CSMASTER-AS.

Para criar os domínios de falha, os comandos são:

New-ClusterSetFaultDomain -Name FD1 -FdType Logical -CimSession CSMASTER -MemberCluster CLUSTER1,CLUSTER2 -Description "First fault domain"

New-ClusterSetFaultDomain -Name FD2 -FdType Logical -CimSession CSMASTER -MemberCluster CLUSTER3,CLUSTER4 -Description "Second fault domain"

Para garantir que eles sejam criados com sucesso, Get-ClusterSetFaultDomain pode ser executado com a saída mostrada para FD1:

PS C:\> Get-ClusterSetFaultDomain -CimSession CSMASTER -FdName FD1 | fl *

PSShowComputerName    : True
FaultDomainType       : Logical
ClusterName           : {CLUSTER1, CLUSTER2}
Description           : First fault domain
FDName                : FD1
Id                    : 1
PSComputerName        : CSMASTER

Agora que os domínios de falha foram criados, o conjunto de disponibilidade é criado:

New-ClusterSetAvailabilitySet -Name CSMASTER-AS -FdType Logical -CimSession CSMASTER -ParticipantName FD1,FD2

Para validar se ele foi criado, use:

Get-ClusterSetAvailabilitySet -AvailabilitySetName CSMASTER-AS -CimSession CSMASTER

Ao criar VMs, use o parâmetro -AvailabilitySet para determinar o nó ideal para posicionamento. Veja um exemplo:

# Identify the optimal node to create a new VM
$memoryinMB=4096
$vpcount = 1
$av = Get-ClusterSetAvailabilitySet -Name CSMASTER-AS -CimSession CSMASTER
$targetnode = Get-ClusterSetOptimalNodeForVM -CimSession CSMASTER -VMMemory $memoryinMB -VMVirtualCoreCount $vpcount -VMCpuReservation 10 -AvailabilitySet $av
$secure_string_pwd = convertto-securestring "<password>" -asplaintext -force
$cred = new-object -typename System.Management.Automation.PSCredential ("<domain\account>",$secure_string_pwd)

Remover um cluster de um conjunto

Há momentos em que um cluster precisa ser removido de um conjunto de clusters. Como melhor prática, todas as VMs do conjunto de clusters devem ser movidas para fora do cluster com antecedência. Isso pode ser feito com os comandos Move-ClusterSetVM e Move-VMStorage.

Se as VMs não forem movidas para fora do cluster primeiro, todas as VMs restantes do conjunto de clusters hospedadas no cluster que está sendo removido se tornarão VMs altamente disponíveis associadas a esse cluster, supondo que elas tenham acesso ao armazenamento. Os conjuntos de clusters também atualizam automaticamente o inventário, não acompanhando mais a integridade de um cluster removido e as VMs em execução nele, e removendo o namespace e todas as referências aos compartilhamentos hospedados no cluster removido.

Por exemplo, o comando para remover o cluster CLUSTER1 de um conjunto de clusters é:

Remove-ClusterSetMember -ClusterName CLUSTER1 -CimSession CSMASTER

Backup de estado do sistema

O backup de estado do sistema fará backup do estado do cluster e dos metadados. Usando o Backup do Windows Server, você pode restaurar apenas o banco de dados de cluster de um nó, se necessário, ou fazer uma restauração autoritativa para reverter todo o banco de dados de cluster em todos os nós. Para os conjuntos de clusters, recomendamos fazer uma restauração autoritativa primeiro nos clusters membro e, em seguida, no cluster de gerenciamento. Para obter mais informações sobre o backup do estado do sistema, confira Fazer backup do estado do sistema e do bare-metal.

Próximas etapas