Een Azure Stack HCI-cluster maken met behulp van Windows PowerShell

Van toepassing op: Azure Stack HCI, versies 22H2 en 21H2

Waarschuwing

De implementatie-instructies in dit artikel zijn van toepassing op een oudere versie, Azure Stack HCI, versie 22H2. Voor nieuwe implementaties raden we u aan de meest recente algemeen beschikbare versie, Azure Stack HCI, versie 23H2, te gebruiken. Zie Over Azure Stack HCI, versie 23H2-implementatie voor implementatie-instructies.

In dit artikel leert u hoe u Windows PowerShell gebruikt om een hypergeconvergeerd Azure Stack HCI-cluster te maken dat gebruikmaakt van Opslagruimten Direct. Als u liever de wizard Cluster maken in Windows Admin Center gebruikt om het cluster te maken, raadpleegt u Het cluster maken met Windows Admin Center.

Notitie

Als u een installatie van Azure Stack HCI 21H2 met één server uitvoert, gebruikt u PowerShell om het cluster te maken.

U hebt de keuze uit twee clustertypen:

  • Standaardcluster met een of twee serverknooppunten, die zich allemaal op één site bevinden.
  • Stretched cluster met ten minste vier serverknooppunten die over twee sites, met twee knooppunten per site.

Voor het scenario met één server voert u dezelfde instructies uit voor de ene server.

Notitie

Stretch-clusters worden niet ondersteund in één serverconfiguratie.

In dit artikel maken we een voorbeeldcluster met de naam Cluster1 dat bestaat uit vier serverknooppunten met de naam Server1, Server2, Server3 en Server4.

Voor het stretched clusterscenario gebruiken we ClusterS1 als de naam en gebruiken we dezelfde vier serverknooppunten die zijn uitgerekt over de sites Site1 en Site2.

Zie Overzicht van stretched clusters voor meer informatie over stretched clusters.

Als u Azure Stack HCI wilt testen met minimale of geen extra hardware, kunt u de Azure Stack HCI-evaluatiehandleiding bekijken. In deze handleiding wordt u begeleid bij het ervaren van Azure Stack HCI met behulp van geneste virtualisatie binnen een Azure-VM. Of probeer de zelfstudie Een vm-gebaseerd lab maken voor Azure Stack HCI om uw eigen privéomgeving te maken met behulp van geneste virtualisatie op een server naar keuze om VM's met Azure Stack HCI te implementeren voor clustering.

Voordat u begint

Voordat u begint, moet u het volgende doen:

Windows PowerShell gebruiken

U kunt PowerShell lokaal uitvoeren in een RDP-sessie op een hostserver of u kunt PowerShell extern uitvoeren vanaf een beheercomputer. In dit artikel wordt de externe optie behandeld.

Wanneer u PowerShell uitvoert vanaf een beheercomputer, neemt u de -Name parameter of -Cluster op met de naam van de server of het cluster dat u beheert. Daarnaast moet u mogelijk de FQDN (Fully Qualified Domain Name) opgeven wanneer u de -ComputerName parameter voor een serverknooppunt gebruikt.

U hebt de RSAT-cmdlets (Remote Server Administration Tools) en PowerShell-modules nodig voor Hyper-V- en failoverclustering. Als de cmdlets en modules nog niet beschikbaar zijn in uw PowerShell-sessie op uw beheercomputer, kunt u ze toevoegen met behulp van de volgende opdracht: Add-WindowsFeature RSAT-Clustering-PowerShell.

Stap 1: de servers instellen

Maak eerst verbinding met elk van de servers, voeg ze toe aan een domein (hetzelfde domein waarin de beheercomputer zich bevindt) en installeer de vereiste functies en onderdelen.

Stap 1.1: verbinding maken met de servers

Als u verbinding wilt maken met de servers, moet u eerst een netwerkverbinding hebben, lid zijn van hetzelfde domein of een volledig vertrouwd domein en lokale beheerdersmachtigingen voor de servers hebben.

