Dies ist eine alte Version des Dokuments!


Proxmox Debian als ZFS-Over-ISCSI Server verwenden

Systemannahme: Debian9 mit ZFS / pve-manager/5.3-11/d4907f84 (running kernel: 4.15.18-11-pve) mit ZFS

Seit kurzem funktioniert nun ZFS over ISCSI auch auf Debian Proxmox. Für die Installation ist lediglich ein Paket am Server erforderlich.

apt install targetcli-fb -y

Damit die Nodes auf das ZFS Dataset dynamisch drauf zugreifen können, müssen diese autorisiert werden. Hierfür werden ACL's in der Targetcli und SSH-Keys verwendet.

mkdir /etc/pve/priv/zfs
ssh-keygen -f /etc/pve/priv/zfs/10.1.1.100_id_rsa
ssh-copy-id -i /etc/pve/priv/zfs/10.1.1.100_id_rsa.pub root@10.1.1.100

Nun muss man von jedem Server einmal eine Verbindung aufbauen. Ist alles ok geht die Verbindung ohne Passwort und Fingerprintanfrage durch.

ssh -i /etc/pve/priv/zfs/10.1.1.100_id_rsa root@10.1.1.100

Dieser Name wird für die ACL's verwendet. Hierfür geht man auf jede Node die Zugriff haben soll und liest diesen aus:

cat /etc/iscsi/initiatorname.iscsi

Hier sind die 3 Nodes als Beispiel:

iqn.2019-03.org.debian:01:3eba667c8c
iqn.2019-03.org.debian:02:a0bf71a32216
iqn.2019-03.org.debian:03:5eba5ac67c8

Für die Freigabe legt man zuerst ein ganz normales ZFS Dataset auf einem Pool seiner Wahl an. Darunter werden dann die Zvols ganz normal von Proxmox abgelegt.

zfs create testpool/iscsi

Hat man das Dataset geht es an unsere Cli. Um nun mit der Konfuration zu starten, geben wir den Befehl targetcli im Terminal ein. Mittels ls sieht man die Baumstruktur. Diese ist auch als solche zu behandeln. Man kann mit den default Linuxbefehlen darin navigieren. help zeigt die Hilfe, mittels cd kann man mit Pfeiltasten navigieren, und mit saveconfig wird gespeichert.

Das ganze sieht nun so aus:

/> ls
o- / ..................................................................................................... [...]
  o- backstores .......................................................................................... [...]
  | o- block .............................................................................. [Storage Objects: 0]
  | o- fileio ............................................................................. [Storage Objects: 0]
  | o- pscsi .............................................................................. [Storage Objects: 0]
  | o- ramdisk ............................................................................ [Storage Objects: 0]
  o- iscsi ........................................................................................ [Targets: 0]
  o- loopback ..................................................................................... [Targets: 0]
  o- sbp .......................................................................................... [Targets: 0]
  o- vhost ........................................................................................ [Targets: 0]