Hinzufügen von Servern oder Laufwerken zu „direkten Speicherplätzen“

In diesem Thema wird beschrieben, wie Sie Server oder Laufwerke zu „direkten Speicherplätzen“ hinzufügen.

Hinzufügen von Servern

Das Hinzufügen von Servern wird häufig auch als Skalierung bezeichnet. Es fügt Speicherkapazität hinzu, kann die Speicherleistung verbessern und erhöht die Speichereffizienz. Bei einer hyperkonvergenten Bereitstellung werden durch Hinzufügen von Servern zudem mehr Computing-Ressourcen für Ihren Workload bereitgestellt.

Animation zum Hinzufügen eines Servers zu einem Cluster mit vier Knoten

Typische Bereitstellungen lassen sich durch Hinzufügen von Servern ganz einfach horizontal skalieren. Dies erfordert nur zwei Schritte:

  1. Führen Sie den Clusterüberprüfungs-Assistent mithilfe des Failovercluster-Snap-Ins oder mit dem Test-Cluster-Cmdlet in PowerShell aus (als Administrator ausführen). Beziehen Sie den neuen Server <NewNode>, den Sie hinzufügen möchten, darin ein.

    Test-Cluster -Node <Node>, <Node>, <Node>, <NewNode> -Include "Storage Spaces Direct", Inventory, Network, "System Configuration"
    

    Dadurch wird sichergestellt, dass auf dem neuen Server Windows Server 2016 Datacenter Edition ausgeführt wird, dass der Knoten derselben Active Directory-Domänendienste-Domäne wie die vorhandenen Server angehört, dass er über alle erforderlichen Rollen und Features verfügt und dass das Netzwerk ordnungsgemäß konfiguriert wurde.

    Important

    Wenn Sie Laufwerke erneut verwenden, die alte Daten oder Metadaten enthalten, die Sie nicht mehr benötigen, löschen Sie sie mit der Datenträgerverwaltung oder dem Cmdlet Reset-PhysicalDisk . Wenn alte Daten oder Metadaten festgestellt werden, werden die Laufwerke nicht zusammengefasst.

  2. Führen Sie das folgende -Cmdlet auf dem Cluster aus, um das Hinzufügen des Servers abzuschließen:

Add-ClusterNode -Name NewNode

Note

Das automatische Pooling hängt davon ab, dass Sie über nur einen Pool verfügen. Wenn Sie die Standardkonfiguration zum Erstellen mehrerer Pools umgangen haben, müssen Sie ihrem bevorzugten Pool mithilfe von Add-PhysicalDisk neue Laufwerke hinzufügen.

2 bis 3-Server: Drei-Wege-Spiegelung entsperren

Hinzufügen eines dritten Servers zu einem Cluster mit zwei Knoten

Mit zwei Servern können Sie nur Volumes mit Zwei-Wege-Spiegelung erstellen (vgl. verteiltes RAID-1). Mit drei Servern können Sie Volumes mit Drei-Wege-Spiegelungen für eine bessere Fehlertoleranz erstellen. Es wird empfohlen, wann immer möglich, die Drei-Wege-Spiegelung zu verwenden.

Volumes mit Zwei-Wege-Spiegelungen können nicht direkt auf Volumes mit Drei-Wege-Spiegelungen aktualisiert werden. Stattdessen können Sie ein neues Volume erstellen und ihre Daten (z. B. mithilfe des Speicherreplikats) migrieren und dann das alte Volume entfernen.

Als Einstieg in die Erstellung von Volumes mit Drei-Wege-Spiegelung stehen Ihnen mehrere gute Optionen zur Verfügung: Verwenden Sie die von Ihnen gewünschte Option.

Option 1

Legen Sie für jedes neue Volume bei der Erstellung PhysicalDiskRedundancy = 2 fest.

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size <Size> -PhysicalDiskRedundancy 2

Option 2

Sie können stattdessen das PhysicalDiskRedundancyDefault = 2-Objekt des Pools unter den ResiliencySetting mit dem Namen Spiegelung festlegen. Dann verwenden alle neuen gespiegelten Volumes automatisch die Drei-Wege-Spiegelung , auch wenn Sie sie nicht angeben.

Get-StoragePool S2D* | Get-ResiliencySetting -Name Mirror | Set-ResiliencySetting -PhysicalDiskRedundancyDefault 2

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size <Size>

Option 3

Legen Sie PhysicalDiskRedundancy = 2 für die StorageTier -Vorlage namens Capacity fest und erstellen Sie dann Volumes durch Verweisen auf die Ebene.

Set-StorageTier -FriendlyName Capacity -PhysicalDiskRedundancy 2

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -StorageTierFriendlyNames Capacity -StorageTierSizes <Size>

3 bis 4 Server: duale Parität entsperren

Hinzufügen eines vierten Servers zu einem Cluster mit drei Knoten

