Freigeben über


Bereitstellen von Direkten Speicherplätzen unter Windows Server

Dieser Artikel enthält schrittweise Anleitungen zum Bereitstellen von Storage Spaces Direct unter Windows Server. Informationen zum Bereitstellen von "Direkte Speicherplätze" als Teil von Azure Local finden Sie unter "Informationen zu Azure Local".

Tipp

Möchten Sie eine hyperkonvergente Infrastruktur erwerben? Microsoft empfiehlt, eine validierte Hardware-/Software-Azure Local-Lösung von unseren Partnern zu erwerben. Diese Lösungen wurden anhand unserer Referenzarchitektur entworfen, zusammengestellt und validiert und garantieren Kompatibilität und Zuverlässigkeit, sodass Sie sofort loslegen können. Um einen Katalog von Hardware-/Softwarelösungen, die mit Azure Local arbeiten, einzusehen, siehe den Azure Local Catalog.

Tipp

Mit virtuellen Hyper-V-Computern (in Microsoft Azure enthalten) können Sie „Direkte Speicherplätze“ ohne Hardware testen. Sie können auch die praktischen Bereitstellungsskripts für schnelle Windows Server-Labore überprüfen, die wir für Schulungszwecke verwenden.

Bevor Sie beginnen

Lesen Sie die Hardwareanforderungen für direkte Speicherplätze, um sich mit dem allgemeinen Ansatz und wichtigen Hinweisen vertraut zu machen, die mit einigen Schritten verbunden sind.

Sammeln Sie die folgenden Informationen:

  • Bereitstellungsoption: „Direkte Speicherplätze“ unterstützt zwei Bereitstellungsoptionen: hyperkonvergent und konvergent (auch als disaggregiert bezeichnet). Machen Sie sich mit den Vorteilen der einzelnen vertraut, um zu entscheiden, welche Option für Sie geeignet ist. Die Schritte 1 bis 3 in diesem Artikel gelten für beide Bereitstellungsoptionen. Schritt 4 ist nur für die konvergente Bereitstellung erforderlich.

  • Servernamen: Machen Sie sich mit den Benennungsrichtlinien Ihrer Organisation für Computer, Dateien, Pfade und andere Ressourcen vertraut. Sie müssen mehrere Server mit eindeutigen Namen bereitstellen.

  • Domänenname: Machen Sie sich mit den Richtlinien Ihrer Organisation für domänenbenennung und Domänenbeitritt vertraut. Sie verbinden die Server mit Ihrer Domäne, und Sie müssen den Domänennamen angeben.

  • RDMA-Netzwerk: Es gibt zwei Arten von RDMA-Protokollen: iWarp und RoCE. Informieren Sie sich darüber, welches Protokoll Ihre Netzwerkadapter verwenden. Wenn es sich um RoCE handelt, beachten Sie auch die Version (v1 oder v2). Im Fall von RoCE müssen Sie auch das Modell Ihres Top-of-Rack-Switchs beachten.

  • VLAN-ID: Beachten Sie ggf. die VLAN-ID, die für die Verwaltung von Betriebssystemnetzwerkadaptern auf den Servern verwendet werden soll. Sie sollten diese Informationen von Ihrem Netzwerkadministrator abrufen können.

Schritt 1: Bereitstellen von Windows Server

Schritt 1.1: Installieren des Betriebssystems

Installieren Sie zunächst Windows Server auf jedem Server im Cluster. Für Storage Spaces Direct ist Windows Server Datacenter Edition erforderlich. Sie können die Server Core-Installationsoption oder server with Desktop Experience verwenden.

Wenn Sie Windows Server mithilfe des Setup-Assistenten installieren, können Sie zwischen Windows Server (verweisen auf Server Core) und Windows Server (Server mit Desktopdarstellung) wählen. Dies entspricht der in Windows Server 2012 R2 verfügbaren Vollinstallationsoption . Wenn Sie dies nicht auswählen, erhalten Sie die Server Core-Installationsoption. Weitere Informationen finden Sie unter Installieren von Server Core.

Schritt 1.2: Herstellen von Verbindungen mit den Servern

Dieser Leitfaden konzentriert sich auf die Server Core-Installationsoption und die Remotebereitstellung und -verwaltung von einem separaten Verwaltungssystem. Das Verwaltungssystem muss folgendes haben:

  • Eine Version von Windows Server oder Windows 10, die mindestens so neu ist wie die Server, die verwaltet werden, mit den neuesten Updates.
  • Netzwerkverbindung zu den Servern, die es verwaltet.
  • Mitglied derselben Domäne oder einer voll vertrauenswürdigen Domäne
  • Remote-Server-Verwaltungstools (RSAT) und PowerShell-Module für Hyper-V und Failover-Cluster. RSAT-Tools und PowerShell-Module sind unter Windows Server verfügbar und können ohne Installation weitere Features installiert werden. Sie können die Remoteserver-Verwaltungstools auch auf einem Windows 10-Verwaltungscomputer installieren.

