Compartilhar via


Criar um cluster do Azure Stack HCI usando o Windows PowerShell

Aplica-se a: Azure Local, versão 22H2

Importante

O Azure Stack HCI agora faz parte do Azure Local. A renomeação da documentação do produto está em andamento. No entanto, as versões mais antigas do Azure Stack HCI, por exemplo, 22H2, continuarão a fazer referência ao Azure Stack HCI e não refletirão a alteração de nome. Saiba mais.

Aviso

As instruções de implantação fornecidas neste artigo se aplicam a uma versão mais antiga, Azure Stack HCI, versão 22H2. Para novas implantações, recomendamos que você use a versão mais recente disponível para o público geral, Azure Stack HCI, versão 23H2. Para obter instruções de implantação, consulte Sobre a implantação do Azure Stack HCI, versão 23H2.

Neste artigo, você aprenderá a usar o Windows PowerShell para criar um cluster hiperconvergente do Azure Stack HCI que usa Espaços de Armazenamento Diretos. Se você preferir usar o assistente de Criação de Cluster no Windows Admin Center para criar o cluster, consulte Criar o cluster com Windows Admin Center.

Observação

Se você estiver fazendo uma instalação de servidor único do Azure Stack HCI 21H2, use o PowerShell para criar o cluster.

Você pode escolher entre dois tipos de cluster:

  • Cluster padrão com um ou dois nós de servidor, todos residindo em um único site.
  • Cluster estendido com pelo menos quatro nós de servidor que se estendem por dois sites, com dois nós por site.

Para o cenário de servidor único, conclua as mesmas instruções para o servidor.

Observação

Os clusters estendidos não são suportados em uma única configuração de servidor.

Neste artigo, criamos um cluster de exemplo chamado Cluster1 que é composto por quatro nós de servidor chamados Server1, Server2, Server3 e Server4.

Para o cenário de cluster estendido, usamos ClusterS1 como o nome e usamos os mesmos quatro nós de servidor estendidos entre os sites Site1 e Site2.

Para obter mais informações sobre clusters estendidos, consulte Visão geral dos clusters estendidos.

Para testar o Azure Stack HCI com o mínimo ou nenhum hardware extra, você pode conferir o Guia de Avaliação do Azure Stack HCI. Neste guia, orientamos você a experimentar o Azure Stack HCI usando a virtualização aninhada dentro de uma VM do Azure. Ou experimente o tutorial Criar um laboratório baseado em VM para o Azure Stack HCI para criar seu próprio ambiente de laboratório privado usando a virtualização aninhada em um servidor de sua escolha para implantar VMs que executam o Azure Stack HCI para clustering.

Antes de começar

Antes de começar, certifique-se de:

  • Leia e entenda os requisitos do sistema do Azure Stack HCI.
  • Leia e entenda os requisitos de rede física e os requisitos de rede do host para o Azure Stack HCI.
  • Instale o sistema operacional do Azure Stack HCI em cada servidor no cluster. Consulte Implantar o sistema operacional Azure Stack HCI.
  • Certifique-se de que todos os servidores estejam no fuso horário correto.
  • Ter uma conta que seja membro do grupo Administradores local em cada servidor.
  • Ter direitos no Active Directory para criar objetos.
  • Para clusters estendidos, configure seus dois sites com antecedência no Active Directory.

Usando o Windows PowerShell

Você pode executar o PowerShell localmente em uma sessão RDP em um servidor host ou pode executar o PowerShell remotamente de um computador de gerenciamento. Este artigo aborda a opção remota.

Ao executar o PowerShell em um computador de gerenciamento, inclua o -Name parâmetro or -Cluster com o nome do servidor ou cluster que você está gerenciando. Além disso, talvez seja necessário especificar o FQDN (nome de domínio totalmente qualificado) ao usar o -ComputerName parâmetro para um nó de servidor.

