Network communication
Setting network-related options - for example, how the network interfaces should
be used, and which are the preferred ports - must be done in the
/etc/storpool.conf configuration file.
Interfaces for StorPool cluster communication and StorPool block protocol
The network interface options should be defined in the following way:
SP_IFACE1_CFG='config-version':'resolve-interface':'raw-interface':'VLAN':'IP':'resolve':'shared':'mac'
The option names are SP_IFACE1_CFG and SP_IFACE2_CFG for the first and
the second storage network interface, respectively. The option values are as
follows:
- config-version
version of the config format (currently 1)
- resolve-interface
Name of the kernel interface that has the IP address.
- raw-interface
Name of the raw interfaces to transmit and receive on.
- VLAN
VLAN tag to use, or 0 if the VLAN is untagged. The VLAN is used for the StorPool block protocol, as well as for the synchronous replication between the cluster nodes.
- IP
IP address to use for storage traffic.
- resolve
‘b’ - use broadcast for resolving (for Ethernet based networks); ‘k’ - use kernel address resolving (for IP-only networks).
- shared
‘s’ for shared in case of a bond interface on top; ‘x’ for exclusive - if nothing else is supposed to use this interface
- mac
‘r’ for using the unmodified MAC of the raw interface; ‘P’ (Privatized MAC); ‘v’ the resolve interfaces.
It is recommended to have two dedicated network interfaces for communication between the nodes. Here are a few examples:
Single VLAN active-backup bond interface, storage and API on the same VLAN:
SP_IFACE1_CFG=1:bond0.900:eth2:900:10.9.9.1:b:s:P SP_IFACE2_CFG=1:bond0.900:eth3:900:10.9.9.1:b:s:P
Single VLAN, LACP bond interface, storage and API on the same VLAN:
SP_IFACE1_CFG=1:bond0.900:eth2:900:10.9.9.1:b:s:v SP_IFACE2_CFG=1:bond0.900:eth3:900:10.9.9.1:b:s:v
Two VLANs: one VLAN for storage, one VLAN for API, both over bond:
SP_IFACE1_CFG=1:bond0.101:eth2:101:10.2.1.1:b:s:P SP_IFACE2_CFG=1:bond0.101:eth2:101:10.2.1.1:b:s:P
Three VLANs: two VLANs for storage, API on separate physical interface
SP_IFACE1_CFG=1:eth2.101:eth2:101:10.2.1.1:b:x:v SP_IFACE2_CFG=1:eth3.201:eth2:201:10.2.2.1:b:x:v
Address for API management
Address on which the StorPool API is bound. It is used by the active
storpool_mgmt service to receive requests from user-space tools. Multiple
clients can simultaneously send requests to the API; for details about the
management service, see storpool_mgmt. By default, the address
is bound on localhost:
SP_API_HTTP_HOST=127.0.0.1
For cluster-wide access and automatic failover between the nodes, multiple nodes
might have the API service started. Only one storpool_mgmt service is active
at any given time. The others are in standby mode. The specified IP address is
brought up only on one of the nodes in the cluster at a time - the node with the
active API service. You may specify an available IP address
(SP_API_HTTP_HOST), which will be brought up or down on the corresponding
interface (SP_API_IFACE) when the service becomes active or stand-by.
To configure an interface (SP_API_IFACE) and address (SP_API_HTTP_HOST):
SP_API_HTTP_HOST=10.10.10.240
SP_API_IFACE=eth1
Note
The script that adds or deletes the SP_API_HTTP_HOST address is located
at /usr/lib/storpool/api-ip. It is executed on every change of the
state of the storpool_mgmt service. The script could be easily modified to
implement additional functions; for example configure routing, firewalls,
and so on.
Port for API management
Port for the storpool_mgmt service for API management. The default value is
81:
SP_API_HTTP_PORT=81
API authentication token
This value must be an unique integer for each cluster:
SP_AUTH_TOKEN=0123456789
The token can be generated with: od -vAn -N8 -tu8 /dev/random
Note
This token is used only for the API authentication. Cluster management and inter-node communication (client to server, server-to-server) are not authenticated.
Ignore RX port option
Used to instruct the services that the network can preserve the selected port even when altering ports. Default value is 0:
SP_IGNORE_RX_PORT=0
Preferred port
Used for setting which port is preferred when two networks are specified, but only one of them could actually be used for any reason (in an active-backup bond style). The default value is 0 (load-balancing):
SP_PREFERRED_PORT=0 # load-balancing
When you want to specify a port, you should use one of the following values:
SP_PREFERRED_PORT=1 # use SP_IFACE1_CFG by default
SP_PREFERRED_PORT=2 # use SP_IFACE2_CFG by default
Address for the bridge service
IP address for the storpool_bridge bridge service (see
StorPool services) to bind to for inbound or outbound connections. If
not specified, the wildcard address (0.0.0.0) will be used.
SP_BRIDGE_HOST=180.220.200.8
Interface for the bridge address
Expected when the SP_BRIDGE_HOST value is a floating IP address for the
storpool_bridge service:
SP_BRIDGE_IFACE=bond0.900
Unlike the interfaces used for the StorPool block protocol, this interface must be active in the Linux kernel. The traffic to it is routed by the Linux network stack.
Resolve interface is bridge
If set, the top interface in the SP_IFACE1/2_CFG will be considered as a
bridge by the the iface-genconf tool. Also, if set the
SP_BOND_IFACE_NAME is required (see below). Default: (empty)
SP_RESOLVE_IFACE_IS_BRIDGE
Note that this parameter is used only during the installation of StorPool, when the network interface configuration is prepared. The parameter is not used by the StorPool services, and modifying it would not affect these services.
Name of the bond interface
Required when the SP_RESOLVE_IFACE_IS_BRIDGE option is set (see above). Used
by the iface-genconf tool to indicate what the name of the bond under the
resolve interface would have to be. Default: (empty)
SP_BOND_IFACE_NAME
Note that this parameter is used only during the installation of StorPool, when the network interface configuration is prepared. The parameter is not used by the StorPool services, and modifying it would not affect these services.
Host and port for the Web interface
You can use the SP_GUI_HTTP_HOST option to set the HTTP server host for
StorPool’s Web interface (see Graphical user interface). By default it is unset, in which case
the Web interface is not available.
SP_GUI_HTTP_HOST=127.0.0.1
You can also use the option for setting the port. Default: 443
SP_GUI_HTTP_PORT=443
Host and port for the DRE
When using the Disaster Recovery Engine API you should set the port to which you want to make
API calls using the SP_DRE_HTTP_PORT option. The default value is 55177:
SP_DRE_HTTP_PORT=127.0.0.1
The host to which you make API calls is the same one as the port configured with
the SP_API_HTTP_HOST option; for details, see Address for API management.
More information
Installation: Network interfaces
Network details can be viewed via the CLI (see Network), and also using the Graphical user interface and the REST API.