Microsoft Storage Spaces ist eine Technik von Microsoft zum Zusammenfassen und Verwalten von Datenträgern. Es handelt sich hierbei um eine Technik des SDS (software defined storage), eine Art RAID-Controller in Software.
Grundaufbau
Microsoft Storage Spaces sind in drei Ebenen gegliedert:
- Speicherpools
- Virtuelle Datenträger
- Volumes
Als Ebene 0 kann die darunter liegende Hardware bezeichnet werden. Der Workflow von Storage Spaces, oder auch Speicherplätzen, ist in der folgenden Abbildung gut ersichtlich.
In der Ebene 0 befindet sich der Server. Entweder sind dessen Festplatten integriert oder per iSCSI, Fibre Channel oder SAS angeschlossen. Die Ebene 1 beinhaltet den Speicherpool. In einem Pool können mehrere Festplatten zu einer Einheit zusammengefasst werden.
Die Ebene 2 bilden die virtuellen Datenträger. Diese werden in den Speicherpools als Grundlage für das spätere Volume genutzt. Im virtuellen Datenträger werden der RAID-Typ und die Art der Provisionierung (Thick / Thin) festgelegt.
Die Ebene 3 sind die einzelnen Volumes, die wie auf einer herkömmlichen Festplatte formatiert und mit Laufwerksbuchstaben versehen werden können.
Die Speicher-Ebenen im Detail
Im folgenden Abschnitt werde ich etwas näher auf die einzelnen Ebenen der Storage Spaces eingehen. Die Ebene 0 werde ich in dieser Erklärung nicht explizit behandeln.
Ebene 1 – Pools
Wie bereits kurz angesprochen bilden der Speicherpool die unterste Ebene der Storage Spaces. In einem Pool können alle verschiedene Arten von Datenträgern zusammengefasst werden, es spielt keine Rolle, ob es sich um HDDs, SSDs oder NVMe-SSDs handelt. Theoretisch ist es sogar möglich, per USB angeschlossene Massenspeicher zu verwenden. Microsoft rät allerdings von der Verwendung letzterer in Speicherpools ab. Ebenso lassen sich auch virtuelle Festplatten, also vhd oder vhdx Dateien, zu einem Pool zusammenfassen.
Die eingesetzten Festplatten sollten auch nicht an einem RAID-Controller hängen, sondern an einen HBA oder an einem RAID-Controller im HBA-Modus. Viele RAID-Controller haben einen Schreibcache integriert, der die Integrität eines Speicherpools beeinflussen könnte.
Datenträger, die einem Speicherpool zugeordnet werden sollen, müssen laut Vorgabe von Microsoft folgende Vorgaben erfüllen:
- Mindestens 4GB groß sein
- Sie dürfen kein Volume enthalten
- Sie dürfen nicht formatiert sein
Wenn ein Datenträger einem Pool hinzugefügt wird, kann dieser Datenträger nicht mehr durch die klassischen Datenträgertools von Windows verwaltet werden. Ähnlich wie bei einem Hardware-RAID-Controllers liegen die Festplatten in der Hand der Storage Spaces.
Kapazität des Pools
Die Kapazität eines Speicherpools beträgt immer die Summe der Einzelkapazitäten der Datenträger, abzüglich eines Schreib-Caches. Standardmäßig ist dieser mit 1GB vorgesehen, seine Größe kann bei der Erstellung mit Hilfe der PowerShell angepasst werden. Bei der Erstellung eines Pools über die GUI ist ein Ändern der Cachegröße nicht möglich. Das Prinzip ist ähnlich dem eines RAID-Controllers, der dem Betriebssystem logische Laufwerke mit einer bestimmten Kapazität zur Verfügung stellt. Es ist am ehesten mit einem RAID0 vergleichbar, da die Gesamtkapazität zur Verfügung gestellt wird. Es können Festplatten auch als Hot-Spares angegeben werden. Zwar sind diese im Pool enthalten, werden aber solange nicht benutzt, bis einer der im Pool befindlichen Datenträger ausfällt. In diesem Fall wird der Hot-Spare-Datenträger als aktive Festplatte hinzugefügt, der Pool ist dadurch noch betriebsfähig.
Es ist problemlos möglich, nachträglich weitere Festplatten einem Pool zuzuordnen. Dadurch kann die Kapazität des Pools im laufenden Betrieb erweitert werden.
Wichtig! Windows kann nicht auf Datenträgern installiert werden, die zu einem Pool gehören.
Ebene 2 – Virtuelle Datenträger
Die virtuellen Datenträger bilden die zweite Ebene der Storage Spaces. Diese lassen sich ähnlich wie physische Datenträger verwalten. Es gibt dabei einen Unterschied: RAID-Konfigurationen werden nur für den einzelnen Datenträger ausgewählt; es ist nicht nötig, dass zwei oder mehr virtuelle Datenträger vorhanden sind. Für die virtuellen Datenträger gibt es zwei Hauptmerkmale: Zum einen die Resilienz (Widerstandskraft) und die Provisionierung und damit die die Größe des virtuellen Datenträgers.
Resilienz
Die Resilienz ist mit dem RAID-Typ eines Hardware-Controllers vergleichbar. Microsoft bietet drei Typen an, die je nach Wichtigkeit der Daten eingesetzt werden sollten.
Resilienztyp | Datenträgeranforderung | Verwendung |
Einfach (Simple) – Erhöhten Datendurchsatz durch Stripping über mehrere Laufwerke | Erfordert mindestens einen Datenträger | Nicht zum Bereitstellen von unersetzbaren Daten zur Verfügung stellen. Für den Einsatz zur Speicherung von temporären Dateien. Geeignet für Hochleistungs-workloads, bei denen Resilienz nicht nötig ist. |
Spiegel (Mirror) – Speichert zwei oder mehr Kopien auf unterschiedlichen Datenträgern – Erhöht die Zuverlässigkeit, verringert dabei die Kapazität auf 50% | Erfordert mindestens zwei Datenträger um vor dem Ausfall von einem Datenträger geschützt zu sein Erfordert mindestens fünf Datenträger um vor dem Ausfall von zwei Datenträgern geschützt zu sein | Bereitstellung Dateifreigaben oder zur Speicherung von VHD(x)-Dateien in Virtualisierungs- umgebungen |
Parität (Parity) – Daten und Paritätsinformationen werden auf verschiedene Datenträger verteilt – Verringert die Gesamtkapazität etwas durch Paritätsinformationen auf einer Festplatte. | Erfordert mindestens drei Datenträger um vor dem Ausfall eines Datenträgers zu schützen | Geeignet für stark sequentielle Auslastungen, z.B. Backups oder Archiven |
Je nach gewählten Resilienz-Typ werden von den Storage Spaces die passenden Datenträger eines Pools automatisch ausgewählt.
Bei einem virtuellen Datenträger mit dem Typ Parity werden drei gleich große Festplatten des selben Typs (SSD oder HDD) benötigt. Befinden sich diesen in dem ausgewählten Pool, kann der virtuelle Datenträger erstellt werden. Die Erstellung schlägt fehl, sollten keine drei Datenträger verfügbar sein.
Provisioning
Ein weiteres wichtiges Merkmal der virtuellen Datenträger ist die Provisionierung. Diese lässt sich in zwei Gruppen einteilen: thin provisioning (dt. dünn) und thick provisioning (dt. fest).
Thin provisioning
Thin provisioning bedeutet, dass die Kapazität eines virtuellen Datenträgers größer sein kann, als die im Pool zur Verfügung stehenden Kapazität. Auf dem Pool werden bei der Erstellung nur soviel Speicher reserviert, wie wirklich belegt ist. Selbstverständlich können auf solch einem Datenträger nicht mehr Daten gespeichert werden, als im Pool vorhanden sind. Allerdings kann bei erreichen der Pool-Grenze, einfach ein weiterer Datenträger hinzugefügt werden um die Pool-Kapazität zu erweitern. Der virtuelle Datenträger muss nicht erweitert werden, sondern kann weiter genutzt werden.
Thick provisioning
Thick provisioning bedeutet, dass in dem Pool genau soviel Speicher reserviert wird, wie die Größe der virtuellen Festplatte. Hierbei ist es nicht möglich, größere Datenträger als die Pool-Kapazitäten anzulegen. Dieser Typ wird meistens genutzt, wenn der Speicher im Vorfeld bereits reserviert sein soll.
Datenträgererstellung und Speicherebenen
In einem Speicherpool können mehr als ein virtuelle Datenträger erstellt werden. Das obere Limit wird durch die Gesamtkapazität des Pools bestimmt. Typbedingt können mehr dünne Datenträger gleichzeitig erstellt werden, als feste Datenträger. Zumindest unter der Bedingung, dass eine realistisch nutzbare Größe eines Datenträgers zu Grunde gelegt wird.
Die Microsoft Windwos Storage Spaces können auch eine Art Caching abbilden. Sobald sich eine NVMe oder SSD im System befindet, besteht die Möglichkeit diese als Speicher für oft genutzte Dateien zu verwenden. Bei der Einrichtung von Speicherebenen, kann die Kapazität für den Flash-Speicher und den HDD-Speicher angegeben werden. Es ist nicht nötig, die gesamte Kapazität einer SSDs für einen virtuellen Datenträger zu nutzen.
Sind in einem Speicherpool NVMe SSDs vorhanden, nutzt Storage Spaces bevorzugt diese als Cache. Vorhandene SSDs und HDDs werden dann als Speicher für weniger oft genutzte Dateien benutzt.
Es ist auch möglich, sogenannte Storage Tiers zu erstellen. Storage Tiers bieten noch eine erweiterte Funktion, verschiedene Speicherebenen zu nutzen. Nähere Details finden sich auf der Seite Tiered Storage Spaces.
Ebene 3 -Volumes
Ein Volume in den Storage Spaces unterscheidet sich nicht von dem bekannten Volume auf klassischen Datenträgern. Auch auf virtuellen Datenträgern kann ein Volume in der Größe angepasst werden. Außerdem kann ebenso ein Laufwerksbuchstabe vergeben werden oder es kann mit NTFS oder ReFs formatiert werden. Wie bei einem klassischen Datenträger auch üblich, können sich auf einem Datenträger mehrerer Volumes befinden. Anders als beim Thin provisioning, wo der virtuelle Datenträger größer werden kann als der eigentliche Pool, kann ein Volume nicht größer als der virtuelle Datenträger werden .
Fazit
Microsoft Storage Spaces sind eine gute Lösung für ein SDS-System. Bei einem Hardware-RAID wäre es z.B. nicht möglich, Festplatten zu einem Pool hinzuzufügen, ohne diesen vorher auflösen zu müssen. Allerdings entlastet ein Hardware-RAID die CPU des Servers, gerade bei der Paritätsberechnung ein nicht unerheblicher Vorteil.
Wie in meinem Artikel zu lesen ist, haben die Storage Spaces ihre Vor- und Nachteile. Microsoft wird in Zukunft sicher noch daran arbeiten, die Technik noch zuverlässiger zu machen und weitere Möglichkeiten hinzuzufügen.
Weiterführende Links
Hier geht es zu einem Beispiel für die Einrichtung eines Storage Space
Hier geht es zu den Storage Tiers