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å kraven på fysiskt 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:
- Konfigurera ett klustervittne om du använder ett kluster med två noder eller större. Se Konfigurera ett klustervittne.
- Skapa dina volymer. Se Skapa volymer. När du skapar volymer i ett kluster med en nod måste du använda PowerShell. Se Skapa volymer med PowerShell.
- För stretchkluster skapar du volymer och konfigurerar replikering med storage replica. Se Skapa volymer och konfigurera replikering för stretchkluster.
Nästa steg
- Registrera klustret med Azure. Se Ansluta Azure Stack HCI till Azure.
- Gör en slutlig validering av klustret. Se Verifiera ett Azure Stack HCI-kluster
- Hantera värdnätverk. Se Hantera värdnätverk med hjälp av Network ATC.