Creare un cluster Azure Stack HCI con Windows PowerShell
Si applica a: Locale di Azure, versione 22H2
Importante
Azure Stack HCI is now part of Azure Local. La ridenominazione della documentazione del prodotto è in corso. Tuttavia, le versioni precedenti di Azure Stack HCI, ad esempio 22H2 continueranno a fare riferimento ad Azure Stack HCI e non rifletteranno la modifica del nome. Altre informazioni.
Avviso
Le istruzioni di distribuzione fornite in questo articolo si applicano a una versione precedente, Azure Stack HCI, versione 22H2. Per le nuove distribuzioni, è consigliabile usare la versione più recente disponibile a livello generale, Azure Stack HCI, versione 23H2. Per istruzioni sulla distribuzione, vedere Informazioni sulla distribuzione di Azure Stack HCI versione 23H2.
Questo articolo illustra come usare Windows PowerShell per creare un cluster iperconvergente di Azure Stack HCI che usa Spazi di archiviazione diretta. Se si usa la Creazione guidata cluster in Windows Admin Center per creare il cluster, vedere Creare il cluster con Windows Admin Center.
Nota
Se si esegue un'installazione a server singolo di Azure Stack HCI 21H2, usare PowerShell per creare il cluster.
È possibile scegliere tra due tipi di cluster:
- Cluster standard con uno o due nodi del server, tutti che risiedono in un singolo sito.
- Cluster esteso con almeno quattro nodi del server che si estendono su due siti, con due nodi per sito.
Per lo scenario a server singolo, completare le stesse istruzioni per il server singolo.
Nota
I cluster estesi non sono supportati in una configurazione a server singolo.
In questo articolo viene creato un cluster di esempio denominato Cluster1 composto da quattro nodi server denominati Server1, Server2, Server3 e Server4.
Per lo scenario del cluster esteso, clusterS1 viene usato come nome e si usano gli stessi quattro nodi del server estesi tra i siti Site1 e Site2.
Per altre informazioni sui cluster estesi, vedere Panoramica dei cluster estesi.
Per testare Azure Stack HCI con hardware minimo o senza hardware aggiuntivo, vedere la Guida alla valutazione di Azure Stack HCI. In questa guida viene illustrata l'esperienza di Azure Stack HCI usando la virtualizzazione annidata all'interno di una macchina virtuale di Azure. In alternativa, provare l'esercitazione Creare un lab basato su vm per Azure Stack HCI per creare un ambiente lab privato usando la virtualizzazione annidata in un server di propria scelta per distribuire macchine virtuali che eseguono Azure Stack HCI per il clustering.
Operazioni preliminari
Prima di iniziare, assicurarsi di:
- Leggere e comprendere i requisiti di sistema di Azure Stack HCI.
- Leggere e comprendere i requisiti di rete fisica e i requisiti di rete host per Azure Stack HCI.
- Installare il sistema operativo Azure Stack HCI in ogni server del cluster. Vedere Distribuire il sistema operativo Azure Stack HCI.
- Verificare che tutti i server si trovino nel fuso orario corretto.
- Avere un account membro del gruppo Administrators locale in ogni server.
- Disporre dei diritti in Active Directory per creare oggetti.
- Per i cluster estesi, configurare in anticipo i due siti in Active Directory.
Tramite Windows PowerShell
È possibile eseguire PowerShell in locale in una sessione RDP in un server host oppure eseguire PowerShell in remoto da un computer di gestione. Questo articolo illustra l'opzione remota.
Quando si esegue PowerShell da un computer di gestione, includere il -Name
parametro o -Cluster
con il nome del server o del cluster che si sta gestendo. Inoltre, potrebbe essere necessario specificare il nome di dominio completo (FQDN) quando si usa il -ComputerName
parametro per un nodo server.
Sono necessari i cmdlet RSAT (Remote Server Administration Tools) e i moduli di PowerShell per Hyper-V e Clustering di failover. Se i cmdlet e i moduli non sono già disponibili nella sessione di PowerShell nel computer di gestione, è possibile aggiungerli usando il comando seguente: Add-WindowsFeature RSAT-Clustering-PowerShell
.
Passaggio 1: Configurare i server
Prima di tutto, connettersi a ognuno dei server, aggiungerli a un dominio (lo stesso dominio in cui si trova il computer di gestione) e installare i ruoli e le funzionalità necessari.
Passaggio 1.1: Connettersi ai server
Per connettersi ai server, è prima necessario disporre della connettività di rete, essere aggiunti allo stesso dominio o a un dominio completamente attendibile e disporre delle autorizzazioni amministrative locali per i server.
Aprire PowerShell e usare il nome di dominio completo o l'indirizzo IP del server a cui ci si vuole connettere. Verrà richiesta una password dopo aver eseguito il comando seguente in ogni server.
Per questo esempio si presuppone che i server siano denominati Server1, Server2, Server3 e Server4:
Enter-PSSession -ComputerName "Server1" -Credential "Server1\Administrator"
Ecco un altro esempio di questa operazione:
$myServer1 = "Server1"
$user = "$myServer1\Administrator"
Enter-PSSession -ComputerName $myServer1 -Credential $user
Suggerimento
Quando si eseguono comandi di PowerShell dal PC di gestione, è possibile che venga visualizzato un errore come WinRM non è in grado di elaborare la richiesta. Per risolvere questo problema, usare PowerShell per aggiungere ogni server all'elenco Host attendibili nel computer di gestione. Questo elenco supporta i caratteri jolly, Server*
ad esempio.
Set-Item WSMAN:\Localhost\Client\TrustedHosts -Value Server1 -Force
Per visualizzare l'elenco host attendibili, digitare Get-Item WSMAN:\Localhost\Client\TrustedHosts
.
Per svuotare l'elenco, digitare Clear-Item WSMAN:\Localhost\Client\TrustedHost
.
Passaggio 1.2: Aggiungere il dominio e aggiungere account di dominio
Nel passaggio precedente connesso a ogni nodo del server con l'account <ServerName>\Administrator
amministratore locale .
Per procedere, è necessario aggiungere i server a un dominio e usare l'account di dominio che si trova nel gruppo Administrators locale in ogni server.
Usare il Enter-PSSession
cmdlet per connettersi a ogni server ed eseguire il cmdlet seguente, sostituendo il nome del server, il nome di dominio e le credenziali di dominio:
Add-Computer -NewName "Server1" -DomainName "contoso.com" -Credential "Contoso\User" -Restart -Force
Se l'account amministratore non è membro del gruppo Domain Admins, aggiungere l'account amministratore al gruppo Administrators locale in ogni server o, meglio ancora, aggiungere il gruppo usato per gli amministratori. A tale scopo, è possibile usare il comando seguente:
Add-LocalGroupMember -Group "Administrators" -Member "king@contoso.local"
Passaggio 1.3: Installare ruoli e funzionalità
Il passaggio successivo consiste nell'installare i ruoli e le funzionalità di Windows necessari in ogni server per il cluster. Devono essere installati i seguenti ruoli:
- BitLocker
- Data Center Bridging
- Clustering di failover
- File Server
- Modulo FS-Data-Deduplicazione
- Hyper-V
- Hyper-V PowerShell
- Modulo RSAT-Clustering-PowerShell
- Modulo RSAT-AD-PowerShell
- NetworkATC
- NetworkHUD
- Limite larghezza di banda SMB
- Replica di archiviazione (per cluster estesi)
Usare il comando seguente per ogni server (se si è connessi tramite Desktop remoto omettere il -ComputerName
parametro qui e nei comandi successivi):
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
Per eseguire il comando in tutti i server del cluster contemporaneamente, usare lo script seguente, modificando l'elenco di variabili all'inizio per adattarsi all'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
}
Riavviare quindi tutti i server:
$ServerList = "Server1", "Server2", "Server3", "Server4"
Restart-Computer -ComputerName $ServerList -WSManAuthentication Kerberos
Passaggio 2: Preparazione per la configurazione del cluster
Verificare quindi che i server siano pronti per il clustering.
Come controllo della integrità, è consigliabile eseguire i comandi seguenti per assicurarsi che i server non appartengano già a un cluster:
Usare Get-ClusterNode
per visualizzare tutti i nodi:
Get-ClusterNode
Usare Get-ClusterResource
per visualizzare tutti i nodi del cluster:
Get-ClusterResource
Usare Get-ClusterNetwork
per visualizzare tutte le reti cluster:
Get-ClusterNetwork
Passaggio 2.1: Preparare le unità
Prima di abilitare Spazi di archiviazione diretta, assicurarsi che le unità permanenti siano vuote. Eseguire lo script seguente per rimuovere eventuali partizioni precedenti e altri dati.
Nota
Escludere dallo script tutte le unità rimovibili collegate a un nodo server. Se si esegue questo script in locale da un nodo server, ad esempio, non è necessario cancellare l'unità rimovibile che potrebbe essere in uso per distribuire il 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
Passaggio 2.2: Testare la configurazione del cluster
In questo passaggio assicurarsi che i nodi del server siano configurati correttamente per creare un cluster. Il Test-Cluster
cmdlet viene usato per eseguire test per verificare che la configurazione sia adatta per funzionare come cluster iperconvergente. Nell'esempio seguente viene usato il -Include
parametro , con le categorie specifiche di test specificate per assicurarsi che i test corretti siano inclusi nella convalida.
Test-Cluster -Node $ServerList -Include "Storage Spaces Direct", "Inventory", "Network", "System Configuration"
Passaggio 3: Creare il cluster
È ora possibile creare un cluster con i nodi del server convalidati nei passaggi precedenti.
Quando si crea il cluster, potrebbe essere visualizzato un avviso che indica che è "There were issues while creating the clustered role that may prevent it from starting. For more information, view the report file below."
possibile ignorare in modo sicuro questo avviso. Questo avviso è dovuto all'assenza di dischi disponibili per il server di controllo del cluster. Il server di controllo del cluster viene creato nei passaggi successivi.
Nota
Se i server usano indirizzi IP statici, modificare il comando seguente per riflettere l'indirizzo IP statico aggiungendo il parametro seguente e specificando l'indirizzo IP: -StaticAddress <X.X.X.X>;
.
$ClusterName="cluster1"
New-Cluster -Name $ClusterName –Node $ServerList –nostorage
Dopo aver creato il cluster, il nome del cluster può richiedere del tempo per la replica del nome del cluster tramite DNS nel dominio, soprattutto se i server del gruppo di lavoro vengono appena aggiunti ad Active Directory. Anche se il cluster potrebbe essere visualizzato in Windows Admin Center, potrebbe non essere ancora disponibile per la connessione.
Verificare che tutte le risorse del cluster siano online:
Get-Cluster -Name $ClusterName | Get-ClusterResource
Se la risoluzione del cluster non riesce dopo un certo periodo di tempo, nella maggior parte dei casi è possibile connettersi usando il nome di uno dei server in cluster anziché il nome del cluster.
Passaggio 4: Configurare la rete host
Microsoft consiglia di usare Network ATC per distribuire la rete host se si esegue Azure Stack HCI versione 21H2 o successiva. In caso contrario, vedere Requisiti di rete host per requisiti e informazioni specifici.
Network ATC può automatizzare la distribuzione della configurazione di rete desiderata se si specificano uno o più tipi di finalità per le schede. Per altre informazioni su tipi di finalità specifici, vedere Tipi di traffico di rete.
Passaggio 4.1: Esaminare gli adattatori fisici
In uno dei nodi del cluster eseguire Get-NetAdapter
per esaminare le schede fisiche. Assicurarsi che ogni nodo del cluster abbia le stesse schede fisiche denominate e che segnalano lo stato "Up".
Get-NetAdapter -Name pNIC01, pNIC02 -CimSession $ClusterName | Select Name, PSComputerName
Se un nome di adattatore fisico varia tra i nodi del cluster, è possibile rinominarlo usando Rename-NetAdapter
.
Rename-NetAdapter -Name oldName -NewName newName
Passaggio 4.2: Configurare una finalità
In questo esempio viene creata una finalità che specifica la finalità di calcolo e archiviazione. Per altri esempi di finalità, vedere Semplificare la rete host con Network ATC .
Eseguire il comando seguente per aggiungere i tipi di finalità di archiviazione e calcolo a pNIC01 e pNIC02. Si noti che si specifica il -ClusterName
parametro .
Add-NetIntent -Name Cluster_ComputeStorage -Compute -Storage -ClusterName $ClusterName -AdapterName pNIC01, pNIC02
Il comando deve restituire immediatamente dopo una verifica iniziale.
Passaggio 4.3: Convalidare la distribuzione delle finalità
Eseguire il Get-NetIntent
cmdlet per visualizzare la finalità del cluster. Se si dispone di più finalità, è possibile specificare il Name
parametro per visualizzare i dettagli solo di una finalità specifica.
Get-NetIntent -ClusterName $ClusterName
Per visualizzare lo stato del provisioning della finalità, eseguire il Get-NetIntentStatus
comando :
Get-NetIntentStatus -ClusterName $ClusterName -Name Cluster_ComputeStorage
Si noti il parametro di stato che mostra Provisioning, Convalida, Esito positivo, Errore.
Lo stato dovrebbe visualizzare l'esito positivo in pochi minuti. Se lo stato di esito positivo non si verifica o viene visualizzato un errore del parametro di stato, controllare la presenza di problemi nel Visualizzatore eventi.
Nota
Al momento, Network ATC non configura gli indirizzi IP per le schede gestite. Una volta Get-NetIntentStatus
completato lo stato dei report, è necessario aggiungere indirizzi IP alle schede.
Passaggio 5: Configurare siti (cluster esteso)
Questa attività si applica solo se si crea un cluster esteso tra due siti con almeno due server in ogni sito.
Nota
Se in precedenza sono stati configurati siti e servizi di Active Directory, non è necessario creare manualmente i siti, come descritto nella sezione successiva.
Passaggio 5.1: Creare siti
Nel cmdlet seguente FaultDomain è semplicemente un altro nome per un sito. Questo esempio usa "ClusterS1" come nome del cluster esteso.
New-ClusterFaultDomain -CimSession $ClusterName -FaultDomainType Site -Name "Site1"
New-ClusterFaultDomain -CimSession $ClusterName -FaultDomainType Site -Name "Site2"
Usare il Get-ClusterFaultDomain
cmdlet per verificare che entrambi i siti vengano creati per il cluster.
Get-ClusterFaultDomain -CimSession $ClusterName
Passaggio 5.2: Assegnare nodi server
Successivamente, si assegnano i quattro nodi del server ai rispettivi siti. Nell'esempio seguente Server1 e Server2 vengono assegnati a Site1, mentre Server3 e Server4 vengono assegnati a Site2.
Set-ClusterFaultDomain -CimSession $ClusterName -Name "Server1", "Server2" -Parent "Site1"
Set-ClusterFaultDomain -CimSession $ClusterName -Name "Server3", "Server4" -Parent "Site2"
Usando il Get-ClusterFaultDomain
cmdlet, verificare che i nodi si trovino nei siti corretti.
Get-ClusterFaultDomain -CimSession $ClusterName
Passaggio 5.3: Impostare un sito preferito
È anche possibile definire un sito preferito globale, il che significa che le risorse e i gruppi specificati devono essere eseguiti nel sito preferito. Questa impostazione può essere definita a livello di sito usando il comando seguente:
(Get-Cluster).PreferredSite = "Site1"
La specifica di un sito preferito per i cluster estesi offre i vantaggi seguenti:
Avvio a freddo: durante un avvio a freddo, le macchine virtuali vengono inserite nel sito preferito
Voto quorum
Con un quorum dinamico, la ponderazione viene ridotta dal sito passivo (replicato) per assicurarsi che il sito preferito sopravviva se tutte le altre cose sono uguali. Inoltre, i nodi del server vengono eliminati dal sito passivo prima durante il raggruppamento dopo eventi come gli errori di connettività di rete asimmetrica.
Durante una suddivisione del quorum di due siti, se il server di controllo del cluster non può essere contattato, il sito preferito viene selezionato automaticamente per vincere. I nodi del server nel sito passivo quindi escono dall'appartenenza al cluster, consentendo al cluster di sopravvivere a una perdita simultanea del 50% dei voti.
Il sito preferito può anche essere configurato a livello di ruolo o gruppo del cluster. In questo caso, è possibile configurare un sito preferito diverso per ogni gruppo di macchine virtuali, in modo che un sito sia attivo e preferito per macchine virtuali specifiche.
Passaggio 5.4: Configurare Stretch Clustering con Network ATC
Dopo la versione 22H2, è possibile usare Network ATC per configurare stretch clustering. Network ATC aggiunge Stretch come tipo di finalità dalla versione 22H2. Per distribuire una finalità con Stretch clustering con Network ATC, eseguire il comando seguente:
Add-NetIntent -Name StretchIntent -Stretch -AdapterName "pNIC01", "pNIC02"
Una finalità stretch può anche essere combinata con altre finalità, durante la distribuzione con Network ATC.
SiteOverrides
In base ai passaggi 5.1-5.3, è possibile aggiungere i siti creati in locale alla finalità estesa distribuita con Network ATC. Network ATC gestisce questa operazione usando SiteOverrides. Per creare un siteOverride, eseguire:
$siteOverride = New-NetIntentSiteOverrides
Dopo aver creato il sitoOverride, è possibile impostare qualsiasi proprietà per siteOverride. Assicurarsi che la proprietà name del sitoOverride abbia esattamente lo stesso nome, come il nome del sito in ClusterFaultDomain. Una mancata corrispondenza dei nomi tra ClusterFaultDomain e siteOverride determina che siteOverride non viene applicato.
Le proprietà che è possibile impostare per un determinato sitoOverride sono: Name, StorageVlan e StretchVlan. Ad esempio, si creano 2 siteOverrides per i due siti- 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
È possibile eseguire $siteOverride1
, $siteOverride2
nella finestra di PowerShell per assicurarsi che tutte le proprietà siano impostate nel modo desiderato.
Infine, per aggiungere uno o più siteOverrides alla finalità, eseguire:
Add-NetIntent -Name StretchIntent -Stretch -AdapterName "pNIC01" , "pNIC02" -SiteOverrides $siteOverride1, $siteOverride2
Passaggio 6: Abilitare Spazi di archiviazione diretta
Dopo aver creato il cluster, usare il Enable-ClusterStorageSpacesDirect
cmdlet , che abiliterà Spazi di archiviazione diretta e eseguirà automaticamente le operazioni seguenti:
Creare un pool di archiviazione: crea un pool di archiviazione per il cluster con un nome simile a "Cluster1 Storage Pool".
Creare un disco cronologia prestazioni cluster: crea un disco virtuale cronologia prestazioni cluster nel pool di archiviazione.
Creare volumi di dati e log: crea un volume di dati e un volume di log nel pool di archiviazione.
Configurare Spazi di archiviazione diretta cache: se è disponibile più di un tipo di supporto (unità) per Spazi di archiviazione diretta, abilita il più veloce come dispositivi cache (lettura e scrittura nella maggior parte dei casi).
Creare livelli: crea due livelli come livelli predefiniti. Uno è denominato "Capacità" e l'altro "Prestazioni". Il cmdlet analizza i dispositivi e configura ogni livello con una combinazione di tipi di dispositivi e resilienza.
Per lo scenario a server singolo, l'unico FaultDomainAwarenessDefault è PhysicalDisk. Enable-ClusterStorageSpacesDirect
Il cmdlet rileva un singolo server e configura automaticamente FaultDomainAwarenessDefault come PhysicalDisk durante l'abilitazione.
Anche per i cluster estesi, il Enable-ClusterStorageSpacesDirect
cmdlet:
- Controllare se i siti sono configurati
- Determinare i nodi in cui si trovano i siti
- Determina l'archiviazione disponibile per ogni nodo
- Verifica se la funzionalità Replica archiviazione è installata in ogni nodo
- Crea un pool di archiviazione per ogni sito e lo identifica con il nome del sito
- Crea volumi di dati e log in ogni pool di archiviazione, uno per sito
Il comando seguente abilita Spazi di archiviazione diretta in un cluster multinodo. È anche possibile specificare un nome descrittivo per un pool di archiviazione, come illustrato di seguito:
Enable-ClusterStorageSpacesDirect -PoolFriendlyName "$ClusterName Storage Pool" -CimSession $ClusterName
Ecco un esempio di disabilitazione della cache di archiviazione in un cluster a nodo singolo:
Enable-ClusterStorageSpacesDirect -CacheState Disabled
Per visualizzare i pool di archiviazione, usare il comando seguente:
Get-StoragePool -CimSession $ClusterName
Dopo aver creato il cluster
Dopo aver creato il cluster, è necessario completare altre attività importanti:
- Configurare un cluster di controllo se si usa un cluster a due nodi o più grandi. Vedere Configurare un cluster di controllo.
- Creare i volumi. Vedere Creare volumi. Quando si creano volumi in un cluster a nodo singolo, è necessario usare PowerShell. Vedere Creare volumi con PowerShell.
- Per i cluster estesi, creare volumi e configurare la replica usando Replica di archiviazione. Vedere Creare volumi e configurare la replica per i cluster estesi.
Passaggi successivi
- Registrare il cluster con Azure. Vedere Connettere Azure Stack HCI ad Azure.
- Eseguire una convalida finale del cluster. Vedere Convalidare un cluster Azure Stack HCI
- Gestire la rete host. Vedere Gestire la rete host con Network ATC.