Criar um cluster do Azure Stack HCI usando Windows PowerShell

Aplica-se a: Azure Stack HCI, versões 22H2 e 21H2

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 em geral, Azure Stack HCI, versão 23H2. Para obter instruções de implantação, consulte Sobre o Azure Stack HCI, versão 23H2 implantação.

Neste artigo, você aprenderá a usar 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 única instalação de servidor do Azure Stack HCI 21H2, use o PowerShell para criar o cluster.

Você tem uma opção 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 abrangem dois sites, com dois nós por site.

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

Observação

Não há suporte para clusters stretch em uma única configuração de servidor.

Neste artigo, criamos um cluster de exemplo chamado Cluster1 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 de clusters estendidos.

Para testar o Azure Stack HCI com hardware mínimo ou sem hardware extra, você pode marcar o Guia de Avaliação do Azure Stack HCI. Neste guia, explicamos como experimentar o Azure Stack HCI usando 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:

Usando o Windows PowerShell

Você pode executar o PowerShell localmente em uma sessão RDP em um servidor host ou executar o PowerShell remotamente em 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 ou -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 (Remote Server Administration Tools) 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 no 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, junte-os a um domínio (o mesmo domínio em que o computador de gerenciamento está) e instale as funções e recursos necessários.

Etapa 1.1: Conectar-se aos servidores

Para se conectar aos servidores, primeiro você deve ter conectividade de rede, ser unido ao mesmo domínio ou a 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ê receberá uma solicitação de senha depois de executar o comando a seguir em cada servidor.

Para este exemplo, presumimos que os servidores sejam chamados de Server1, Server2, Server3 e Server4:

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

Aqui está outro exemplo de 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 hosts confiáveis no computador de gerenciamento. Essa lista dá 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 com a qual você se conectou a cada nó de servidor, 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 executar 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 administrador 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 cada servidor para o 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
  • NetworkATC
  • NetworkHUD
  • 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 por meio da Á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 no cluster ao mesmo tempo, use o script a seguir, modificando a lista de variáveis no início para se ajustar 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: Preparação para a configuração do cluster

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

Como uma sanidade marcar, 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 de 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 as unidades permanentes estão vazias. Execute o script a seguir para remover quaisquer 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, verifique se os nós do servidor estão configurados corretamente para criar um cluster. O Test-Cluster cmdlet é usado para executar testes para verificar se a 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 validados nas etapas anteriores.

Ao criar o cluster, você pode receber um aviso informando : "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 do cluster. A testemunha do cluster é criada em etapas posteriores.

Observação

Se os servidores estiverem usando endereços IP estáticos, modifique o seguinte comando 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 por meio do 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 em Windows Admin Center, talvez ele ainda não esteja disponível para conexão.

Uma boa marcar para garantir que todos os recursos de 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 de 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 de host para obter requisitos e informações específicos.

A ATC de rede poderá 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 intenção específicos, consulte: Tipos de tráfego de rede.

Etapa 4.1: Examinar adaptadores físicos

Em um dos nós de cluster, execute Get-NetAdapter para examinar os adaptadores físicos. Verifique se cada nó no cluster tem os mesmos adaptadores físicos nomeados e se eles relatam status como "Up".

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

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

Rename-NetAdapter -Name oldName -NewName newName

Etapa 4.2: Configurar uma intenção

Neste exemplo, é criada uma intenção que especifica a intenção de computação e armazenamento. Confira 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 intenção, poderá especificar o Name parâmetro para ver detalhes de apenas uma intenção 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 status que mostra Provisionamento, Validação, Êxito, Falha.

O status deve exibir êxito em alguns minutos. Se o status de êxito não ocorrer ou se você vir uma falha de parâmetro status, marcar o visualizador de eventos para problemas.

Observação

No momento, a ATC de Rede não configura endereços IP para nenhum de seus adaptadores gerenciados. Depois que Get-NetIntentStatus os relatórios status concluídos, você deve 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ê tiver configurado 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, atribuimos os quatro nós de servidor aos 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 quorum

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

    • Durante uma divisão de quorum de dois sites, se a testemunha do cluster não puder ser contatada, o site preferencial será automaticamente eleito para ganhar. Os nós de servidor no site passivo saem da associação de cluster, permitindo que o cluster sobreviva a uma perda simultânea de 50% dos 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 seja ativo e preferencial para máquinas virtuais específicas.

Etapa 5.4: Configurar o stretch clustering com a ATC de rede

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

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

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

SiteOverrides

Com base nas etapas 5.1-5.3, você pode adicionar seus sites pré-criados à sua intenção de alongamento 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 o siteOverride for criado, você poderá definir qualquer propriedade para o siteOverride. Verifique se a propriedade name do siteOverride tem exatamente o mesmo nome, como o nome que seu site tem no ClusterFaultDomain. Uma incompatibilidade de nomes entre o ClusterFaultDomain e o siteOverride resulta na não aplicação do siteOverride.

As propriedades que você pode definir para um site específicoOverride 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 $siteOverride1, $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 Enable-ClusterStorageSpacesDirect cmdlet , que habilitará Espaços de Armazenamento Diretos e fará o seguinte automaticamente:

  • Criar um pool de armazenamento: Cria um pool de armazenamento para o cluster que tem um nome como "Cluster1 Storage Pool".

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

  • Criar volumes de dados e de log: Cria um volume de dados e um volume de log no pool de armazenamento.

  • Configurar Espaços de Armazenamento Diretos caches: se houver mais de um tipo de mídia (unidade) disponível para Espaços de Armazenamento Diretos, ele habilitará o mais rápido como dispositivos de cache (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 O 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 pool de armazenamento para cada site e o identifica com o nome do site
  • Cria volumes de dados e de 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. Você também pode especificar um nome amigável para um pool de armazenamento, 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 pools de armazenamento, 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