Skip to main content

Neue Seite

Proxmox iSCSI SAN mit tgt und LVM

Diese Dokumentation beschreibt die bisher eingerichtete iSCSI-SAN-Konfiguration mit tgt auf der SAN-Seite und dem ersten Proxmox-Node pve_1.


1. Ziel der Konfiguration

Es wurde ein iSCSI-Target auf der SAN-Seite bereitgestellt und auf dem ersten Proxmox-Node als Shared-LVM-Storage eingebunden.

Der Aufbau ist:

tgt SAN
  └─ iSCSI Target: iqn.2026-02-25.linux.proxmox.pve:cleopatra
       └─ LUN: /dev/mapper/cleopatra
            └─ pve_1 sieht LUN als /dev/sda
                 └─ /dev/sda1 als LVM Physical Volume
                      └─ VG: vg_vmstore
                           └─ Proxmox Storage: lvm-cleopatra

2. Namensschema

Objekt Name Beschreibung
SAN-Host big-bunda Server mit tgt als iSCSI-Target-Dienst
Erster Proxmox-Node pve_1 / byte-me Erster Proxmox-VE-Node, der das iSCSI-LUN nutzt
iSCSI Portal 10.99.255.1:3260 IP-Adresse und Port des iSCSI-Targets
iSCSI Target IQN iqn.2026-02-25.linux.proxmox.pve:cleopatra Eindeutiger iSCSI-Targetname für den Storage Cleopatra
tgt Backing Store /dev/mapper/cleopatra Blockdevice, das vom tgt-Target als LUN exportiert wird
Proxmox iSCSI Storage-ID iscsi-cleopatra Proxmox-Eintrag für die reine iSCSI-Verbindung
LVM Volume Group vg_vmstore LVM-VG auf der iSCSI-LUN
Proxmox LVM Storage-ID lvm-cleopatra Nutzbarer VM-Storage in Proxmox

3. Wichtige Entscheidung: Warum zwei Proxmox-Storage-Einträge?

In Proxmox gibt es zwei Einträge, weil iSCSI und LVM zwei verschiedene Schichten sind.

iscsi-cleopatra = Verbindung zum iSCSI-Target
lvm-cleopatra   = eigentlicher VM-Storage auf der LVM Volume Group

Der iSCSI-Eintrag selbst hat content none, weil Proxmox dort keine VM-Disks direkt ablegt. Die eigentlichen VM-Disks werden später auf lvm-cleopatra erstellt.


4. tgt SAN-Konfiguration

Auf dem SAN-Host big-bunda wird tgt als iSCSI-Target-Daemon genutzt. Das exportierte Blockdevice ist:

/dev/mapper/cleopatra

Beispiel für die tgt-Konfiguration:

<target iqn.2026-02-25.linux.proxmox.pve:cleopatra>
    driver iscsi

    <backing-store /dev/mapper/cleopatra>
        lun 1
        device-type disk
        vendor_id "linux"
        product_id "iscsi disk"
        product_rev "0001"
        scsi_sn "cleopatra-lun1"
        write-cache off
    </backing-store>

    # zugriff nur für erlaubte proxmox-nodes
    initiator-address 10.99.255.X

    # initiator-iqn von pve_1 / byte-me
    # prüfen auf dem pve-node mit:
    # cat /etc/iscsi/initiatorname.iscsi
    initiator-name iqn.1993-08.org.debian:01:1ebae4d041e

    # mutual chap
    # incominguser = initiator authentifiziert sich beim target
    # outgoinguser = target authentifiziert sich beim initiator
    incominguser pve-byteme "SECRET_NICHT_IN_DOKU_EINTRAGEN"
    outgoinguser tgt-cleopatra "ANDERES_SECRET_NICHT_IN_DOKU_EINTRAGEN"
</target>

Wichtig: Die CHAP-Secrets dürfen nicht identisch sein. Für incominguser und outgoinguser müssen unterschiedliche Passwörter verwendet werden.

Für dieses Setup wurden kurze, kompatible CHAP-Secrets verwendet, da längere Secrets im konkreten tgt/Open-iSCSI-Stack Probleme verursachen können. Empfohlen sind zufällige Secrets mit 12 bis 16 Zeichen.

openssl rand -hex 8

5. Proxmox pve_1 / byte-me: iSCSI-Verbindung

Auf dem ersten Proxmox-Node wurde das Target über das Portal 10.99.255.1 eingebunden.

Proxmox-Storage-Eintrag:

iscsi: iscsi-cleopatra
        portal 10.99.255.1
        target iqn.2026-02-25.linux.proxmox.pve:cleopatra
        content none

Das iSCSI-LUN ist auf pve_1 sichtbar als:

/dev/sda

Der stabile Gerätepfad lautet:

/dev/disk/by-path/ip-10.99.255.1:3260-iscsi-iqn.2026-02-25.linux.proxmox.pve:cleopatra-lun-1

6. Entfernen des alten VMFS-Datastores

Auf dem iSCSI-LUN befand sich vorher ein VMware VMFS6-Dateisystem. Dieses wurde entfernt, da die Daten nicht mehr benötigt wurden.

Vorheriger Zustand:

sda
└─sda1 VMFS_volume_member 6

Verwendete Befehle:

lun="/dev/disk/by-path/ip-10.99.255.1:3260-iscsi-iqn.2026-02-25.linux.proxmox.pve:cleopatra-lun-1"

findmnt "$lun"
findmnt "${lun}-part1"

