Dela via


Skapa ett Azure Stack HCI-kluster med Windows PowerShell

Gäller för: Azure Stack HCI, version 22H2

Varning

Distributionsinstruktionerna i den här artikeln gäller för en äldre version, Azure Stack HCI, version 22H2. För nya distributioner rekommenderar vi att du använder den senaste allmänt tillgängliga versionen, Azure Stack HCI, version 23H2. Distributionsinstruktioner finns i Om Azure Stack HCI, version 23H2-distribution.

I den här artikeln får du lära dig hur du använder Windows PowerShell för att skapa ett Hyperkonvergerat Azure Stack HCI-kluster som använder Lagringsutrymmen Direct. Om du hellre använder guiden Skapa kluster i Administrationscenter för Windows för att skapa klustret kan du läsa Skapa klustret med Windows Administrationscenter.

Kommentar

Om du gör en enskild serverinstallation av Azure Stack HCI 21H2 använder du PowerShell för att skapa klustret.

Du kan välja mellan två klustertyper:

  • Standardkluster med en eller två servernoder, som alla finns på en enda plats.
  • Utsträckt kluster med minst fyra servernoder som sträcker sig över två platser, med två noder per plats.

För scenariot med en enskild server utför du samma instruktioner för den ena servern.

Kommentar

Stretchkluster stöds inte i en enda serverkonfiguration.

I den här artikeln skapar vi ett exempelkluster med namnet Cluster1 som består av fyra servernoder med namnet Server1, Server2, Server3 och Server4.

I scenariot med stretchkluster använder vi ClusterS1 som namn och använder samma fyra servernoder som sträcker sig över platserna Plats1 och Plats2.

Mer information om stretchkluster finns i Översikt över stretchkluster.

Om du vill testa Azure Stack HCI med minimal eller ingen extra maskinvara kan du läsa utvärderingsguiden för Azure Stack HCI. I den här guiden går vi igenom hur du upplever Azure Stack HCI med kapslad virtualisering i en virtuell Azure-dator. Eller prova självstudien Skapa ett VM-baserat labb för Azure Stack HCI för att skapa en egen privat labbmiljö med kapslad virtualisering på valfri server för att distribuera virtuella datorer som kör Azure Stack HCI för klustring.

Innan du börjar

Innan du börjar kontrollerar du att:

  • Läs och förstå systemkraven för Azure Stack HCI.
  • Läs och förstå kravenfysiskt nätverk och värdnätverkskrav för Azure Stack HCI.
  • Installera Azure Stack HCI OS på varje server i klustret. Se Distribuera Azure Stack HCI-operativsystemet.
  • Kontrollera att alla servrar är i rätt tidszon.
  • Ha ett konto som är medlem i den lokala gruppen Administratörer på varje server.
  • Har behörighet i Active Directory för att skapa objekt.
  • För stretchkluster konfigurerar du dina två platser i förväg i Active Directory.

Använda Windows PowerShell

Du kan antingen köra PowerShell lokalt i en RDP-session på en värdserver eller köra PowerShell via fjärranslutning från en hanteringsdator. Den här artikeln beskriver fjärralternativet.

När du kör PowerShell från en hanteringsdator ska du inkludera parametern -Name eller -Cluster med namnet på den server eller det kluster som du hanterar. Dessutom kan du behöva ange det fullständigt kvalificerade domännamnet (FQDN) när du använder parametern -ComputerName för en servernod.

Du behöver RSAT-cmdletar (Remote Server Administration Tools) och PowerShell-moduler för Hyper-V och redundanskluster. Om cmdletarna och modulerna inte redan är tillgängliga i PowerShell-sessionen på hanteringsdatorn kan du lägga till dem med hjälp av följande kommando: Add-WindowsFeature RSAT-Clustering-PowerShell.

Steg 1: Konfigurera servrarna

Anslut först till var och en av servrarna, anslut dem till en domän (samma domän som hanteringsdatorn finns i) och installera nödvändiga roller och funktioner.

Steg 1.1: Anslut till servrarna

Om du vill ansluta till servrarna måste du först ha nätverksanslutning, vara ansluten till samma domän eller en fullständigt betrodd domän och ha lokal administrativ behörighet till servrarna.

Öppna PowerShell och använd antingen det fullständigt kvalificerade domännamnet eller IP-adressen för den server som du vill ansluta till. Du uppmanas att ange ett lösenord när du har kört följande kommando på varje server.

I det här exemplet förutsätter vi att servrarna heter Server1, Server2, Server3 och Server4:

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

Här är ett annat exempel på hur du gör samma sak:

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

