Vytvoření clusteru Azure Stack HCI pomocí Windows PowerShell

Platí pro: Azure Stack HCI verze 22H2 a 21H2

Upozornění

Pokyny k nasazení uvedené v tomto článku platí pro starší verzi Azure Stack HCI verze 22H2. Pro nová nasazení doporučujeme používat nejnovější obecně dostupnou verzi Azure Stack HCI verze 23H2. Pokyny k nasazení najdete v tématu o nasazení Služby Azure Stack HCI verze 23H2.

V tomto článku se dozvíte, jak pomocí Windows PowerShell vytvořit hyperkonvergovaný cluster Azure Stack HCI, který používá Prostory úložiště s přímým přístupem. Pokud k vytvoření clusteru používáte raději průvodce vytvořením clusteru v Windows Admin Center, přečtěte si téma Vytvoření clusteru pomocí Windows Admin Center.

Poznámka

Pokud provádíte instalaci Azure Stack HCI 21H2 na jeden server, vytvořte cluster pomocí PowerShellu.

Máte na výběr mezi dvěma typy clusterů:

  • Standardní cluster s jedním nebo dvěma uzly serveru, které se nachází v jedné lokalitě.
  • Roztažený cluster s nejméně čtyřmi uzly serveru, které se rozkládají mezi dvěma lokalitami, se dvěma uzly na lokalitu.

Pro scénář s jedním serverem dokončete stejné pokyny pro jeden server.

Poznámka

Roztažené clustery nejsou podporovány v konfiguraci s jedním serverem.

V tomto článku vytvoříme ukázkový cluster s názvem Cluster1, který se skládá ze čtyř uzlů serveru s názvy Server1, Server2, Server3 a Server4.

Pro scénář roztaženého clusteru použijeme jako název ClusterS1 a použijeme stejné čtyři uzly serveru roztažené mezi lokalitami Site1 a Site2.

Další informace o roztažených clusterech najdete v tématu Přehled roztažených clusterů.

Pokud chcete otestovat Azure Stack HCI s minimálním nebo žádným dalším hardwarem, můžete si prohlédnout průvodce vyhodnocením Služby Azure Stack HCI. V této příručce vás provedeme prostředím Azure Stack HCI s využitím vnořené virtualizace na virtuálním počítači Azure. Nebo vyzkoušejte kurz Vytvoření testovacího prostředí založeného na virtuálním počítači pro Azure Stack HCI a vytvořte vlastní prostředí privátního testovacího prostředí pomocí vnořené virtualizace na serveru podle vašeho výběru a nasaďte virtuální počítače se službou Azure Stack HCI pro clustering.

Než začnete

Než začnete, ujistěte se, že:

Použití Windows PowerShellu

PowerShell můžete spustit buď místně v relaci RDP na hostitelském serveru, nebo můžete Spustit PowerShell vzdáleně z počítače pro správu. Tento článek se zabývá možností vzdáleného přístupu.

Při spouštění PowerShellu z počítače pro správu zahrňte -Name parametr nebo -Cluster s názvem serveru nebo clusteru, který spravujete. Kromě toho může být potřeba zadat plně kvalifikovaný název domény (FQDN) při použití parametru -ComputerName pro uzel serveru.

Potřebujete rutiny Nástrojů pro vzdálenou správu serveru (RSAT) a moduly PowerShellu pro hyper-V a clustering s podporou převzetí služeb při selhání. Pokud rutiny a moduly ještě nejsou dostupné v relaci PowerShellu na počítači pro správu, můžete je přidat pomocí následujícího příkazu: Add-WindowsFeature RSAT-Clustering-PowerShell.

Krok 1: Nastavení serverů

Nejprve se připojte ke každému ze serverů, připojte je k doméně (stejné doméně, ve které se nachází počítač pro správu) a nainstalujte požadované role a funkce.

Krok 1.1: Připojení k serverům

