Guides:Enterprise Shared Storage for Proxmox VE Clusters
By Steve Umbehocker, CTO, OSNexus · Updated October 3, 2026
Shared storage for a Proxmox VE cluster is a block or file store that every node can reach, so virtual machines and containers can migrate between nodes and restart elsewhere when a node fails. QuantaStor provides that storage from a central appliance or HA cluster, and its open-source Proxmox VE storage plugin adds a native quantastor storage type that provisions one iSCSI volume per Proxmox disk, with snapshots, templates, clones, resize and migration driven from the standard Proxmox tools. This guide covers the shared storage options, how the plugin works, and a walkthrough from storage pool to first VM disk.
Why it matters
Proxmox VE runs well on local disks, but local disks tie each guest to one node. Live migration, HA restart and a single place to manage capacity all need storage every node can see. Teams moving off VMware hit the same issue in reverse: a vSAN cluster combined compute and storage in the same hosts, and the replacement hypervisor needs somewhere to put the data.
External shared storage separates those concerns. Compute nodes can be added, upgraded or reinstalled without touching the data, and capacity grows by adding drives to the storage tier rather than buying matching hypervisor hosts. The storage tier also brings its own data services: snapshots, replication to a second site, encryption and role-based administration.
How it works
Proxmox VE has several built-in ways to consume shared storage (see the Proxmox storage documentation). QuantaStor can serve the common ones:
| Option | What Proxmox sees | QuantaStor side | Best fit |
|---|---|---|---|
| QuantaStor storage plugin (iSCSI) | A quantastor storage; one block device per disk |
Scale-up storage pool, one storage volume per disk | VM and LXC disks with per-disk snapshots and clones |
| NFS | A shared directory for disk images, ISOs and backups | NFS share on a storage pool | ISO libraries, backups, file-based disk images |
| Ceph RBD | Proxmox's own RBD storage type | Scale-out block storage on a Ceph cluster | Scale-out deployments across many storage nodes |
For the RBD option, Proxmox creates images directly with its own Ceph client. QuantaStor recognizes block devices that were created outside its own management by Proxmox, OpenStack or Kubernetes and cleans up their volume objects automatically, so the grid view stays consistent with the cluster. Ceph block storage needs its own Ceph pool, separate from any pool that holds a CephFS file system, and the web manager only offers compatible pools when you create block storage.
The rest of this guide focuses on the plugin, because it gives Proxmox the most direct control over each disk. It separates management traffic from storage traffic:
- Control plane. Create, delete, snapshot, clone, resize and access-control operations are REST calls to the QuantaStor REST API over HTTPS on port 8153, authenticated with HTTP Basic credentials.
- Data plane. Guest I/O runs over iSCSI on port 3260. The plugin drives the standard
open-iscsiinitiator withiscsiadm: it discovers the target, logs in and waits for the device before handing it to Proxmox.
Each storage volume is exported through its own iSCSI target at LUN 0, and the plugin addresses it by a stable /dev/disk/by-path/...-lun-0 path rather than a /dev/sdX name. QEMU attaches the raw block device for VM disks; for containers, Proxmox formats the same device with ext4 and mounts it as the root filesystem.
On first activation, the plugin registers each Proxmox node as a host using the initiator IQN from /etc/iscsi/initiatorname.iscsi. Before a node uses a volume, the plugin assigns that host to the volume's access control list, and it removes the assignment when the volume is released. A volume is visible only to the nodes actively using it.
Volume names follow the Proxmox convention, so mapping a disk to its volume needs no lookup table:
| Type | Name pattern | Example |
|---|---|---|
| VM or container disk | vm-<vmid>-disk-<N> |
vm-100-disk-0
|
| Template base disk | base-<vmid>-disk-<N> |
base-100-disk-0
|
| Template snapshot | template-base-<vmid>-disk-<N> |
template-base-100-disk-0
|
| Snapshot | <volume>_<snapshot> |
vm-100-disk-0_snap1
|
The plugin does not patch or replace Proxmox source files, so Proxmox package upgrades do not break it. It is distributed as a Debian package from the pve-quantastor-plugin repository.
Design and sizing
Plan the cluster around these requirements from the plugin reference:
| Item | Requirement |
|---|---|
| Proxmox VE | 9.1.x and 9.2.x, which can be mixed in one cluster. 8.4.x and older do not load the plugin, so keep 8.x nodes out of the cluster. |
| Storage | A storage pool to provision from, on a current QuantaStor release |
| Network | Every Proxmox node reaches the appliance on TCP 8153 (REST API) and TCP 3260 (iSCSI) |
| QuantaStor configuration | None beyond the pool: the plugin creates volumes, host entries and ACL assignments |
For production clusters, put the pool in a high-availability failover group so a storage controller failure doesn't take every VM down with it. The plugin's configuration options cover HA pools and SSL; see the plugin reference for the exact settings. The grid below shows scale-up ZFS pools next to scale-out Ceph block, file and object pools on the same grid, with the HA group controls in the toolbar.

