ZFS over iSCSI - Fehler

Haithabu84

Well-Known Member
Oct 19, 2016
119
4
58
32
Hallo Leute,

ich bin gerade ein bisschen am testen, um heraus zufinden ob ich damit eventuell ein vorhandenes Problem lösen kann. Im Prinzip geht es darum zwei Windows Server zu virtualisieren und diese mit Live-Snapshots zu sichern. Ich weiß, dabei handelt es sich nicht um ein Backup, es geht viel mehr darum das Disaster Recovery zu vereinfachen.

Nun hatte ich gelesen das es mit Proxmox nur folgende Optionen gibt um Snapshots auf Storages auszuführen:

  • Ceph - lohnt sich für mich nicht, da es erst ab 3 Nodes wirklich Sinn macht
  • LVM local - ist eben local
  • zfs local - eben auch
  • Sheepdog - keine Erfahrung vorhanden
  • ZFS over iSCSI - mein persönlicher Favorit
Da ich kein Geld für ein teures SAN von den bekannten Herstellern ausgeben möchte, soll später ein Self-Made-SAN bestehend aus einen Supermicro-Server mit entsprechender Hardware und SSD´s betrieben werden. Frage nebenbei: Gibt es noch andere Möglichkeiten kostengünstig eine SAN-Konstrukt zu realisieren?

Jetzt habe ich mir auf einem Ubuntu ein ZFS over iSCSI eingerichtet. Funktioniert auch alles soweit und kann sogar unter Windows eingebunden werden. In dem Webinterface vom Proxmox 5.1 habe ich nun das Target hinzugefügt. Leider taucht folgender Fehler auf:

command '/usr/bin/ssh -o 'BatchMode=yes' -i /etc/pve/priv/zfs/192.168.178.201_id_rsa root@192.168.178.201 zfs list -o name,volsize,origin,type,refquota -t volume,filesystem -Hr' failed: exit code 255 (500)

Die Datei ist aber vorhanden und ich bin genau nach Anleitung vorgegangen https://pve.proxmox.com/wiki/Storage:_ZFS_over_iSCSI

Der Login hatte auch wunderbar geklappt, dennoch kommt der Fehler. Habe das Target auch nochmal neu angelegt, brachte ebenfalls nichts. Woran liegt das?

Ich hoffe mir kann da jemand helfen.

Gruß
 
Hmm ok jetzt wird's spannend, laut Forenmeldungen hier geht das ja nur mit Solaris und Co. Nicht mit ZFS Linux. Sollte ja gehen tuts aber wohl nicht. Hatte es selbst mal vor ca. 1.5 Jahren probiert. Bin da nicht klar gekommen. Hast du da ne Anleitung für die ZFS Serverkonfiguration? Täte es gerne selbst wieder probieren.
 
Hmm ok jetzt wird's spannend, laut Forenmeldungen hier geht das ja nur mit Solaris und Co. Nicht mit ZFS Linux. Sollte ja gehen tuts aber wohl nicht. Hatte es selbst mal vor ca. 1.5 Jahren probiert. Bin da nicht klar gekommen. Hast du da ne Anleitung für die ZFS Serverkonfiguration? Täte es gerne selbst wieder probieren.

Normalerweise ist es keine große Hürde mehr. Habe es mit Ubuntu Server gemacht. Seit 15.04 wurde zfsutils-linux offiziel ins Universe-Repo aufgenommen und bis jetzt funktioniert es tadellos und ohne Probleme. https://wiki.ubuntuusers.de/ZFS_on_Linux/

Einfach installieren und los legen. Nicht mehr wie vorher wo man sich noch die Header ziehen musste.

Es scheitert vermutlich noch nicht mal am ZFS over iSCSI, denn das konnte ich einwandfrei unter Windows einbinden. Nur der komische Login vom Proxmox-Node zum "Storage" per SSH klappt nicht... und ich habe keinen Schimmer wieso.
 
Habe meinen Fehler gefunden... man darf wohl beim ersten Schritt kein zusätzliches Passwort für den Schlüssel setzen. Was im nachher vielleicht sogar logisch ist. Dachte das Passwort ist dafür da um den Schlüssel zu vor Mißbrauch zu schützen.

