[SOLVED] Hilfe beim erstellen eines verschlüsselten Laufwerk

M_E

New Member
Nov 5, 2021
2
0
1
22
Moin,
vor ab schon mal ich bin ein Anfänger :-), aber jetzt zum eigentlichen Problem. Ich möchte mir einen Proxmox Server aufsetzten, der Hauptsächlich eine Nextcloud VM hosten soll. Den Server habe ich mit 6 Festplatten ausgestattet, 2 x 250GB SATA SSDs und 4x2tb 3,5 Zoll HDDs. Die beiden SSDs laufen im ZFS raid 1, auf denen soll immer das eigentliche System der VMs / Container laufen (proxmox läuft hier auch drauf) und die anderen vier 2TB platten laufen im ZFS Raid Z2 und sind als Massenspeicher gedacht (auch für die Nextcloud VM). Ich möchte aber nun gerne (falls möglich), dass die Virtuelles Systemlaufwerk (auf dem Raid1) und die Virtuelles Datenlaufwerk (auf dem Raid Z2) verschlüsselt sind. Wenn ich das richtigverstanden habe, wird für jede Virtuelle Laufwerk ein Dataset im ZFS-Pool angelegt wird und diese kann man doch Verschlüsseln, oder? Wobei ich jetzt Hilfe benötige, ist das Erstellen eines Verschlüsselten Virtuellen Laufwerks, beziehungsweise das Erstellen einer VM mit einem Verschlüsselten Dataset/Virtuellen Laufwerk und Einbinden / Erstellen eines Datenlaufwerks (verschlüsselt). Falls es so einen Thread schon gibt, bitte ich um einen Link. Schon einmal vielen Dank im Voraus.
 
LXCs nutzen Datasets, VMs nutzen Zvols. Beides kannst du recht leicht verschlüsseln. ZFS vererbt immer seine Eigenschaften an aller Kinder-Elemente, also auch die Verschlüsselung. Am besten erstellst du dir ein verschlüsseltes Dataset (z.B. zfs create -o encryption=aes-256-gcm -o keyformat=passphrase DeinPool/DeinVerschlüsseltesDataset) und dieses verschlüsselte Dataset fügst du zu PVE als einen neuen Storage für deine virtuellen Disks (unter "Datacenter -> Storage -> Add -> ZFS" und dort dann "content type: Disk image + Container" auswählen und Pfad zu DeinPool/DeinVerschlüsseltesDataset angeben).
Alles was du dann an virtuellen Disks von LXCs und VMs in diesem Storage speicherst sollte dann automatisch verschlüsselt sein.
Autostart von VMs/LXCs musst du dann aber deaktivieren, da deine virtuellen Disks ja alle verschlüsselt sind und keine VM starten kann, bevor du das Dataset DeinPool/DeinVerschlüsseltesDataset entsperrst. Das entsperren kannst du per CLI über zfs load-key -a && zfs mount -l -a.

Aber nicht vergessen dass da native ZFS Verschlüsselung die Write Amplification verdoppelt. Und für bessere Sicherheit würde sich eine Systemvollverschlüsselung anbieten, dass da der Server überhaupt nicht booten kann, ohne das du ein Passwort eingibst. Aber das wird dann wirklich ziemlich kompliziert.

Ob bei dir Raidz2 sinn macht muss du mal gucken. Mit einem Striped Mirror hättst du doppelte Performance bei gleicher Kapazität und das spätere erweitern wäre auch leichter. Nicht vergessen das ein Raid nie ein Backup ersetzt und ein Pool aus nur 8TB auch nicht so super lange zum Resilvern braucht. Und wenn du Backups hast dann ist es auch nicht so wild, wenn da mal zwei HDDs gleichzeitig ausfallen sollten. Raidz2 macht da eher Sinn wenn es dich viel Geld kosten würde, wenn die Nextcloud mal einen Tag nicht erreichbar wäre.
Für reine Datensicherheit würde ich da eher Mirror, Striped Mirror oder wenn das Geld knapp ist Raidz1 benutzen und dann auf einem weiteren Rechner den Proxmox Backup Server installieren und dann täglich deine VMs/LXCs vom PVE zum PBS sichern lassen.

Und bevor du deine erste VM erstellst solltest du dich mit der volblocksize auseinandersetzen. Ansonsten verschwendest du vermutlich viel von deiner Speicherkapazität wegen PAdding-Overhead, wenn du deine Volblocksize nicht erhöhst. Und nicht vergessen das man einen ZFS Pool nicht mehr als 80% füllen sollte.
Tatsächlich nutzbar sind da bei dir gerade eher 2.56 TiB von deinen 8 TB. Und davon geht dann noch viel drauf wenn du Snapshots benutzen willst. Mehr als 2 TiB an virtuellen Disks würde ich da nicht auf den HDDs speichern.
 
Last edited:
  • Like
Reactions: M_E