PowerShell-Tutorial: Windows Storage Spaces verwalten
Zusammen mit Windows Server 2012 kommt eine um viele Funktionen erweiterte PowerShell, mit der sich Storage Spaces nun vollständig verwalten lassen.
Mit Windows Server 2012 hat Microsoft den Funktionsumfang von PowerShell deutlich erweitert. Zwar bot PowerShell schon immer auch Möglichkeiten für Storage-Management, doch mit der neuesten Version sind es wesentlich mehr geworden. So lassen sich Windows Storage Spaces jetzt vollständig über PowerShell verwalten. Dieses Tutorial soll Sie mit Grundlagen des Storage-Managements mittels PowerShell vertraut machen.
Mit Windows Storage Spaces können Administratoren physische Festplatten zu einem oder mehreren Storage-Pools zusammenfassen. Bevor Sie das tun, sollten Sie aber feststellen, welche Festplatten für die Aufnahme in einen solchen Pool geeignet sind.
Seit langem unterstützt PowerShell das Cmdlet Get-Disk. Allerdings zeigt es nicht immer sämtliche physischen Festplatten an, die ein System enthält. Dies zeigt Abbildung 1: Der Computer, von dem dieser Screenshot genommen wurde, hat mehrere Festplatten. Trotzdem gibt es darin laut Get-Disk nur das Boot-Laufwerk und ein Gerät im Rahmen von Microsoft Storage Spaces.
Abbildung 1: Das Cmdlet Get-Disk bietet einen begrenzten Überblick über die physische Hardware.
Wenn Sie alle physischen Festplatten eines Servers sehen wollen, müssen Sie das Cmdlet Get-PhysicalDisk verwenden (Abbildung 2). Interessant ist dabei der Punkt CanPool: Er gibt an, ob eine Festplatte in einen Storage-Pool aufgenommen werden kann oder nicht. In diesem Fall lässt sich keine der Platten für einen Pool verwenden, weil schon einer erstellt wurde. Wenn Sie nur diejenigen Festplatten sehen wollen, die sich für einen Storage-Pool eignen, müssen Sie den folgenden Befehl verwenden:
Get-PhysicalDisk -CanPool $True
Abbildung 2: Das Cmdlet Get-PhysicalDisk listet alle im Server installierten physischen Festplatten auf.
Wie Sie wahrscheinlich wissen, verwendet Windows Storage Spaces das Storage-Subsystem. Wenn Sie über PowerShell einen Storage Space erstellen, müssen Sie den „Friendly Name“, also den Klarnamen, des Storage-Subsystems angeben. Dafür gibt es mehrere Möglichkeiten: zum einen das Cmdlet Get-StorageSubsystem, das unterschiedliche Informationen einschließlich des Friendly Name ausgibt (Abbildung 3).
Abbildung 3: Mit dem Cmdlet Get-StorageSubsystem können Sie den Friendly Name des Storage-Subsystems ermitteln.
Einfacher kann es sein, stattdessen das Cmdlet Get-StorageSubsystem in den Befehl zur Erstellung eines neuen Storage-Pools mit aufzunehmen. Das Anlegen eines Pools erfolgt über das Cmdlet New-StoragePool, das drei Parameter erfordert:
- einen Friendly Name für den Storage-Pool
- den Friendly Name des Storage-Subsystems
- die physischen Festplatten, die Sie in den Storage-Pool aufnehmen wollen.
Nehmen wir zum Beispiel an, dass es auf einem Server noch keinen Storage-Pool gibt und dass wir einen neuen Pool mit dem Namen My Storage Pool erstellen wollen. Nehmen wir weiter an, dass wir in den Pool alle verfügbaren Festplatten aufnehmen und dazu das voreingestellte Storage-Subsystem verwenden wollen. Dies lässt sich mit den bisher vorgestellten Elementen ohne weiteres umsetzen. Der Befehl würde dann so aussehen:
New-StoragePool –FriendlyName "My Storage Pool" -StorageSubSystemFriendlyName {Get-StorageSubsystem –FriendlyName *space*} –PhysicalDisks {Get-PhysicalDisk –CanPool $True}
Das mag ein wenig kompliziert aussehen, also zerlegen wir den Befehl. Wenn man die Unter-Kommandos weglässt, sieht er so aus:
New-StoragePool –FriendlyName "My Storage Pool" –StorageSubsystemFriendlyName –PhysicalDisks
Im ersten Teil wird lediglich ein Name für den neuen Storage-Pool definiert, der zweite Teil enthält den Friendly Name des Storage-Subsystems. Im kompletten Befehl gibt es hier noch ein Unter-Element, das den Namen des Subsystems abruft – wenn Sie ihn schon kennen, können Sie ihn stattdessen direkt als Wert angeben. Im letzten Teil des Befehls wird angegeben, welche physischen Festplatten zu dem Storage-Pool gehören sollen. Auch hier enthält die Langversion einen Unter-Befehl für den Abruf aller für das Pooling verfügbaren Festplatten, und auch hier können Sie die Namen der Festplatten alternativ als Wert selbst angeben.
Wenn Sie einen Storage-Pool erstellt haben, werden Sie darin wahrscheinlich eine oder mehrere virtuelle Festplatten anlegen wollen. Dazu gibt es das Cmdlet New-VirtualDisk. Darin müssen Sie einen Friendly Name für die anzulegende virtuelle Festplatte angeben, außerdem ihre gewünschte Größe und den Friendly Name des Storage-Pools. Der komplette Befehl sieht dann so aus:
New-VirtualDisk –FriendlyName vDisk1 –StoragePoolFriendlyName "My Storage Pool" –Size {100 GB}
Zur Überprüfung, ob das Anlegen von Storage-Pools oder virtuellen Festplatten gelungen ist, gibt es die Cmdlets Get-StoragePool und Get-VirtualDisk. Wie in Abbildung 4 zu sehen, können Sie ohne weitere Parameter verwendet werden.
Abbildung 4: Über PowerShell lässt sich das Vorhandensein von Storage-Pools und virtuellen Festplatten überprüfen.
PowerShell erlaubt also eine umfassende Interaktion mit Windows Storage Spaces. Dies schafft die Möglichkeit, den Prozess der Storage-Provisionierung über Scripts zu steuern – sehr hilfreich, wenn Sie mehrere Server einzurichten haben.
Über den Autor: Brien Posey ist Microsoft MVP mit zwei Jahrzehnten IT-Erfahrung. Vor seiner Tätigkeit als freiberuflicher Technik-Autor hat er als CIO für eine US-weite Kette von Krankenhäusern und Gesundheitszentren gearbeitet. Außerdem war er Netzwerk-Administrator bei einigen der größten Versicherungen des Landes und hat für das US-Verteidigungsministerium in Fort Knox gearbeitet.