Abyste se mohli připojit k serverům, musíte mít nejprve síťové připojení, být připojeni ke stejné doméně nebo plně důvěryhodné doméně a mít k serverům oprávnění místního správce.

Otevřete PowerShell a použijte plně kvalifikovaný název domény nebo IP adresu serveru, ke kterému se chcete připojit. Po spuštění následujícího příkazu na každém serveru se zobrazí výzva k zadání hesla.

V tomto příkladu předpokládáme, že servery mají názvy Server1, Server2, Server3 a Server4:

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

Tady je další příklad stejné věci:

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

Enter-PSSession -ComputerName $myServer1 -Credential $user

Tip

Při spouštění příkazů PowerShellu z počítače pro správu se může zobrazit chyba, že WinRM nemůže žádost zpracovat. Tento problém vyřešíte tak, že pomocí PowerShellu přidáte každý server do seznamu důvěryhodných hostitelů na počítači pro správu. Tento seznam podporuje zástupné cardy, například Server* .

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

Pokud chcete zobrazit seznam důvěryhodných hostitelů, zadejte Get-Item WSMAN:\Localhost\Client\TrustedHosts.

Pokud chcete seznam vyprázdnit, zadejte Clear-Item WSMAN:\Localhost\Client\TrustedHost.

Krok 1.2: Připojení k doméně a přidání doménových účtů

V předchozím kroku jste se připojili ke každému uzlu serveru pomocí účtu <ServerName>\Administratormístního správce .

Chcete-li pokračovat, musíte servery připojit k doméně a použít účet domény, který je v místní skupině Administrators na každém serveru.

Pomocí rutiny Enter-PSSession se připojte ke každému serveru a spusťte následující rutinu, která nahrazuje název serveru, název domény a přihlašovací údaje domény:

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

Pokud váš účet správce není členem skupiny Domain Admins, přidejte svůj účet správce do místní skupiny Administrators na každém serveru – nebo ještě lepší je přidat skupinu, kterou používáte pro správce. K tomu můžete použít následující příkaz:

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

Krok 1.3: Instalace rolí a funkcí

Dalším krokem je instalace požadovaných rolí a funkcí Windows na každý server clusteru. Tady jsou role, které se mají nainstalovat:

  • BitLocker
  • Přemostění datacenter
  • Clustering s podporou převzetí služeb při selhání
  • Souborový server
  • Modul FS-Odstranění duplicitních dat
  • Hyper-V
  • Hyper-V PowerShell
  • Modul RsAT-Clustering-PowerShell
  • Modul RSAT-AD-PowerShell
  • NetworkATC
  • NetworkHUD
  • Limit šířky pásma protokolu SMB
  • Replika úložiště (pro roztažené clustery)

Pro každý server použijte následující příkaz (pokud jste připojení přes Vzdálenou -ComputerName plochu, parametr zde a v dalších příkazech vypište):

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

Pokud chcete příkaz spustit na všech serverech v clusteru současně, použijte následující skript a upravte seznam proměnných na začátku tak, aby vyhovoval vašemu prostředí:

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

Poté restartujte všechny servery:

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

Krok 2: Příprava na nastavení clusteru

Dále ověřte, že jsou vaše servery připravené na clustering.

Jako kontrolu správnosti zvažte spuštění následujících příkazů, abyste se ujistili, že vaše servery ještě nepatří do clusteru:

Slouží Get-ClusterNode k zobrazení všech uzlů:

Get-ClusterNode

Slouží Get-ClusterResource k zobrazení všech uzlů clusteru:

Get-ClusterResource

Slouží Get-ClusterNetwork k zobrazení všech sítí clusteru:

Get-ClusterNetwork

Krok 2.1: Příprava jednotek

Než povolíte Prostory úložiště s přímým přístupem, ujistěte se, že jsou trvalé jednotky prázdné. Spuštěním následujícího skriptu odeberte všechny staré oddíly a další data.

Poznámka

Ze skriptu vylučte všechny vyměnitelné jednotky připojené k uzlu serveru. Pokud tento skript spouštíte například místně z uzlu serveru, nechcete vymazat vyměnitelnou jednotku, kterou můžete použít k nasazení tohoto clusteru.

