TrueNAS als iSCSI-Storage für Proxmox: das offizielle Plugin einrichten
Dataset, iSCSI-Target, API-Schlüssel und eine Zeile in der storage.cfg. So bindest du TrueNAS SCALE mit dem offiziellen Plugin als Shared Storage in Proxmox VE ein.
Proxmox und TrueNAS gehören im Homelab fast schon zusammen. Bisher hieß das aber: ZVOLs von Hand anlegen, iSCSI-Extents klicken, LUNs zuordnen und hoffen, dass man nichts vergisst. Mit dem offiziellen TrueNAS-Proxmox-Plugin erledigt Proxmox das selbst über die TrueNAS-API.
Dieser Beitrag zeigt die Einrichtung Schritt für Schritt: erst die Vorbereitung auf TrueNAS, dann Installation und Konfiguration auf Proxmox.
Die Ausgangslage
| Komponente | Details |
|---|---|
| NAS | TrueNAS SCALE 25.10 „Goldeye“ |
| Hypervisor | Proxmox VE |
| Protokoll | iSCSI über die TrueNAS-API |
| Ziel | Shared Storage für VM-Disks und Container |
Teil 1: TrueNAS vorbereiten
Dataset anlegen
Unter Datasets → Add Dataset ein neues Dataset erstellen:
- Name:
Proxmox-Backup - Übergeordnetes Dataset: der Speicherpool, z. B.
pve - Dataset-Voreinstellung:
Generic
Unter diesem Dataset legt das Plugin später alle ZVOLs für die VMs ab.
iSCSI-Dienst aktivieren
System → Services, in der Zeile iSCSI auf den Play-Button klicken und Start Automatically anhaken.
Base Name prüfen
In derselben Zeile über das Stift-Symbol die iSCSI Global Configuration öffnen. Wichtig ist hier der Base Name: Er muss mit iqn beginnen. Der Standardwert iqn.2005-10.org.freenas.ctl passt.
Den Wert notieren. Er landet später zusammen mit dem Target-Namen in der storage.cfg, im Format <Base Name>:<Target Name>.
Target, Extent und Portal per Wizard
Unter Shares → Block (iSCSI) Shares Targets auf Wizard klicken. Der Assistent hat drei Schritte.
1. Target
Das Dropdown auf Create New lassen und einen Target-Namen vergeben, z. B. pve. Weiter.
2. Extent
- Name: beliebig
- Extent Type:
Device - Device: das ZVOL, das TrueNAS freigeben soll
- Sharing Platform:
Modern OS(4K-Blockgröße, TPC an, kein Xen-Kompatibilitätsmodus, SSD-Speed) - Read-Only: aus lassen
3. Protocol Options
- Portal: über Add ein Portal auf
0.0.0.0:3260anlegen oder ein bestehendes wählen. - Initiators: leer lassen bzw. Allow all initiators anhaken, damit alle Proxmox-Knoten zugreifen dürfen. Wer den Zugriff einschränken will, trägt hier die IQNs der Proxmox-Knoten ein.
Speichern, fertig.
Wer jedes Feld einzeln steuern möchte, findet den manuellen Weg über die Registerkarten Targets, Extents, Initiators, Portals und Authorized Access weiterhin unter /ui/sharing/iscsi/targets. Für den Normalfall reicht der Wizard.
API-Schlüssel erstellen
Oben rechts im Benutzermenü (root) → My API Keys → Add. Den Schlüssel sofort kopieren, TrueNAS zeigt ihn nur ein einziges Mal an. Er kommt später als tn_api_key in die storage.cfg.
Optional: CHAP
Wer CHAP nutzen möchte:
- Im Wizard (Schritt 3) ein Portal wählen, dessen Discovery Auth Method auf
CHAPsteht. - Im manuellen Ablauf unter Authorized Access einen Eintrag mit Benutzer und einem 12–16 Zeichen langen Passwort anlegen.
- In Proxmox
tn_chap_userundtn_chap_passwordin derstorage.cfgergänzen.
Teil 2: Proxmox einrichten
Plugin installieren
Das Plugin kommt über das offizielle APT-Repository. Das Installskript richtet es ein:
bash <(curl -sSL https://raw.githubusercontent.com/truenas/truenas-proxmox-plugin/main/install.sh) --non-interactive --apt-install
Bei einem Cluster muss das Plugin auf jedem Knoten installiert werden.
Storage konfigurieren
Die Konfiguration liegt in /etc/pve/storage.cfg und gilt dank Cluster-Dateisystem automatisch für alle Knoten:
nano /etc/pve/storage.cfg
Dort einen neuen Eintrag mit den Werten der eigenen TrueNAS-Umgebung ergänzen:
truenasplugin: truenas-storage
tn_api_host 10.26.0.15
tn_api_key <DEIN-API-SCHLÜSSEL>
tn_api_insecure 1
tn_target_iqn iqn.2005-10.org.freenas.ctl:pve
tn_dataset pve/Proxmox-Backup
tn_discovery_portal 10.26.0.15:3260
content images,rootdir
shared 1
Was die Zeilen bedeuten:
| Parameter | Bedeutung |
|---|---|
tn_api_host |
IP oder Hostname von TrueNAS |
tn_api_key |
der API-Schlüssel von oben |
tn_api_insecure |
1 akzeptiert selbstsignierte Zertifikate |
tn_target_iqn |
Base Name + : + Target-Name |
tn_dataset |
Pfad des Datasets, unter dem die ZVOLs landen |
tn_discovery_portal |
IP und Port des iSCSI-Portals |
content |
images für VM-Disks, rootdir für Container |
shared |
1, damit alle Knoten den Storage nutzen (wichtig für Live-Migration) |
Was das Plugin ab jetzt erledigt
Ab hier übernimmt das Plugin. Sobald eine VM ihre erste Disk auf dem neuen Storage bekommt:
- legt es ein ZVOL unter dem Dataset an, z. B.
pve/Proxmox-Backup/vm-100-disk-0, - erstellt dafür einen iSCSI-Extent,
- ordnet den Extent dem Target unter einer eigenen LUN zu,
- und kümmert sich auf jedem Proxmox-Knoten um Auf- und Abbau der iSCSI-Sessions.
Kein Klicken in der TrueNAS-Oberfläche mehr, keine vergessenen LUNs. Der Storage taucht in Proxmox einfach als truenas-storage auf und verhält sich wie jeder andere.
Fazit
Die meiste Arbeit steckt in der einmaligen iSCSI-Vorbereitung auf TrueNAS. Wer auf einen gültigen Base Name, ein Portal und erlaubte Initiators achtet, umgeht die typischen Stolpersteine. Danach ist das Plugin angenehm unsichtbar.
Weitere Details, Optionen und Troubleshooting stehen im GitHub-Repository des Plugins.