(0)
Artikel
bewerten
(100% positiv)
(7)

Windows 2012 Storage Pool

Storage Pools - flexibles Zusammenfassen mehrerer Festplatten

Inhalt dieses Artikels:

    Neu in Windows 2012: Storage Pools. Storage Pools bieten die Möglichkeit mehrere Disks zu einem Pool zusammenzufassen, Raid Levels können dann auf Volume Ebene (Software) definiert werden (=virtuelle Disk auf dem Storage Pool) 

    Storage Pools bieten eine sehr hohe Flexibilität, neben Thin Provision und Raid Levels (0,1,5) können einzelne Volumes unabhängig von den physikalischen Platten  konfiguriert werden. Per SAS, SATA oder USB verbundene Disken sollten direkt (ohne Raid Level) dem Storage Pool zugeweisen werden, Hardware Raids sollten mit Storage Spaces nicht verwendet werden. Der erste Schritt ist Platten zu einem Pool zusammenzufassen. Beim Anlegen einer Disk in dem Storagepool kann das Layout und die Art der Platzzuweisung (Provisioning) festgelegt werden: In diesem Artikel hab ich ein paar Praxisbeispiele dokumentiert um die Storagepools etwas zu veranschaulichen.

    Layout:

    das Layout sind im Prinzip die Raid Levels, also die definierte Verfügbarkeit. Der Einsatz von Mirror oder Parity macht durchaus Sinn, immerhin könnte das System den Ausfall einer Disk auch ohne Raid Controller bewältigen.

    Simple .. Die Daten werden gestriped über die phsikalischen Disken: Vorsicht bei späteren Erweiterungen des Pools, bzw. bei ungleich großen phyischen Disken: der Performance Gewinn relativiert sich sehr schnell, wenn Pools erweitert, bzw. unterschiedlich große Disken im Pool verwendet werden.

    Mirror .. Daten werden immer auf 2 physiche Disken geschrieben: erhöht die Sicherheit (eine Platte könnte ausfallen, die 2te hat immer noch die Daten), verringert aber auch die Kapazität (auf die Hälfte, von 200GB bleiben z.B. dann nur 100GB über)

    Parity .. ist im Prinzip Raid 5, kann ab mind. 3 Disken verwendet werden: Raid 5 bietet einen Kompromiss zwischen Sicherheit und Kapazität, am Beispiel von 3 Disken, werden 2 Datenblöcke und 1 Parity geschrieben: von den 3 Disken darf eine ausfallen. Aus z.B. 300GB (3*100GB Disken) Kapazität werden beispielsweise 200GB Nutzdaten.

     

    Provisioning:

    mit Provisioning wird festgelegt, ob der komplette Platz eines Volumes gleich zugewiesen wird, oder erst bei Bedarf

    die zwei möglichen Optionen sind Fixed oder Thin. Wie die nachfolgenden Beispiele zeigen verhält sich das Erweitern (zusätzliche Hinzufügen von Festplatten) bei Fixed nicht so flexibel, als beim Einsatz von Thin.

     

    Fixed: der komplette Platz wird für das Anlegen der VDIsk verwendet.

    Thin: der Platz wird bei Bedarf vom Storage Pool zugewiesen. (hier ist es auch möglich grössere Disken anzulegen, als persischer Platz zur Verfügung steht: überbuchen.

     

    Beispiele

    um Limitationen, bzw. die Storagepools besser zu verstehen hab ich ein paar Tests gemacht:

    Beispiel: 2 physikalische Disks fixed:

    2 Disken mit 10GB, diese werden in einen Storage Pool gegeben

    Provisioning: Fixed.

    Layout: Simple

    wenn ich eine VDisk aus 2 physikalischen Disken mit Provisioning Fixed, anlege wird der Platz der 2 physischen Disken komplett verwendet. Wird der Pool später erweitert können die zusätzlichen Disken beispielsweise nicht für Parity verwendet werden

    Wenn ich den Pool später mit einer Disk erweitere hab ich beispielsweise nicht die Möglichkeit eine Parity Disk anzulegen, da die ersten 2 Disken komplett verwendet sind. Ich hab durch die neue Disk auch keinen Performancegewinn, da nur die ersten 2 Disken verwendet werden.

    Beispiel: 2 physikalische Disks Thin:

    legen wir die VDisk in unserem Beispiel mit Thin anstelle von Thick an, können wir mehr als der verfügbare Platz vergeben:

     

    auch bei einem Erweitern des Storage Pools um eine zusätzliche phyische Disk (60GB), werden fürs 1te nur die 1ten 2 ursprünglichen Disken verwendet (an dem Bild oben ändert sich also nichts)

    Thin Disks holen sich beim Start wie es aussieht in unserem Beispiel ca. 700MB pro phyiskalischer Disk; 

    wenn ich Daten auf die Disk lege, wird der Platz trotzdem von den 1ten beiden Disken verwendet, bis die 700MB Grenze auf der physikalischen Disk überschritten wird, erst dann kommt unsere neue 60GB Disk ins Spiel:

    wir haben jetzt ein Ungleichgewicht beim Striping:

    150GB auf den physikalischen Disken 1 und 2

    ca. 75 GB auf der neu hinzugefügten Disk.

    d.h. im Klartext: Daten die vor Hinzufügen der zusätzlichen Disk 4 auf die Platten geschrieben wurden sind über 2 Disken gestriped, Daten nach Hinzufügen der zusätzlichen 60GB Disk auf 3 Platten.

    läuft dann auch so bis der Platz auf PhysicalDisk1 und PhysicalDisk2 annähernd verbraucht ist: jetzt wirds interessant:

    Daten werden bevor die Disk leer ist bereits vermehrt auf die zusätzliche Platte 3 geschrieben:

     

    obwohl noch 1,25GB auf Disk1 und Disk2 frei sind (8GB verwendet), wurden bereist 9,3GB von der zusätzlichen Disk verwendet.

     

    kopieren wir noch weiter:

     

    der Platz auf den Disken 1 und 2 ist verbraucht, alles weitere wird dann nur noch auf die zusätzliche Disk geschrieben. Ist für die Performance natürlich nicht mehr optimal. Auf nur eine Disk wird bei Thin erst geschrieben wenn die Disken 1 und 2 wirklich voll sind, im Gegensatz zu Fixed: In diesem Beispiel würden die Daten bei Fixed von Haus aus auf nur eine Disk geschrieben werden.

    Daten deduplizieren:

    wird auf diesen Ordner Daten deduplizieren eingeschaltet und werden Daten auf das Laufwerk geschrieben, siehe: Windows-2012-Daten-deduplizieren verhält sich das folgendermaßen: Durch den Einsatz von ThinDisks wird der Platz nach der Deduplizierung auf dem Storage Pool wieder frei: im Gegensatz zu manch anderen Storagesystemen, diese geben den Platz meist nicht freiwillig wieder her.

     

     

    wenn ich die Daten jetzt nochmal kopiere, wird wieder der komplette Platz benötigt, erst wenn der Dedup-Task im Hintergrund läuft, bekommen wir den Platz zurück.

    Für die Performance heißt das: der Schreibvorgang ist sicherlich gleich schnell: mit oder ohne Deduplizierung: die Daten werden ja erst später dedupliziert und fürs erste normal abgelegt. Beim Lesen denke ich müssen wir mit ein wenig Overhead rechnen: wie hoch der ist, wird die Praxis zeigen.

    Disken einem anderen Server mounten

    Was passiert eigentlich wenn ich einen Storagepool auf einen anderen Server, oder eine andere Installation mounten möchte? Angenommen ich baue alle Festplatten eines Storagepools aus und in einen anderen Server ein, kann ich dann auf die Daten zugreifen? Um diese Frage zu klären hab ich das ganze einfach ausgetestet, und der Reihe nach Disken einem anderen Server präsentiert:

     

    Bereits bei der 1tern Disk meldet der Server, dass noch 2 weitere fehlen, somit weiß also eine einzelne Disk eines Storagepools über alle anderen Disks im Pool Bescheid:

     

    bei der 2ten Disk:

     

    sind alle Disks verfügbar, muss der Pool von Read auf Read-Write Access gesetzt werden: (Set Read-Write Access...)

     

    die angelegte VHD muss mittels "Attach Virtual Disk" verbunden werden

     

    and als letzten Schritt online gesetzt werden (Bring Online)

     

    FAZIT:

    Windows 2012 bietet einen echten Mehrwert gegenüber früheren Windows Versionen. Durch den Einsatz von Storage Pools, Thin Disks und Deduplizierung kann der Speicherplatz extrem effizient genutzt werden, ev. vorhandene Storagefeatures werden nebensächlich, der Server 2012 kann Funktionen die bisher der Storage vorbehalten waren. Ob auf eine Storage oder einen Hardware Raidkontroller verzichtet werden kann, muss denke ich von Fall zu Fall entschieden werden.

     

    letzte Änderung dieses Artikels: 12.05.2013 20:44



    Feedback: