Adding SANsymphony Storage Class to Proxmox

Explore this Page

Overview

After installing the SANsymphony Storage Plugin for Proxmox, Proxmox VE must be configured to recognize and use it. Since Proxmox VE does not currently support adding custom storage plugins through the GUI, the setup must be performed using either the "pvesm add ssy" command, the built-in ssy-plugin command-line tool, or by manually editing the Proxmox configuration file.

For installation instructions, see Installing the SANsymphony Storage Plugin for Proxmox.

The prefix of the virtual disk template name is used as a suffix by the Proxmox plugin when creating virtual disks. This means that the final disk names in Proxmox will include this suffix automatically. Choose template prefixes carefully to ensure clear and consistent disk naming.

Add SANsymphony Storage Using the 'ssy-plugin' Wrapper Command Line Tool (Recommended)

The ssy-plugin is the primary command-line tool for the SANsymphony Storage Plugin for Proxmox. It can be used in both interactive and non-interactive modes to manage storage classes and virtual disks.

Procedure:

  1. Using the ssy-plugin Command-Line Tool
    1. Interactive Mode: Run the following command to start the interactive mode:
    2. Copy
      Command
      ssy-plugin
      Copy
      Sample Output
      Please select the Operation type:
      1. Add SANsymphony Storage class (SSY)
      2. Add LVM Storage class (LVM)
      3. Remove existing Storage class
      4. Display SSY multipath status
  2. Non-Interactive Mode (Direct Command Execution)
    1. You can also run commands directly from the shell by passing parameters as flags. Run the following command in the terminal:
        Copy
        Command
        ssy-plugin [ACTION] [OPTIONS]
    2. To display all available commands and parameters:
        Copy
        Command
        ssy-plugin -h
        This command lists available actions and their options. Choose the appropriate action to execute.

Available Actions

Action Description
ssy Add a new SANsymphony storage class.
lvm Add a new LVM (Logical Volume Manager) storage class.
remove Remove an existing storage class
multipath Display the current SANsymphony multipath connection status for iSCSI and NVMe targets

Available Options

Option Description
--LVMname Name of the LVM storage class
--LVMsize Size of the LVM storage class (in GiB)
--SSYname Name of the SANsymphony storage class
--SSYipAddress SANsymphony server Management IP address (single or comma-separated list)
--SSYusername SANsymphony Username
--SSYpassword SANsymphony Password (The encoded SANsymphony storage password is stored in /etc/pve/priv/storage/<Storage-Name>.pw, which is accessible only to the root user).
--vdTemplateName Name of the virtual disk template
--portals Front End portal IP addresses used by the selected protocol (iSCSI or NVMe/TCP) (single or comma-separated list). Use all to auto-discover connections.
--targets Front End target identifiers for the selected protocol: iSCSI IQNs, or a single NVMe/TCP NQN (single or comma-separated list)
--nodes Proxmox node names (single or comma-separated list)
--snapshotAsVolumeChain Enables snapshots as a volume chain for LVM storage (1 = yes, 0 = no) (default: 1)
--shared Whether the storage is shared across nodes (1 = yes, 0 = no) (default: 1)
--disable Whether to disable the storage class (1 = yes, 0 = no)
--default Use default parameters (1 = yes, 0 = no)
--protocol nvme-tcp or iscsi (default: iscsi)

Portal and target requirements vary by protocol. For iSCSI, the number of portals and targets specified must be equal, since each portal is paired with one target. For NVMe/TCP, multiple portals are supported, but only a single target NQN can be specified per Server Group; the target is discovered on port 8009. In both cases, the virtual disk template must use a transport that matches the protocol selected for the storage class: an NVMe-enabled template for nvme-tcp, or a non-NVMe template for iscsi. Disk allocation fails if the template's transport does not match the storage class protocol.

Examples of Common Commands

  • Add a SANsymphony Storage Class:
    Copy
    Command
    ssy-plugin ssy --SSYname SSY-example \
                   --SSYipAddress 192.168.1.1 \
                   --SSYusername administrator \
                   --SSYpassword password \
                   --vdTemplateName template1 \
                   --portals portal1,portal2 \
                   --targets target1,target2 \
                   --protocol iscsi \
                   --default 1
  • Add an LVM Storage Class:
    Copy
    Command
    ssy-plugin lvm --LVMname lvm1 --LVMsize 100 --SSYname ssy1 --snapshotAsVolumeChain 1
  • Remove a Storage Class:
    Copy
    Command
    ssy-plugin remove
  • Display Multipath Status:
    Copy
    Command
    ssy-plugin multipath

More Detailed Examples with Parameters

SANsymphony Storage

    Copy
    Command
    # Default parameters
    ssy-plugin ssy --default 1

    # Multiple IP addresses
    ssy-plugin ssy --SSYname SSY-example \
                   --SSYipAddress 10.121.0.129,10.121.0.137 \
                   --SSYusername administrator \
                   --SSYpassword YourPassword \
                   --vdTemplateName MirrorVd \
                   --protocol iscsi \
                   --default 1

    # All portals, all nodes, shared, not disabled
    ssy-plugin ssy --SSYname SSY-example \
                   --SSYipAddress 10.121.0.129,10.121.0.137 \
                   --SSYusername administrator \
                   --SSYpassword YourPassword \
                   --vdTemplateName MirrorVd \
                   --portals all \
                   --nodes all \
                   --protocol nvme-tcp \
                   --shared 1 \
                   --disable 0