Open PowerShell en gebruik de Fully Qualified Domain Name of het IP-adres van de server waarmee u verbinding wilt maken. U wordt gevraagd om een wachtwoord nadat u de volgende opdracht op elke server hebt uitgevoerd.

Voor dit voorbeeld gaan we ervan uit dat de servers Server1, Server2, Server3 en Server4 heten:

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

Hier volgt nog een voorbeeld van hetzelfde doen:

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

Enter-PSSession -ComputerName $myServer1 -Credential $user

Tip

Wanneer u PowerShell-opdrachten uitvoert vanaf uw beheer-pc, krijgt u mogelijk een foutmelding dat WinRM de aanvraag niet kan verwerken. U kunt dit oplossen door PowerShell te gebruiken om elke server toe te voegen aan de lijst met vertrouwde hosts op uw beheercomputer. Deze lijst ondersteunt jokertekens, zoals Server* bijvoorbeeld.

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

Als u de lijst met vertrouwde hosts wilt weergeven, typt u Get-Item WSMAN:\Localhost\Client\TrustedHosts.

Als u de lijst wilt leegmaken, typt u Clear-Item WSMAN:\Localhost\Client\TrustedHost.

Stap 1.2: Lid worden van het domein en domeinaccounts toevoegen

In de vorige stap waarmee u verbinding hebt gemaakt met elk serverknooppunt, het lokale beheerdersaccount <ServerName>\Administrator.

Als u wilt doorgaan, moet u de servers toevoegen aan een domein en het domeinaccount gebruiken dat zich in de lokale groep Administrators op elke server bevindt.

Gebruik de Enter-PSSession cmdlet om verbinding te maken met elke server en voer de volgende cmdlet uit, waarbij u de servernaam, domeinnaam en domeinreferenties vervangt:

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

Als uw beheerdersaccount geen lid is van de groep Domeinadministrators, voegt u uw beheerdersaccount toe aan de lokale groep Administrators op elke server, of nog beter, voegt u de groep toe die u voor beheerders gebruikt. U kunt de volgende opdracht gebruiken om dit te doen:

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

Stap 1.3: Functies en onderdelen installeren

De volgende stap is het installeren van de vereiste Windows-functies en -onderdelen op elke server voor het cluster. Dit zijn de rollen die moeten worden geïnstalleerd:

  • BitLocker
  • Data Center Bridging
  • Failoverclustering
  • Bestandsserver
  • FS-Module voor gegevensontdubbeling
  • Hyper-V
  • Hyper-V PowerShell
  • RSAT-Clustering-PowerShell-module
  • RSAT-AD-PowerShell-module
  • NetworkATC
  • NetworkHUD
  • Limiet SMB-bandbreedte
  • Opslagreplica (voor stretched clusters)

Gebruik de volgende opdracht voor elke server (als u verbinding hebt via Extern bureaublad, laat u de -ComputerName parameter hier en in de volgende opdrachten weg):

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

Als u de opdracht op alle servers in het cluster tegelijk wilt uitvoeren, gebruikt u het volgende script, waarbij u de lijst met variabelen aan het begin aanpast aan uw omgeving:

# 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
}

Start vervolgens alle servers opnieuw op:

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

Stap 2: voorbereiden voor clusterinstallatie

Controleer vervolgens of uw servers gereed zijn voor clustering.

Als sanity-controle kunt u overwegen de volgende opdrachten uit te voeren om ervoor te zorgen dat uw servers nog niet tot een cluster behoren:

Gebruik Get-ClusterNode om alle knooppunten weer te geven:

Get-ClusterNode

Gebruik Get-ClusterResource om alle clusterknooppunten weer te geven:

Get-ClusterResource

Gebruik Get-ClusterNetwork om alle clusternetwerken weer te geven:

Get-ClusterNetwork

Stap 2.1: Stations voorbereiden

Voordat u Opslagruimten Direct inschakelt, moet u ervoor zorgen dat uw permanente stations leeg zijn. Voer het volgende script uit om oude partities en andere gegevens te verwijderen.

Notitie