Você precisa dos cmdlets RSAT (Ferramentas de Administração de Servidor Remoto) e dos módulos do PowerShell para Hyper-V e Clustering de Failover. Se os cmdlets e módulos ainda não estiverem disponíveis em sua sessão do PowerShell em seu computador de gerenciamento, você poderá adicioná-los usando o seguinte comando: Add-WindowsFeature RSAT-Clustering-PowerShell.

Etapa 1: configurar os servidores

Primeiro, conecte-se a cada um dos servidores, ingresse-os em um domínio (o mesmo domínio em que o computador de gerenciamento está) e instale as funções e os recursos necessários.

Etapa 1.1: Conecte-se aos servidores

Para se conectar aos servidores, primeiro você deve ter conectividade de rede, estar ingressado no mesmo domínio ou em um domínio totalmente confiável e ter permissões administrativas locais para os servidores.

Abra o PowerShell e use o nome de domínio totalmente qualificado ou o endereço IP do servidor ao qual você deseja se conectar. Você será solicitado a fornecer uma senha depois de executar o comando a seguir em cada servidor.

Para este exemplo, supomos que os servidores sejam nomeados Server1, Server2, Server3 e Server4:

Enter-PSSession -ComputerName "Server1" -Credential "Server1\Administrator"

Aqui está outro exemplo de como fazer a mesma coisa:

$myServer1 = "Server1"
$user = "$myServer1\Administrator"

Enter-PSSession -ComputerName $myServer1 -Credential $user

Dica

Ao executar comandos do PowerShell do computador de gerenciamento, você pode receber um erro como o WinRM não pode processar a solicitação. Para corrigir isso, use o PowerShell para adicionar cada servidor à lista de hosts confiáveis no computador de gerenciamento. Essa lista oferece suporte a curingas, como Server* por exemplo.

Set-Item WSMAN:\Localhost\Client\TrustedHosts -Value Server1 -Force

Para exibir sua lista de Hosts Confiáveis, digite Get-Item WSMAN:\Localhost\Client\TrustedHosts.

Para esvaziar a lista, digite Clear-Item WSMAN:\Localhost\Client\TrustedHost.

Etapa 1.2: ingressar no domínio e adicionar contas de domínio

Na etapa anterior, você se conectou a cada nó do servidor com a conta <ServerName>\Administratorde administrador local.

Para continuar, você deve ingressar os servidores em um domínio e usar a conta de domínio que está no grupo Administradores local em cada servidor.

Use o Enter-PSSession cmdlet para se conectar a cada servidor e execute o seguinte cmdlet, substituindo o nome do servidor, o nome de domínio e as credenciais de domínio:

Add-Computer -NewName "Server1" -DomainName "contoso.com" -Credential "Contoso\User" -Restart -Force  

Se sua conta de administrador não for membro do grupo Administradores de Domínio, adicione sua conta de administrador ao grupo Administradores local em cada servidor ou, melhor ainda, adicione o grupo que você usa para administradores. Você pode usar o seguinte comando para fazer isso:

Add-LocalGroupMember -Group "Administrators" -Member "king@contoso.local"

Etapa 1.3: Instalar funções e recursos

A próxima etapa é instalar as funções e os recursos necessários do Windows em todos os servidores do cluster. Estas são as funções a serem instaladas:

  • BitLocker
  • Ponte de Data Center
  • Clustering de failover
  • Servidor de arquivos
  • Módulo FS-Data-Deduplication
  • Hyper-V
  • PowerShell do Hyper-V
  • Módulo RSAT-Clustering-PowerShell
  • Módulo RSAT-AD-PowerShell
  • RedeATC
  • RedeHUD
  • Limite de Largura de Banda do SMB
  • Réplica de armazenamento (para clusters estendidos)

Use o seguinte comando para cada servidor (se você estiver conectado via Área de Trabalho Remota, omita o -ComputerName parâmetro aqui e nos comandos subsequentes):

Install-WindowsFeature -ComputerName "Server1" -Name "BitLocker", "Data-Center-Bridging", "Failover-Clustering", "FS-FileServer", "FS-Data-Deduplication", "FS-SMBBW", "Hyper-V", "Hyper-V-PowerShell", "RSAT-AD-Powershell", "RSAT-Clustering-PowerShell", "NetworkATC", "NetworkHUD", "Storage-Replica" -IncludeAllSubFeature -IncludeManagementTools

