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, on the top menu, click Products and select Dedicated Servers.

  2. Go to the Network → tab SAN network.

  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 keep the default subnet. The subnet size must be /20.
    Ensure that the subnet is not 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 a server manually or by using a ready-made script generated in the control panel. The script can only be used 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> — The IP address of the first port on the network card. 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 Configuring network interfaces → column Port IP address;
    • <ip_address_2> — The IP address of the second port on the network card. 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 Configuring network interfaces → column Port IP address;
    • <destination_subnet_1> — The destination subnet for the first port on the network card. 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 Configuring network interfaces → column Destination Subnet;
    • <destination_subnet_2> — The destination subnet for the second port on the network card. 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 Configuring network interfaces → column Destination Subnet;
    • <next_hop_1> — The gateway for the first port on the network card. 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 Configuring network interfaces → column Next hop (gateway);
    • <next_hop_2> — The gateway for the second port on the network card. 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 Configuring network interfaces → 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> — The 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 Configuring an iSCSI connection → field IP address of the iSCSI target 1;
    • <iscsi_target_ip_address_2> — The 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 Configuring an iSCSI connection → 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> — the 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 Configuring an iSCSI connection → 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 coincide with the names of existing network interfaces. A list of existing network interfaces can be viewed 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 — The IQN of the first iSCSI target. IQN (iSCSI Qualified Name) is the full unique identifier of an 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> — The IQN of the first and second iSCSI target. You can view them in the control panel: in the top menu, click ProductsDedicated Servers → section Network volumes and Storage → tab Network volumes → disk page → block Configuring an iSCSI connection → field Target name;
    • <username> — The username for iSCSI initiator authorization. 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 Configuring an iSCSI connection → field Username;
    • <password> — The password for iSCSI initiator authorization. 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 Configuring an iSCSI connection → 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 output of the command 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 output of the command will display information about the WWID of the block device. 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 output of the command will display information about the WWID of the block device. 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> — the public IP address of the server. 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 IP address 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 Configuring an iSCSI connection → field iSCSI target IP address.

  6. In the Target field, select the IQN of the iSCSI target. IQN (iSCSI Qualified Name) is the full unique identifier of an 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> — The 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 Configuring an iSCSI connection → field IP address of the iSCSI target 1;

    • <iscsi_target_name_2> — name of the second connection;

    • <iscsi_target_ip_address_2> — The 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 Configuring an iSCSI connection → field IP address of the iSCSI target 2;

    • <iqn> — The 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 Configuring an iSCSI connection → 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.