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 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 the server manually or using a pre-made script generated in the control panel. The script can only be used on Ubuntu OS — see the Connect a network volume to a dedicated Linux server guide for more details.

  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 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> — 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> — 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> — 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> — 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> — 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> — 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> — 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> — 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.
  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> — the name of the first iSCSI interface you created in step 13;
    • <iscsi_eth_name_2> — the name of the second iSCSI interface you created in step 13;
    • <eth_name_1> — the name of the first network interface you configured in step 3;
    • <eth_name_2> — the name of the second network interface you configured in step 3.
  15. Check the availability 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> — the IP address of the first iSCSI target;
    • <iscsi_target_ip_address_2> — the IP address of the second iSCSI target;
    • <iscsi_eth_name_1> — the name of the first iSCSI interface you created in step 13;
    • <iscsi_eth_name_2> — the 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 — the 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 an iSCSI device;
    • 10.100.1.6:3260 — the IP address of the second iSCSI target;
    • iqn.2003-01.com.redhat.iscsi-gw:workshop-target — the 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> — the IP address of the first iSCSI target;
    • <iscsi_target_ip_address_2> — the 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 Configuring an iSCSI connection → field Target name;
    • <username> — 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> — 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> — the IQN of the first and second iSCSI target;
    • <iscsi_target_ip_address_1> — the IP address of the first iSCSI target;
    • <iscsi_target_ip_address_2> — the IP address of the second iSCSI target;
    • <iscsi_eth_name_1> — the name of the first iSCSI interface;
    • <iscsi_eth_name_2> — the 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)

    Where [1] and [3] are the iSCSI session IDs.

  19. Enable automatic disk connection upon server reboot by setting 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> — the IQN of the first and second iSCSI target;
    • <iscsi_target_ip_address_1> — the IP address of the first iSCSI target;
    • <iscsi_target_ip_address_2> — the IP address of the second iSCSI target.
  20. Optional: reboot the server.

4. Configure MPIO

MultiPath-IO (MPIO) is a multi-path I/O method 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 configuration file /etc/multipath.conf with the text editor vi:

    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 with your changes saved:

    :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 information for 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 information for 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 the disk to ProxmoxVE

  1. Open the following page in your browser:

    https://<ip_address>:8006

    Specify <ip_address> — the server's public 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 left menu, 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 Configuring an iSCSI connection → field IP address of the iSCSI target.

  6. In the Target field, select the iSCSI target IQN. 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 configuration file /etc/pve/storage.cfg with the text editor vi:

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

    • <iscsi_target_name_2> — the 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 Configuring an iSCSI connection → 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 Configuring an iSCSI connection → field Target name.

      7.3. Exit the vi text editor with changes saved:

    :wq
  8. Select the Enabled checkbox.

  9. Select the Use LUNs directly checkbox.

  10. Click Add.

  11. In the left menu, 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 the 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 the 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.