Erstellen eines Speicherpools mit der Powershell unter Windows Server 2012
Eine der wirklich überragenden Erneuerungen im Server 2012, sowie auch unter Windows 8, ist die Einführung von StoragePools. StoragePools bilden gerade zusammen mit der Nutzung von SMB3 einen erheblichen Mehrwert gegenüber Low-Budget RaidControllern oder gar einem SoftwareRaid… (mehr dazu in einem separaten Blogbeitrag)
Bevor ich den StoragePool erstelle werfe ich einen Blick auf meine physikalischen Festplatten, wobei physikalisch auf einem Hyper-V Gast natürlich nicht ganz richtig ist, handelt es sich doch hierbei um VHD-Files. Für das Betriebssystem wiederum sind dies physische Datenträger!
Besonderes Augenmerk sollte hierbei auf die Ausgabe des Attributes „CanPool“ geworfen werden. CanPool gibt an ob ein Laufwerk in den Speicherpool aufgenommen werden kann oder nicht! Die Disk „PhysicalDisk0“ wir mit nicht poolfähig angeben da dieses das Systemlaufwerk ist. Systempartitionen können nicht in einen StoragePool aufgenommen werden und da meine gesamte Disk0 als Partition C: genutzt wird fällt diese aus der Betrachtung raus.
Je nach gegebenen Szenario muss man sich entscheiden welche Disks man für den Pool nutzen möchte.
Beispielhaft habe ich dazu die Abfrage selektiv gegen die Poolfähigkeit der Disks und als weiteres praktisches Beispiel gegen eine bestimmte Größe laufen lassen.
Selektion nach Größe macht Sinn wenn ich meinen Server mit identischen Festplatten oder wie in meinem Fall mit identischen virtuellen Festplatten bestückt habe.
Da ich gerne alle poolfähigen Disks in meinen neuen StoragePool aufnehmen möchte habe ich das entsprechende Abfrageergebnis in eine Variable „NewDisks“ umgeleitet.
Ein (an dieser Stelle nicht gezeigtes) Get-StorageSubSystem wirft einen FriendlyName mit dem immer gleichlautenden Inhalt „Storage Spaces on hostname“ aus. Daher kann man den folgenden Befehl zum Erstellen des neuen Pools durch Platzhalter verkürzen. Im Anschluss an den Befehl wirft das System sofort einen Überblick über den neuen Speicher Pool „TEST“ aus…
Da ein StoragePool für sich gesehen erst einmal nichts weiter bringt, lege ich im nächsten Schritt eine virtuelle Disk, generiert aus dem neu erstellten Pool, an.
Hier erkennt man einen der großen Vorteile von virtuellem Storage. Ich lege nun virtuelle Disks an welche sich NICHT an den Kapazitätsgrenzen der genutzten physikalischen Datenträgern orientieren muss.
Genauer mache ich mir die Technologie des ThinProvisionings zu nutzen um mit meinen hinzugefügten Platten, jeweils 5GB, 2 virtuelle Datenträger á 20GB zu erstellen.
So kann ich, insofern ich durch entsprechende Tests belegt habe, dass ich als Startgröße des Storages nicht die geforderte Endausbaustufe benötige, ein entsprechendes Storage vorgeben welches ich sukzessive aufstocke.
In den beiden gezeigten Beispielen habe ich jeweils ein Mirror (entspricht Raid1) und ein Simple (entspricht Raid0) „Resilienz-Typen“ erstellt. Parität zB kann ich, auf Grund nur zweier vorhandenen physikalischen Festplatten an dieser Stelle nicht einrichten!
Ein Aufruf des altbekannten diskpart Tools zeigt uns die beiden entsprechenden Datenträger als verfügbar, aber noch nicht konfiguriert an. Ähnliche Ausgabe wirft übrigens auch ein get-disk aus.
Daher werden die neuen Disks erst einmal initialisiert:
Und anschließend partitioniert und mit einem Laufwerksbuchstaben versehen:
Zu guter Letzt werden die beiden Partitionen noch formatiert:
Und ein Aufruf zeigt uns die beiden neuen Laufwerke!