GitHub user dahampere created a discussion: iSCSI overlay for Primera / Alletra Storage MP on CloudStack 4.22.1.1 KVM
I put together an overlay that makes CloudStack’s existing **Primera** primary-storage path work on **iSCSI-only KVM hosts**. Repo: https://github.com/dahampere/cloudstack-primera_alletraMP-iscsi Release: https://github.com/dahampere/cloudstack-primera_alletraMP-iscsi/releases/tag/v4.22.1.1-1 License: Apache License 2.0 (derived from ACS `plugins/storage/volume/primera` and `scripts/storage/multipath`) This is **not** an official Apache CloudStack release and **not** a new storage API. ### The problem Stock CloudStack already manages HPE Primera, 3PAR, Alletra Storage MP, and Alletra 9000 over **WSAPI v1** as **Provider = Primera**. The in-tree KVM host scripts only rescan Fibre Channel (`/sys/class/fc_host`). On an iSCSI-only hypervisor that directory is empty, so attach never sees the LUN. A second issue: one target IQN carries many VLUNs. Logging out of the iSCSI session when a single volume detaches drops every other volume on that target. ACS **Protocol = iSCSI** (one shared LUN) is the wrong control plane for this. Use **Provider = Primera** (or the optional **AlletraMP** alias below). Path format stays `type=FIBERWWN; address=<WWN>`. This is **not** Nimble OS (Alletra 5000 / 6000). ### What it does Two pieces. You can install only the first. | Piece | Where | What | | --- | --- | --- | | iSCSI connect overlay (required) | every KVM host | Debian package that overlays `connectVolume.sh`, `disconnectVolume.sh`, and `multipath-common.sh`. Rescans iSCSI sessions instead of FC. Does **not** log out the target on detach. | | AlletraMP provider (optional) | every management node | Sidecar JAR next to Linstor/Storpool. Registers the same Primera adapter as **AlletraMP** so Add Primary Storage can show that name. Existing `provider=Primera` pools are left alone. | Stock Primera stays installed. Do not rewrite `cloudstack-*.jar` and do not SQL-rename existing pools. If `multipath.conf` uses `user_friendly_names yes` (maps as `mpathX`), the overlay creates `/dev/mapper/3<wwn>` → that device so CloudStack still finds the volume. ### Scope and status - **Pinned to** Apache CloudStack **4.22.1.1** Debian/Ubuntu packages. Not “any 4.22”. No RPM. - **Hypervisor:** KVM. - **Array:** Primera / 3PAR / Alletra Storage MP / Alletra 9000, WSAPI v1, iSCSI. - **Proven on this package:** deploy, attach, detach, live migrate. - **Not in the KVM overlay** (stock FC scripts remain): `resizeVolume.sh`, `copyVolume.sh`, `cleanStaleMaps.sh`. Resize / copy / stale-map cleanup on iSCSI is unproven here. ### How to try it Full steps: [docs/INSTALL.md](https://github.com/dahampere/cloudstack-primera_alletraMP-iscsi/blob/main/docs/INSTALL.md) Short version: 1. On the array: host object per KVM hypervisor (name = CloudStack hostname), register each host IQN, put hosts in one host-set, note CPG + WSAPI URL. 2. On every KVM host: `open-iscsi` + `multipath-tools`, discover/login to **this array’s target IQN only**, `node.startup = automatic`. Do not log that target out. 3. Install the host overlay: ```bash sudo apt-get install ./cloudstack-alletra-mp-kvm_4.22.1.1-1_all.deb grep -c mp_scan_lun /usr/share/cloudstack-common/scripts/storage/multipath/connectVolume.sh # expect 1 GitHub link: https://github.com/apache/cloudstack/discussions/14032 ---- This is an automatically sent email for [email protected]. To unsubscribe, please send an email to: [email protected]