Installieren Sie auf dem Verwaltungssystem die Failover-Cluster- und Hyper-V-Verwaltungstools. Sie können dies über den Server-Manager mithilfe des Assistenten zum Hinzufügen von Rollen und Features tun. Wählen Sie auf der Seite "Features " die Option "Remoteserver-Verwaltungstools" und dann die zu installierenden Tools aus.

Geben Sie die PowerShell-Sitzung ein, und verwenden Sie entweder den Servernamen oder die IP-Adresse des Knotens, mit dem Sie eine Verbindung herstellen möchten. Nachdem Sie diesen Befehl ausgeführt haben, werden Sie aufgefordert, ein Kennwort einzugeben. Geben Sie das Administratorkennwort ein, das Sie beim Einrichten von Windows angegeben haben.

Enter-PSSession -ComputerName <myComputerName> -Credential LocalHost\Administrator

Hier sehen Sie ein Beispiel für die gleiche Aktion auf eine Weise, die in Skripts nützlicher ist:

$myServer1 = "myServer-1"
$user = "$myServer1\Administrator"

Enter-PSSession -ComputerName $myServer1 -Credential $user

Tipp

Wenn Sie remote von einem Verwaltungssystem aus bereitstellen, wird möglicherweise eine Fehlermeldung angezeigt, wie WinRM die Anforderung nicht verarbeiten kann. Um diesen Fehler zu beheben, verwenden Sie Windows PowerShell, um jeden Server zur Liste der vertrauenswürdigen Hosts auf Ihrem Verwaltungscomputer hinzuzufügen:

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

Die Liste der vertrauenswürdigen Hosts unterstützt Wildcards wie Server*.

  • Geben Sie Get-Item WSMAN:\Localhost\Client\TrustedHosts ein, um die Liste vertrauenswürdiger Server anzuzeigen.
  • Um die Liste zu leeren, geben Sie Clear-Item WSMAN:\Localhost\Client\TrustedHost ein.

Schritt 1.3: Beitreten zur Domäne und Hinzufügen von Domänenkonten

Um Direkte Speicherplätze zu verwalten, müssen Sie die Server mit einer Domäne verknüpfen und ein Active Directory Domain Services-Domänenkonto verwenden, das sich in der Gruppe "Administratoren" auf jedem Server befindet.

Öffnen Sie im Verwaltungssystem eine PowerShell-Konsole mit Administratorberechtigungen. Verwenden Sie Enter-PSSession, um eine Verbindung mit jedem Server herzustellen, und führen Sie das folgende Cmdlet aus, wobei Sie die eigenen Werte für Computername, Domänenname und Domänenanmeldeinformationen einsetzen:

Add-Computer -NewName "Server01" -DomainName "contoso.com" -Credential "CONTOSO\User" -Restart -Force

Wenn Ihr Speicheradministratorkonto kein Mitglied der Gruppe "Domänenadministratoren" ist, fügen Sie Ihr Speicheradministratorkonto der lokalen Administratorgruppe auf jedem Knoten hinzu, oder fügen Sie die Gruppe hinzu, die Sie für Speicheradministratoren verwenden. Sie können den folgenden Befehl verwenden oder ein PowerShell-Skript erstellen, um diesen Schritt auszuführen. Weitere Informationen finden Sie unter Verwenden von PowerShell zum Hinzufügen von Domänenbenutzern zu einer lokalen Gruppe.

Net localgroup Administrators <Domain\Account> /add

Schritt 1.4: Installieren von Rollen und Features

Der nächste Schritt besteht darin, Serverrollen auf jedem Server über Windows Admin Center, Server-Manager oder PowerShell zu installieren. Diese Rollen müssen installiert werden:

  • Failoverclustering
  • Hyper-V
  • Dateiserver (wenn Sie Dateifreigaben hosten möchten, z. B. für eine konvergente Bereitstellung)
  • Data-Center-Bridging (wenn Sie RoCEv2 anstatt iWARP-Netzwerkadaptern verwenden)
  • RSAT-Clustering-PowerShell
  • Hyper-V-PowerShell

Verwenden Sie das Cmdlet Install-WindowsFeature , um Rollen über PowerShell zu installieren. Sie können es auf einem einzelnen Server wie folgt verwenden:

Install-WindowsFeature -Name "Hyper-V", "Failover-Clustering", "Data-Center-Bridging", "RSAT-Clustering-PowerShell", "Hyper-V-PowerShell", "FS-FileServer"

Um den Befehl auf allen Servern im Cluster gleichzeitig auszuführen, führen Sie dieses Skript aus, das die Liste der Variablen am Anfang des Skripts so ändert, dass es an Ihre Umgebung angepasst wird.