# 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

Krok 2.2: Testování konfigurace clusteru

V tomto kroku se ujistěte, že jsou správně nakonfigurované uzly serveru pro vytvoření clusteru. Rutina Test-Cluster se používá ke spuštění testů a ověření, že je vaše konfigurace vhodná pro fungování jako hyperkonvergovaný cluster. Následující příklad používá -Include parametr se zadanými konkrétními kategoriemi testů, aby se zajistilo, že jsou do ověření zahrnuty správné testy.

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

Krok 3: Vytvoření clusteru

Teď jste připraveni vytvořit cluster s uzly serveru, které jste ověřili v předchozích krocích.

Při vytváření clusteru se může zobrazit upozornění s informací, "There were issues while creating the clustered role that may prevent it from starting. For more information, view the report file below." že toto upozornění můžete bezpečně ignorovat. Toto upozornění je způsobeno tím, že pro cluster s kopií clusteru nejsou k dispozici žádné disky. Cluster s kopií clusteru se vytvoří v pozdějších krocích.

Poznámka

Pokud servery používají statické IP adresy, upravte následující příkaz tak, aby odrážel statickou IP adresu, přidáním následujícího parametru a zadáním IP adresy: -StaticAddress <X.X.X.X>;.

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

Po vytvoření clusteru může nějakou dobu trvat, než se název clusteru replikuje přes DNS napříč doménou, zejména pokud jsou servery pracovních skupin nově přidány do služby Active Directory. I když se cluster může zobrazit v Windows Admin Center, nemusí být ještě dostupný pro připojení.

Dobrá kontrola, která zajistí, že jsou všechny prostředky clusteru online:

Get-Cluster -Name $ClusterName | Get-ClusterResource

Pokud se cluster po nějaké době nepodaří vyřešit, můžete se ve většině případů připojit pomocí názvu jednoho z clusterovaných serverů místo názvu clusteru.

Krok 4: Konfigurace sítě hostitelů

Pokud používáte Azure Stack HCI verze 21H2 nebo novější, microsoft doporučuje k nasazení sítě hostitelů používat Síťové ATC . V opačném případě najdete konkrétní požadavky a informace v tématu Požadavky na síť hostitele .

Síťové ATC může automatizovat nasazení požadované konfigurace sítě, pokud pro adaptéry zadáte jeden nebo více typů záměrů. Další informace o konkrétních typech záměrů najdete tady: Typy síťového provozu.

Krok 4.1: Kontrola fyzických adaptérů

Na jednom z uzlů clusteru spusťte příkaz Get-NetAdapter a zkontrolujte fyzické adaptéry. Ujistěte se, že každý uzel v clusteru má stejné pojmenované fyzické adaptéry a že hlásí stav "Up".

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

Pokud se název fyzického adaptéru v různých uzlech v clusteru liší, můžete ho přejmenovat pomocí Rename-NetAdapter.

Rename-NetAdapter -Name oldName -NewName newName

Krok 4.2: Konfigurace záměru

V tomto příkladu se vytvoří záměr, který určuje záměr výpočetních prostředků a úložiště. Další příklady záměrů najdete v tématu Zjednodušení sítě hostitelů pomocí síťového ATC .

Spuštěním následujícího příkazu přidejte typy záměrů úložiště a výpočetních prostředků do pNIC01 a pNIC02. Všimněte si, že zadáváme -ClusterName parametr .

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

Příkaz by se měl okamžitě vrátit po počátečním ověření.

Krok 4.3: Ověření nasazení záměru

Spuštěním rutiny Get-NetIntent zobrazte záměr clusteru. Pokud máte více než jeden záměr, můžete zadáním parametru Name zobrazit podrobnosti pouze o konkrétním záměru.

Get-NetIntent -ClusterName $ClusterName

Pokud chcete zobrazit stav zřizování záměru, spusťte příkaz Get-NetIntentStatus :