Keep the iSCSI data path on a dedicated storage network where possible. The REST API traffic is light, but guest I/O follows every disk.
Setting it up
1. Create a least-privilege API user
The admin account works, but credentials stored on the Proxmox cluster should carry only what the plugin needs. Create a role under Security → Role → Create, then a user with that role under Security → User → Add. The role needs view access to everything plus these write operations:
- Storage Volume: create, delete, modify, resize, createSnapshot, deleteSnapshot, rollback, clone
- Storage Volume ACL: add, remove
- Host: add, addInitiator, modify, remove, assignVolume, unassignVolume

Or create both in one pass with the QuantaStor CLI:
qs role-add --name=pve-plugin-role --desc="Role for the Proxmox VE storage plugin" \ --permissions="*:view:system,\ StorageVolume:create:system,StorageVolume:delete:system,StorageVolume:modify:system,\ StorageVolume:resize:system,StorageVolume:createSnapshot:system,StorageVolume:deleteSnapshot:system,\ StorageVolume:rollback:system,StorageVolume:clone:system,\ StorageVolumeAcl:add:system,StorageVolumeAcl:remove:system,\ Host:add:system,Host:addInitiator:system,Host:modify:system,Host:remove:system,\ Host:assignVolume:system,Host:unassignVolume:system" qs user-add --name=pve-plugin --password=<password> --role=pve-plugin-role
2. Check connectivity from each Proxmox node
Before installing anything, confirm every node can reach both ports on the appliance (192.0.2.10 here):
nc -zv 192.0.2.10 8153 nc -zv 192.0.2.10 3260 cat /etc/iscsi/initiatorname.iscsi
3. Install the plugin and add the storage
Install the pve-storage-quantastor package from the releases page on every node in the cluster. The quantastor type then appears under Datacenter → Storage → Add in the Proxmox web interface, alongside the built-in types. Enter the appliance address, the storage pool and the API user created in step 1. The plugin reference lists every configuration option, including the HA pool and SSL settings.
Operating and testing
Once the storage is added, it works with the standard pvesm, qm and pct tooling. A quick check from any node:
pvesm status qm create 9001 --name test-vm --memory 2048 --scsi0 <storage-id>:8 iscsiadm -m session
The new disk appears in QuantaStor as a storage volume named vm-9001-disk-0, and the node that owns the VM appears as a host assigned to it. Migrate the VM to another node and the assignment moves with it: the volume is released from the old node and assigned to the new one.
Snapshots, templates, clones, resize and migration all run through the plugin; the Usage section of the plugin reference describes how each behaves. Each Proxmox disk is a regular storage volume, so the volume-level tools on the QuantaStor side also apply: snapshot schedules for point-in-time copies outside Proxmox, and remote replication to a second site for disaster recovery. For the replication design, see Asynchronous Remote Replication and Disaster Recovery Failover.
FAQ
Which Proxmox VE versions does the QuantaStor plugin support?
Proxmox VE 9.1.x and 9.2.x, and both can run in the same cluster. On 9.2 the plugin logs a cosmetic message about implementing an older storage API. Proxmox VE 8.4 and older do not load the plugin, so any storage operation routed to an 8.x node fails.
Does the plugin work for LXC containers as well as VMs?
Yes. Container root filesystems run on QuantaStor volumes: Proxmox formats the iSCSI block device with ext4 and mounts it as the container root, using the same provisioning and access control as VM disks.
Do I need to configure iSCSI targets or host entries on QuantaStor first?
No. Apart from the storage pool, the plugin creates everything itself: a volume and dedicated target per disk, a host entry per Proxmox node from its initiator IQN, and the ACL assignments that make a volume visible only to the node using it.
Can QuantaStor replace vSAN after moving from VMware to Proxmox?
It replaces vSAN's role as shared storage with an external tier. Proxmox nodes use QuantaStor over iSCSI through the plugin, over NFS, or over Ceph RBD for scale-out designs, and the storage tier adds HA pools, snapshots and remote replication of its own. Compute and storage then scale independently instead of in matched hypervisor hosts.
Should I use the plugin, NFS or Ceph RBD?
Use the plugin for VM and container disks when you want one volume per disk with storage-side snapshots, clones and per-node access control. Use NFS for ISO libraries, backups and file-based images. Choose Ceph RBD when the deployment needs to scale out across many storage nodes.
Part of the QuantaStor Guides series. For reference documentation, see the QuantaStor documentation.