# Fill in these variables with your values
$ServerList = "Server01", "Server02", "Server03", "Server04"
$FeatureList = "Hyper-V", "Failover-Clustering", "Data-Center-Bridging", "RSAT-Clustering-PowerShell", "Hyper-V-PowerShell", "FS-FileServer"

# This part runs the Install-WindowsFeature cmdlet on all servers in $ServerList, passing the list of features into the script block with the "Using" scope modifier so you don't have to hard-code them here.
Invoke-Command ($ServerList) {
    Install-WindowsFeature -Name $Using:Featurelist
}

Schritt 2: Konfigurieren des Netzwerks

Wenn Sie „Direkte Speicherplätze“ auf virtuellen Computern bereitstellen, überspringen Sie diesen Abschnitt.

„Direkte Speicherplätze“ erfordert Netzwerke mit hoher Bandbreite und geringer Latenz zwischen den Servern im Cluster. Sie benötigen mindestens 10 GbE-Netzwerk, und der Remote-Direkte Speicherzugriff (REMOTE Direct Memory Access, RDMA) wird empfohlen. Sie können entweder iWARP oder RoCE verwenden, solange es über das Windows Server-Logo verfügt, das Ihrer Betriebssystemversion entspricht, aber iWARP ist einfacher einzurichten.

Wichtig

Je nach Netzwerkausrüstung und insbesondere mit RoCE v2 müssen Sie möglicherweise den Top-of-Rack-Switch konfigurieren. Eine ordnungsgemäße Switchkonfiguration ist wichtig, um die Zuverlässigkeit und Leistung von „Direkte Speicherplätze“ zu gewährleisten.

Mit Windows Server 2016 wurde Switch Embedded Teaming (SET) innerhalb des virtuellen Hyper-V-Switches eingeführt. Mit diesem Feature können Sie die gleichen physischen Netzwerkschnittstellenkarten (NIC)-Ports für den gesamten Netzwerkdatenverkehr verwenden, während Sie RDMA verwenden, wodurch die Anzahl der erforderlichen physischen NIC-Ports reduziert wird. Verwenden Sie Switch Embedded Teaming für Storage Spaces Direct.

  • Switched: Sie müssen die Netzwerkswitches ordnungsgemäß konfigurieren, um die Bandbreite und den Netzwerktyp zu verwalten. Wenn Sie RDMA verwenden, das das RoCE-Protokoll implementiert, ist die Konfiguration von Netzwerkgeräten und Switchen noch wichtiger.
  • Switchless: Sie können Knoten über direkte Verbindungen verbinden und vermeiden die Verwendung eines Schalters. Jeder Knoten muss über eine direkte Verbindung mit jedem anderen Knoten des Clusters verfügen.

Anweisungen zum Einrichten von Netzwerken für „Direkte Speicherplätze“ finden Sie im Leitfaden zur RDMA-Bereitstellung für Windows Server 2016 und 2019.

Schritt 3: Konfigurieren von „Storage Spaces Direct“

Führen Sie die folgenden Schritte für ein Verwaltungssystem aus, das dieselbe Version wie die Server ausführt, die Sie konfigurieren. Führen Sie diese Schritte nicht remote mithilfe einer PowerShell-Sitzung aus. Führen Sie sie stattdessen in einer lokalen PowerShell-Sitzung auf dem Verwaltungssystem mit Administratorberechtigungen aus.

Schritt 3.1: Bereinigen von Laufwerken

Bevor Sie "Direkte Speicherplätze" aktivieren, stellen Sie sicher, dass Ihre Laufwerke ohne alte Partitionen oder andere Daten leer sind. Führen Sie das folgende Skript aus, und ersetzen Sie die Computernamen, um alte Partitionen oder andere Daten zu entfernen.

Wichtig

Mit diesem Skript werden alle Daten auf anderen Laufwerken als dem Betriebssystemstartlaufwerk dauerhaft entfernt!

# Fill in these variables with your values
$ServerList = "Server01", "Server02", "Server03", "Server04"

