ZFS RAID 1 – Boot Pool Verschlüsselung in Proxmox

Entweder nach der Basis-Installation vor dem Reboot (Häkchen bei „Reboot after completion“ entfernen) und dann auf die Konsole wechseln mit CTRL + ALT + F3 oder auch im Nachhinein. Diese Befehle funktionieren bei einem bestehenden System, wenn man mit dem Proxmox-VE Installation-ISO bootet, sich bis zur Länder-Auswahl durchklickt (dadurch erhält man das passende Keyboard-Layout -> macht die Eingabe leichter) und dann nach dem Wechseln mit CTRL + ALT + F3 folgendes eingibt:

# Importiert den ZFS-Pool "rpool" forciert (-f), auch wenn er woanders importiert war
zpool import -f rpool;

# Erstellt einen rekursiven Snapshot (-r) des gesamten ROOT-Datasets inkl. aller Kind-Datasets
zfs snapshot -r rpool/ROOT@copy;

# Sendet den Snapshot rekursiv (-R) und leitet ihn direkt zum Empfangen in ein neues Dataset "copyroot"
zfs send -R rpool/ROOT@copy | zfs receive rpool/copyroot;

# Löscht das ursprüngliche ROOT-Dataset rekursiv (-r) inkl. aller Snapshots und Kind-Datasets
zfs destroy -r rpool/ROOT;

# Aktiviert automatisches Erweitern des Pools, wenn die zugrunde liegenden Disks vergrößert werden
zpool set autoexpand=on rpool;

# Aktiviert automatisches TRIM für SSDs, um Performance und Lebensdauer zu optimieren
zpool set autotrim=on rpool;

# Erstellt ein neues ROOT-Dataset mit LZ4-Kompression, Checksummen und aktivierter Verschlüsselung per Passphrase
zfs create -o compression=lz4 -o checksum=on -o encryption=on -o keyformat=passphrase rpool/ROOT;

# Sendet das kopierte pve-1-Dataset rekursiv und empfängt es verschlüsselt (-o encryption=on) im neuen ROOT
zfs send -R rpool/copyroot/pve-1@copy | zfs receive -o encryption=on rpool/ROOT/pve-1;

# Löscht das temporäre copyroot-Dataset rekursiv, da die Daten nun verschlüsselt im neuen ROOT liegen
zfs destroy -r rpool/copyroot;

# Löscht den nicht mehr benötigten Snapshot vom neu erstellten verschlüsselten Dataset
zfs destroy rpool/ROOT/pve-1@copy;

# Setzt den Mountpoint des verschlüsselten pve-1-Datasets auf "/" (Root-Dateisystem)
zfs set mountpoint=/ rpool/ROOT/pve-1;

# Exportiert den Pool, damit er beim nächsten Boot neu importiert und die Passphrase abgefragt wird
zpool export rpool;

Danach muss man absofort über IPMI das Kennwort zum Entschlüsseln des ZFS-Boot-Pools eingeben. Das ganze Setup ist auch updatefest.

Comments

No comments yet. Why don’t you start the discussion?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert