Ich plane, einen Satz von 3 x 2 TB 7200 U / min-Laufwerken als LUKS-verschlüsselten Z-RAID-Pool unter Linux einzurichten (für eine NAS-Lösung).
Mein Verständnis des luksFormat
vorliegenden Problems ist, dass die einzige Möglichkeit, dies zu erreichen, darin besteht, auf jedem physischen Gerät einen Zpool aus entsperrten LUKS-Containern zusammenzustellen.
Ich habe folgende Bedenken:
Würde es die Schreibleistung nicht erheblich beeinträchtigen? In diesem Setup werden redundante Daten mehrmals verschlüsselt, da LUKS Z-RAID nicht "kennt". In der LUKS-on-mdadm-Lösung werden Daten einmal verschlüsselt und lediglich mehrmals auf Festplatten geschrieben. Meine CPU unterstützt Intel AES-NI.
Wird ZFS bei der Ausführung von Device-Mapper-LUKS-Containern im Gegensatz zu physischen Geräten auf Festplattenfehler aufmerksam? Wie wäre es mit Deduplizierung und anderen ZFS-Funktionen?
quelle
Antworten:
Auf einem der von mir verwalteten Server wird die von Ihnen beschriebene Art der Konfiguration ausgeführt. Es verfügt über sechs 1-TB-Festplatten mit einem LUKS-verschlüsselten RAIDZ-Pool. Ich habe auch zwei 3-TB-Festplatten in einem LUKS-verschlüsselten ZFS-Spiegel, die wöchentlich ausgetauscht werden, um vom Standort entfernt zu werden. Der Server verwendet diese Konfiguration seit ungefähr drei Jahren und ich hatte nie ein Problem damit.
Wenn Sie unter Linux ZFS mit Verschlüsselung benötigen, empfehle ich dieses Setup. Ich verwende ZFS-Fuse, nicht ZFS unter Linux. Ich glaube jedoch, dass dies keinen Einfluss auf das Ergebnis haben würde, außer dass ZFS unter Linux wahrscheinlich eine bessere Leistung als das von mir verwendete Setup hat.
Beachten Sie, dass LUKS RAID nicht kennt. Es weiß nur, dass es auf einem Blockgerät sitzt. Wenn Sie mit mdadm ein RAID-Gerät erstellen und dieses dann
luksformat
, repliziert mdadm die verschlüsselten Daten auf die zugrunde liegenden Speichergeräte, nicht auf LUKS.Frage 2.8 der LUKS-FAQ befasst sich mit der Frage, ob die Verschlüsselung über RAID erfolgen soll oder umgekehrt . Es enthält das folgende Diagramm.
Da ZFS die RAID- und Dateisystemfunktionen kombiniert, muss Ihre Lösung wie folgt aussehen.
Ich habe die unformatierten Partitionen als optional aufgeführt, da ZFS davon ausgeht, dass statt einer Partition ein unformatierter Blockspeicher verwendet wird. Sie können Ihren Zpool zwar mithilfe von Partitionen erstellen, dies wird jedoch nicht empfohlen, da hierdurch eine unnötige Verwaltungsebene hinzugefügt wird, und dies muss bei der Berechnung des Offsets für die Ausrichtung der Partitionsblöcke berücksichtigt werden.
Solange Sie eine Verschlüsselungsmethode wählen, die von Ihrem AES-NI-Treiber unterstützt wird, sollte kein Leistungsproblem vorliegen. Wenn Sie Cryptsetup 1.6.0 oder neuer haben, können Sie feststellen,
cryptsetup benchmark
welcher Algorithmus die beste Leistung erbringt .Diese Frage zu den empfohlenen Optionen für LUKS kann ebenfalls von Wert sein.
Angesichts der Tatsache, dass Sie Hardware-Verschlüsselungsunterstützung haben, sind Leistungsprobleme aufgrund von Partitionsfehlausrichtungen wahrscheinlicher.
ZFS unter Linux hat dem Befehl die
ashift
Eigenschaft hinzugefügt, mit derzfs
Sie die Sektorgröße für Ihre Festplatten angeben können.ashift=12
Sagen Sie gemäß der verknüpften FAQ, dass Sie Laufwerke mit einer Blockgröße von 4 KB verwenden.Die LUKS-FAQ besagen, dass eine LUKS-Partition eine Ausrichtung von 1 MB hat. In den Fragen 6.12 und 6.13 wird dies ausführlich erörtert. Außerdem erhalten Sie Hinweise, wie Sie den LUKS-Partitionsheader vergrößern können. Ich bin mir jedoch nicht sicher, ob es möglich ist, es groß genug zu machen, um sicherzustellen, dass Ihr ZFS-Dateisystem an einer 4K-Grenze erstellt wird. Ich würde gerne hören, wie das für Sie funktioniert, wenn Sie dieses Problem lösen müssen. Da Sie 2-TB-Laufwerke verwenden, tritt dieses Problem möglicherweise nicht auf.
ZFS ist über Festplattenfehler informiert, sofern es diese problemlos lesen und beschreiben kann. ZFS erfordert Blockspeicher und kennt die Besonderheiten dieses Speichers und dessen Herkunft nicht. Es werden nur die Lese-, Schreib- oder Prüfsummenfehler protokolliert, die aufgetreten sind. Es liegt an Ihnen, den Zustand der zugrunde liegenden Speichergeräte zu überwachen.
Die ZFS-Dokumentation enthält einen Abschnitt zur Fehlerbehebung, der es wert ist, gelesen zu werden. Der Abschnitt zum Ersetzen oder Reparieren eines beschädigten Geräts beschreibt, was während eines Fehlerszenarios auftreten kann und wie Sie es möglicherweise beheben können. Sie würden hier dasselbe tun wie bei Geräten ohne ZFS. Überprüfen Sie das Syslog auf Nachrichten von Ihrem SCSI-Treiber, HBA- oder HD-Controller und / oder der SMART-Überwachungssoftware und verfahren Sie dann entsprechend.
Alle ZFS-Funktionen funktionieren unabhängig davon, ob der zugrunde liegende Blockspeicher verschlüsselt ist oder nicht.
Zusammenfassung
cryptsetup benchmark
diese Option , um festzustellen , was auf Ihrer Hardware am besten funktioniert.quelle
geli
wird verwendet, um ein verschlüsseltes Gerät zu erstellen, und die Klartextdaten werden über ein zweites Gerät verfügbar gemacht, das ZFS verwendet. Den zweiten Punkt finden Sie unter doc.freenas.org/index.php/Volumes#Encryption .Eine alternative Implementierung besteht darin, ein ZVOL-Blockgerät ( http://zfsonlinux.org/example-zvol.html ) zu erstellen , das neu erstellte ZVOL mit LUKS zu verschlüsseln und dann ein ext4-Dateisystem (oder ein anderes Dateisystem) über dem verschlüsselten Block zu erstellen Gerät.
quelle