Beste Bestellung von RAID, LVM und LUKS

13

Ich werde einen Dateiserver mit Debian GNU / Linux 8 installieren.

Ich möchte Software-RAID-1 mit mdadm sowie verschlüsselte Festplatten mit LUKS. Ich mag auch die Flexibilität von LVM.

Es gibt verschiedene Möglichkeiten, dies zu tun. Eine Möglichkeit ist: Richten Sie RAID-1 zuerst mit mdadm ein. Richten Sie dann LVM-PVs ein, um das erstellte / dev / mdX abzudecken. Richten Sie dann LVs ein und verschlüsseln Sie diese mit LUKS. Formatieren Sie diese dann mit einem Dateisystem, z. B. ext4. Dies führt zu einem Layout wie dem folgenden:

RAID --> LVM --> LUKS --> ext4

Oder ich könnte es in einer anderen Reihenfolge tun:

RAID --> LUKS --> LVM --> ext4

Oder vielleicht sogar:

LVM --> RAID --> LUKS --> ext4

Und vielleicht sogar eine ganz andere Reihenfolge.

Was sind Vor- und Nachteile für die verschiedenen Ansätze? Was bietet die beste Leistung, Sicherheit, Wartbarkeit usw.?

Gibt es einen "besten Weg", dies zu tun?

Thomas
quelle

Antworten:

18

Erstens hängt die Reihenfolge von LUKS und LVM davon ab, ob Sie unterschiedliche LUKS-Kennwörter oder andere Einstellungen für unterschiedliche LVs haben möchten. Wenn Sie beispielsweise unterschiedliche Kennwörter für unterschiedliche LVs einrichten müssen, müssen Sie auf jeden Fall LUKS über LVM setzen. Wenn andererseits alle LVs dasselbe Kennwort und dieselben Einstellungen wie keylen verwenden, möchten Sie LUKS unter LVM haben, damit Sie sich nicht mit dem Aufwand befassen müssen, mehr als eine LUKS-Partition zu haben (überlegen Sie, was Sie wollen müsste tun, wenn Sie das Passwort ändern müssen).

Zweitens möchten Sie fast immer, dass RAID die niedrigste Stufe ist, damit eine Festplatte, wenn sie ausfällt, einfach und transparent ausgetauscht werden kann. Wenn Sie RAID über LVM einrichten würden, müssten Sie eine PV ersetzen, wenn eine Festplatte ausfällt. Dies wäre ein großer Schmerz im Nacken. Auch RAID über LVM würde die Flexibilität von LVM völlig beeinträchtigen. Sie müssen dann wahrscheinlich die zweite LVM-Schicht erneut auf RAID einrichten!

Daher reicht dies aus, da in den meisten Fällen nur ein einziges Kennwort verwendet werden muss:

RAID -> LUKS -> LVM -> ext4

In einigen Fällen müssen Sie möglicherweise LVM verwenden, um mehrere RAID-Geräte zu einem großen Volume zu kombinieren. Dann können Sie Folgendes tun:

RAID -> LVM -> LUKS (-> LVM) -> ext4

Theoretisch sollte die Reihenfolge die Leistung nicht wesentlich beeinflussen, wenn jede Ebene korrekt eingerichtet ist , und in der Praxis habe ich nicht gesehen, dass dieses Setup eine besonders schlechte Leistung aufweist. Das Wichtigste ist wahrscheinlich die Ausrichtung:

  1. Stellen Sie sicher, dass Ihre Partitionen 1 MB ausgerichtet sind (sehr wichtig für SSD).
  2. Wählen Sie für die RAID-Schicht die Blockgröße mit Bedacht aus.
  3. Stellen Sie für LVM sicher, dass Sie --dataalignmentdie RAID-Blockgröße anpassen ( dies kann hilfreich sein).

Auch wenn auf SSD, stellen Sie sicher , können Sie LUKS TRIM / Aussonderungspassthrough durch Zugabe rd.luks.options=discardzu /etc/default/grubund discardzu /etc/crypttab(Diese sind , was ich auf Red Hat / Fedora Linux zu tun. Vielleicht ein wenig anders auf Debian. Sein) LVM und RAID sollte automatisch Unterstützung Verwerfungs Wenn Sie einen neuen Kernel verwenden.