Get-NetIntentStatus -ClusterName $ClusterName -Name Cluster_ComputeStorage

Všimněte si parametru status, který zobrazuje Zřizování, Ověřování, Úspěch, Selhání.

Stav by měl během několika minut zobrazit úspěch. Pokud nedojde k úspěšnému stavu nebo dojde k selhání parametru stavu, zkontrolujte problémy v prohlížeči událostí.

Poznámka

Síťové ATC v tuto chvíli nekonfiguruje IP adresy pro žádný ze svých spravovaných adaptérů. Jakmile Get-NetIntentStatus se stav sestav dokončí, měli byste k adaptérům přidat IP adresy.

Krok 5: Nastavení lokalit (roztažený cluster)

Tato úloha platí jenom v případě, že vytváříte roztažený cluster mezi dvěma lokalitami s alespoň dvěma servery v každé lokalitě.

Poznámka

Pokud jste lokality a služby Active Directory nastavili předem, nemusíte weby vytvářet ručně, jak je popsáno v další části.

Krok 5.1: Vytvoření webů

V následující rutině je FaultDomain jednoduše jiný název lokality. V tomto příkladu se jako název roztaženého clusteru používá "ClusterS1".

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

Pomocí rutiny Get-ClusterFaultDomain ověřte, že jsou pro cluster vytvořeny obě lokality.

Get-ClusterFaultDomain -CimSession $ClusterName

Krok 5.2: Přiřazení uzlů serveru

Dále přiřadíme čtyři uzly serveru k jejich příslušným lokalitám. V následujícím příkladu jsou servery Server1 a Server2 přiřazeny k lokalitě Site1, zatímco Servery Server3 a Server4 jsou přiřazeny lokalitě Site2.

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

Pomocí rutiny Get-ClusterFaultDomain ověřte, že uzly jsou ve správných lokalitách.

Get-ClusterFaultDomain -CimSession $ClusterName

Krok 5.3: Nastavení upřednostňovaného webu

Můžete také definovat globální upřednostňovaný web, což znamená, že zadané prostředky a skupiny musí být na upřednostňované lokalitě spuštěny. Toto nastavení lze definovat na úrovni lokality pomocí následujícího příkazu:

(Get-Cluster).PreferredSite = "Site1"

Určení upřednostňované lokality pro roztažené clustery má následující výhody:

  • Studený start – během studeného startu se virtuální počítače umístí do upřednostňovaného webu.

  • Hlasování kvora

    • U dynamického kvora se nejprve sníží váha z pasivní (replikované) lokality, aby se zajistilo, že upřednostňovaná lokalita přežije, pokud jsou všechny ostatní věci stejné. Kromě toho jsou uzly serveru nejprve vyřazeny z pasivní lokality během opětovného seskupení po událostech, jako jsou selhání asymetrického připojení k síti.

    • Pokud během rozdělení kvora dvou lokalit nejde kontaktovat cluster s kopií clusteru, automaticky se vybere upřednostňovaná lokalita, která vyhraje. Uzly serveru v pasivní lokalitě pak vypadnou z členství v clusteru, což clusteru umožní přežít souběžnou 50% ztrátu hlasů.

Upřednostňovanou lokalitu je také možné nakonfigurovat na úrovni role clusteru nebo skupiny. V takovém případě je možné pro každou skupinu virtuálních počítačů nakonfigurovat jinou upřednostňovanou lokalitu, která umožní, aby byla lokalita aktivní a upřednostňovaná pro konkrétní virtuální počítače.

Krok 5.4: Nastavení roztaženého clusteringu pomocí síťového ATC

Po verzi 22H2 můžete k nastavení roztaženého clusteringu použít síťové ATC. Síťové ATC přidá Stretch jako typ záměru z verze 22H2. Pokud chcete nasadit záměr s roztaženým clusteringem se síťovým ATC, spusťte následující příkaz:

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

Záměr roztažení lze také kombinovat s jinými záměry při nasazení pomocí SíťovéHO ATC.