Sluit verwijderbare stations die aan een server-knooppunt zijn gekoppeld, uit van het script. Als u dit script bijvoorbeeld lokaal vanaf een serverknooppunt uitvoert, is het geen goed idee om het verwisselbare station dat u gebruikt om het cluster te implementeren, te wissen.

# 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

Stap 2.2: Clusterconfiguratie testen

In deze stap moet u ervoor zorgen dat de serverknooppunten correct zijn geconfigureerd om een cluster te maken. De Test-Cluster cmdlet wordt gebruikt om tests uit te voeren om te controleren of uw configuratie geschikt is om te functioneren als een hypergeconvergeerd cluster. In het volgende voorbeeld wordt de -Include parameter gebruikt, waarbij de specifieke categorieën tests zijn opgegeven om ervoor te zorgen dat de juiste tests worden opgenomen in de validatie.

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

Stap 3: het cluster maken

U bent nu klaar om een cluster te maken met de serverknooppunten die u in de voorgaande stappen hebt gevalideerd.

Wanneer u het cluster maakt, krijgt u mogelijk een waarschuwing met de melding : "There were issues while creating the clustered role that may prevent it from starting. For more information, view the report file below." u kunt deze waarschuwing veilig negeren. Deze waarschuwing wordt veroorzaakt doordat er geen schijven beschikbaar zijn voor de clusterwitness. De clusterwitness wordt in latere stappen gemaakt.

Notitie

Als de servers statische IP-adressen gebruiken, wijzigt u de volgende opdracht om het statische IP-adres weer te geven door de volgende parameter toe te voegen en het IP-adres op te geven: -StaticAddress <X.X.X.X>;.

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

Nadat het cluster is gemaakt, kan het enige tijd duren voordat de clusternaam wordt gerepliceerd via DNS in uw domein, met name als werkgroepservers nieuw zijn toegevoegd aan Active Directory. Hoewel het cluster mogelijk wordt weergegeven in Windows Admin Center, is het mogelijk dat het nog niet beschikbaar is om verbinding mee te maken.

Een goede controle om ervoor te zorgen dat alle clusterresources online zijn:

Get-Cluster -Name $ClusterName | Get-ClusterResource

Als het oplossen van het cluster na enige tijd niet lukt, kunt u in de meeste gevallen verbinding maken met behulp van de naam van een van de geclusterde servers in plaats van de clusternaam.

Stap 4: hostnetwerken configureren

Microsoft raadt u aan network ATC te gebruiken om hostnetwerken te implementeren als u Azure Stack HCI versie 21H2 of hoger gebruikt. Zie Anders Netwerkvereisten hosten voor specifieke vereisten en informatie.

Netwerk-ATC kan de implementatie van de beoogde netwerkconfiguratie automatiseren als u een of meer intentietypen voor uw adapters opgeeft. Zie Netwerkverkeerstypen voor meer informatie over specifieke intentietypen.

Stap 4.1: Fysieke adapters controleren

Voer op een van de clusterknooppunten uit Get-NetAdapter om de fysieke adapters te controleren. Zorg ervoor dat elk knooppunt in het cluster dezelfde naam heeft als fysieke adapters en dat deze de status 'Up' rapporteren.

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

Als de naam van een fysieke adapter verschilt tussen knooppunten in uw cluster, kunt u de naam ervan wijzigen met behulp van Rename-NetAdapter.

Rename-NetAdapter -Name oldName -NewName newName

Stap 4.2: Een intentie configureren

In dit voorbeeld wordt een intentie gemaakt waarmee de reken- en opslagintentie wordt opgegeven. Zie Hostnetwerken vereenvoudigen met Network ATC voor meer intentievoorbeelden.

Voer de volgende opdracht uit om de opslag- en rekenintentietypen toe te voegen aan pNIC01 en pNIC02. Opmerking: we geven de -ClusterName parameter op.

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

De opdracht moet onmiddellijk worden geretourneerd na een eerste verificatie.

Stap 4.3: Implementatie van intentie valideren

Voer de Get-NetIntent cmdlet uit om de clusterintentie te zien. Als u meer dan één intentie hebt, kunt u de Name parameter opgeven om alleen details van een specifieke intentie weer te geven.

