Update Servers/Virtualization/Proxmox/Configuring iSCSI-based Cluster Storage.md
All checks were successful
GitOps Automatic Deployment / GitOps Automatic Deployment (push) Successful in 6s

This commit is contained in:
2026-01-06 23:37:51 -07:00
parent a5498a6abb
commit ec2c6cfb28

View File

@@ -2,7 +2,6 @@
This document describes the **end-to-end procedure** for creating a **thick-provisioned iSCSI-backed shared storage target** on **TrueNAS CORE**, and consuming it from a **Proxmox VE cluster** using **shared LVM**. This document describes the **end-to-end procedure** for creating a **thick-provisioned iSCSI-backed shared storage target** on **TrueNAS CORE**, and consuming it from a **Proxmox VE cluster** using **shared LVM**.
This approach is intended to: This approach is intended to:
- Replace NFS-backed VM storage
- Provide SAN-style block semantics - Provide SAN-style block semantics
- Enable Proxmox-native snapshot functionality (LVM volume chains) - Enable Proxmox-native snapshot functionality (LVM volume chains)
- Avoid third-party plugins or middleware - Avoid third-party plugins or middleware
@@ -62,20 +61,39 @@ zfs create -V ${ZVOL_SIZE} \
## Configure iSCSI Target (TrueNAS CLI) ## Configure iSCSI Target (TrueNAS CLI)
```sh ```sh
# Enable iSCSI Service # Enable iSCSI Service
service iscsitarget start service ctld start
sysrc iscsitarget_enable=YES sysrc ctld_enable=YES
# Create iSCSI Portal # Create iSCSI Portal
ctladm create -p 0.0.0.0 ctladm create -b block -l /dev/zvol/CLUSTER-STORAGE/iscsi-storage iscsi-lun-0
# Create Target # Create Target
ctladm create -t proxmox-target ctladm create -t iqn.2026-01.io.bunny-lab:storage
# Create Extent # Create Extent
ctladm create -b block -l /dev/zvol/${POOL_NAME}/${ZVOL_NAME} proxmox-extent ctladm create -b block -l /dev/zvol/${POOL_NAME}/${ZVOL_NAME} proxmox-extent
### Associate Target + Extent ### Associate Target + Extent
ctladm add -t proxmox-target -l proxmox-extent ctladm add -t proxmox-target -l proxmox-extent
----------
# Enable iSCSI Service (TrueNAS CORE)
service ctld start
sysrc ctld_enable=YES
# Sanity Check: Confirm the backing zvol exists
ls -l /dev/zvol/${POOL_NAME}/${ZVOL_NAME}
# --- Create the CTL LUN (iSCSI "extent") ---
# Name identity is carried via Serial Number and Device ID
ctladm create -b block \
-o file=/dev/zvol/${POOL_NAME}/${ZVOL_NAME} \
-S ISCSI-STORAGE \
-d ISCSI-STORAGE
# Verify the LUN is real and sized correctly (must be NON-ZERO)
ctladm devlist -v
``` ```
!!! tip !!! tip