LVM Storage Examples

    Copy
    Command
    # Default parameters
    ssy-plugin lvm --SSYname SSY-example --default 1

    # Specific name and size
    ssy-plugin lvm --SSYname SSY-example --LVMsize 50 --LVMname cjs-lvm --default 1

    # All nodes, shared, not disabled
    ssy-plugin lvm --SSYname SSY-example --LVMsize 50 --LVMname cjs-lvm --nodes all --shared 1 --snapshotAsVolumeChain 1 --disable 0

    # Specific nodes
    ssy-plugin lvm --SSYname SSY-example --LVMsize 50 --LVMname cjs-lvm --nodes pve-1,pve-2 --default 1

Add SANsymphony Storage Using the 'pvesm add ssy' Command

You can add SANsymphony storage to Proxmox directly from the Proxmox terminal using the pvesm add ssy command. This method allows you to specify the custom parameters to configure the storage plugin efficiently.

  1. Run the following command in the Proxmox VE terminal, providing the required parameters listed below:
      Copy
      Command
      pvesm add ssy [OPTIONS]
  2. Parameters Used in the SANsymphony Storage Plugin for Proxmox.
Action Type Description
SSYipAddress string SANsymphony server management IP address (single or comma-separated list)
SSYusername string SANsymphony Username
SSYpassword string SANsymphony password. (The encoded SANsymphony storage password is stored in /etc/pve/priv/storage/<Storage-Name>.pw, which is accessible only to the root user).
portals string Front End portal IP addresses used by the selected protocol (iSCSI or NVMe/TCP) (single or comma-separated list)
targets string Front End target identifiers for the selected protocol: iSCSI IQNs, or a single NVMe/TCP NQN (single or comma-separated list)
vdTemplateName string Name of the virtual disk template
nodes string Proxmox node names (single or comma-separated list)
shared boolean Whether the storage is shared across nodes (1 = yes, 0 = no)
disable boolean Whether to disable the storage class (1 = yes, 0 = no)
protocol string nvme-tcp or iscsi (default: iscsi)

Example

    Copy
    Command
    pvesm add ssy <SSY-Name> \
        --SSYipAddress <IP1>,<IP2> \
        --SSYusername <Username> \
        --SSYpassword <Password> \
        --portals <Portal1>,<Portal2> \
        --targets <TargetIQN1>,<TargetIQN2> \
        --vdTemplateName <TemplateName> \
        --nodes <Node1>,<Node2> \
        --protocol <iscsi/nvme-tcp> \
        --shared 1 \
        --disable 0

If the plugin is installed using the pvesm add ssy command, you must verify and restart the Proxmox VE services. Refer to Verify and Restart the Proxmox VE Services for more details.

Modify the SANsymphony Storage Configuration Manually

After adding SANsymphony storage to Proxmox, you can manually edit the storage configuration file (/etc/pve/storage.cfg) to update or customize the SANsymphony storage class settings.

  1. Open the storage.cfg file located in /etc/pve/storage.cfg..
      Copy
      Command
      nano /etc/pve/storage.cfg
  2. Add the SANsymphony Storage Plugin Configuration: Add the configuration details for your SANsymphony Storage Plugin for Proxmox. Ensure that the configuration follows the Proxmox storage configuration file structure.
      Copy
      Example Configuration
      ssy: <SSY Storage Class Name>
         SSYipAddress <SSY Management IP Address list>
         SSYusername <SSY Username>
         portals <SSY FrontEnd portal IP list (iSCSI or NVMe/TCP)>
         targets <SSY FrontEnd target identifier list: iSCSI IQNs, or a single NVMe/TCP NQN>
         vdTemplateName <SSY Virtual Disk Template Name>
         nodes <Proxmox Node Names list>
         protocol <iscsi/nvme-tcp>
         shared 1
         disable 0
  3. NVMe/TCP Example Configuration: To configure a storage class that uses the NVMe/TCP protocol, set the protocol parameter to nvme-tcp and specify a single target NQN. Multiple portals are allowed, but only one target NQN is supported.
      Copy
      Example Configuration (NVMe/TCP)
      ssy: Storage-Name-NVMe
         SSYipAddress 10.15.1.19,10.15.1.18
         SSYusername administrator
         portals 10.15.1.17,10.15.1.18,10.15.2.17,10.15.2.18
         targets nqn.2000-08.com.datacore:ssy1
         vdTemplateName SSY-VDT-NVMe
         protocol nvme-tcp
         nodes pve1,pve2
         shared 1
                              
  4. Store the SANsymphony storage password in the following file:
      Copy
      Location
      /etc/pve/priv/storage/<Storage-Name>.pw
      The password must be stored in Base64-encoded format. Ensure that the password file is accessible only to the root user with read and write permissions. During upgrades, if a plaintext SSY password is found in storage.cfg from a previous version, the installer automatically migrates it to this Base64-encoded password file and removes the plaintext entry from storage.cfg.
  5. Once you have added the necessary configuration, save the storage.cfg file and close the text editor.

You must verify and restart the Proxmox VE Services if the plugin is installed manually. Refer to Verify and Restart the Proxmox VE Services for more details.

Verify and Restart the Proxmox VE Services

After adding and configuring the SANsymphony Storage Plugin for Proxmox using the pvesm add ssy command or by editing the storage configuration file manually, you must restart the Proxmox VE services. This ensures that the changes are applied, and the plugin is correctly integrated.

  1. Run the following command on all relevant Proxmox nodes to activate the new configuration and restart the required services:
      Copy
      Command
      systemctl restart pvedaemon pveproxy pvestatd pvescheduler
  2. Once the services have been restarted, verify that the SANsymphony Storage Plugin for Proxmox has been integrated successfully by running:
      Copy
      Command
      pvesm status
  3. This command displays the status of all storage resources in your Proxmox environment. Look for the SANsymphony Storage Plugin for Proxmox in the output. If configured correctly, it will appear along with details such as storage ID, storage type, and status.

Learn More