Skip to main content

Connect a network volume to a dedicated server with Proxmox OS

Learn more about network volumes in the General information about the Network Volumes product guide.

  1. Create a SAN network.
  2. Connect a network volume to the server.
  3. Connect the network volume to the server in the server OS.
  4. Configure MPIO.
  5. Add the disk to ProxmoxVE.
  6. Optional: connect a network volume to another server.

1. Create a SAN network

  1. In the Control panel, in the top menu, click Products and select Dedicated Servers.

  2. Go to the Network section → SAN Network tab.

  3. Click Add SAN network.

  4. Select an availability zone.

  5. Enter a subnet address from the private address range (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16) or leave the default subnet. The subnet size must be /20.
    Ensure that the subnet is not being used in your infrastructure.

  6. Click Create SAN network.

2. Connect a network volume to the server

  1. In the Control panel, on the top menu, click Products and select Dedicated Servers.

  2. Go to the Network Volumes and Storage section → Network Volumes tab.

  3. Open the volume page → Connect to Server tab.

  4. In the Server field, click Select.

  5. Select the server to which the network volume will be connected.

  6. Click Confirm.

  7. If you are connecting a network volume to a server with a private network, configure the network:

    7.1. Select a VLAN.

    7.2. Enter the subnet CIDR from the private address range 10.0.0.0/8, 172.16.0.0/12 or 192.168.0.0/16.
    Ensure that the subnet does not overlap with the SAN network you created in step 1 and that you are not using it elsewhere in your infrastructure.

    7.3. Enter the Next hop 1 and Next hop 2 addresses from the selected private subnet.

    7.4. Click Configure.

3. Connect the network volume to the server in the server OS

