[pve-devel] [RFC cluster/manager/storage 0/4] add storage mapping support
Friedrich Weber
f.weber at proxmox.com
Tue Nov 11 17:56:42 CET 2025
On 10/11/2025 18:01, Mira Limbeck wrote:
> This RFC is the first draft of storage mapping support. It
> includes a reworked iSCSI plugin that handles storage mapping, as well
> as an API to get/create/delete mappings.
>
> Some features are not yet implemented, for example reachability checks
> for iSCSI.
> The pve-manager patches are limited to the API, no UI exists for now.
>
> The idea would be to make it easy for iSCSI storages to use local
> mappings that are managed through the GUI.
> For this we would need to check the reachability of all announced
> portals for each node.
> This will be the next step after the basic mapping support.
>
> For now only an iSCSI plugin exists, but this could be extended to other
> (future) storages as well. As such the idea is to have a generic base.
Thanks for tackling this! I tested it a bit with a LIO target with
multiple portals and targets exposing the same LUN. Took me a little to
figure out how to add a mapping, so documenting this here just in case
someone (including me) needs it again. For an existing iscsi storage:
- pvesh create /cluster/mapping/storage/myiscsi --id myiscsi --type iscsi
- pvesm set iscsi -mapping myiscsi
- pvesh set /cluster/mapping/storage/myiscsi --type iscsi
--map 'node=pve9-iscsi172,portals=10.1.1.134,target=iqn.2003-01.org.linux-iscsi.iscsi-target134.x8664:sn.940ff597178c' \
--map 'node=pve9-iscsi172,portals=10.3.1.134,target=iqn.2003-01.org.linux-iscsi.iscsi-target134.x8664:sn.b404625a505a' \
--map 'node=pve9-iscsi172,portals=10.2.1.134,target=iqn.2003-01.org.linux-iscsi.iscsi-target134.x8664:sn.940ff597178c' \
--map 'node=pve9-iscsi173,portals=10.1.1.134,target=iqn.2003-01.org.linux-iscsi.iscsi-target134.x8664:sn.940ff597178c'
Works nicely so far! A couple of things I noticed (also briefly
discussed with Mira off-list, noting this here for posterity):
- I initially had a typo in my mapping and just got 'storage iscsi is not
online', would be nice if there could be a more specific error/warning if no
mapping entry matches on a given node.
- looks like, with a mapping, there is no automatic discovery anymore. Hence,
after deleting all discovery records (`iscsiadm -m node` is empty), the
logins don't work because a discovery first has to populate the discovery
records. Would be nice if the plugin could do discovery when needed.
- one possible usecase would be to allow removing a portal from the mapping
before disabling the portal target-side. However, currently, after removing
the portal from the mapping, there would still be an open session to the
portal, which can cause issues if the portal is disabled target-side. In this
case, it might be nice if the iSCSI plugin would automatically log out from
logged-in sessions that don't match any entry in the mapping? Not sure if
this is something we always want, though?
More information about the pve-devel
mailing list