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/tcpnur für autorisierte Proxmox-Nodes erlauben. - Pro Node einen eigenen Initiator-IQN verwenden.
- Auf dem tgt-Target sowohl
initiator-addressals auchinitiator-namesetzen. - Mutual CHAP verwenden.
incominguserundoutgoingusermit unterschiedlichen Secrets konfigurieren.- Keine echten CHAP-Secrets in BookStack dokumentieren.
- Für mehrere Nodes klassisches
lvmverwenden, nichtlvmthin.
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
No Comments