Bei vier Servern können Sie „duale“ Parität verwenden, oft auch als „Erasure Coding“ bezeichnet (vgl. verteiltes RAID-6). Dies bietet die gleiche Fehlertoleranz wie die Drei-Wege-Spiegelung, allerdings mit einer verbesserten Speichereffizienz. Weitere Informationen hierzu finden Sie unter Fehlertoleranz und Speichereffizienz.

Wenn Sie eine kleinere Bereitstellung haben, existieren mehrere gute Optionen zum Erstellen von dualen Paritätsvolumes. Verwenden Sie die von Ihnen gewünschte Option.

Option 1

Geben Sie für jedes neue Volume bei der Erstellung PhysicalDiskRedundancy = 2 und ResiliencySettingName = Parität ein.

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size <Size> -PhysicalDiskRedundancy 2 -ResiliencySettingName Parity

Option 2

Legen Sie das PhysicalDiskRedundancy = 2-Objekt des Pools unter ResiliencySetting mit dem Namen Parität fest. Dann verwenden alle neuen Paritätsvolumes automatisch duale Parität, auch wenn Sie sie nicht angeben.

Get-StoragePool S2D* | Get-ResiliencySetting -Name Parity | Set-ResiliencySetting -PhysicalDiskRedundancyDefault 2

New-Volume -FriendlyName <Name> -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -Size <Size> -ResiliencySettingName Parity

Ab vier Servern können Sie auch eine durch Spiegelung beschleunigte Parität verwenden, bei der ein einzelnes Volume zum Teil Spiegelung zum Teil Parität darstellt.

Dazu müssen Sie Ihre StorageTier-Vorlagen so aktualisieren, dass sowohl die Leistungs - als auch die Kapazitätsebenen vorhanden sind, wie sie erstellt werden würden, wenn Sie "Enable-ClusterS2D" auf vier Servern zum ersten Mal ausführen würden. Insbesondere sollten beide Ebenen den MediaType Ihrer Kapazitätsgeräte (z. B. SSD oder HDD) und PhysicalDiskRedundancy = 2 aufweisen. Die Leistungsstufe sollte ResiliencySettingName = Mirror sein, und die Kapazitätsebene sollte ResiliencySettingName = Parität sein.

Option 3

Möglicherweise finden Sie es am einfachsten, nur die vorhandene Vorlage zu entfernen und zwei neue zu erstellen. Dies hat keinen Einfluss auf bereits vorhandene Volumes, die anhand der Ebenenvorlage erstellt wurden: Es handelt sich hierbei nur um eine Vorlage.

Remove-StorageTier -FriendlyName Capacity

New-StorageTier -StoragePoolFriendlyName S2D* -MediaType HDD -PhysicalDiskRedundancy 2 -ResiliencySettingName Mirror -FriendlyName Performance
New-StorageTier -StoragePoolFriendlyName S2D* -MediaType HDD -PhysicalDiskRedundancy 2 -ResiliencySettingName Parity -FriendlyName Capacity

Das ist alles! Sie können nun mithilfe dieser Ebenenvorlage Volumes mit einer durch Spiegelung beschleunigten Parität erstellen.

Example

New-Volume -FriendlyName "Sir-Mix-A-Lot" -FileSystem CSVFS_ReFS -StoragePoolFriendlyName S2D* -StorageTierFriendlyNames Performance, Capacity -StorageTierSizes <Size, Size>

Bei über 4 Servern: größere Paritätseffizienz

Wenn Sie eine Skalierung auf mehr als vier Servern vornehmen, können neue Volumes von immer größerer Effizienz bei der Paritätscodierung profitieren. Beispielsweise verbessert sich die Effizienz zwischen sechs und sieben Servern durch die Möglichkeit der Verwendung von Reed-Solomon 4+2 (statt 2+2) von 50,0 % auf 66,7 %. Sie brauchen keine Schritte auszuführen, um in den Genuss dieser neuen Effizienz zu kommen. Die optimale Codierung wird jedes Mal, wenn Sie ein Volume erstellen, automatisch bestimmt.

Vorhandene Volumes werden jedoch nicht in die neue, breitere Codierung konvertiert. Ein guter Grund ist, dass dazu eine massive Berechnung erforderlich wäre, die buchstäblich jedes einzelne Bit in der gesamten Bereitstellung betrifft. Wenn bereits vorhandene Daten für höhere Effizienz neu codiert werden sollen, können Sie diese auf neue Volumes migrieren.

Weitere Informationen finden Sie unter Fehlertoleranz und Speichereffizienz.

Hinzufügen von Servern bei Verwendung von Gehäuse- oder Rackfehlertoleranz