Para executar o comando em todos os servidores do cluster ao mesmo tempo, use o script a seguir, modificando a lista de variáveis no início para se adequar ao seu ambiente:

# Fill in these variables with your values
$ServerList = "Server1", "Server2", "Server3", "Server4"
$FeatureList = "BitLocker", "Data-Center-Bridging", "Failover-Clustering", "FS-FileServer", "FS-Data-Deduplication", "Hyper-V", "Hyper-V-PowerShell", "RSAT-AD-Powershell", "RSAT-Clustering-PowerShell", "NetworkATC", "NetworkHUD", "FS-SMBBW", "Storage-Replica"

# This part runs the Install-WindowsFeature cmdlet on all servers in $ServerList, passing the list of features in $FeatureList.
Invoke-Command ($ServerList) {
    Install-WindowsFeature -Name $Using:Featurelist -IncludeAllSubFeature -IncludeManagementTools
}

Em seguida, reinicie todos os servidores:

$ServerList = "Server1", "Server2", "Server3", "Server4"
Restart-Computer -ComputerName $ServerList -WSManAuthentication Kerberos

Etapa 2: Preparar para a configuração do cluster

Em seguida, verifique se os servidores estão prontos para clustering.

Como uma verificação de integridade, considere executar os seguintes comandos para garantir que seus servidores ainda não pertençam a um cluster:

Use Get-ClusterNode para mostrar todos os nós:

Get-ClusterNode

Use Get-ClusterResource para mostrar todos os nós do cluster:

Get-ClusterResource

Use Get-ClusterNetwork para mostrar todas as redes de cluster:

Get-ClusterNetwork

Etapa 2.1: Preparar unidades

Antes de habilitar Espaços de Armazenamento Diretos, verifique se suas unidades permanentes estão vazias. Execute o script a seguir para remover todas as partições antigas e outros dados.

Observação

Exclua todas as unidades removíveis anexadas a um nó de servidor do script. Se você estiver executando esse script localmente em um nó de servidor, por exemplo, não vai querer apagar a unidade removível que você pode estar usando para implantar o cluster.

# Fill in these variables with your values
$ServerList = "Server1", "Server2", "Server3", "Server4"

Invoke-Command ($ServerList) {
    Update-StorageProviderCache
    Get-StoragePool | ? IsPrimordial -eq $false | Set-StoragePool -IsReadOnly:$false -ErrorAction SilentlyContinue
    Get-StoragePool | ? IsPrimordial -eq $false | Get-VirtualDisk | Remove-VirtualDisk -Confirm:$false -ErrorAction SilentlyContinue
    Get-StoragePool | ? IsPrimordial -eq $false | Remove-StoragePool -Confirm:$false -ErrorAction SilentlyContinue
    Get-PhysicalDisk | Reset-PhysicalDisk -ErrorAction SilentlyContinue
    Get-Disk | ? Number -ne $null | ? IsBoot -ne $true | ? IsSystem -ne $true | ? PartitionStyle -ne RAW | % {
        $_ | Set-Disk -isoffline:$false
        $_ | Set-Disk -isreadonly:$false
        $_ | Clear-Disk -RemoveData -RemoveOEM -Confirm:$false
        $_ | Set-Disk -isreadonly:$true
        $_ | Set-Disk -isoffline:$true
    }
    Get-Disk | Where Number -Ne $Null | Where IsBoot -Ne $True | Where IsSystem -Ne $True | Where PartitionStyle -Eq RAW | Group -NoElement -Property FriendlyName
} | Sort -Property PsComputerName, Count

Etapa 2.2: Testar a configuração do cluster

Nesta etapa, certifique-se de que os nós do servidor estejam configurados corretamente para criar um cluster. O Test-Cluster cmdlet é usado para executar testes para verificar se sua configuração é adequada para funcionar como um cluster hiperconvergente. O exemplo a seguir usa o -Include parâmetro, com as categorias específicas de testes especificadas para garantir que os testes corretos sejam incluídos na validação.

