Criar um cluster do Azure Stack HCI usando o Windows PowerShell
Aplica-se a: Azure Stack HCI, versão 22H2
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>\Administrator
de 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 $siteOverride1
o , $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:
- Configure uma testemunha de cluster se você estiver usando um cluster de dois nós ou maior. Consulte Configurar uma testemunha de cluster.
- Crie seus volumes. Confira Criar volumes. Ao criar volumes em um cluster de nó único, você deve usar o PowerShell. Consulte Criar volumes usando o PowerShell.
- Para clusters estendidos, crie volumes e configure a replicação usando a Réplica de Armazenamento. Consulte Criar volumes e configurar a replicação para clusters estendidos.
Próximas etapas
- Registre seu cluster no Azure. Consulte Conectar o Azure Stack HCI ao Azure.
- Faça uma validação final do cluster. Consulte Validar um cluster do Azure Stack HCI
- Gerencie a rede do host. Consulte Gerenciar rede de host usando a ATC de Rede.