Proxmox ISCSI Anbindung: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(20 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= Einrichtung von ZFS over iSCSI in Proxmox mit LIO auf Linux =
+
= Einrichtung von ZFS over iSCSI in Proxmox mit LIO auf Debian =
 +
==ZFS==
 +
*[[zfs]]
  
== Einleitung ==
 
Diese Anleitung beschreibt die vollständige Einrichtung von ZFS over iSCSI mit einem LIO iSCSI-Target auf einem Linux-Server und der Integration in Proxmox.
 
  
== Installation auf dem Linux-Server ==
+
==Debian==
= ZFS Installation unter Linux mit Aktivierung von contrib =
+
*'''debian-template''' klonen unter dem namen '''iscsi-server''' auf kvm-ebene
 +
*50GB HD anhängen
 +
*Maschine starten
 +
;Folgende Daten
 +
{| class="wikitable"
 +
! Einstellung        !! Wert
 +
|-
 +
| Hostname            || iscsi-server.lab.int
 +
|-
 +
| IP-Adresse          || 10.0.10.235/24
 +
|-
 +
| Gateway            || 10.0.10.1
 +
|-
 +
| Nameserver (DNS)    || 8.8.8.8
 +
|}
 +
;Konfigurieren von Hand oder mit '''debian-kvm-setup.sh'''
  
 
== Einleitung ==
 
== Einleitung ==
Diese Anleitung beschreibt, wie du das `contrib`-Repository aktivierst, um ZFS auf einem Debian- oder Ubuntu-System zu installieren.
+
Diese Anleitung beschreibt die Einrichtung eines iSCSI-Servers mit ZFS unter Debian 12 sowie die Anbindung in Proxmox VE per "ZFS over iSCSI" mit dem LIO-Target-System.
== Aktivieren von contrib in sources.list ==
+
 
Bearbeite die Datei `sources.list`:
+
== Repository vorbereiten (contrib aktivieren) ==
 +
Bearbeite die Paketquellen:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
sudo nano /etc/apt/sources.list
+
nano /etc/apt/sources.list
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Füge `contrib` zu den relevanten Zeilen hinzu:
+
Füge contrib zu den relevanten Zeilen hinzu:
 
<syntaxhighlight>
 
<syntaxhighlight>
deb http://archive.ubuntu.com/ubuntu/ focal main restricted universe multiverse contrib
+
deb http://deb.debian.org/debian bookworm main contrib
</syntaxhighlight>
 
 
 
Speichere die Datei und aktualisiere die Paketquellen:
 
<syntaxhighlight lang="bash">
 
sudo apt update
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== ZFS und ISCSI installieren==
+
Aktualisiere die Paketliste:
Installiere ZFS mit folgendem Befehl:
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
sudo apt install zfsutils-linux
+
apt update
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== ZFS-Pool und Dataset erstellen ==
+
== ZFS und LIO installieren ==
Erstelle einen ZFS-Pool:
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
zpool create pool1 /dev/sdX  # Ersetze /dev/sdX durch das passende Gerät
+
apt install zfsutils-linux targetcli-fb
 +
reboot
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Optional: Erstelle ein Dataset:
+
== ZFS-Pool erstellen ==
 +
Erstelle einen ZFS-Pool auf einer freien Disk oder Partition:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
zfs create -V 10G pool1/dataset
+
zpool create pool1 /dev/vdb
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== iSCSI-Target mit LIO einrichten ==
+
== iSCSI-Target in LIO anlegen ==
Starte die TargetCLI:
+
Starte die LIO-Konfiguration:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
targetcli
 
targetcli
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Erstelle ein iSCSI-Target:
+
Lege das iSCSI-Target an:
<syntaxhighlight lang="bash">
+
<syntaxhighlight>
 
cd /iscsi
 
cd /iscsi
create iqn.2024-09.com.example:storage
+
create iqn.2025-07.net.example:storage
 +
exit
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Erstelle eine Backstore und füge sie als LUN hinzu:
+
== ACL für Proxmox-Initiatoren anlegen ==
 +
Proxmox verwendet iSCSI-Initiatornamen, die freigegeben werden müssen. Ermittle den Initiatornamen auf jedem Node:
 +
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
cd /backstores/block
+
cat /etc/iscsi/initiatorname.iscsi
create disk1 /dev/zvol/pool1/dataset1
 
cd /iscsi/iqn.2024-09.com.example:storage/tpg1/luns
 
create /backstores/block/disk1
 
 
</syntaxhighlight>
 
</syntaxhighlight>
  
== SSH-Schlüssel für Proxmox einrichten ==
+
Erstelle für jeden Node einen passenden ACL-Eintrag:
Erstelle den SSH-Schlüssel auf einem Proxmox-Knoten:
+
 
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
ssh-keygen -f /etc/pve/priv/zfs/10.0.10.210:3260_id_rsa
+
targetcli
 +
cd /iscsi/iqn.2025-07.net.example:storage/tpg1/acls
 +
create iqn.1993-08.org.debian:01:pmx1
 +
create iqn.1993-08.org.debian:01:pmx2
 +
create iqn.1993-08.org.debian:01:pmx3
 +
exit
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Kopiere den öffentlichen Schlüssel auf den iSCSI-Server:
+
== SSH-Schlüssel pro Proxmox-Node für ZFS-Zugriff ==
 +
Jeder Proxmox-Knoten benötigt einen eigenen SSH-Schlüssel, um mit dem ZFS-Server (10.0.10.235) kommunizieren zu können.
 +
 
 +
Auf jedem Node:
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
ssh-copy-id -i /etc/pve/priv/zfs/10.0.10.210:3260_id_rsa.pub root@10.0.10.210
+
mkdir -p /etc/pve/priv/zfs
 +
ssh-keygen -f /etc/pve/priv/zfs/10.0.10.235_id_rsa
 +
ssh-copy-id -i /etc/pve/priv/zfs/10.0.10.235_id_rsa.pub root@10.0.10.235
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
;Wichtig Auf jedem Proxmox-Node, einmalig HostKey akzeptieren.
 +
ssh -i /etc/pve/priv/zfs/10.0.10.235_id_rsa root@10.0.10.235
 +
 +
== Proxmox: Speicher hinzufügen ==
 +
In der Proxmox-Oberfläche: 
 +
Datacenter → Storage → Add → ZFS over iSCSI
  
== Integration in Proxmox ==
+
Einstellungen:
Gehe in Proxmox zu „Datacenter -> Storage -> Add -> ZFS over iSCSI“ und fülle die Felder aus:
+
* ID: zfs-iscsi
 +
* Portal: 10.0.10.235
 +
* Pool: pool1
 +
* Target: iqn.2025-07.net.example:storage
 +
* Target Portal Group: tpg1
 +
* iSCSI Provider: LIO
 +
* Blocksize: 8k
 +
* Write Cache: aktiviert
 +
* Thin Provisioning: optional
  
* ID: fs2-iscsi
+
Hinweise:
* Portal: 10.0.10.210:3260
+
* Target Portal Group muss exakt tpgX heißen – z. B. tpg1
* Pool: pool1/dataset1
+
* Proxmox erstellt zvols und LUNs automatisch – keine manuelle Konfiguration nötig
* Target: iqn.2024-09.com.example:storage
+
* Blocksize 8k wird empfohlen zur Vermeidung von Overhead
* Target Portal Group: 1
 
  
 
== Testen ==
 
== Testen ==
Erstelle eine VM oder einen Container in Proxmox und wähle den neuen iSCSI-Speicher aus. Verifiziere die Verbindung und die Funktionalität durch die Nutzung der Disk.
+
Erstelle eine neue VM in Proxmox und wähle den ZFS-iSCSI-Speicher aus.
 +
Proxmox legt dabei automatisch ein zvol an und bindet es per LIO ein.
  
Hatte schon was ist das akurat?
+
== Fehlerbehebung ==
 +
* systemctl status rtslib-fb-targetctl
 +
* targetcli ls
 +
* Firewall prüfen: Port 3260 TCP muss erreichbar sein
 +
* Bei „Authorization failure(514)“ sicherstellen, dass der Initiator als ACL in LIO eingetragen ist
 +
==Zugriff auf ein zvol unter Debian==
 +
*[[Zugriff auf ein zvol unter Debian]]

Aktuelle Version vom 11. Juli 2025, 07:44 Uhr

Einrichtung von ZFS over iSCSI in Proxmox mit LIO auf Debian

ZFS


Debian

  • debian-template klonen unter dem namen iscsi-server auf kvm-ebene
  • 50GB HD anhängen
  • Maschine starten
Folgende Daten
Einstellung Wert
Hostname iscsi-server.lab.int
IP-Adresse 10.0.10.235/24
Gateway 10.0.10.1
Nameserver (DNS) 8.8.8.8
Konfigurieren von Hand oder mit debian-kvm-setup.sh

Einleitung

Diese Anleitung beschreibt die Einrichtung eines iSCSI-Servers mit ZFS unter Debian 12 sowie die Anbindung in Proxmox VE per "ZFS over iSCSI" mit dem LIO-Target-System.

Repository vorbereiten (contrib aktivieren)

Bearbeite die Paketquellen:

nano /etc/apt/sources.list

Füge contrib zu den relevanten Zeilen hinzu:

deb http://deb.debian.org/debian bookworm main contrib

Aktualisiere die Paketliste:

apt update

ZFS und LIO installieren

apt install zfsutils-linux targetcli-fb
reboot

ZFS-Pool erstellen

Erstelle einen ZFS-Pool auf einer freien Disk oder Partition:

zpool create pool1 /dev/vdb

iSCSI-Target in LIO anlegen

Starte die LIO-Konfiguration:

targetcli

Lege das iSCSI-Target an:

cd /iscsi
create iqn.2025-07.net.example:storage
exit

ACL für Proxmox-Initiatoren anlegen

Proxmox verwendet iSCSI-Initiatornamen, die freigegeben werden müssen. Ermittle den Initiatornamen auf jedem Node:

cat /etc/iscsi/initiatorname.iscsi

Erstelle für jeden Node einen passenden ACL-Eintrag:

targetcli
cd /iscsi/iqn.2025-07.net.example:storage/tpg1/acls
create iqn.1993-08.org.debian:01:pmx1
create iqn.1993-08.org.debian:01:pmx2
create iqn.1993-08.org.debian:01:pmx3
exit

SSH-Schlüssel pro Proxmox-Node für ZFS-Zugriff

Jeder Proxmox-Knoten benötigt einen eigenen SSH-Schlüssel, um mit dem ZFS-Server (10.0.10.235) kommunizieren zu können.

Auf jedem Node:

mkdir -p /etc/pve/priv/zfs
ssh-keygen -f /etc/pve/priv/zfs/10.0.10.235_id_rsa
ssh-copy-id -i /etc/pve/priv/zfs/10.0.10.235_id_rsa.pub root@10.0.10.235
Wichtig Auf jedem Proxmox-Node, einmalig HostKey akzeptieren.
ssh -i /etc/pve/priv/zfs/10.0.10.235_id_rsa root@10.0.10.235

Proxmox: Speicher hinzufügen

In der Proxmox-Oberfläche: Datacenter → Storage → Add → ZFS over iSCSI

Einstellungen:

  • ID: zfs-iscsi
  • Portal: 10.0.10.235
  • Pool: pool1
  • Target: iqn.2025-07.net.example:storage
  • Target Portal Group: tpg1
  • iSCSI Provider: LIO
  • Blocksize: 8k
  • Write Cache: aktiviert
  • Thin Provisioning: optional

Hinweise:

  • Target Portal Group muss exakt tpgX heißen – z. B. tpg1
  • Proxmox erstellt zvols und LUNs automatisch – keine manuelle Konfiguration nötig
  • Blocksize 8k wird empfohlen zur Vermeidung von Overhead

Testen

Erstelle eine neue VM in Proxmox und wähle den ZFS-iSCSI-Speicher aus. Proxmox legt dabei automatisch ein zvol an und bindet es per LIO ein.

Fehlerbehebung

  • systemctl status rtslib-fb-targetctl
  • targetcli ls
  • Firewall prüfen: Port 3260 TCP muss erreichbar sein
  • Bei „Authorization failure(514)“ sicherstellen, dass der Initiator als ACL in LIO eingetragen ist

Zugriff auf ein zvol unter Debian