Test-Cluster -Node $ServerList -Include "Storage Spaces Direct", "Inventory", "Network", "System Configuration"

Etapa 3: Criar o cluster

Agora você está pronto para criar um cluster com os nós de servidor que você validou nas etapas anteriores.

Ao criar o cluster, você pode receber um aviso que diz - "There were issues while creating the clustered role that may prevent it from starting. For more information, view the report file below." Você pode ignorar esse aviso com segurança. Esse aviso ocorre porque nenhum disco está disponível para a testemunha de cluster. A testemunha de cluster é criada em etapas posteriores.

Observação

Se os servidores estiverem usando endereços IP estáticos, modifique o comando a seguir para refletir o endereço IP estático adicionando o seguinte parâmetro e especificando o endereço IP: -StaticAddress <X.X.X.X>;.

$ClusterName="cluster1" 
New-Cluster -Name $ClusterName –Node $ServerList –nostorage

Depois que o cluster é criado, pode levar algum tempo para que o nome do cluster seja replicado via DNS em seu domínio, especialmente se os servidores de grupo de trabalho forem adicionados recentemente ao Active Directory. Embora o cluster possa ser exibido no Windows Admin Center, ele pode não estar disponível para conexão ainda.

Uma boa verificação para garantir que todos os recursos do cluster estejam online:

Get-Cluster -Name $ClusterName | Get-ClusterResource

Se a resolução do cluster não for bem-sucedida após algum tempo, na maioria dos casos, você poderá se conectar usando o nome de um dos servidores clusterizados em vez do nome do cluster.

Etapa 4: Configurar a rede do host

A Microsoft recomenda usar a ATC de Rede para implantar a rede de host se você estiver executando o Azure Stack HCI versão 21H2 ou mais recente. Caso contrário, consulte Requisitos de rede do host para obter informações e requisitos específicos.

A ATC de Rede pode automatizar a implantação da configuração de rede pretendida se você especificar um ou mais tipos de intenção para seus adaptadores. Para obter mais informações sobre tipos de intent específicos, consulte: Tipos de tráfego de rede.

Etapa 4.1: Examinar adaptadores físicos

Em um dos nós do cluster, execute Get-NetAdapter para revisar os adaptadores físicos. Certifique-se de que cada nó no cluster tenha os mesmos adaptadores físicos nomeados e que eles relatem o status como 'Ativo'.

Get-NetAdapter -Name pNIC01, pNIC02 -CimSession $ClusterName | Select Name, PSComputerName

Se o nome de um adaptador físico variar entre os nós do cluster, você poderá renomeá-lo usando Rename-NetAdapter.

Rename-NetAdapter -Name oldName -NewName newName

Etapa 4.2: Configurar uma intent

Neste exemplo, é criada uma intenção que especifica a intenção de computação e armazenamento. Consulte Simplificar a rede de host com a ATC de Rede para obter mais exemplos de intenção.

Execute o comando a seguir para adicionar os tipos de intenção de armazenamento e computação a pNIC01 e pNIC02. Observe que especificamos o -ClusterName parâmetro.

Add-NetIntent -Name Cluster_ComputeStorage -Compute -Storage -ClusterName $ClusterName -AdapterName pNIC01, pNIC02

O comando deve retornar imediatamente após alguma verificação inicial.

Etapa 4.3: Validar a implantação da intenção

Execute o Get-NetIntent cmdlet para ver a intenção do cluster. Se você tiver mais de uma intent, poderá especificar o Name parâmetro para ver detalhes apenas de uma intent específica.

Get-NetIntent -ClusterName $ClusterName

Para ver o status de provisionamento da intenção, execute o Get-NetIntentStatus comando:

Get-NetIntentStatus -ClusterName $ClusterName -Name Cluster_ComputeStorage

Observe o parâmetro de status que mostra Provisionamento, Validação, Êxito, Falha.

O status deve exibir sucesso em alguns minutos. Se o status de sucesso não ocorrer ou você vir uma falha no parâmetro de status, verifique se há problemas no visualizador de eventos.

