Mehr Platz, bitte!

Die kränkelnde Hitachi-Platte läuft noch immer, aber der Platz auf meinem Fileserver wurde so langsam knapp. Prinzipiell bieten sich in so einer Situation zwei Möglichkeiten: Zusätzliche Platten einbauen oder die vorhanden Platten durch größere ersetzen.

Ein Solaris ZFS Pool läßt sich nicht so ohne weiteres um zusätzliche Platten erweitern, ein Reshaping (analog zu mdadm unter Linux) wird nicht unterstützt. Mein ursprünglicher Plan war daher darauf ausgerichtet, regelmäßig größere Platten einzubauen. Auch aus Energieeffizientgründen wäre dies zu bevorzugen, eine geringere Anzahl an Laufwerken braucht weniger Strom. Dagegen spricht, dass Platten jenseits der 2 TB immer noch relativ teuer sind (u.a. den Unwettern in Thailand von letztem Jahr geschuldet). Und ein kleines, entscheidendes Detail hatte ich übersehen: 512-Byte- vs. 4k-Sektoren.

Kleiner Exkurs: Die interne Organisation eines ZFS Pools ist normalerweise an der Sektorgröße der verwendeten Festplatten ausgerichtet, der relevante Parameter heißt „ashift“. Solaris 11 Express bietet keine Möglichkeit, die Sektorgröße zu übersteuern. Bei Platten, die intern mit 4k-Sektoren arbeiten, nach außen aber 512-Byte-Sektoren emulieren, führt dies zu einer suboptimalen Organisation und damit zu verminderter Performance. Dummerweise läßt sich dieser Parameter nachträglich nicht mehr verändern, er wird bei der Erzeugung des Pools festgelegt und bleibt über die komplette Lebensdauer konstant.

Mein Pool (bestehend aus 4 x 2 TB in einem RAIDZ2) war für 4k-Platten nicht geeignet, ich würde die Daten einmal komplett umkopieren müssen. Je größer der Pool, desto unhandlicher wird’s. Nun stand ich vor der Wahl:

  • 4 x 3 TB anschaffen, Daten kopieren und dann 4 x 2 TB übrig haben, oder
  • 4 x 2 TB anschaffen, Pool auf 6 x 2 TB vergrößern (temporär 4 x 2 TB ohne Parity), 2 der alten Platten dafür recyclen und nur 2 Platten übrig haben.

Ich entschied mich für die zweite Variante.

Da mir die SATA-Anschlüsse ausgingen und ich zumindest temporär 10 Laufwerke würde betreiben müssen, mußte auch noch ein neuer Controller her. Hier fiel meine Wahl auf einen IBM ServeRAID M1015, die im Moment günstigste Alternative für einen 8-Port-SAS/SATA-Controller, der mit SATA-Platten >2 TB zurecht kommt und unter Solaris gut läuft. Es handelt sich dabei um einen umgelabelten LSI SAS2008, sobald man die originale LSI-Firmware aufgespielt hat, braucht das gute Stück unter Solaris keine zusätzlichen Treiber.

Soviel zur Hardwareauswahl, über die Einrichtung berichte ich das nächste Mal.