foreach ($server in $serverlist) {
    Invoke-Command ($server) {
        # Check for the Azure Temporary Storage volume
        $azTempVolume = Get-Volume -FriendlyName "Temporary Storage" -ErrorAction SilentlyContinue
        If ($azTempVolume) {
            $azTempDrive = (Get-Partition -DriveLetter $azTempVolume.DriveLetter).DiskNumber
        }

        # Clear and reset the disks
        $disks = Get-Disk | Where-Object {
            ($_.Number -ne $null -and $_.Number -ne $azTempDrive -and !$_.IsBoot -and !$_.IsSystem -and $_.PartitionStyle -ne "RAW")
        }
        $disks | ft Number,FriendlyName,OperationalStatus
        If ($disks) {
            Write-Host "This action will permanently remove any data on any drives other than the operating system boot drive!`nReset disks? (Y/N)"
            $response = read-host
            if ( $response.ToLower() -ne "y" ) { exit }

            $disks | % {
            $_ | Set-Disk -isoffline:$false
            $_ | Set-Disk -isreadonly:$false
            $_ | Clear-Disk -RemoveData -RemoveOEM -Confirm:$false -verbose
            $_ | Set-Disk -isreadonly:$true
            $_ | Set-Disk -isoffline:$true
        }

        #Get-PhysicalDisk | Reset-PhysicalDisk


        }
        Get-Disk | Where-Object {
            ($_.Number -ne $null -and $_.Number -ne $azTempDrive -and !$_.IsBoot -and !$_.IsSystem -and $_.PartitionStyle -eq "RAW")
        } | Group -NoElement -Property FriendlyName
    }
}

Die Ausgabe sieht wie im folgenden Beispiel aus, wobei Count die Anzahl der Laufwerke jedes Modells auf jedem Server ist:

Count Name                          PSComputerName
----- ----                          --------------
4     ATA SSDSC2BA800G4n            Server01
10    ATA ST4000NM0033              Server01
4     ATA SSDSC2BA800G4n            Server02
10    ATA ST4000NM0033              Server02
4     ATA SSDSC2BA800G4n            Server03
10    ATA ST4000NM0033              Server03
4     ATA SSDSC2BA800G4n            Server04
10    ATA ST4000NM0033              Server04

Schritt 3.2: Überprüfen des Clusters

Führen Sie in diesem Schritt das Cluster-Überprüfungstool aus, um sicherzustellen, dass die Serverknoten korrekt konfiguriert sind, um einen Cluster mit Storage Spaces Direct zu erstellen. Wenn Sie die Clusterüberprüfung (Test-Cluster) ausführen, bevor Sie den Cluster erstellen, werden Tests ausgeführt, die überprüfen, ob die Konfiguration geeignet ist, um als Failovercluster zu funktionieren. Im folgenden Beispiel wird der -Include Parameter direkt verwendet und anschließend die spezifischen Testkategorien angegeben. Mit diesem Ansatz wird sichergestellt, dass die spezifischen Tests für Storage Spaces Direct in die Überprüfung einbezogen werden.

Verwenden Sie den folgenden PowerShell-Befehl, um eine Gruppe von Servern zu überprüfen, die als Cluster für „Direkte Speicherplätze“ verwendet werden soll.

Test-Cluster -Node <MachineName1, MachineName2, MachineName3, MachineName4> -Include "Storage Spaces Direct", "Inventory", "Network", "System Configuration"

Schritt 3.3: Erstellen des Clusters

In diesem Schritt erstellen Sie einen Cluster mit den Knoten, die Sie für die Clustererstellung im vorherigen Schritt überprüft haben, indem Sie das folgende PowerShell-Cmdlet verwenden.

Wenn Sie den Cluster erstellen, erhalten Sie eine Warnung, die besagt, dass beim Erstellen der Clusterrolle Probleme aufgetreten sind, die den Start verhindern können. Weitere Informationen finden Sie unten in der Berichtsdatei." Sie können diese Warnung sicher ignorieren. Die Ursache dieser Warnung liegt darin, dass keine Datenträger für das Clusterquorum verfügbar sind. Konfigurieren Sie einen Dateifreigabezeugenknoten oder Cloud-Zeugenknoten, nachdem Sie den Cluster erstellt haben.

Hinweis

Wenn die Server statische IP-Adressen verwenden, ändern Sie den folgenden Befehl, um die statische IP-Adresse widerzuspiegeln, indem Sie den folgenden Parameter hinzufügen und die IP-Adresse angeben: -StaticAddress <X.X.X.X> Ersetzen Sie im folgenden Befehl den Platzhalter durch einen NetBIOS-Namen, der ClusterName eindeutig und 15 Zeichen oder weniger ist.

New-Cluster -Name <ClusterName> -Node <MachineName1,MachineName2,MachineName3,MachineName4> -NoStorage

Nachdem Sie den Cluster erstellt haben, kann es zeitlang dauern, bis der Dns-Eintrag (Domain Name System) für den Clusternamen repliziert wird. Die Zeit hängt von der Umgebung und der DNS-Replikationskonfiguration ab. Wenn das Auflösen des Clusters nicht erfolgreich ist, können Sie den Computernamen eines Knotens verwenden, der ein aktives Mitglied des Clusters ist, anstelle des Clusternamens.

Schritt 3.4: Konfigurieren eines Clusterzeugen