Wenn Ihre Bereitstellung Gehäuse- oder Rackfehlertoleranz verwendet, müssen Sie Gehäuse oder Rack neuer Server angeben, bevor Sie sie zum Cluster hinzufügen. Dadurch kann „Direkte Speicherplätze“ bestimmen, wie die Daten am besten verteilt werden sollen, um die Fehlertoleranz zu maximieren.

  1. Erstellen Sie eine temporäre Fehlerdomäne für den Knoten, indem Sie eine PowerShell-Sitzung mit erhöhten Rechten öffnen und dann den folgenden Befehl eingeben, wobei <NewNode> der Name des neuen Clusterknotens ist:

    New-ClusterFaultDomain -Type Node -Name <NewNode>
    
  2. Verschieben Sie diese temporäre Fehlerdomäne auf das Gehäuse oder Rack, in dem sich der neue Server physisch befindet, wie durch <ParentName> festgelegt:

    Set-ClusterFaultDomain -Name <NewNode> -Parent <ParentName>
    

    Weitere Informationen finden Sie unter Fehlerdomänenunterstützung in Windows Server 2016.

  3. Fügen Sie den Server dem Cluster hinzu, wie unter Hinzufügen von Servern beschrieben. Wenn der neue Server dem Cluster hinzugefügt wird, wird er automatisch der Platzhalterfehlerdomäne (anhand des Namens) zugeordnet.

Hinzufügen von Laufwerken

Hinzufügen von Laufwerken (auch als zentrales Hochskalieren bezeichnet) fügt Speicherkapazität hinzu und kann die Leistung verbessern. Wenn Sie über freie Steckplätze verfügen, können Sie jedem Server Laufwerke hinzufügen, um die Speicherkapazität zu erweitern, ohne Server hinzuzufügen. Sie können unabhängig voneinander jederzeit Cache- oder Kapazitätslaufwerke hinzufügen.

Important

Es wird dringend empfohlen, alle Server mit identischen Speicherkonfigurationen zu konfigurieren.

Animation, die das Hinzufügen von Laufwerken zu einem System zeigt

Zum zentralen Hochskalieren verbinden Sie die Laufwerke, und stellen Sie sicher, dass Windows sie erkennt. Sie sollten in der Ausgabe des Cmdlets "Get-PhysicalDisk " in PowerShell angezeigt werden, wobei ihre CanPool-Eigenschaft auf "True" festgelegt ist. Wenn diese als CanPool = False angezeigt wird, überprüfen Sie den Grund durch Aktivieren der CannotPoolReason-Eigenschaft.

Get-PhysicalDisk | Select SerialNumber, CanPool, CannotPoolReason

Innerhalb kurzer Zeit werden geeignete Laufwerke automatisch von „direkten Speicherplätzen“ beansprucht, dem Speicherpool hinzugefügt, und die Volumes werden automatisch gleichmäßig auf alle Laufwerke verteilt. An diesem Punkt sind Sie fertig und bereit zum Erweitern der Volumes oder Erstellen neuer Volumes.

Wenn die Laufwerke nicht angezeigt werden, suchen Sie manuell nach Hardwareänderungen. Dies kann mithilfe des Geräte-Managers im Menü "Aktion " erfolgen. Wenn sie alte Daten oder Metadaten enthalten, sollten Sie sie ggf. neu formatieren. Dies kann mithilfe der Datenträgerverwaltung oder mit dem Cmdlet Reset-PhysicalDisk erfolgen.

Note

Das automatische Pooling hängt davon ab, dass Sie über nur einen Pool verfügen. Wenn Sie die Standardkonfiguration zum Erstellen mehrerer Pools umgangen haben, müssen Sie ihrem bevorzugten Pool mithilfe von Add-PhysicalDisk neue Laufwerke hinzufügen.

Optimieren der Laufwerknutzung nach dem Hinzufügen von Laufwerken oder Servern

Im Laufe der Zeit kann die Verteilung der Daten auf die Laufwerke im Pool mit dem Hinzufügen oder Entfernen von Laufwerken ungleichmäßig werden. In einigen Fällen kann dies dazu führen, dass bestimmte Laufwerke voll sind, während andere Laufwerke im Pool eine wesentlich geringere Auslastung aufweisen.

Um eine gleichmäßige Laufwerkzuordnung im gesamten Pool zu gewährleisten, optimiert Direkte Speicherplätze die Laufwerknutzung nach dem Hinzufügen von Laufwerken oder Servern zum Pool automatisch (dies ist für Speicherplätze-Systeme, die freigegebene SAS-Gehäuse verwenden, ein manueller Prozess). Die Optimierung beginnt 15 Minuten, nachdem Sie dem Pool ein neues Laufwerk hinzugefügt haben. Die Pooloptimierung wird als Hintergrundvorgang mit niedriger Priorität ausgeführt, sodass sie, insbesondere bei großen Festplatten, stunden- oder tagelang dauern kann.

Die Optimierung verwendet zwei Aufträge : " Optimieren" und " Rebalance ", und Sie können den Fortschritt mit dem folgenden Befehl überwachen:

Get-StorageJob

Sie können einen Speicherpool mit dem Cmdlet Optimize-StoragePool manuell optimieren. Ein Beispiel:

Get-StoragePool <PoolName> | Optimize-StoragePool