Zum Thema Windows Server 2012 R2 Storage Spaces Tiering habe ich einen hervorragenden Blog-Beitrag von Jose Barreto gefunden. Allerdings beschreibt dieser Artikel die Konfiguration ausschließlich mittels PowerShell. Zum besseren Verständnis habe ich die Schritte im Server Manager und mit PowerShell gemacht und habe mitgeschrieben. 🙂
Ziel der Übung ist, auf SERVER03 (Hyper-V Guest) einen Storage Pool mit einem SSD-Tier, einem HDD-Tier und Storage Spaces (vDisks, einfach und gespiegelt) zu erstellen.
Voraussetzung:
- SERVER02:
- 1 SSD 128GB freier Speicherplatz (hier Laufwerk E:)
- 1 HDD 512 GB freier Speicherplatz (hier Laufwerk F:)
- Hyper-V
- SERVER03:
- Hyper-V Guest
- mind. 2GB RAM
Windows Server 2012 R2 Storage Spaces Tiering – Schritte:
- 4 vhdx-Dateien mit 10GB auf der SSD-Festplatte erstellen, 8 vhdx-Dateien mit 25GB auf der HDD erstellen
- vhdx-Dateien SERVER03 zuweisen
- Auf SERVER03 den Storage Pool erstellen
- MediaType und Fehlertoleranz (Resiliency) konfigurieren
- Virtuelle Disks erstellen
- Volumes erstellen
4 vhdx-Dateien mit 10GB auf der SSD-Festplatte erstellen, 8 vhdx-Dateien mit 25GB auf der HDD erstellen
- Als Administrator an SERVER02 anmelden
- Server Manager > Tools > Hyper-V Manager
- SERVER02 rechts anklicken > New > Hard Disk…
- New Virtual Hard Disk Wizard
- Die Schritte 4A-F für VM_SSD_2-4.vhdx und für VM_HDD_1-8.vhdx (auf Laufwerk F:) wiederholden
- Alternativ mit PowerShell
1..4 | ForEach-Object {Add-VHD -Path E:\VMs\VM_SSD_$_.vhdx -Fixed -Size 10GB} 1..8 | ForEach-Object {Add-VHD -Path F:\VMs\VM_HDD_$_.vhdx -Fixed -Size 25GB}
vhdx-Dateien SERVER03 zuweisen
- Im Hyper-V Manager SERVER03 rechts anklicken > Settings…
- Auf der linken Seite auf SCSI Controller klicken
- Im Detailbereich Hard Drive markieren > Add
- Hard Drive
- Schritte 2-4 für alle 12 vhdx-Dateien wiederholen
- Alternativ mit PowerShell
1..4 | ForEach-Object {Add-VMHardDiskDrive -VMName SERVER03 -ControllerType SCSI -Path E:\VMs\VM_SSD_$_.vhdx} 1..8 | ForEach-Object {Add-VMHardDiskDrive -VMName SERVER03 -ControllerType SCSI -Path F:\VMs\VM_HDD_$_.vhdx}
Auf SERVER03 den Storage Pool erstellen
- Als Administrator an SERVER03 anmelden
- Server Manager > File and Storage Services > Storage Pools
- Primordial rechts anklicken > New Storage Pool…
- New Storage Pool Wizard
- Alternativ mit PowerShell
$s = Get-StorageSubSystem New-StoragePool -StorageSubSystemId $s.UniqueId -FriendlyName Pool1 -PhysicalDisks (Get-PhysicalDisk -CanPool $true)
MediaType und Fehlertoleranz (Resiliency) konfigurieren
Diese Schritte sind nur mit PowerShell möglich. Für die Fehlertoleranz werde ich einfach (Simple) und gespiegelt (Mirror) verwenden. Für Simple wähle ich außerdem 4 Columns und für Mirror 2 Columns. Kurze Erklärung:
- Column: Entspricht den darunter liegenden physischen Festplatten, auf welche ein Teil der Daten (Stripe) in einem Storage Space geschrieben wird
- Entspricht im Normalfall der Anzahl der physischen Platten (Simple)
- oder der hälfte der physischen Platten (Mirror)
- Tier: Speicherebenen
- Faster Tier: besteht aus SSD-Festplatten (hier 4 SSD-Platten)
- Standard Tier: besteht aus HDD-Festplatten (hier 8 HDD-Platten)
- Anzahl der Columns:
- Performance: so viele Columns wie möglich
- Flexibilität bei der Erweiterbarkeit: Wenn die Tiers eine unterschiedliche Anzahl an Festplatten haben, die geringere verwenden (hier: 4 SSD / 8 HDD > Simple 4 Columns, Mirror 2 Columns)
- PowerShell: MediaType konfigurieren
Get-StoragePool -FriendlyName Pool1 | Get-PhysicalDisk | Where-Object Size -lt 20GB | Set-PhysicalDisk -MediaType SSD Get-StoragePool -FriendlyName Pool1 | Get-PhysicalDisk | Where-Object Size -gt 20GB | Set-PhysicalDisk -MediaType HDD
- PowerShell: Resiliency konfigurieren
Get-StoragePool -FriendlyName Pool1 | Set-ResiliencySetting -Name Simple -NumberOfColumnsDefault 4 Get-StoragePool -FriendlyName Pool1 | Set-ResiliencySetting -Name Mirror -NumberOfColumnsDefault 2
Virtuelle Disks erstellen
- Im Server Manager im mittleren Bereich Pool1 markieren
- Virtual Disks > TASKS > New Virtual Disk…
- New Virtual Disk Wizard
- Virtual Disks > TASKS > New Virtual Disks
- New Virtual Disk Wizard
- Alternativ mit PowerShell
- Speicherebenen (Storage Tiers) erstellen
Get-StoragePool -FriendlyName Pool1 | New-StorageTier -FriendlyName SSDTier -MediaType SSD Get-StoragePool -FriendlyName Pool1 | New-StorageTier -FriendlyName HDDTier -MediaType HDD
- vDisk_01 (Simple) erstellen
$SSD = Get-StorageTier -FriendlyName SSDTier $HDD = Get-StorageTier -FriendlyName HDDTier Get-StoragePool -FriendlyName Pool1 | New-VirtualDisk -FriendlyName vDisk_01 -ResiliencySettingName Simple -StorageTiers $SSD,$HDD -StorageTierSizes 8GB,32GB -WriteCacheSize 1GB
- vDisk_02 (Mirror) erstellen
Get-StoragePool -FriendlyName Pool1 | New-VirtualDisk -FriendlyName vDisk_02 -ResiliencySettingName Simple -StorageTiers $SSD,$HDD -StorageTierSizes 8GB,32GB -WriteCacheSize 1GB
- Speicherebenen (Storage Tiers) erstellen
Volumes erstellen
- Im Server Manager vDisk_01 rechts anklicken > New Volume…
- New Volume Wizard
- Die Schritte 2A-F für vDisk_02, Mirrored Volume wiederholen
- Alternativ mit PowerShell
- Volume F auf vDisk_01 erstellen
Get-VirtualDisk vDisk_01 | Get-Disk | Set-Disk -IsReadOnly 0 Get-VirtualDisk vDisk_01 | Get-Disk | Set-Disk -IsOffline 0 Get-VirtualDisk vDisk_01 | Get-Disk | Initialize-Disk -PartitionStyle GPT Get-VirtualDisk vDisk_01 | Get-Disk | New-Partition -DriveLetter "F" -UseMaximumSize Format-Volume -DriveLetter "F" -FileSystem NTFS -NewFileSystemLabel "Simple Volume" -Confirm:$false
- Volume G auf vDisk_02 erstellen
Get-VirtualDisk vDisk_02 | Get-Disk | Set-Disk -IsReadOnly 0 Get-VirtualDisk vDisk_02 | Get-Disk | Set-Disk -IsOffline 0 Get-VirtualDisk vDisk_02 | Get-Disk | Initialize-Disk -PartitionStyle GPT Get-VirtualDisk vDisk_02 | Get-Disk | New-Partition -DriveLetter "G" -UseMaximumSize Format-Volume -DriveLetter "G" -FileSystem NTFS -NewFileSystemLabel "Mirrored Volume" -Confirm:$false
- Volume F auf vDisk_01 erstellen
Fertig 🙂