Konfigurieren Sie einen Zeugen für den Cluster so, dass Cluster mit drei oder mehr Servern zwei Servern standhalten können, die ausfallen oder offline sind. Für eine Bereitstellung mit zwei Servern ist ein Clusterzeuge erforderlich; andernfalls wird der andere Server nicht verfügbar, wenn beide Server offline sind. Bei diesen Systemen können Sie eine Dateifreigabe als Zeugen bzw. Cloudzeugen verwenden. Weitere Informationen finden Sie unter Bereitstellen eines Quorumzeugen.

Schritt 3.5: Aktivieren von Storage Spaces Direct

Verwenden Sie nach dem Erstellen des Clusters das Enable-ClusterStorageSpacesDirect PowerShell-Cmdlet. Dieses Cmdlet versetzt das Speichersystem in den Modus "Direkte Speicherplätze" und führt automatisch die folgenden Aufgaben aus:

  • Erstellt einen Pool: Erstellt einen einzelnen großen Pool mit einem Namen wie "S2D on Cluster1".

  • Konfiguriert die Speicherplätze-Direkt-Caches: Wenn mehr als ein Medientyp (Laufwerk) für die Verwendung von Speicherplätze Direkt verfügbar ist, werden die schnellsten als Cachegeräte aktiviert (meistens für Lese- und Schreibzugriffe).

  • Erstellt zwei Ebenen als Standardebenen: Eine Ebene heißt "Kapazität" und die andere Leiste heißt "Leistung". Das Cmdlet analysiert die Geräte und konfiguriert jede Ebene mit der Mischung aus Gerätetypen und Resilienz.

Öffnen Sie im Verwaltungssystem ein PowerShell-Fenster mit erhöhten Rechten, und führen Sie den folgenden Befehl aus. Der Clustername ist der Name des Clusters, den Sie in den vorherigen Schritten erstellt haben. Wenn Sie diesen Befehl lokal auf einem der Knoten ausführen, benötigen Sie den -CimSession Parameter nicht.

Enable-ClusterStorageSpacesDirect -CimSession <ClusterName>

Mit diesem Befehl wird Storage Spaces Direct aktiviert. Sie können den Knotennamen anstelle des Clusternamens verwenden. Die Verwendung des Knotennamens ist möglicherweise zuverlässiger, da dns-Replikationsverzögerungen mit dem neu erstellten Clusternamen auftreten können.

Wenn dieser Befehl abgeschlossen ist, was mehrere Minuten dauern kann, kann das System für die Erstellung von Volumes bereit sein.

Schritt 3.6: Erstellen von Volumes

Verwenden Sie das New-Volume Cmdlet für die schnellste und einfachste Oberfläche. Dieses einzelne Cmdlet erstellt automatisch den virtuellen Datenträger, Partitionen und formatiert ihn. Es erstellt das Volume mit einem entsprechenden Namen und fügt es zu Cluster Shared Volumes hinzu – alles in einem einfachen Schritt.

Weitere Informationen finden Sie unter Volumes erstellen in Storage Spaces Direct.

Schritt 3.7: Optionales Aktivieren des CSV-Caches

Sie können den CSV-Cache (Cluster Shared Volume) aktivieren, indem Sie den Systemspeicher (RAM) als Write-Through-Cache auf Blockebene für Lesevorgänge verwenden, die der Windows-Cache-Manager nicht zwischenspeichert. Dieses Feature kann die Leistung für Anwendungen wie Hyper-V verbessern. Der CSV-Cache erhöht die Leistung von Leseanforderungen und ist auch für Scale-Out Dateiserverszenarien nützlich.

Durch aktivieren des CSV-Caches wird die Menge an Arbeitsspeicher reduziert, der für die Ausführung von virtuellen Computern auf einem hyperkonvergenten Cluster verfügbar ist. Daher müssen Sie die Speicherleistung mit dem für VHDs verfügbaren Speicher ausgleichen.

Um die Größe des CSV-Caches festzulegen, öffnen Sie eine PowerShell-Sitzung im Verwaltungssystem mit einem Konto mit Administratorberechtigungen für den Speichercluster. Verwenden Sie das folgende Skript, und ändern Sie die $ClusterName$CSVCacheSize Variablen entsprechend (in diesem Beispiel wird ein 2 GB CSV-Cache pro Server festgelegt):

$ClusterName = "StorageSpacesDirect1"
$CSVCacheSize = 2048 #Size in MB

Write-Output "Setting the CSV cache..."
(Get-Cluster $ClusterName).BlockCacheSize = $CSVCacheSize

$CSVCurrentCacheSize = (Get-Cluster $ClusterName).BlockCacheSize
Write-Output "$ClusterName CSV cache size: $CSVCurrentCacheSize MB"

Weitere Informationen finden Sie unter Verwendung des CSV-In-Memory-Lesecaches.

Schritt 3.8: Bereitstellen virtueller Computer für hyperkonvergente Bereitstellungen