Observação

No momento, a ATC de Rede não configura endereços IP para nenhum de seus adaptadores gerenciados. Depois que Get-NetIntentStatus o status dos relatórios for concluído, você deverá adicionar endereços IP aos adaptadores.

Etapa 5: Configurar sites (cluster estendido)

Essa tarefa só se aplica se você estiver criando um cluster estendido entre dois sites com pelo menos dois servidores em cada site.

Observação

Se você configurou Sites e Serviços do Active Directory com antecedência, não precisará criar os sites manualmente, conforme descrito na próxima seção.

Etapa 5.1: Criar sites

No cmdlet a seguir, FaultDomain é simplesmente outro nome para um site. Este exemplo usa "ClusterS1" como o nome do cluster estendido.

New-ClusterFaultDomain -CimSession $ClusterName -FaultDomainType Site -Name "Site1"
New-ClusterFaultDomain -CimSession $ClusterName -FaultDomainType Site -Name "Site2"

Use o Get-ClusterFaultDomain cmdlet para verificar se ambos os sites foram criados para o cluster.

Get-ClusterFaultDomain -CimSession $ClusterName

Etapa 5.2: Atribuir nós de servidor

Em seguida, atribuímos os quatro nós do servidor aos seus respectivos sites. No exemplo a seguir, Server1 e Server2 são atribuídos ao Site1, enquanto Server3 e Server4 são atribuídos ao Site2.

Set-ClusterFaultDomain -CimSession $ClusterName -Name "Server1", "Server2" -Parent "Site1"
Set-ClusterFaultDomain -CimSession $ClusterName -Name "Server3", "Server4" -Parent "Site2"

Usando o Get-ClusterFaultDomain cmdlet, verifique se os nós estão nos sites corretos.

Get-ClusterFaultDomain -CimSession $ClusterName

Etapa 5.3: Definir um site preferencial

Você também pode definir um site preferencial global, o que significa que os recursos e grupos especificados devem ser executados no site preferencial. Essa configuração pode ser definida no nível do site usando o seguinte comando:

(Get-Cluster).PreferredSite = "Site1"

Especificar um Site preferencial para clusters estendidos tem os seguintes benefícios:

  • Inicialização a frio - durante uma inicialização a frio, as máquinas virtuais são colocadas no site preferencial

  • Votação de quórum

    • Com um quorum dinâmico, a ponderação é reduzida do local passivo (replicado) primeiro para garantir que o local preferencial sobreviva se todas as outras coisas forem iguais. Além disso, os nós do servidor são removidos do site passivo primeiro durante o reagrupamento após eventos como falhas de conectividade de rede assimétrica.

    • Durante uma divisão de quorum de dois sites, se a testemunha de cluster não puder ser contatada, o site preferencial será automaticamente eleito para vencer. Os nós do servidor no site passivo saem da associação ao cluster, permitindo que o cluster sobreviva a uma perda simultânea de 50% de votos.

O site preferencial também pode ser configurado no nível da função de cluster ou do grupo. Nesse caso, um site preferencial diferente pode ser configurado para cada grupo de máquinas virtuais, permitindo que um site esteja ativo e preferencial para máquinas virtuais específicas.

Etapa 5.4: Configurar o Cluster Estendido com a ATC de Rede

Após a versão 22H2, você pode usar a ATC de Rede para configurar o clustering estendido. A ATC de Rede adiciona Stretch como um tipo de intent da versão 22H2. Para implantar uma intenção com clustering estendido com ATC de Rede, execute o seguinte comando:

Add-NetIntent -Name StretchIntent -Stretch -AdapterName "pNIC01", "pNIC02"

Uma intenção estendida também pode ser combinada com outras intenções, ao implantar com a ATC de Rede.

Substituições de site

Com base nas etapas 5.1 a 5.3, você pode adicionar seus sites pré-criados à sua intenção estendida implantada com a ATC de Rede. A ATC de rede lida com isso usando SiteOverrides. Para criar um SiteOverride, execute:

 $siteOverride = New-NetIntentSiteOverrides

