Skip to main content

Storage Spaces mit PowerShell einrichten | Windows Server 2016 und 2019

Hauptsächlich zu empfehlen falls die GUI nicht alle Festplatten/ SSDs anzeigt oder das Volume nicht erstellt werden kann

 

Voraussetzungen Prüfen:

Code
Get-PhysicalDisk
 
Get-StorageSubsystem
  • es müssen alle Laufwerke angezeigt werden
  • ein StorageSubsystem muss vorhanden sein


Falls eines oder mehrere der Laufwerke nicht als HDD oder SSD erkannt werden kann man den Typ mit folgenden Befehlen manuell festlegen

Code
Get-PhysicalDisk | ft FriendlyName,CanPool,Size,MediaType
 
Set-PhysicalDisk -FriendlyName [disk name] -MediaType [SSD oder HDD]


Als nächstes muss ein Storage Pool erstellt werden:

Code
$disks = Get-PhysicalDisk |? {$_.CanPool -eq $true}
  
New-StoragePool -StorageSubSystemFriendlyName "[storage system name]" -FriendlyName [pool name] -PhysicalDisks $disks
  
Get-StoragePool -FriendlyName [pool name]
  • storage system name: Get-StorageSubsystem→ FriendlyName
  • FriendlyName: z.B. StoragePool01


Nun erstellen wir SSD und HDD Tiers um die Hot - und Coldstorage Features nutzen zu können:

Code
$ssd_tier = New-StorageTier -StoragePoolFriendlyName [storage pool friendly name] -FriendlyName SSD_Tier -MediaType SSD -ResiliencySettingName Simple
  
$hdd_tier = New-StorageTier -StoragePoolFriendlyName [storage pool friendly name] -FriendlyName HDD_Tier -MediaType HDD -ResiliencySettingName Simple
  • ResiliencySettingName: Simple, Mirror oder Parity für die verschiedenen "RAID" Typen (0, 1, 5)


Jetzt muss noch eine Virtual Disk angelegt werden:

Code
New-VirtualDisk -StoragePoolFriendlyName “[storage pool friendly name]” -FriendlyName "[friendly name]" -StorageTiers @($ssd_tier,$hdd_tier) -StorageTierSizes @([ssd Gesamtgröße]GB,[hdd Gesamtgröße]GB) -ResiliencySettingName [resiliency Einstellung name] -WriteCacheSize []GB
  • FriendlyName: z.B. VD01
  • StorageTierSizes:
  • Die Gesamtgrößen lassen sich recht einfach über die Storage Spaces GUI auslesen. Einfach eine Virtual Disk anlegen und bis zur Größenangabe durchklicken und die Gesamtgrößen in GB übernehmen
    Hier ist probieren angesagt.
    D.h. unter Umständen kann es sein, dass beim Ausführen des Befehls ein Fehler auftritt. Dieser ist meist auf die Gesamtgröße zurückzuführen. In diesem Fall die Gesamtgrößen von SSD und HDD Tier, sowie vom Write Cache schrittweise verringern, bis der Fehler nicht mehr auftritt
    .

    Falls
    die Virtual Disk oder der Write Cache zu klein geraten ist, kann man sie einfach mit dem folgenden Befehl wieder entfernen:
Code
Remove-VirtualDisk [Name der VD]


Zuletzt muss auf der Virtual Disk noch ein Volume erstellt werden:

  • Die VD sollte nun als Volume in der Windows Datenträgerverwaltung auftauchen und darüber verwaltbar sein



Hier noch ein Beispiel für ein Multi-Resilient Volume mit gespiegeltem SSD Tier und paritäts HDD Tier:

Code
New-StorageTier -StoragePoolFriendlyName Pool1 -FriendlyName SSD_Tier -MediaType SSD -ResiliencySettingName Mirror
New-StorageTier -StoragePoolFriendlyName Pool1 -FriendlyName HDD_Tier -MediaType HDD -ResiliencySettingName Parity
  
$ssd_tier = Get-StorageTier -FriendlyName SSD_Tier
$hdd_tier = Get-StorageTier -FriendlyName HDD_Tier
  
New-VirtualDisk -StoragePoolFriendlyName Pool1 -FriendlyName "VirtualDisk" -StorageTiers @($ssd_tier,$hdd_tier) -StorageTierSizes 100GB, 300GB



Link zum englischen original Artikel.