Get-NetIntent -ClusterName $ClusterName

Voer Get-NetIntentStatus de opdracht uit om de inrichtingsstatus van de intentie te bekijken:

Get-NetIntentStatus -ClusterName $ClusterName -Name Cluster_ComputeStorage

Noteer de statusparameter die Inrichting, Valideren, Geslaagd, Mislukt weergeeft.

De status wordt binnen enkele minuten weergegeven. Als de successtatus niet optreedt of als u een fout met de statusparameter ziet, controleert u de logboeken op problemen.

Notitie

Op dit moment configureert Network ATC geen IP-adressen voor een van de beheerde adapters. Zodra Get-NetIntentStatus de status is voltooid, moet u IP-adressen toevoegen aan de adapters.

Stap 5: sites instellen (stretched cluster)

Deze taak is alleen van toepassing als u een stretched cluster maakt tussen twee sites met ten minste twee servers in elke site.

Notitie

Als u Active Directory-sites en -services vooraf hebt ingesteld, hoeft u de sites niet handmatig te maken, zoals beschreven in de volgende sectie.

Stap 5.1: Sites maken

In de volgende cmdlet is FaultDomain gewoon een andere naam voor een site. In dit voorbeeld wordt ClusterS1 gebruikt als de naam van het stretched cluster.

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

Gebruik de Get-ClusterFaultDomain cmdlet om te controleren of beide sites zijn gemaakt voor het cluster.

Get-ClusterFaultDomain -CimSession $ClusterName

Stap 5.2: Serverknooppunten toewijzen

Vervolgens wijzen we de vier serverknooppunten toe aan hun respectieve sites. In het volgende voorbeeld worden Server1 en Server2 toegewezen aan Site1, terwijl Server3 en Server4 zijn toegewezen aan Site2.

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

Controleer met behulp van de Get-ClusterFaultDomain cmdlet of de knooppunten zich in de juiste sites bevinden.

Get-ClusterFaultDomain -CimSession $ClusterName

Stap 5.3: Een voorkeurssite instellen

U kunt ook een globale voorkeurssite definiëren, wat betekent dat opgegeven resources en groepen moeten worden uitgevoerd op de voorkeurssite. Deze instelling kan worden gedefinieerd op siteniveau met behulp van de volgende opdracht:

(Get-Cluster).PreferredSite = "Site1"

Het opgeven van een voorkeursite voor stretched clusters heeft de volgende voordelen:

  • Koude start : tijdens een koude start worden virtuele machines op de voorkeurssite geplaatst

  • Quorumstemmen

    • Bij een dynamisch quorum wordt de weging eerst verlaagd van de passieve (gerepliceerde) site om ervoor te zorgen dat de voorkeurssite overleeft als alle andere zaken gelijk zijn. Bovendien worden serverknooppunten eerst verwijderd van de passieve site tijdens het opnieuw groeperen na gebeurtenissen zoals asymmetrische netwerkverbindingsfouten.

    • Als er tijdens een quorumsplitsing van twee sites geen contact kan worden gemaakt met de clusterwitness, wordt de voorkeurssite automatisch gekozen om te winnen. De serverknooppunten in de passieve site vallen vervolgens uit het clusterlidmaatschap, waardoor het cluster een gelijktijdig verlies van 50% van stemmen kan overleven.

De voorkeurssite kan ook worden geconfigureerd op het niveau van de clusterrol of groep. In dit geval kan voor elke virtuele-machinegroep een andere voorkeurssite worden geconfigureerd, zodat een site actief en voorkeur heeft voor specifieke virtuele machines.

Stap 5.4: Stretch Clustering instellen met Network ATC

Na versie 22H2 kunt u Network ATC gebruiken om Stretch-clustering in te stellen. Netwerk-ATC voegt Stretch toe als een intentietype van versie 22H2. Als u een intentie wilt implementeren met Stretch-clustering met Network ATC, voert u de volgende opdracht uit:

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

Een stretch-intentie kan ook worden gecombineerd met andere intenties, bij het implementeren met Network ATC.