Enter-PSSession -ComputerName $myServer1 -Credential $user

Dricks

När du kör PowerShell-kommandon från hanteringsdatorn kan det uppstå ett fel som om WinRM inte kan bearbeta begäran. Åtgärda detta genom att använda PowerShell för att lägga till varje server i listan Betrodda värdar på hanteringsdatorn. Den här listan stöder jokertecken, till Server* exempel.

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

Om du vill visa listan Betrodda värdar skriver du Get-Item WSMAN:\Localhost\Client\TrustedHosts.

Om du vill tömma listan skriver du Clear-Item WSMAN:\Localhost\Client\TrustedHost.

Steg 1.2: Anslut domänen och lägg till domänkonton

I föregående steg anslöt du till varje servernod med det lokala administratörskontot <ServerName>\Administrator.

Om du vill fortsätta måste du ansluta servrarna till en domän och använda det domänkonto som finns i den lokala gruppen Administratörer på varje server.

Använd cmdleten Enter-PSSession för att ansluta till varje server och köra följande cmdlet och ersätta servernamnet, domännamnet och domänautentiseringsuppgifterna:

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

Om ditt administratörskonto inte är medlem i gruppen Domänadministratörer lägger du till ditt administratörskonto i den lokala gruppen Administratörer på varje server – eller ännu bättre lägger du till den grupp som du använder för administratörer. Du kan använda följande kommando för att göra det:

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

Steg 1.3: Installera roller och funktioner

Nästa steg är att installera nödvändiga Windows-roller och -funktioner på varje server för klustret. Här är de roller som ska installeras:

  • BitLocker
  • Bryggning av datacentral
  • Redundanskluster
  • Filserver
  • FS-Datadedupliceringsmodul
  • Hyper-V
  • Hyper-V PowerShell
  • Modulen RSAT-Clustering-PowerShell
  • RSAT-AD-PowerShell-modul
  • NetworkATC
  • NetworkHUD
  • Bandbreddsgräns för SMB
  • Lagringsreplik (för stretchkluster)

Använd följande kommando för varje server (om du är ansluten via Fjärrskrivbord utelämna parametern -ComputerName här och i efterföljande kommandon):

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

Om du vill köra kommandot på alla servrar i klustret samtidigt använder du följande skript och ändrar listan med variabler i början för att passa din miljö:

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

Starta sedan om alla servrar:

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

Steg 2: Förberedelse för klusterkonfiguration

Kontrollera sedan att servrarna är redo för klustring.

Som en sanskontroll bör du överväga att köra följande kommandon för att se till att servrarna inte redan tillhör ett kluster:

Använd Get-ClusterNode för att visa alla noder:

Get-ClusterNode

Använd Get-ClusterResource för att visa alla klusternoder:

Get-ClusterResource

Använd Get-ClusterNetwork för att visa alla klusternätverk:

Get-ClusterNetwork

Steg 2.1: Förbereda enheter

Innan du aktiverar Lagringsutrymmen Direct kontrollerar du att dina permanenta enheter är tomma. Kör följande skript för att ta bort alla gamla partitioner och andra data.

Kommentar

Undanta flyttbara enheter som är anslutna till en servernod från skriptet. Om du till exempel kör det här skriptet lokalt från en servernod vill du inte rensa den flyttbara enhet som du använder för att distribuera klustret.

# 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

Steg 2.2: Testa klusterkonfiguration

I det här steget kontrollerar du att servernoderna är korrekt konfigurerade för att skapa ett kluster. Cmdleten Test-Cluster används för att köra tester för att kontrollera att konfigurationen är lämplig för att fungera som ett hyperkonvergerat kluster. I följande exempel används parametern -Include med de specifika kategorier av tester som angetts för att säkerställa att rätt tester ingår i valideringen.

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

Steg 3: Skapa klustret

Nu är du redo att skapa ett kluster med de servernoder som du verifierade i föregående steg.

När du skapar klustret kan du få en varning om tillståndet – "There were issues while creating the clustered role that may prevent it from starting. For more information, view the report file below." Du kan ignorera den här varningen på ett säkert sätt. Den här varningen beror på att inga diskar är tillgängliga för klustervittnet. Klustervittnet skapas i senare steg.

Kommentar

Om servrarna använder statiska IP-adresser ändrar du följande kommando för att återspegla den statiska IP-adressen genom att lägga till följande parameter och ange IP-adressen: -StaticAddress <X.X.X.X>;.

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

När klustret har skapats kan det ta lite tid innan klusternamnet replikeras via DNS i hela domänen, särskilt om arbetsgruppsservrar nyligen har lagts till i Active Directory. Även om klustret kan visas i Administrationscenter för Windows kanske det inte är tillgängligt att ansluta till ännu.