SiteOverrides

Na základě kroků 5.1 až 5.3 můžete přidat předem vytvořené weby do záměru roztažení nasazeného pomocí Síťového ATC. Síťové ATC to zpracovává pomocí SiteOverrides. Pokud chcete vytvořit SiteOverride, spusťte:

 $siteOverride = New-NetIntentSiteOverrides

Po vytvoření siteOverride můžete pro siteOverride nastavit libovolnou vlastnost. Ujistěte se, že vlastnost name siteOverride má přesně stejný název jako název vašeho webu v ClusterFaultDomain. Neshoda názvů mezi ClusterFaultDomain a siteOverride vede k tomu, že siteOverride se nepoužije.

Vlastnosti, které můžete nastavit pro konkrétní webOverride, jsou: Name, StorageVlan a StretchVlan. Můžete například vytvořit 2 siteOverrides pro vaše dva weby – site1 a site2 pomocí:

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

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

V okně PowerShellu můžete spustit příkaz $siteOverride1, $siteOverride2 abyste měli jistotu, že jsou všechny vlastnosti nastavené požadovaným způsobem.

Pokud chcete ke svému záměru přidat jeden nebo více webůOverrides, spusťte:

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

Krok 6: Povolení Prostory úložiště s přímým přístupem

Po vytvoření clusteru použijte rutinu Enable-ClusterStorageSpacesDirect , která povolí Prostory úložiště s přímým přístupem a automaticky provede následující akce:

  • Vytvoření fondu úložiště: Vytvoří fond úložiště pro cluster, který má název jako "Fond úložiště Cluster1".

  • Vytvořte disk s historií výkonu clusteru: Vytvoří virtuální disk historie výkonu clusteru ve fondu úložiště.

  • Vytvoření datových svazků a svazků protokolů: Vytvoří datový svazek a svazek protokolu ve fondu úložiště.

  • Konfigurace Prostory úložiště s přímým přístupem mezipamětí: Pokud je pro Prostory úložiště s přímým přístupem k dispozici více typů médií (jednotek), je to nejrychlejší jako mezipaměťová zařízení (ve většině případů pro čtení a zápis).

  • Vytvoření úrovní: Vytvoří dvě vrstvy jako výchozí. Jedna se nazývá Capacity (Kapacita) a druhá Performance (Výkon). Rutina provede analýzu zařízení a nakonfiguruje každou vrstvu na základě kombinace typů zařízení a požadované odolnosti.

V případě scénáře s jedním serverem je jedinou chybou FaultDomainAwarenessDefault PhysicalDisk. Enable-ClusterStorageSpacesDirect Rutina zjistí jeden server a během povolování automaticky nakonfiguruje FaultDomainAwarenessDefault jako fyzický disk.

V případě roztažených clusterů rutina Enable-ClusterStorageSpacesDirect také:

  • Zkontrolujte, jestli jsou weby nastavené.
  • Určení uzlů v jakých lokalitách
  • Určuje, jaké úložiště mají jednotlivé uzly k dispozici.
  • Zkontroluje, jestli je na každém uzlu nainstalovaná funkce repliky úložiště.
  • Vytvoří fond úložiště pro každou lokalitu a identifikuje ho názvem lokality.
  • Vytvoří datové svazky a svazky protokolů v každém fondu úložiště – jeden na lokalitu.

Následující příkaz povolí Prostory úložiště s přímým přístupem v clusteru s více uzly. Můžete také zadat popisný název fondu úložiště, jak je znázorněno tady:

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

Tady je příklad zákazu mezipaměti úložiště v clusteru s jedním uzlem:

Enable-ClusterStorageSpacesDirect -CacheState Disabled

Pokud chcete zobrazit fondy úložiště, použijte následující příkaz:

Get-StoragePool -CimSession $ClusterName

Po vytvoření clusteru

Teď, když je cluster vytvořený, je potřeba dokončit další důležité úlohy:

Další kroky