Installing the SANsymphony Storage Plugin for Proxmox

Explore this Page

Overview

The SANsymphony Storage Plugin for Proxmox connects Proxmox Virtual Environment (VE) with the SANsymphony storage system. This section explains how to install the plugin and helps you choose the method that works best for your setup.

  • Perform the following steps on each Proxmox node in the PVE cluster.
  • Installing the SANsymphony Storage Plugin for Proxmox using the APT repository or DPKG package methods updates several host-level configurations on the Proxmox VE node as part of the installation process. These configuration updates are applied immediately after the plugin installation completes and are required for correct operation with SANsymphony storage. For more information, refer to Configuration Updates Performed After Plugin Installation.

Installing the SANsymphony Storage Plugin for Proxmox via APT Repository (Recommended)

This installation method uses the APT repository to install the SANsymphony Storage Plugin for Proxmox on your Proxmox VE system. It simplifies the installation process.

This method ensures automatic updates and integrates the plugin into the Proxmox package management system, making future updates and management much easier.

Procedure:

  1. Download the PGP/GPG Public key: Before configuring the APT repository, you need to download the PGP/GPG public key used to sign the repository packages. This ensures the integrity and authenticity of the packages that will be installed on your system.
      Open a terminal on your Proxmox VE server and run the following command to download the key directly into the /usr/share/keyrings directory:
      Copy
      Command
      wget -P /usr/share/keyrings https://github.com/DataCoreSoftware/Scripts/releases/download/SSY_PVE_Plugin/ssy-pgp-key.public
      This command saves the ssy-pgp-key.public file in the /usr/share/keyrings directory. The key will be used later to verify the authenticity of the SANsymphony plugin packages.
  2. Configure the APT Repository: Once the public key is downloaded, the next step is to configure the APT repository that will provide access to the SANsymphony Storage Plugin for Proxmox package.
      Add the DataCore repository to your Proxmox VE system:
      Copy
      Command
      echo "deb [signed-by=/usr/share/keyrings/ssy-pgp-key.public] https://datacoresoftware.github.io/Scripts/ssy-apt-repo stable main" | tee /etc/apt/sources.list.d/ssy.list
      Next, update APT and install the new ssy-plugin package.
      Copy
      Command
      apt update
      apt install ssy-plugin

Installing the SANsymphony Storage Plugin for Proxmox via DPKG

The DPKG method requires you to manually download the .deb package and install it using the dpkg command on your Proxmox server. Unlike the APT method, this approach gives you more control but does not automatically handle dependencies.

Procedure:

  1. Download the DataCore Plugin Package: Run the following command on your Proxmox server to download the .deb package: 
      Copy
      Command
      wget https://github.com/DataCoreSoftware/Scripts/releases/download/SSY_PVE_Plugin/SANsymphony-plugin_1.1.0_amd64.deb
      This command downloads the SANsymphony-plugin_1.1.0_amd64.deb file from the specified URL.
  2.  Install the Package Using DPKG:
    1. Once the .deb package is downloaded, the next step is to install it on your Proxmox server.
    2. Run the following command:
    3. Copy
      Command
      dpkg -i SANsymphony-plugin_1.1.0_amd64.deb
      The dpkg -i command installs the specified .deb package on your system. Once the installation starts, dpkg will unpack and install the files required for the plugin.
  3. When installing the SANsymphony Storage Plugin for Proxmox using the DPKG, existing iSCSI and Multipath configuration files are automatically backed up to "/var/backups/SANsymphony-Plugin-Backup", allowing you to restore the previous configuration if needed.

  4. After the SANsymphony plugin is installed, you can run the following command to check if the SANsymphony Storage Plugin for Proxmox has been installed:
      Copy
      Command
      dpkg -l | grep ssy-plugin

Before installation, ensure the packages required for your storage protocol are installed. These are not installed automatically by the plugin package, so install them for whichever protocol(s) the node uses: open-iscsi and multipath-tools for iSCSI, or nvme-cli for NVMe/TCP. If installing via the .deb package, also install jq (this is resolved automatically when using the APT repository).

Configuration Updates Performed After Plugin Installation

When the SANsymphony Storage Plugin for Proxmox is installed using any of the supported methods (APT repository or DPKG package), the installer updates several host-level configurations immediately after the installation completes.

These updates are required for proper operation of SANsymphony storage with Proxmox VE and are applied as soon as the plugin is installed, without requiring manual configuration. The following sections describe the configuration changes that are applied during installation.

iSCSI Settings

On Proxmox VE nodes, the iSCSI service does not start automatically by default after a system reboot. During installation of the SANsymphony Storage Plugin for Proxmox, the installer updates the iSCSI configuration to ensure reliable connectivity to SANsymphony storage.