En bra kontroll för att säkerställa att alla klusterresurser är online:

Get-Cluster -Name $ClusterName | Get-ClusterResource

Om det inte går att lösa klustret efter en tid kan du i de flesta fall ansluta med namnet på en av de klustrade servrarna i stället för klusternamnet.

Steg 4: Konfigurera värdnätverk

Microsoft rekommenderar att du använder Network ATC för att distribuera värdnätverk om du kör Azure Stack HCI version 21H2 eller senare. Annars kan du läsa mer i Krav för värdnätverk för specifika krav och information.

Network ATC kan automatisera distributionen av din avsedda nätverkskonfiguration om du anger en eller flera avsiktstyper för dina kort. Mer information om specifika avsiktstyper finns i: Nätverkstrafiktyper.

Steg 4.1: Granska fysiska kort

På en av klusternoderna kör du Get-NetAdapter för att granska de fysiska korten. Se till att varje nod i klustret har samma namngivna fysiska kort och att de rapporterar status som "Up".

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

Om ett namn på ett fysiskt kort varierar mellan noder i klustret kan du byta namn på det med .Rename-NetAdapter

Rename-NetAdapter -Name oldName -NewName newName

Steg 4.2: Konfigurera en avsikt

I det här exemplet skapas en avsikt som anger avsikten för beräkning och lagring. Mer avsiktsexempel finns i Förenkla värdnätverk med Network ATC .

Kör följande kommando för att lägga till avsiktstyperna för lagring och beräkning i pNIC01 och pNIC02. Observera att vi anger parametern -ClusterName .

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

Kommandot bör omedelbart returneras efter en inledande verifiering.

Steg 4.3: Verifiera avsiktsdistribution

Kör cmdleten Get-NetIntent för att se klusteravsikten. Om du har mer än en avsikt kan du ange parametern Name för att endast se information om en specifik avsikt.

Get-NetIntent -ClusterName $ClusterName

Kör kommandot för att se etableringsstatusen för avsikten Get-NetIntentStatus :

Get-NetIntentStatus -ClusterName $ClusterName -Name Cluster_ComputeStorage

Observera statusparametern som visar Etablering, Validering, Lyckades, Fel.

Statusen bör visa framgång om några minuter. Om statusen för lyckad åtgärd inte inträffar eller om du ser ett statusparameterfel kontrollerar du om det finns problem i loggboken.

Kommentar

För närvarande konfigurerar inte Network ATC IP-adresser för något av dess hanterade kort. När Get-NetIntentStatus rapportstatusen har slutförts bör du lägga till IP-adresser till korten.

Steg 5: Konfigurera platser (stretchkluster)

Den här uppgiften gäller endast om du skapar ett utsträckt kluster mellan två platser med minst två servrar på varje plats.

Kommentar

Om du har konfigurerat Active Directory-webbplatser och -tjänster i förväg behöver du inte skapa webbplatserna manuellt enligt beskrivningen i nästa avsnitt.

Steg 5.1: Skapa webbplatser

I följande cmdlet är FaultDomain bara ett annat namn för en webbplats. I det här exemplet används "ClusterS1" som namnet på det utsträckta klustret.

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

Använd cmdleten Get-ClusterFaultDomain för att kontrollera att båda platserna har skapats för klustret.

Get-ClusterFaultDomain -CimSession $ClusterName

Steg 5.2: Tilldela servernoder

Därefter tilldelar vi de fyra servernoderna till deras respektive platser. I följande exempel tilldelas Server1 och Server2 till Site1, medan Server3 och Server4 tilldelas till Site2.

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

Get-ClusterFaultDomain Kontrollera att noderna finns på rätt platser med hjälp av cmdleten.

Get-ClusterFaultDomain -CimSession $ClusterName

Steg 5.3: Ange en önskad webbplats

Du kan också definiera en global önskad webbplats, vilket innebär att angivna resurser och grupper måste köras på önskad plats. Den här inställningen kan definieras på platsnivå med hjälp av följande kommando:

(Get-Cluster).PreferredSite = "Site1"

Följande fördelar är att ange en önskad plats för stretchkluster:

  • Kallstart – under en kallstart placeras virtuella datorer på önskad plats

  • Kvorumröstning

    • Med ett dynamiskt kvorum minskas viktningen från den passiva (replikerade) platsen först för att säkerställa att den föredragna platsen överlever om alla andra saker är lika. Dessutom rensas servernoder från den passiva platsen först under omgruppering efter händelser som asymmetriska nätverksanslutningsfel.

    • Om klustervittnet inte kan kontaktas under en kvorumdelning av två platser väljs den föredragna webbplatsen automatiskt för att vinna. Servernoderna på den passiva platsen hoppar sedan av klustermedlemskapet så att klustret kan överleva en samtidig förlust av röster på 50 %.