You can connect a network volume to the server manually or using a ready-made script generated in the control panel. The script can be used only on Ubuntu OS — for more details, see the instructions Connect a network volume to a dedicated Linux server.

  1. Connect to the server via SSH or via KVM console.

  2. Open the configuration file /etc/network/interfaces.d/01-san with the text editor vi:

    vi /etc/network/interfaces.d/01-san
  3. Add IP addresses and routes to the network interfaces connected to the SAN switch to gain access to the iSCSI targets:

    auto <eth_name_1>
    iface <eth_name_1> inet static
    address <ip_address_1>
    up ip route add <destination_subnet_1> via <next_hop_1> dev <eth_name_1>

    auto <eth_name_2>
    iface <eth_name_2> inet static
    address <ip_address_2>
    up ip route add <destination_subnet_2> via <next_hop_2> dev <eth_name_2>

    Specify:

    • <eth_name_1> — the name of the first network interface; it is configured on the first network card port;
    • <eth_name_2> — the name of the second network interface; it is configured on the second network card port;
    • <ip_address_1> — IP address of the first network interface. You can view it in the control panel: in the top menu, click ProductsDedicated Servers → section Network Volumes and Storage → tab Network Volumes → disk page → block Network Interface Configuration → column Port IP address;
    • <ip_address_2> — IP address of the second network interface. You can view it in the control panel: in the top menu, click ProductsDedicated Servers → section Network Volumes and Storage → tab Network Volumes → disk page → block Network Interface Configuration → column Port IP address;
    • <destination_subnet_1> — destination subnet for the first network interface. You can view it in the control panel: in the top menu, click ProductsDedicated Servers → section Network Volumes and Storage → tab Network Volumes → disk page → block Network Interface Configuration → column Destination Subnet;
    • <destination_subnet_2> — destination subnet for the second network interface. You can view it in the control panel: in the top menu, click ProductsDedicated Servers → section Network Volumes and Storage → tab Network Volumes → disk page → block Network Interface Configuration → column Destination Subnet;
    • <next_hop_1> — gateway for the first network interface. You can view it in the control panel: in the top menu, click ProductsDedicated Servers → section Network Volumes and Storage → tab Network Volumes → disk page → block Network Interface Configuration → column Next hop (gateway);
    • <next_hop_2> — gateway for the second network interface. You can view it in the control panel: in the top menu, click ProductsDedicated Servers → section Network Volumes and Storage → tab Network Volumes → disk page → block Network Interface Configuration → column Next hop (gateway).
  4. Exit the vi text editor with your changes saved:

    :wq
  5. Apply the configuration by restarting the network:

    systemctl restart networking
  6. Display information about network interfaces and verify that they are configured correctly:

    ip a
  7. Optional: reboot the server.

  8. Check that the speed of each interface is at least 10 Gbit/s:

    ethtool <eth_name_1> | grep -i speed
    ethtool <eth_name_2> | grep -i speed

    Specify <eth_name_1> and <eth_name_2> — the names of the network interfaces configured in step 3.

  9. If the speed is lower than 10 Gbit/s, create a ticket.

  10. Check that the iSCSI target is available:

    ping -c5 <iscsi_target_ip_address_1>
    ping -c5 <iscsi_target_ip_address_2>

    Specify:

    • <iscsi_target_ip_address_1> — IP address of the first iSCSI target. You can view it in the control panel: in the top menu, click ProductsDedicated Servers → section Network Volumes and Storage → tab Network Volumes → disk page → block iSCSI Connection Setup → field IP address of the iSCSI target 1;
    • <iscsi_target_ip_address_2> — IP address of the second iSCSI target. You can view it in the control panel: in the top menu, click ProductsDedicated Servers → section Network Volumes and Storage → tab Network Volumes → disk page → block iSCSI Connection Setup → field IP address of the iSCSI target 2.
  11. Enter the iSCSI initiator name:

    vi /etc/iscsi/initiatorname.iscsi
    InitiatorName= <initiator_name>

    Specify <initiator_name> — iSCSI initiator name. You can view it in the control panel: in the top menu, click ProductsDedicated Servers → section Network Volumes and Storage → tab Network Volumes → disk page → block iSCSI Connection Setup → field Initiator name.

  12. Restart iSCSI:

    systemctl restart iscsid.service
  13. Create iSCSI interfaces:

    iscsiadm -m iface -I <iscsi_eth_name_1> --op new
    iscsiadm -m iface -I <iscsi_eth_name_2> --op new

    Specify:

    • <iscsi_eth_name_1> — the name of the first iSCSI interface;
    • <iscsi_eth_name_2> — the name of the second iSCSI interface.

    iSCSI interface names must not be the same as existing network interface names. You can view the list of existing network interfaces using the ip a command.

  14. Bind the iSCSI interfaces to the network interfaces you configured in step 3:

    iscsiadm -m iface --interface <iscsi_eth_name_1> --op update -n iface.net_ifacename -v <eth_name_1>
    iscsiadm -m iface --interface <iscsi_eth_name_2> --op update -n iface.net_ifacename -v <eth_name_2>

    Specify:

    • <iscsi_eth_name_1> — name of the first iSCSI interface you created in step 13;
    • <iscsi_eth_name_2> — name of the second iSCSI interface you created in step 13;
    • <eth_name_1> — name of the first network interface you configured in step 3;
    • <eth_name_2> — name of the second network interface you configured in step 3.
  15. Check the accessibility of the iSCSI target via the iSCSI interfaces:

    iscsiadm -m discovery -t sendtargets -p <iscsi_target_ip_address_1> --interface <iscsi_eth_name_1>
    iscsiadm -m discovery -t sendtargets -p <iscsi_target_ip_address_2> --interface <iscsi_eth_name_2>

    Specify:

    • <iscsi_target_ip_address_1> — IP address of the first iSCSI target;
    • <iscsi_target_ip_address_2> — IP address of the second iSCSI target;
    • <iscsi_eth_name_1> — name of the first iSCSI interface you created in step 13;
    • <iscsi_eth_name_2> — name of the second iSCSI interface you created in step 13.

    A list of iSCSI targets will appear in the response. For example:

    10.100.1.2:3260,1 iqn.2003-01.com.redhat.iscsi-gw:workshop-target
    10.100.1.6:3260,2 iqn.2003-01.com.redhat.iscsi-gw:workshop-target

    Where:

    • 10.100.1.2:3260 — IP address of the first iSCSI target;
    • iqn.2003-01.com.redhat.iscsi-gw:workshop-target — IQN of the first iSCSI target. IQN (iSCSI Qualified Name) is the full unique identifier of the iSCSI device;
    • 10.100.1.6:3260 — IP address of the second iSCSI target;
    • iqn.2003-01.com.redhat.iscsi-gw:workshop-target — IQN of the second iSCSI target.
  16. Configure CHAP authentication on the iSCSI Initiator:

    iscsiadm --mode node -T <iqn> -p <iscsi_target_ip_address_1> --op update -n node.session.auth.authmethod --value CHAP
    iscsiadm --mode node -T <iqn> -p <iscsi_target_ip_address_2> --op update -n node.session.auth.authmethod --value CHAP
    iscsiadm --mode node -T <iqn> --op update -n node.session.auth.username --value <username>
    iscsiadm --mode node -T <iqn> -p <iscsi_target_ip_address_1> --op update -n node.session.auth.password --value <password>
    iscsiadm --mode node -T <iqn> -p <iscsi_target_ip_address_2> --op update -n node.session.auth.password --value <password>

    Specify:

    • <iscsi_target_ip_address_1> — IP address of the first iSCSI target;
    • <iscsi_target_ip_address_2> — IP address of the second iSCSI target;
    • <iqn> — IQN of the first and second iSCSI target. You can view it in the control panel: in the top menu, click ProductsDedicated Servers → section Network Volumes and Storage → tab Network Volumes → disk page → block iSCSI Connection Setup → field Target name;
    • <username> — username to authorize the iSCSI initiator. You can view it in the control panel: in the top menu, click ProductsDedicated Servers → section Network Volumes and Storage → tab Network Volumes → disk page → block iSCSI Connection Setup → field Username;
    • <password> — password to authorize the iSCSI initiator. You can view it in the control panel: in the top menu, click ProductsDedicated Servers → section Network Volumes and Storage → tab Network Volumes → disk page → block iSCSI Connection Setup → field Password.
  17. Authorize on the iSCSI target via the iSCSI interfaces:

    iscsiadm --mode node -T <iqn> -p <iscsi_target_ip_address_1> --login --interface <iscsi_eth_name_1>
    iscsiadm --mode node -T <iqn> -p <iscsi_target_ip_address_2> --login --interface <iscsi_eth_name_2>

    Specify:

    • <iqn> — IQN of the first and second iSCSI target;
    • <iscsi_target_ip_address_1> — IP address of the first iSCSI target;
    • <iscsi_target_ip_address_2> — IP address of the second iSCSI target;
    • <iscsi_eth_name_1> — name of the first iSCSI interface;
    • <iscsi_eth_name_2> — name of the second iSCSI interface.
  18. Check that the iSCSI session for each iSCSI target has started:

    iscsiadm -m session

    Two active iSCSI sessions will appear in the response. For example:

    tcp: [1] 10.100.1.2:3260,1 iqn.2003-01.com.redhat.iscsi-gw:workshop-target (non-flash)
    tcp: [3] 10.100.1.6:3260,2 iqn.2003-01.com.redhat.iscsi-gw:workshop-target (non-flash)

    Here, [1] and [3] are the iSCSI session numbers.

  19. Enable automatic connection of disks when the server reboots; to do this, set the node.startup parameter to automatic:

    iscsiadm --mode node -T <iqn> -p <iscsi_target_ip_address_1> --op update -n node.startup -v automatic
    iscsiadm --mode node -T <iqn> -p <iscsi_target_ip_address_2> --op update -n node.startup -v automatic
    systemctl enable iscsid.service
    systemctl restart iscsid.service

    Specify:

    • <iqn> — IQN of the first and second iSCSI target;
    • <iscsi_target_ip_address_1> — IP address of the first iSCSI target;
    • <iscsi_target_ip_address_2> — IP address of the second iSCSI target.
  20. Optional: reboot the server.