Wenn Sie einen hyperkonvergenten Cluster bereitstellen, werden im letzten Schritt virtuelle Computer im „Direkte Speicherplätze“-Cluster bereitgestellt.

Speichern Sie die Dateien des virtuellen Computers im CSV-Namespace des Systems (Beispiel: c:\ClusterStorage\Volume1), genau wie gruppierte VMs auf Failoverclustern.

Sie können mitgelieferte Tools oder andere Tools zum Verwalten von Speicher und virtuellen Computern verwenden, z. B. System Center Virtual Machine Manager.

Schritt 4: Bereitstellen eines Dateiserver mit horizontaler Skalierung für konvergente Lösungen

Wenn Sie eine zusammengeführte Lösung bereitstellen, besteht der nächste Schritt darin, eine Scale-Out File Server-Instanz zu erstellen und die Dateifreigaben einzurichten.

Tipp

Wenn Sie einen hyperkonvergenten Cluster bereitstellen, sind Sie fertig und benötigen diesen Abschnitt nicht.

Wählen Sie eine der folgenden Registerkarten aus, um Anleitungen zum Erstellen einer Scale-Out-Dateiserver-Rolle mit dem Failover-Cluster-Manager oder PowerShell zu erhalten.

So erstellen Sie eine Scale-Out-Dateiserverrolle mithilfe des Failovercluster-Managers:

  1. Wählen Sie im Failovercluster-Manager den Cluster aus, navigieren Sie zu Rollen, und wählen Sie dann Rolle konfigurieren aus.
    Der Assistent für hohe Verfügbarkeit wird angezeigt.

  2. Wählen Sie auf der Seite Rolle auswählen die Option Dateiserver aus.

  3. Wählen Sie auf der Seite Dateiservertyp den Scale-Out Dateiserver für Anwendungsdatenaus.

  4. Geben Sie auf der Seite Clientzugriffspunkt einen Namen für den Scale-Out-Dateiserver ein.

  5. Vergewissern Sie sich, dass die Rolle erfolgreich eingerichtet wurde, indem Sie zu Rollen navigieren und überprüfen, ob in der Spalte Status der Eintrag Wird ausgeführt neben der von Ihnen erstellten Rolle eines Clusterdateiservers angezeigt wird (siehe Abbildung 1).

    Screenshot des Failovercluster-Managers zeigt den Scale-Out-Dateiserver

    Abbildung 1 Failovercluster-Manager mit dem Status „Wird ausgeführt“ für den Dateiserver mit horizontaler Skalierung

Hinweis

Nach dem Erstellen der Cluster-Rolle könnten Netzwerkverzögerungen möglicherweise für ein paar Minuten oder potenziell länger das Erstellen von Dateifreigaben verhindern.

Erstellen von Dateifreigaben

Nachdem Sie Ihre virtuellen Datenträger erstellt und diesen zu CSVs hinzugefügt haben, erstellen Sie Dateifreigaben darauf. Erstellen Sie eine Dateifreigabe pro CSV pro virtuellen Datenträger. System Center Virtual Machine Manager (VMM) ist die einfachste Möglichkeit, diese Aufgabe zu erledigen, da sie Berechtigungen für Sie verarbeitet. Wenn Sie dies nicht in Ihrer Umgebung haben, können Sie die Bereitstellung mit Windows PowerShell teilweise automatisieren.

Verwenden Sie die in diesem Abschnitt enthaltenen Skripts, um den Prozess des Erstellens von Gruppen und das Teilen im Netzwerk teilweise zu automatisieren. Die Skripts werden für Hyper-V Workloads geschrieben. Wenn Sie andere Workloads bereitstellen, müssen Sie eventuell die Einstellungen ändern oder zusätzliche Schritte ausführen, nachdem Sie die Ressourcenfreigaben erstellt haben. Wenn Sie beispielsweise Microsoft SQL Server verwenden, müssen Sie Vollzugriff auf die Freigabe und das Dateisystem für das SQL-Server-Dienstkonto gewähren.

Hinweis

Sie müssen die Gruppenmitgliedschaft aktualisieren, wenn Sie Clusterknoten hinzufügen, es sei denn, Sie verwenden den System Center Virtual Machine Manager zum Erstellen Ihrer Freigaben.

