Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Proxmox Debian als ISCSI Server verwenden
Systemannahme: Debian9 mit ZFS / Proxmox5 mit ZFS
OpenSCSI macht immer wieder Probleme, die Konfiguration ist meinesachtens kompliziert und oft verwirrend. Die Lösung bietet „targetcli“. Targetcli ist seit 2.6.38 Bestandteil des Linux Kernels. Da ganze installiert sich in Debian gleich einfach wie in Ubuntu.
apt install targetcli (Ubuntu) apt install targetcli-fb (Debian9)
Erstellen des Targets
Um nun eine ISCSI-Freigabe auf unserem Server zu bekommen erstellen wir zunächst ein Zvol.
zfs create -V 50gb v-machines/testvm.deepdoc.at
Damit wir uns später auch noch auskennen, nehmen wir als zvolname gleich den FQDN unserer VM wo wir den Speicher verwenden wollen.
Dieses Zvol ist dann auch wie wenn man es direkt verwenden würde unsere virtuelle Festplatte. Oder was auch immer. Hat man das Zvol geht es an unsere Cli. Um nun mit der Konfuration zu starten geben wird den Befehl targetcli
im Terminal ein. Mittels ls
sieht man die Baumstruktur. Diese ist auch als solche zu behanden. 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]
In der Targetcli angekommen
cd /backstores/block/ /backstores/block> create name=testvm.deepdoc.at dev=/dev/zvol/v-machines/testvm.deepdoc.at
Mit ls
können wir zwischendurch immer unsere Angaben ansehen:
/backstores/block> ls o- block .................................................................................. [Storage Objects: 1] o- testvm.deepdoc.at ............... [/dev/zvol/v-machines/testvm.deepdoc.at (50.0GiB) write-thru deactivated]
Nun weiter mit der Config:
cd /iscsi/ # wir können hier zuerst nur "create" ausführe, das legt automatisch einen Namen mit serial an. Danache löschen wir den wieder und legen unseren eigenen an, mit dem Hinweis auf die VM. /iscsi/> create wwn=iqn.2003-01.org.linux-iscsi.testvm.deepdoc.at:sn.8217a0cccfbd
Das ganze leght auch das Portal mit an.
/iscsi> ls o- iscsi .......................................................................................... [Targets: 1] o- iqn.2003-01.org.linux-iscsi.testvm.deepdoc.at:sn.8217a0cccfbd ................................... [TPGs: 1] o- tpg1 ............................................................................. [no-gen-acls, no-auth] o- acls ........................................................................................ [ACLs: 0] o- luns ........................................................................................ [LUNs: 0] o- portals .................................................................................. [Portals: 1] o- 0.0.0.0:3260 ................................................................................... [OK]
Hier wird angegeben auf welcher IP-Adresse des Servers das Target freigegeben wird. Bei nur einer IP-Adresse wird diese standardmäßig ausgewählt, ansonsten kann sie explizit angegeben werden. Der Port kann ebenso angepasst werden.
/iscsi> cd iqn.2003-01.org.linux-iscsi.testvm.deepdoc.at:sn.8217a0cccfbd/tpg1/portals/ /iscsi/iqn.20.../tpg1/portals> delete ip_address=0.0.0.0 ip_port=3260 /iscsi/iqn.20.../tpg1/portals> create ip_address=2001:470:1f0b:569:ec4:7aff:feab:c815
Konfigurieren der LUN's
- Eine LUN bezeichnet eine Logical Unit (LU).
- Oft wird aber auch der Begriff Logical Unit Number verwendet.
- Sie wird zur Zuordnung für die Ansteuerung von Geräten im SCSI-Bus verwendet.
- Es können je Target ein oder mehrere LUNs bereitgestellt werden.
cd /iscsi/iqn.2003-01.org.linux-iscsi.testvm.deepdoc.at:sn.8217a0cccfbd/tpg1/luns Usere Fertig Config sieht nun so aus: <code python> o- / ..................................................................................................... [...] o- backstores .......................................................................................... [...] | o- block .............................................................................. [Storage Objects: 1] | | o- iscsi ................................. [/dev/zvol/v-machines/testshare (50.0GiB) write-thru activated] | o- fileio ............................................................................. [Storage Objects: 0] | o- pscsi .............................................................................. [Storage Objects: 0] | o- ramdisk ............................................................................ [Storage Objects: 0] o- iscsi ........................................................................................ [Targets: 1] | o- iqn.2003-01.org.linux-iscsi.backup.x8664:sn.933c0d9ab0eb ...................................... [TPGs: 1] | o- tpg1 .............................................................................. [gen-acls, no-auth] | o- acls ...................................................................................... [ACLs: 1] | | o- iqn.1993-08.org.debian:01:58e5fe8fcaf9 ........................................... [Mapped LUNs: 1] | | o- mapped_lun0 ............................................................. [lun0 block/iscsi (rw)] | o- luns ...................................................................................... [LUNs: 1] | | o- lun0 ............................................... [block/iscsi (/dev/zvol/v-machines/testshare)] | o- portals ................................................................................ [Portals: 1] | o- 0.0.0.0:3260 ................................................................................. [OK] o- loopback ..................................................................................... [Targets: 0] o- sbp .......................................................................................... [Targets: 0] o- vhost ..