wipefs -a "${lun}-part1"
wipefs -a "$lun"
partprobe "$lun"
udevadm settle

Achtung: Diese Befehle löschen Dateisystem- und Partitionssignaturen. Sie dürfen nur verwendet werden, wenn die Daten auf der LUN wirklich gelöscht werden dürfen.


7. Neue GPT-Partition für LVM

Nach dem Entfernen der VMFS-Signaturen wurde eine neue GPT-Partitionstabelle mit einer LVM-Partition erstellt.

parted -s "$lun" mklabel gpt
parted -s "$lun" mkpart primary 1MiB 100%
parted -s "$lun" set 1 lvm on
partprobe "$lun"
udevadm settle

Danach war die LUN sauber vorbereitet:

NAME   FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
└─sda1

8. LVM auf iSCSI erstellen

Auf der neuen Partition wurde ein LVM Physical Volume und danach eine Volume Group erstellt.

pvcreate "${lun}-part1"
vgcreate vg_vmstore "${lun}-part1"

Ergebnis:

PV                 VG          Fmt  Attr PSize    PFree
/dev/sda1          vg_vmstore  lvm2 a--  <6,99t   <6,99t

VG          #PV #LV #SN Attr   VSize    VFree
vg_vmstore   1   0   0 wz--n-  <6,99t   <6,99t

Wichtig für weitere Nodes: pvcreate und vgcreate wurden nur einmal auf pve_1 ausgeführt. Auf weiteren Proxmox-Nodes darf das nicht erneut ausgeführt werden. Weitere Nodes sollen die bestehende VG nur erkennen.


9. Proxmox LVM Storage

Der Proxmox-LVM-Storage wurde als shared Storage angelegt.

pvesm add lvm lvm-cleopatra \
  --vgname vg_vmstore \
  --content images,rootdir \
  --shared 1

Finaler Proxmox-Storage-Eintrag:

lvm: lvm-cleopatra
        vgname vg_vmstore
        content images,rootdir
        shared 1

Damit ist lvm-cleopatra der nutzbare Storage für VM-Disks und Container-Rootdisks.


10. Aktueller Proxmox-Status

Aktueller Status auf pve_1:

Name                   Type     Status     Total (KiB)      Used (KiB) Available (KiB)        %
iscsi-cleopatra       iscsi     active               0               0               0    0.00%
lvm-cleopatra           lvm     active      7503060992               0      7503060992    0.00%

Dass iscsi-cleopatra eine Größe von 0 zeigt, ist normal. Dieser Eintrag ist nur die Verbindung zum iSCSI-Target. Die nutzbare Kapazität wird bei lvm-cleopatra angezeigt.


11. Finaler Aufbau in Proxmox

iscsi: iscsi-cleopatra
        portal 10.99.255.1
        target iqn.2026-02-25.linux.proxmox.pve:cleopatra
        content none

lvm: lvm-cleopatra
        vgname vg_vmstore
        content images,rootdir
        shared 1

12. Hinweise für spätere Proxmox-Nodes

Bei weiteren Proxmox-Nodes muss nur die iSCSI-Verbindung eingerichtet werden. Die LVM-Struktur existiert bereits.

Auf jedem weiteren Node prüfen:

cat /etc/iscsi/initiatorname.iscsi
pvesm status
pvs
vgs

Jeder Node braucht einen eigenen eindeutigen Initiator-IQN. Dieser muss auf der SAN-Seite in der tgt-Konfiguration als initiator-name erlaubt werden.

Nicht erneut ausführen:

pvcreate
vgcreate
wipefs
parted mklabel

Diese Befehle würden die bestehende LVM-Struktur beziehungsweise die Daten auf dem Shared Storage beschädigen. Storage verzeiht so etwas nicht, es merkt sich das nur in Form von Datenverlust.


13. Sicherheitsregeln

  • iSCSI nur über das dedizierte Storage-Netz betreiben.
  • Port 3260/tcp nur für autorisierte Proxmox-Nodes erlauben.
  • Pro Node einen eigenen Initiator-IQN verwenden.
  • Auf dem tgt-Target sowohl initiator-address als auch initiator-name setzen.
  • Mutual CHAP verwenden.
  • incominguser und outgoinguser mit unterschiedlichen Secrets konfigurieren.
  • Keine echten CHAP-Secrets in BookStack dokumentieren.
  • Für mehrere Nodes klassisches lvm verwenden, nicht lvmthin.

14. Optionales späteres Cleanup

Aktuell heißt die LVM Volume Group noch:

vg_vmstore

Für ein konsequentes Namensschema könnte sie später optional umbenannt werden:

vgrename vg_vmstore vg_cleopatra
pvesm set lvm-cleopatra --vgname vg_cleopatra

Danach wäre das Schema vollständig konsistent:

iscsi-cleopatra
lvm-cleopatra
vg_cleopatra

Dieser Schritt ist optional. Der Storage funktioniert bereits mit vg_vmstore.


15. Kurzfassung

SAN big-bunda:
  Target: iqn.2026-02-25.linux.proxmox.pve:cleopatra
  Backing Store: /dev/mapper/cleopatra
  Portal: 10.99.255.1:3260
  Auth: Mutual CHAP
  ACL: initiator-address + initiator-name

Proxmox pve_1 / byte-me:
  iSCSI Storage: iscsi-cleopatra
  LVM VG: vg_vmstore
  Proxmox VM Storage: lvm-cleopatra
  Shared: ja
  Content: images,rootdir