Repository navigation
Releases: warddynamiccomputing/pve-fcsan
Release list
pve-fcsan 1.8.1
- Releases now come with a
SHA256SUMSfile and a signed build-provenance attestation, so you can check a.debcame from this repository's CI. See SECURITY.md. - CI: GitHub Actions pinned to commit SHAs and kept current by Dependabot; builds run with a read-only token;
make lintadds shellcheck and perlcritic. - Sysfs directory listings are sorted explicitly before being returned (no change in behaviour).
pve-fcsan 1.8.0
SAN / Fibre Channel under Datacenter → Storage
- New Datacenter entry: the SAN can now be managed from Datacenter → Storage → SAN / Fibre Channel without picking a node first.
- Cluster-wide tabs: Datastores, Snapshots, Disaster recovery, Arrays and Fabrics.
- All nodes at once: LUNs has one row per LUN and a column per node with its active / total paths. A LUN that a node does not see shows "not seen". Paths, Adapters, Performance and Health have a Node column.
- Unreachable nodes: a node that is offline or does not answer is named above the table.
- Node panel: Node → Disks → SAN / Fibre Channel now shows only that node's own tabs: Devices, Paths, Adapters, Performance and Health, with their node-local actions.
- GUI hardening: path counts are rendered from numbers only.
There are no API or configuration changes.
Upgrade: apt update && apt install pve-fcsan on each node, then reload the GUI with Ctrl+F5.
pve-fcsan 1.7.1 (security)
Security release: upgrade all nodes.
- Certificate pinning: array and switch connections now accept only the certificate you pinned. Before, pvesan also accepted any certificate signed by a certificate authority the node trusts, for any host name. Someone able to intercept the management network could therefore impersonate an array or switch and capture its credentials. Connections are now HTTPS only, redirects are not followed, and replies are limited to 64 MiB. This affects every array driver and both switch drivers.
- GUI escaping: every grid column in the SAN GUI is HTML-encoded. Before, text reported by arrays, switches and devices was shown as markup: volume names, SCSI vendor and model, and fabric symbolic names. A device on the fabric could set its symbolic name so that script ran in an administrator's browser session.
- DR import: malformed guest records in a replica's metadata are skipped. Hookscripts are not taken over from a replica. Raw QEMU
argsare kept and reported.
Your configuration stays the same and works without any changes after the upgrade.
Upgrade: apt update && apt install pve-fcsan on each node, one at a time. Then check pvesan-integrate status and reload the GUI in your browser.
pve-fcsan 1.7.0
Automatic FC zoning on Brocade and Cisco MDS fabrics
- Register one switch per fabric (or per Cisco VSAN / Brocade virtual fabric) with
pvesan fabric add, or in the new Fabrics tab. The switch's certificate is pinned.pvesan fabric status <fabric>lists every logged-in port and the node or array it belongs to. pvesan array zone-plan <array>shows, per fabric, single-initiator zones pairing each node port with the array ports on that fabric.pvesan array zone <array>creates or extends them, adds them to the zone set and activates it.- In the GUI, adding an array offers to zone it to the host cluster, then to register the hosts. Arrays > Auto-zone opens the same plan at any time.
- Safety: fabrics with an open zoning change, or a zone set with saved but inactive changes, are refused. A change the switch rejects is aborted. Zones are never removed or renamed.
- Brocade needs Fabric OS 8.2.1+ with REST and an HTTPS certificate; Cisco MDS needs
feature nxapi. A new or factory-reset fabric needs--zoneset <name>. See Runbook P20. - Not yet run against a real switch: try it first on a fabric where a zoning mistake does no harm, and back up the zoning configuration.
Arrays: IBM Spectrum Virtualize and InfiniBox now report their FC target ports, so the zoning hints and auto-zoning know them.
Upgrade: apt update && apt install pve-fcsan on each node, one at a time. Then check pvesan-integrate status.
1.6.1
IBM FlashSystem / Spectrum Virtualize: faster snapshot copies and restores
- Snapshot copies and restores now copy in the background at FlashCopy copy rate 100 (64 MiB/s). Before, they used 50 (2 MiB/s), so a 1 TiB copy or restore took about 6 days, and the snapshot couldn't be deleted until it finished.
- The new array setting
copy-rate(1 to 150) changes it:pvesan array set <array> --copy-rate 120, or the Copy rate field when editing an IBM array in the GUI. Each 10 more doubles the speed, up to 2 GiB/s at 150; higher rates put more load on the array. - Snapshots themselves are unchanged (no background copy).
Upgrade: apt update && apt install pve-fcsan on each node, one at a time. Then check pvesan-integrate status.
pve-fcsan 1.6.0
New array drivers
- HPE Primera / Alletra 9000 / 3PAR StoreServ (
hpe-3par, Web Services API). The cluster is a host set with persona 2 (Generic-ALUA), and pools are CPGs. Snapshots are virtual copies, made through a volume set when a datastore spans several volumes. - HPE Alletra 5000 / 6000 and Nimble Storage (
hpe-nimble, NimOS REST on port 5392). The cluster is one FC initiator group. Snapshots of multi-volume datastores go through a volume collection. - Dell Unity XT (
dell-unity, Unisphere REST). Each node is one Unity host, and every LUN's host access lists all of them. Copies are thin clones. A multi-LUN datastore can be rolled back from a consistency group snapshot, but not mounted as a copy.
All three support provisioning, array snapshots, copies and restore. Their requests were checked against the vendors' own SDKs and OpenStack Cinder's drivers.
iSCSI provisioning
- A new array setting,
protocol(fc,iscsiorboth), chooses whether each node's FC WWPNs, its iSCSI initiator name, or both are registered on the array. - Registering an iSCSI array logs every node in to the array's target portals. Login is idempotent, sets
node.startup=automatic, records the portals, and restores them at boot, including on nodes that join later. - Supported drivers: Pure, IBM Spectrum Virtualize, PowerStore, InfiniBox, ONTAP, E-Series, Hitachi VSP and PowerMax.
Array snapshots on more arrays
- NetApp ONTAP: FlexVol snapshots, FlexClone copies and restore. Single-LUN datastores only.
- IBM Spectrum Virtualize: FlashCopy, with consistency groups for multi-volume datastores.
- Dell PowerStore: multi-volume datastores are snapshotted at one point in time through a write-order consistent volume group.
Hardening
fc-discardhands the discard to the LVM plugin's own background discard where the plugin supports it. Large disks are then discarded outside the storage lock.fcsanvoldisks release their LUN on a node when the VM stops there or migrates away. The new optionfc-keep-lunskeeps them. A per-disk storage can now be added from the GUI.- Containers can be restored from a snapshot copy, in place or into a new ID.
- Other nodes see a snapshot copy or a DR import only after
vgimportclone, so they never see duplicate PVs.
Experimental: replication and disaster recovery (Pure FlashArray only)
- A datastore replicates to a partner array as one consistent group, and guest configs travel with the data.
- Recovery plans set the order and delays for starting guests at the DR site.
- Test failover runs on a copy, while the real replica keeps replicating. Real failover and planned failover are also available.
- Use it with test guests first.
Upgrade: apt update && apt install pve-fcsan on each node, one at a time. Then check pvesan-integrate status.
None of the array drivers has yet been run against a real array. Try each new array type with a small test datastore first.
pve-fcsan 1.5.0
Array snapshots, restore and space (Pure FlashArray, INFINIDAT InfiniBox, Dell PowerStore)
- Take, list and delete array snapshots of a datastore from the new Snapshots tab,
pvesan snapshotor the API. A datastore on several volumes is snapshotted at one point in time (Pure protection group, InfiniBox group snapshot); PowerStore snapshots single-volume datastores. - Mount a snapshot as a read-only copy datastore (clone, map,
vgimportcloneunder a new name) and restore one VM from it, over its disks or into a new VM ID. Remove the copy afterwards. - Roll a whole datastore back in place, only with every guest stopped and the volume group deactivated on all nodes.
- Snapshot schedules with retention (
pvesan-snapshot.timer, one node per run through a cluster lock), weekly automatic space reclaim (pvesan-reclaim.timer) and thefc-discardstorage option to UNMAP a disk when it is deleted. - The other drivers report snapshots as not supported yet.
Monitoring, health and lifecycle
- Array view per datastore: pool capacity and use, provisioned and written space, data reduction and array alerts (Pure; InfiniBox and PowerStore partly).
- I/O rates per LUN (IOPS, throughput, latency) from device-mapper statistics: Performance tab,
pvesan iostats. - Datastore → VMs, and the LUNs and array volume behind each disk of a guest (
pvesan datastore guests,pvesan guest <vmid>). - Path health on every node and array problems, sent once through Proxmox VE notification targets by
pvesan-monitor.timer; Health tab. no_path_retryper LUN, with documented per-array defaults.- New nodes are registered on arrays automatically; hosts of removed nodes can be removed (Pure, InfiniBox, PowerStore). Zoning hints show which array ports each node's adapters are logged in to.
Experimental: per-disk array volumes (fcsanvol)
A second storage type where every VM disk is its own array volume, the Proxmox equivalent of vVols: disk snapshots, rollback, templates, linked clones and resize become array operations, and a node rescans only that disk's LUN. Pure FlashArray only, raw VM disks only, and not yet run on a real array. Its options may change in a later release; use it with test VMs. Shared-LVM datastores are unchanged.
Still beta: none of the new array features has run against a real array yet. Try them on a small test datastore first and report what you find. 659 automated tests.
Install or upgrade on every node:
apt update && apt install pve-fcsan
pve-fcsan 1.4.0
New array driver: Fujitsu ETERNUS DX S5 / AF S3 (fujitsu-eternus), also covering DX8100/DX8900 S4. It uses the ETERNUS RESTful API on HTTPS port 5665 and follows Fujitsu's ETERNUS RESTful API Reference (P3AG-5492).
- Needs controller firmware V11L40 or later, with the RESTful API enabled and port 5665 open in the array's firewall settings. An upgrade from older firmware closes that port.
- The API has no host groups, so each node HBA port is registered as an FC host (
<node>_<n>). Each volume is connected to all of them with one host LUN that is free on every host. The array chooses the CA ports: every port with host affinity enabled that the WWN is logged in to. - Mapping is refused if a cluster host shares its LUN group with a host outside the cluster.
- Volumes are created in thin provisioning pools, thin or thick. Grow, delete and linking existing datastores work as with the other drivers.
- New
t/66-eternus.t(356 checks in total).
A driver is optional. If you create and map LUNs yourself, add no array: pve-fcsan discovers the LUNs, sets up multipath and builds the datastores on any FC or iSCSI array. The README now says so.
Still beta: the ETERNUS driver has not run against a real array yet. Try it with a 10 GiB test datastore first and report what you find.
Install or upgrade on every node:
apt update && apt install pve-fcsan
pve-fcsan 1.3.1 (beta)
Fail-safe pve-manager integration. Proxmox VE has no plugin hook for new API paths or GUI panels, so pve-fcsan adds one marked line to PVE/API2/Nodes.pm and one to index.html.tpl. Until now the API line loaded pve-fcsan unguarded: if pve-fcsan ever failed to load, pveproxy and pvedaemon would fail with it.
- The API line now loads pve-fcsan inside an
eval. If it fails, only/nodes/{node}/sanis missing, and the pveproxy/pvedaemon journal says why (pve-fcsan: SAN API disabled - …). The rest of the API and GUI keep working. - Upgrading from 1.3.0 replaces the old line automatically.
pvesan-integrate statusnow also checks that pve-fcsan's API loads (exit code 1 if not) and flags a line left by an older version.- The GUI override catches its own errors, so a broken
pvesan.jsloses only the SAN panel. - New
t/80-integrate.t(322 checks in total).
Verified on a 6-node Proxmox VE 9.2 cluster: with pve-fcsan's API module removed, pveproxy and pvedaemon restarted cleanly, the GUI and the rest of the API answered, and only /san was missing.
Still beta: no array driver has been exercised against a real array yet.
Install or upgrade on every node:
apt install ./pve-fcsan_1.3.1_all.deb
pve-fcsan 1.3.0 (beta)
First public release. Beta: tested in unit tests and on a 6-node Proxmox VE 9 cluster; the array drivers are written against vendor API references and SDKs but none has yet been exercised against a real array. Try each array type with a small test datastore first; reports are very welcome (use the Array report issue template).
What it does
- SAN view in the Proxmox GUI and
pvesanCLI: FC HBAs and targets, LUNs, multipath state and paths across every node. - vCenter-style operations: rescan all HBAs cluster-wide, add / remove devices, create shared-LVM datastores, grow, rename, detach and clean up dead paths.
- Array integration: create the volume on the array, map it to the cluster, rescan every node and create the datastore from one form; grow and delete on the array too.
- IBM FlashSystem / Spectrum Virtualize
- Pure Storage FlashArray
- INFINIDAT InfiniBox
- Dell PowerStore, Dell PowerMax / VMAX
- NetApp ONTAP, NetApp E-Series
- Hitachi VSP (Configuration Manager REST)
Install
On every node:
apt install ./pve-fcsan_1.3.0_all.deb
Then follow docs/pvesan-Runbook.md (also as PDF). docs/pvesan-How-It-Works.md explains the design.
Requirements
Proxmox VE 8 or 9, multipath-tools, lvm2.
See CHANGELOG.md for the history.