Führen Sie die folgenden Schritte aus, um Dateifreigaben mithilfe von PowerShell-Skripts zu erstellen:

  1. Erweitern Sie jeden der folgenden Abschnitte und speichern Sie die Inhalte jedes Abschnitts als separate .ps1-Datei mit dem relevanten Namen im selben Ordner, z. B. C:\Scripts\SetupSMBSharesWithHyperV, auf einem der Knoten des Dateiserverclusters:

    Erweitern Sie diesen Abschnitt für ADGroupSetup.ps1.
    Param(
        [Parameter(Mandatory=$true)]
        [string]
        $HyperVClusterName,
        [Parameter(Mandatory=$true)]
        [string]
        $HyperVObjectADGroupSamName
    )
    
    # Add and import needed features
    if ((Get-WindowsFeature | ? Name -Like "RSAT-AD-PowerShell") | ? InstallState -NotLike Installed)
    {
        Install-WindowsFeature "RSAT-AD-PowerShell"
    }
    if ((Get-WindowsFeature | ? Name -Like "RSAT-Clustering-PowerShell") | ? InstallState -NotLike Installed)
    {
        Install-WindowsFeature "RSAT-Clustering-PowerShell"
    }
    Import-Module -Name ActiveDirectory
    Import-Module -Name FailoverClusters
    
    # Check for group and create if necessary
    $adGroup = @()
    $adGroup = Get-ADGroup -Filter {samAccountName -eq $HyperVObjectADGroupSamName}
    if ($adGroup.Count -ne 1)
    {
        $adGroup = New-ADGroup -DisplayName $HyperVObjectADGroupSamName -Name $HyperVObjectADGroupSamName -SamAccountName $HyperVObjectADGroupSamName -GroupScope Global -GroupCategory Security -PassThru
    }
    
    # Build array of Hyper-V servers
    $HyperVNodes = (Get-ClusterNode -Cluster $HyperVClusterName).Name | Get-ADComputer
    
    # Add nodes to group if not already members
    for ($i = 0; $i -lt $HyperVNodes.Count; $i++)
    {
        if (!(Get-ADGroupMember $adGroup | ? Name -ieq $HyperVNodes[$i].Name))
        {
            Add-ADGroupMember $adGroup -Members $HyperVNodes[$i]
        }
    }
    
    # Add Hyper-V cluster object to group if not already present
    if (!(Get-ADGroupMember $adGroup | ? Name -ieq $HyperVClusterName))
    {
        Add-ADGroupMember $adGroup -Members (Get-ADComputer $HyperVClusterName)
    }
    
    Erweitern Sie diesen Abschnitt für FileShareSetup.ps1.
    Param(
        [Parameter(Mandatory=$true)]
        [string]
        $HyperVClusterName,
        [Parameter(Mandatory=$true)]
        [string]
        $ScaleOutFSName,
        [Parameter(Mandatory=$true)]
        [string]
        $ShareName,
        [Parameter(Mandatory=$true)]
        [string]
        $HyperVObjectADGroupSamName,
        [int]
        $CSVVolumeNumber = 1,
        [string]
        $VHDFolderName = "VHDs",
        [string]
        $VMFolderName = "VMs"
    )
    
    # Create the share folder
    New-Item -ItemType Directory -Path C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName
    
    # Create folders in share
    New-Item -ItemType Directory -Path "C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName\$VHDFolderName"
    New-Item -ItemType Directory -Path "C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName\$VMFolderName"
    
    # Get the domain name
    $DomainName = Get-Content env:userdnsdomain
    
    # Grant the Hyper-V group permission
    $cmdString = "ICACLS.EXE C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName  --% /Grant $DomainName\$HyperVObjectADGroupSamName"
    $cmdString += ':(CI)(OI)F'
    Invoke-Expression -Command $cmdString
    
    # Grant domain admins permission
    $DomainAdmins = "Domain Admins"
    $cmdString = "ICACLS.EXE C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName"
    $cmdString += '  --% /Grant "'
    $cmdString += "$DomainName\$DomainAdmins"
    $cmdString += ':(CI)(OI)F"'
    Invoke-Expression -Command $cmdString
    
    # Remove inheritance (optional)
    ICACLS.EXE C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName  /Inheritance:R
    
    # Create new share and set matching Share permissions
    $FullAccess = ("$DomainName\$HyperVObjectADGroupSamName","$DomainName\Domain Admins")
    New-SmbShare -Name $ShareName -Path C:\ClusterStorage\Volume$CSVVolumeNumber\$ShareName  -FullAccess $FullAccess
    
    Erweitern Sie diesen Abschnitt für KCDSetup.ps1.
    Param(
        [Parameter(Mandatory=$true)]
        [string]
        $HyperVClusterName,
        [Parameter(Mandatory=$true)]
        [string]
        $ScaleOutFSName,
        [switch]
        $EnableLM = $true
    )
    
    # Add and import needed features
    if ((Get-WindowsFeature | ? Name -Like "RSAT-AD-PowerShell") | ? InstallState -NotLike Installed)
    {
        Install-WindowsFeature "RSAT-AD-PowerShell"
    }
    if ((Get-WindowsFeature | ? Name -Like "RSAT-Clustering-PowerShell") | ? InstallState -NotLike Installed)
    {
        Install-WindowsFeature "RSAT-Clustering-PowerShell"
    }
    Import-Module -Name ActiveDirectory
    
    # Build array of Hyper-V servers
    $HyperVNodes = (Get-ClusterNode -Cluster $HyperVClusterName).Name
    
    # Enable LM and CD 
    $SMBServerAD = Get-ADComputer -Filter {Name -eq $ScaleOutFSName}
    $AllowedToDelegateToSMB = @( 
        ("cifs/"+$SMBServerAD.Name), 
        ("cifs/"+$SMBServerAD.DNSHostName))
    
    for ($serverCounter = 0; $serverCounter -lt $HyperVNodes.Count; $serverCounter++) 
    { 
        $AllowedToDelegateTo = $AllowedToDelegateToSMB 
        if ($EnableLM) 
        { 
            for ($delegateCounter = 0; $delegateCounter -lt $HyperVNodes.Count; $delegateCounter++) 
            { 
                if ($delegateCounter -ne $serverCounter) 
                { 
                    $delegationServer = $HyperVNodes[$delegateCounter] | Get-ADComputer 
                    $AllowedToDelegateTo += @( 
                        ("Microsoft Virtual System Migration Service/"+$delegationServer.Name), 
                        ("Microsoft Virtual System Migration Service/"+$delegationServer.DNSHostName))       
                } 
            } 
        } 
        ($HyperVNodes[$serverCounter] | Get-ADComputer) | Set-ADObject -Add @{"msDS-AllowedToDelegateTo"=$AllowedToDelegateTo} 
    }
    
  2. Öffnen Sie eine Windows PowerShell-Sitzung mit Domänenadministratoranmeldeinformationen im Verwaltungssystem. Verwenden Sie das Skript ADGroupSetup.ps1 , um eine Active Directory-Gruppe für die Hyper-V Computerobjekte zu erstellen. Ändern Sie die Werte für die Variablen entsprechend ihrer Umgebung:

    # Replace the values of these variables
    $HyperVClusterName = "Compute01"
    $HyperVObjectADGroupSamName = "Hyper-VServerComputerAccounts" <#No spaces#>
    $ScriptFolder = "C:\Scripts\SetupSMBSharesWithHyperV"
    
    # Start of script itself
    CD $ScriptFolder
    .\ADGroupSetup.ps1 -HyperVObjectADGroupSamName $HyperVObjectADGroupSamName -HyperVClusterName $HyperVClusterName
    
  3. Verwenden Sie das Skript FileShareSetup.ps1, um Freigaben für jede CSV zu erstellen und administrative Berechtigungen für die Freigaben an die Gruppe „Domänenadministratoren“ und den Compute-Cluster zu erteilen.

    # Replace the values of these variables
    $StorageClusterName = "StorageSpacesDirect1"
    $HyperVObjectADGroupSamName = "Hyper-VServerComputerAccounts" <#No spaces#>
    $SOFSName = "SOFS"
    $SharePrefix = "Share"
    $ScriptFolder = "C:\Scripts\SetupSMBSharesWithHyperV"
    
    # Start of the script itself
    CD $ScriptFolder
    Get-ClusterSharedVolume -Cluster $StorageClusterName | ForEach-Object {
        $ShareName = $SharePrefix + $_.SharedVolumeInfo.friendlyvolumename.trimstart("C:\ClusterStorage\Volume")
        Write-host "Creating share $ShareName on "$_.name "on Volume: " $_.SharedVolumeInfo.friendlyvolumename
        .\FileShareSetup.ps1 -HyperVClusterName $StorageClusterName -CSVVolumeNumber $_.SharedVolumeInfo.friendlyvolumename.trimstart("C:\ClusterStorage\Volume") -ScaleOutFSName $SOFSName -ShareName $ShareName -HyperVObjectADGroupSamName $HyperVObjectADGroupSamName
    }
    
  4. Aktivieren Sie die eingeschränkte Kerberos-Delegierung für die Remoteszenarioverwaltung und erhöhte Livemigrationssicherheit. Verwenden Sie das KCDSetup.ps1 Skript von einem der Speicherclusterknoten. Hier ist eine kleine Verpackung für das Skript:

    $HyperVClusterName = "Compute01"
    $ScaleOutFSName = "SOFS"
    $ScriptFolder = "C:\Scripts\SetupSMBSharesWithHyperV"
    
    CD $ScriptFolder
    .\KCDSetup.ps1 -HyperVClusterName $HyperVClusterName -ScaleOutFSName $ScaleOutFSName -EnableLM
    
  5. Starten Sie alle Knoten im Hyper-V Cluster neu, um sicherzustellen, dass die neuen eingeschränkten Kerberos-Delegierungseinstellungen wirksam werden. Wenn die Knoten wieder online sind, können Sie mit der Bereitstellung virtueller Computer in den von Ihnen erstellten Dateifreigaben beginnen.

Weitere Verweise