Depois que seu siteOverride for criado, você poderá definir qualquer propriedade para o siteOverride. Verifique se a propriedade name do siteOverride tem exatamente o mesmo nome que o nome que seu site tem no ClusterFaultDomain. Uma incompatibilidade de nomes entre o ClusterFaultDomain e o siteOverride faz com que o siteOverride não seja aplicado.

As propriedades que você pode definir para um siteOverride específico são: Name, StorageVlan e StretchVlan. Por exemplo, você cria 2 siteOverrides para seus dois sites: site1 e site2 usando:

$siteOverride1 = New-NetIntentSiteOverrides
$siteoverride1.Name = "site1"
$siteOverride1.StorageVLAN = 711
$siteOverride1.StretchVLAN = 25

$siteOverride2 = New-NetIntentSiteOverrides
$siteOverride2.Name = "site2"
$siteOverride2.StorageVLAN = 712
$siteOverride2.StretchVLAN = 26

Você pode executar $siteOverride1o , $siteOverride2 na janela do PowerShell para garantir que todas as suas propriedades estejam definidas da maneira desejada.

Por fim, para adicionar um ou mais siteOverrides à sua intenção, execute:

Add-NetIntent -Name StretchIntent -Stretch -AdapterName "pNIC01" , "pNIC02" -SiteOverrides $siteOverride1, $siteOverride2

Etapa 6: Habilitar Espaços de Armazenamento Diretos

Depois de criar o cluster, use o cmdlet, que habilitará Espaços Enable-ClusterStorageSpacesDirect de Armazenamento Diretos e faça o seguinte automaticamente:

  • Criar um pool de armazenamento: cria um pool de armazenamento para o cluster que tem um nome como "Pool de Armazenamento do Cluster1".

  • Criar um disco do Histórico de Desempenho do Cluster: Cria um disco virtual do Histórico de Desempenho do Cluster no pool de armazenamento.

  • Criar volumes de dados e log: Cria um volume de dados e um volume de log no conjunto de armazenamentos.

  • Configurar caches de Espaços de Armazenamento Diretos: se houver mais de um tipo de mídia (unidade) disponível para Espaços de Armazenamento Diretos, ele habilitará os dispositivos de cache mais rápidos (leitura e gravação na maioria dos casos).

  • Criar camadas: Cria duas camadas como camadas padrão. Uma é chamada de "Capacidade" e a outra de "Desempenho". O cmdlet analisa os dispositivos e configura cada camada com a combinação de tipos de dispositivo e resiliência.

Para o cenário de servidor único, o único FaultDomainAwarenessDefault é PhysicalDisk. Enable-ClusterStorageSpacesDirect cmdlet detecta um único servidor e configura automaticamente FaultDomainAwarenessDefault como um PhysicalDisk durante a habilitação.

Para clusters estendidos, o Enable-ClusterStorageSpacesDirect cmdlet também:

  • Verifique se os sites estão configurados
  • Determinar quais nós estão em quais sites
  • Determina qual armazenamento cada nó tem disponível
  • Verifica se o recurso de Réplica de Armazenamento está instalado em cada nó
  • Cria um conjunto de armazenamentos para cada site e o identifica com o nome do site
  • Cria volumes de dados e log em cada pool de armazenamento, um por site

O comando a seguir habilita Espaços de Armazenamento Diretos em um cluster de vários nós. Também é possível especificar um nome amigável para um conjunto de armazenamentos, conforme mostrado aqui:

Enable-ClusterStorageSpacesDirect -PoolFriendlyName "$ClusterName Storage Pool" -CimSession $ClusterName

Aqui está um exemplo de desabilitação do cache de armazenamento em um cluster de nó único:

Enable-ClusterStorageSpacesDirect -CacheState Disabled

Para ver os conjuntos de armazenamentos, use o seguinte comando:

Get-StoragePool -CimSession $ClusterName

Depois de criar o cluster

Agora que o cluster foi criado, há outras tarefas importantes que você precisa concluir:

Próximas etapas