These settings are applied per-target when the target logs in, using iscsiadm --mode node --targetname <target> --op update, rather than by editing the global /etc/iscsi/iscsid.conf file. This ensures consistent connectivity behavior without affecting iSCSI targets unrelated to SANsymphony storage. These settings are applied automatically each time a target is activated and require no manual configuration.

For more information, refer to the iSCSI Settings section in the Proxmox Configuration Guide.

The following iSCSI session settings are configured during installation:

Copy
Command
node.session.initial_login_retry_max = 0 
node.startup = manual 
node.leading_login = No 
node.session.timeo.replacement_timeout = 15

iSCSI Multipath Configuration

To ensure high availability and proper path management for SANsymphony virtual disks, the plugin installation updates the multipath configuration on the Proxmox VE node immediately after installation. Refer to iSCSI Multipath for more information.

As part of the installation, the plugin creates or updates the multipath configuration file at the following location:

    Copy
    Command
    /etc/multipath.conf

If the multipath.conf file already exists, a backup of the original file is created at the following location:

    Copy
    Command
    /var/backups/SANsymphony-Plugin-Backup/multipath.conf.<YYYYMMDD>

The backup file name includes the installation date, so re-running the installer (for example, during an upgrade) does not overwrite a previous backup.

The configuration applied includes DataCore-recommended defaults and device-specific settings equivalent to the following:

    Copy
    Command
    defaults {
        user_friendly_names    yes
        polling_interval       60
        find_multipaths        "smart"
    }

    blacklist {
        devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
        devnode "^hd[a-z]"
    }

    devices {
        device {
            vendor               "DataCore"
            product              "Virtual Disk"
            path_checker          tur
            prio                  alua
            failback              10
            no_path_retry         fail
            dev_loss_tmo          60
            fast_io_fail_tmo      5
            rr_min_io_rq          100
            path_grouping_policy  group_by_prio
        }
    }

Multipath Service Reload

After applying the multipath configuration, the installer reloads the multipath service, so the changes take effect immediately:

    Copy
    Command
    multipath -r

Custom udev Rule for DataCore Disks

During installation, the plugin adds a custom udev rule to ensure appropriate SCSI timeout handling for SANsymphony virtual disks.

The following file is created or updated as part of the installation:

    Copy
    Command
    /etc/udev/rules.d/99-datacore.rules

With the following rule:

    Copy
    Command
    SUBSYSTEM=="block", ACTION=="add", ATTRS{vendor}=="DataCore", ATTRS{model}=="Virtual Disk    ", RUN+="/bin/sh -c 'echo 80 > /sys/block/%k/device/timeout' "

The udev rules are reloaded automatically by the SANsymphony Storage Plugin for Proxmox so the changes take effect immediately. The reload only happens if the rule file has changed since the last installation. The installer tracks the rule's SHA-256 hash at /var/lib/ssy-plugin/99-datacore.rules.sha256; if the rule is unchanged, the reload is skipped to avoid unnecessary delays.

    Copy
    Command
    udevadm control --reload-rules
    udevadm trigger --subsystem-match=block

NVMe/TCP Multipath Configuration

The Linux NVMe kernel subsystem provides native multipathing support, enabling multiple paths to NVMe over Fabrics (NVMe-oF) targets for path redundancy and improved availability.

The SANsymphony Storage Plugin for Proxmox relies on the native Linux NVMe multipathing functionality. No additional multipath configuration is required for NVMe/TCP connections.

Verify That NVMe Multipathing Is Enabled

Run the following command:

Copy
Command
cat /sys/module/nvme_core/parameters/multipath
Copy
Expected Output
y

A value of y indicates that NVMe multipathing is enabled.

Verify ANA State and Path Information

To display the ANA (Asymmetric Namespace Access) state and path information for a multipathed NVMe namespace, run the following command:

Copy
Command
nvme list-subsys <nvme_device_path>

Replace <nvme_device_path> with the actual NVMe device path, for example:

Copy
Command
nvme list-subsys /dev/nvme0

Post-Installation Proxmox Service Updates

During installation of the SANsymphony Storage Plugin for Proxmox, several Proxmox Virtual Environment (PVE) services are reloaded or restarted to ensure that plugin configurations are correctly applied and available immediately. The installer attempts to reload services first and performs a restart only when required, ensuring zero or minimal disruption during installation.

The following Proxmox services may be reloaded or restarted as part of the post-installation process:

  • pvedaemon.service – Proxmox VE API daemon
  • pveproxy.service – Proxmox VE web interface proxy
  • pvestatd.service – Proxmox VE status update daemon
  • pvescheduler.service – Proxmox VE task scheduler
  • pve-ha-lrm.service – Proxmox VE HA local resource manager

The service reload and restart operations are safe and include fallback handling to ensure the installation continues even if a service is not currently running.

Learn More