Also bei diesem Schritt, wie in der Wiki, kein Passwort setzen... dann klappt es:

ssh-keygen -f /etc/pve/priv/zfs/192.168.1.1_id_rsa
 
Hallo nochmal,

ich roll das hier nochmal auf. Ich kann über targetcli zfs also normales ISCSI Laufwerk freigeben. Aber nicht als ZFS direkt. Bitte um eine Anleitung wie man nun so eine ZFS-ISCSI Freigabe auf einem Debian/Ubuntu konfiguriert. Ich komm da nicht mal zum Anfangen. Finde Null Anleitung im Netz. Vermutlich suche ich falsch da ich es nicht richtig verstehe. Würde es aber gerne wissen.
Wäre super nett von dir wenn du ne Anleitung hierfür basteln könntest. Oder zumindest ein paar Links wie man nun so ne Freigabe baut und was man dazu braucht.

Lieben Dank :)

Nachtrag: Hab hier noch einen Link gefunden: http://scyu.logdown.com/posts/277456-create-zfs-iscsi-nfs-storage-on-ubuntu-14-04-for-esxi
Mir fehlt am Server (Proxmox 5.2 mit Kernel 4.15) wohl das "iblock".

Und noch ein Link der erklärt wie wichtig iblock ist: http://linux-iscsi.org/wiki/Targetcli#IBLOCK
 
Last edited:
@fireon Hi, hast du eine Lösung gefunden? Ist es nun möglich "ZFS over iscsi" auf einem Debian9 einzurichten?

PS: Hab mir deine Anleitung zu iscsi angesehen, aber die ist ja so wie ich das verstehe für normales iscsi.
 
Eine Idee für ein "distributed storage" mit "thin provisioning"?
NFS Share geht ja nicht, da dort "trim" nicht geht, und somit "this provisioning" nicht wirklich nutzbar ist.
 
Scheinbar kommt hier etwas diesbezüglich, sodass "zfs over iscsi" über LIO (somit auch Debian) möglich ist:
sollte schon möglich sein mit aktuellen paketen (seit libpve-storage-perl 5.0-25)
 
Tja was soll ich sagen. Läuft tadellos und ist super einfach einzurichten.

Wenn ich bloß diese zwei Infos vor ein paar Tagen gehabt hätte.
Hab mich ja ziemlich deppert gesucht, von Ubuntu bis FreeBSD, bis ich den genannten Threads gefunden, sowie der dcsapak geantwortet hat und dadurch alles klar wurde.

Da ja nun Proxmox die LUN und BLOCK Verwaltung übernimmt, musst du einfach nur einen Target sowie eine ACL Anlegen und dies im Proxmox Cluster Storage eintragen. Voila... alles läuft.
 
  • Like
Reactions: fireon
Tja was soll ich sagen. Läuft tadellos und ist super einfach einzurichten.
Tja... also ich checks überhaupt nicht. Hab mich jetzt zwei Stunden mit dem Thema befasst und komm auf keinem grünen Zweig.

Was nun Tragetcli? Habs damit eingestellt. Tut sich nichts. Bitte sei so nett und beschreibe doch in einem kleinem HowTo wie man Server und Client einrichtet. Was zu installieren ist, was zu konfigurieren, wie... und was man noch beachten sollten.

Vielen Dank :)
 
Hi, klar hier ist eine kleine Howto die ich für erstellt hatte:


##########################################################################
Because the new Proxmox Version has allready implemented LIO Target support, there is not mucht to do on this site.

(min version of module libpve-storage-perl 5.0-25)

check with the following if your pve is on a compatible version for LIO zfs over iscsi

Code:
apt-cache policy libpve-storage-perl

On one cluster pve-node:

create the ssh key the name of the key follows this naming scheme: <portal>_id_rsa. (in our example the IP address of the server target is 10.1.1.100)

Code:
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
Connect from every pve-node once to the iscsi target server

ssh -i /etc/pve/priv/zfs/10.1.1.100_id_rsa root@10.1.1.100
Now you need to go to all your pve-nodes which should have access to this iscsi target and run the following to see and note their iscsi initiator name