4. Configure MPIO

MultiPath-IO (MPIO) is a multi-path I/O mechanism used to improve the fault tolerance of data transfer to a network volume.

  1. Update the package list:

    apt update
    apt upgrade
  2. Install multipath:

    apt install multipath-tools
  3. Open the /etc/multipath.conf configuration file using the vi text editor:

    vi /etc/multipath.conf
  4. Insert the following parameters into the configuration file:

    defaults {
    user_friendly_names yes
    find_multipaths yes
    }

    blacklist {
    }
  5. Exit the vi text editor and save your changes:

    :wq
  6. Apply the configuration by restarting multipath:

    systemctl restart multipathd
  7. Check the network volume connection and make sure that the policy parameter is set to service-time 0:

    multipath -ll

    The command output will display information about devices, paths, and the current policy. For example:

    mpatha (3600140530fab7e779fa41038a0a08f8e) dm-0 LIO-ORG,TCMU device
    size=20G features='0' hwhandler='1 alua' wp=rw
    |-+- policy='service-time 0' prio=10 status=active
    | `- 8:0:0:0 sdc 8:32 active ready running
    `-+- policy='service-time 0' prio=10 status=enabled
    `- 9:0:0:0 sdd 8:48 active ready running
  8. Make sure the bindings file contains the WWID of the block device:

    cat /etc/multipath/bindings

    The command output will display information about the block device WWID. For example:

    # Format:
    # alias wwid
    #
    mpatha 3600140530fab7e779fa41038a0a08f8e
  9. Make sure the wwids file contains the WWID of the block device:

    cat /etc/multipath/wwids

    The command output will display information about the block device WWID. For example:

    # Valid WWIDs:
    /3600140530fab7e779fa41038a0a08f8e/

5. Add a disk to ProxmoxVE

  1. Open the following page in your browser:

    https://<ip_address>:8006

    Specify <ip_address> — public server IP address. You can copy it in the control panel: in the top menu, click ProductsDedicated Servers → server page → tab Operating System → in the IP field, click .

  2. In the menu on the left, go to DatacenterStorage.

  3. In the Add field, select iSCSI.

  4. In the ID field, enter the connection name.

  5. In the Portal field, enter the iSCSI target IP address. You can view it in the control panel: in the top menu, click ProductsDedicated Servers → section Network Volumes and Storage → tab Network Volumes → disk page → block iSCSI Connection Setup → field iSCSI target IP address.

  6. In the Target field, select the iSCSI target IQN. IQN (iSCSI Qualified Name) is the full unique identifier of the iSCSI device.

  7. If the Target field does not contain the iSCSI target IQN, add it manually:

    7.1. Open the /etc/pve/storage.cfg configuration file using the vi text editor:

    vi /etc/pve/storage.cfg

    7.2. Add two connections:

    iscsi: <iscsi_target_name_1>
    portal <iscsi_target_ip_address_1>
    target <iqn>
    content none

    iscsi: <iscsi_target_name_2>
    portal <iscsi_target_ip_address_2>
    target <iqn>
    content none

    Specify:

    • <iscsi_target_name_1> — name of the first connection;

    • <iscsi_target_ip_address_1> — IP address of the first iSCSI target. You can view it in the control panel: in the top menu, click ProductsDedicated Servers → section Network Volumes and Storage → tab Network Volumes → disk page → block iSCSI Connection Setup → field IP address of the iSCSI target 1;

    • <iscsi_target_name_2> — name of the second connection;

    • <iscsi_target_ip_address_2> — IP address of the second iSCSI target. You can view it in the control panel: in the top menu, click ProductsDedicated Servers → section Network Volumes and Storage → tab Network Volumes → disk page → block iSCSI Connection Setup → field IP address of the iSCSI target 2;

    • <iqn> — IQN of the iSCSI target. You can view it in the control panel: in the top menu, click ProductsDedicated Servers → section Network Volumes and Storage → tab Network Volumes → disk page → block iSCSI Connection Setup → field Target name.

      7.3. Exit the vi text editor and save your changes:

    :wq
  8. Select the Enabled checkbox.

  9. Select the Use LUNs directly checkbox.

  10. Click Add.

  11. In the menu on the left, go to DatacenterStorage.

  12. Click Add and select LVM.

  13. In the ID field, enter the volume name.

  14. In the Base storage field, select the connection name you specified in step 4.

  15. In the Base volume field, select your network volume.

  16. In the Volume group field, enter the volume group name.

  17. Select the Enable checkbox.

  18. Select the Shared checkbox.

  19. Click Add.

6. Optional: connect a network volume to another server

  1. Connect a network volume to the server in the control panel.
  2. Connect the network volume to the server in the server OS.
  3. Configure MPIO.
  4. Add the disk to ProxmoxVE.