Den önskade platsen kan också konfigureras på klusterroll- eller gruppnivå. I det här fallet kan en annan önskad plats konfigureras för varje virtuell datorgrupp som gör att en plats kan vara aktiv och föredras för specifika virtuella datorer.

Steg 5.4: Konfigurera stretchkluster med Network ATC

Efter version 22H2 kan du använda Network ATC för att konfigurera Stretch-klustring. Network ATC lägger till Stretch som en avsiktstyp från version 22H2. Om du vill distribuera en avsikt med Stretch-klustring med Network ATC kör du följande kommando:

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

En stretch-avsikt kan också kombineras med andra avsikter när du distribuerar med Network ATC.

SiteOverrides

Baserat på steg 5.1-5.3 kan du lägga till dina förskapade webbplatser i din stretch-avsikt som distribuerats med Network ATC. Network ATC hanterar detta med SiteOverrides. Om du vill skapa en SiteOverride kör du:

 $siteOverride = New-NetIntentSiteOverrides

När siteOverride har skapats kan du ange valfri egenskap för siteOverride. Kontrollera att namnegenskapen för siteOverride har exakt samma namn som namnet som din webbplats har i ClusterFaultDomain. Namnmatchningsfel mellan ClusterFaultDomain och siteOverride resulterar i att siteOverride inte tillämpas.

De egenskaper som du kan ange för en viss siteOverride är: Namn, StorageVlan och StretchVlan. Du kan till exempel skapa 2 siteOverrides för dina två platser - site1 och site2 med hjälp av:

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

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

Du kan köra $siteOverride1, $siteOverride2 i PowerShell-fönstret för att se till att alla dina egenskaper har angetts på önskat sätt.

Om du vill lägga till en eller flera siteOverrides i avsikten kör du:

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

Steg 6: Aktivera Lagringsutrymmen Direct

När du har skapat klustret använder du cmdleten Enable-ClusterStorageSpacesDirect som aktiverar Lagringsutrymmen Direct och gör följande automatiskt:

  • Skapa en lagringspool: Skapar en lagringspool för klustret som har ett namn som "Kluster1-lagringspool".

  • Skapa en klusterprestandahistorikdisk: Skapar en virtuell disk för klusterprestandahistorik i lagringspoolen.

  • Skapa data- och loggvolymer: Skapar en datavolym och en loggvolym i lagringspoolen.

  • Konfigurera Lagringsutrymmen Direct-cacheminnen: Om det finns fler än en medietyp (enhet) tillgänglig för Lagringsutrymmen Direct, möjliggör den snabbast som cacheenheter (läsning och skrivning i de flesta fall).

  • Skapa nivåer: Skapar två nivåer som standardnivåer. En kallas ”Kapacitet” och den andra kallas ”Prestanda”. Cmdleten analyserar enheterna och konfigurerar varje nivå med blandning av olika typer av enheter och återhämtning.

För scenariot med en enskild server är den enda FaultDomainAwarenessDefault PhysicalDisk. Enable-ClusterStorageSpacesDirect cmdlet identifierar en enskild server och konfigurerar automatiskt FaultDomainAwarenessDefault som en PhysicalDisk under aktiveringen.

För stretchkluster kommer cmdleten Enable-ClusterStorageSpacesDirect också att:

  • Kontrollera om webbplatser har konfigurerats
  • Avgöra vilka noder som finns på vilka platser
  • Avgör vilken lagring varje nod har tillgänglig
  • Kontrollerar om funktionen Storage Replica är installerad på varje nod
  • Skapar en lagringspool för varje plats och identifierar den med namnet på platsen
  • Skapar data och loggvolymer i varje lagringspool – en per plats

Följande kommando aktiverar Lagringsutrymmen Direct i ett kluster med flera noder. Du kan också ange ett eget namn för en lagringspool, som du ser här:

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

Här är ett exempel på hur du inaktiverar lagringscacheminnet i ett kluster med en nod:

Enable-ClusterStorageSpacesDirect -CacheState Disabled

Om du vill se lagringspoolerna använder du följande kommando:

Get-StoragePool -CimSession $ClusterName

När du har skapat klustret

Nu när klustret har skapats finns det andra viktiga uppgifter som du behöver utföra:

Nästa steg