Dies sind natürlich nur allgemeine Richtlinien. Wenn Sie spezielle Bedürfnisse haben, können Sie Ihre Frage oder Ihren Kommentar hier aktualisieren.

Yan Li
quelle
Danke für die schnelle Antwort. Gute Argumente! Können Sie die Leistungsunterschiede kommentieren, wenn sie nicht trivial sind?
Thomas
Aktualisiert mit einigen Leistungshinweisen.
Yan Li
1
Es sollte auch darauf hingewiesen werden, dass Sie nicht immer MDADM verwenden müssen (obwohl ich davon ausgehe, dass dies die typischste Lösung ist). - LVM bietet RAID (auch bekannt als Mirroring)
Davidgo
@davidgo Ja. Ich habe darüber nachgedacht, das auch zu erwähnen, habe es aber nicht getan, weil ich nicht sicher bin, ob das der richtige Weg ist. Ich habe es nicht persönlich ausprobiert (meistens verwende ich höhere RAID-Stufen wie 5 oder 6) und habe gemischte Rückmeldungen zur LVM-Spiegelung gelesen, wie in einigen Antworten in dieser Frage erwähnt .
Yan Li
@ Yan, ich stimme zu. Ich benutze auch immer mdadm RAid (1)
davidgo
4

Wenn Sie alle RAID, LUKS und LVM wollen, würde ich empfehlen RAID -> LUKS -> LVM -> FS. RAID --> LVM --> LUKS --> LVM --> FSist nicht besser als RAID -> LUKS -> LVM- um Volumes zu erweitern, fügen Sie einfach mehr RAID -> LUKSGeräte zu einer Volume-Gruppe hinzu.

RAID --> LVM --> LUKS --> FS - Das Verschlüsseln nur bestimmter logischer Volumes hat die Funktion, nicht standardmäßig alles zu verschlüsseln (kann als Vorteil oder Nachteil angesehen werden), erleichtert jedoch die Erweiterung des Root-FS.

Das Erweitern von LUKS über logische Volumes ist eine häufige Ursache für Probleme, wenn Benutzer sie in der falschen Reihenfolge erweitern / ihre Größe ändern. Wenn Sie LUKS auf dem gesamten md RAID-Gerät haben, wird die Größenänderung vereinfacht. Fügen Sie ein neues md-Gerät hinzu, erstellen Sie darüber hinaus LUKS, fügen Sie das Gerät zu / etc / crypttab hinzu (zumindest bei Fedora- und RHEL-Klonen) und erweitern Sie Ihre Volume-Gruppe. Wenn sich Root-FS in der Volume-Gruppe befindet, müssen Sie rd.luks.uuidder Kernel-Cmdline einen weiteren Eintrag hinzufügen (bearbeiten Sie / etc / default / grub und generieren Sie grub.cfg neu.)

LUKS -> RAIDist normalerweise falsch - Daten werden mehrmals verschlüsselt, wodurch mehr CPU-Zyklen ohne Verstärkung verbraucht werden. Es besteht auch die Möglichkeit, versehentlich eine ausgefallene Festplatte durch eine neue zu ersetzen, ohne LUKS einzurichten, wenn eine Festplatte ausfällt.

Ausfahren und Schrumpfen:

Gehen Sie beim Ausfahren immer von der Unterseite des Stapels, wenn Sie von oben schrumpfen.

Beispiel:

Erweitern RAID -> LVM -> LUKS -> FS (die ersten beiden Schritte sind optional, wenn in der Datenträgergruppe genügend freier Speicherplatz vorhanden ist):

  1. Fügen Sie neue Festplatten hinzu und erstellen Sie md RAID.
  2. Hinzufügen eines mdX-Geräts zur Datenträgergruppe.
  3. Erweitern Sie das logische Volume.
  4. Erweitern Sie das LUKS-Gerät.
  5. FS verlängern.

Schrumpfen RAID -> LVM -> LUKS -> FS :

  1. FS verkleinern.
  2. Schrumpfen LUKS Gerät.
  3. Logisches Volume verkleinern.
Marsmensch
quelle