SiteOverrides

Op basis van stap 5.1-5.3 kunt u uw vooraf gemaakte sites toevoegen aan uw stretch-intentie die is geïmplementeerd met Network ATC. Netwerk-ATC verwerkt dit met behulp van SiteOverrides. Voer het volgende uit om een SiteOverride te maken:

 $siteOverride = New-NetIntentSiteOverrides

Zodra uw siteOverride is gemaakt, kunt u een eigenschap instellen voor de siteOverride. Zorg ervoor dat de eigenschap name van de siteOverride exact dezelfde naam heeft als de naam van uw site in het ClusterFaultDomain. Als de namen tussen het ClusterFaultDomain en de siteOverride niet overeenkomen, wordt de siteOverride niet toegepast.

De eigenschappen die u kunt instellen voor een bepaalde siteOverride zijn: Name, StorageVlan en StretchVlan. U maakt bijvoorbeeld 2 siteOverrides voor uw twee sites- site1 en site2 met behulp van:

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

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

U kunt uitvoeren $siteOverride1$siteOverride2 in uw PowerShell-venster om ervoor te zorgen dat al uw eigenschappen op de gewenste manier zijn ingesteld.

Als u ten slotte een of meer siteOverrides wilt toevoegen aan uw intentie, voert u het volgende uit:

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

Stap 6: Opslagruimten Direct inschakelen

Nadat u het cluster hebt gemaakt, gebruikt u de Enable-ClusterStorageSpacesDirect cmdlet, waarmee Opslagruimten Direct wordt ingeschakeld en het volgende automatisch wordt uitgevoerd:

  • Een opslaggroep maken: Hiermee maakt u een opslaggroep voor het cluster met een naam als 'Cluster1 Opslaggroep'.

  • Een clusterprestatiegeschiedenisschijf maken: Hiermee maakt u een virtuele schijf clusterprestatiegeschiedenis in de opslaggroep.

  • Gegevens- en logboekvolumes maken: Hiermee maakt u een gegevensvolume en een logboekvolume in de opslaggroep.

  • Opslagruimten Direct caches configureren: als er meer dan één type media (station) beschikbaar is voor Opslagruimten Direct, worden de snelste cacheapparaten (in de meeste gevallen lezen en schrijven) ingeschakeld.

  • Lagen maken: Hiermee maakt u twee lagen als standaardlagen. De ene wordt 'Capaciteit' genoemd en de andere 'Prestaties'. De cmdlet analyseert de apparaten en configureert elke laag met de combinatie van apparaattypen en tolerantie.

Voor het scenario met één server is de enige FaultDomainAwarenessDefault PhysicalDisk. Enable-ClusterStorageSpacesDirect Cmdlet detecteert een enkele server en configureert automatisch FaultDomainAwarenessDefault als een PhysicalDisk tijdens het inschakelen.

Voor stretched clusters doet de Enable-ClusterStorageSpacesDirect cmdlet ook het volgende:

  • Controleer of sites zijn ingesteld
  • Bepalen welke knooppunten zich in welke sites bevinden
  • Bepaalt welke opslag elk knooppunt beschikbaar heeft
  • Controleert of de functie Opslagreplica op elk knooppunt is geïnstalleerd
  • Maakt een opslaggroep voor elke site en identificeert deze met de naam van de site
  • Hiermee maakt u gegevens- en logboekvolumes in elke opslaggroep - één per site

Met de volgende opdracht schakelt u Opslagruimten Direct in op een cluster met meerdere knooppunten. U kunt ook een beschrijvende naam opgeven voor een opslaggroep, zoals hier wordt weergegeven:

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

Hier volgt een voorbeeld van het uitschakelen van de opslagcache op een cluster met één knooppunt:

Enable-ClusterStorageSpacesDirect -CacheState Disabled

Gebruik de volgende opdracht om de opslaggroepen weer te geven:

Get-StoragePool -CimSession $ClusterName

Nadat u het cluster hebt gemaakt

Nu uw cluster is gemaakt, zijn er andere belangrijke taken die u moet uitvoeren:

Volgende stappen