Code:
cat /etc/iscsi/initiatorname.iscsi


First of all we need to change some openssh config and create ssh keys so that all nodes are able to ssh to the new iscsi target without passwords. This is only needed, if the iscsi target is not in the same pve-cluster or is not an pve at all (FreeBSD, Ubuntu, Debian Server, etc.). This of course has to be done only once in the cluster because it is distributed throught the pve-clusterfs

Code:
cat >> /etc/ssh/sshd_config <<EOF
UseDNS no
GSSAPIAuthentication no
EOF

Create a zfs device that will be used for the iscsi blocks

Code:
zfs create storage/iscsi #for example
Then install targetcli-fb

Code:
apt install targetcli-fb
Now run targetcli to configure the target and the acl.

Code:
targetcli
ls #for listing the config

The finished config should look like this

Code:
o- / ............................................................................................................. [...]
  o- backstores .................................................................................................. [...]
  | o- block ...................................................................................... [Storage Objects: 2]
  | 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.pve.x8664:sn.247bce90c98e ................................................. [TPGs: 1]
  |   o- tpg1 ................................................................................... [no-gen-acls, no-auth]
  |     o- acls .............................................................................................. [ACLs: 1]
  |     | o- iqn.1993-08.org.debian:01:483ced7ffc70 ................................................... [Mapped LUNs: 2]
  |     o- luns .............................................................................................. [LUNs: 2]
  |     o- portals ........................................................................................ [Portals: 1]
  |       o- 0.0.0.0:3260 ......................................................................................... [OK]
  o- loopback ............................................................................................. [Targets: 0]
  o- vhost ................................................................................................ [Targets: 0]/>

So to establish this config we do the following

Code:
cd iscsi
create #create a iscsi target. When nothing added to the command the name will be created automaticaly
cd iqn.thenewtargetname #cd in the newly created target name
cd tpg1 # cd to the target portal group
cd acls # cd to the acls to create rules
create iqn.the.initiator.name # here you have to fill in one by one all of your pve-nodes initiator iqns

Cluster Storage config in PVE

Now the last thing to do is to configure the new storage in the pve-cluster to be able to access it in proxmox:unnamed.png
 
Vielen Dank für dein Howto. Hat sofort funktioniert. Konnte gleich eine VM erstellen. Das was ich nicht schaffe ist über ein Template eine VM zu erstellen. Egal ob ich neu mache, oder nach dem Erstellen move. Hab hier anscheinend ein Berechtigungsproblem.
Code:
create full clone of drive scsi0 (SSD-vmdata:vm-106-disk-1)
Warning: Identity file /etc/pve/priv/zfs/2001:460:1fab:578:ec4:7afa:feab:c712_id_rsa not accessible: No such file or directory.
Warning: Identity file /etc/pve/priv/zfs/2001:460:1fab:578:ec4:7afa:feab:c712_id_rsa not accessible: No such file or directory.
transferred: 0 bytes remaining: 34359738368 bytes total: 34359738368 bytes progression: 0.00 %
qemu-img: Could not open 'iscsi://2001:460:1fab:578:ec4:7afa:feab:c712/iqn.2019-02.org.linux-iscsi.backup.tux.at:sn.b0ee28cdfaef/0': iSCSI: Failed to connect to LUN : Failed to start full connect Invalid target:2001:460:1fab:578:ec4:7afa:feab:c712 Can not resolv into IPv4/v6.
Warning: Identity file /etc/pve/priv/zfs/2001:460:1fab:578:ec4:7afa:feab:c712_id_rsa not accessible: No such file or directory.
TASK ERROR: storage migration failed: copy failed: command '/usr/bin/qemu-img convert -p -n -T none -f raw -O raw /dev/zvol/ssd-pool/SSD-vmdata/vm-106-disk-1 iscsi://2001:460:1fab:578:ec4:7afa:feab:c712/iqn.2019-02.org.linux-iscsi.backup.tux.at:sn.b0ee28cdfaef/0' failed: exit code 1
Was hast du denn bei diesen Verzeichnissen für Rechte?
Code:
ls -l /etc/pve/priv/zfs/
ls -ld /etc/pve/priv/zfs/
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!