Review best practices
Follow the best practice guidelines when deploying the BeeGFS on NetApp solution.
Standard conventions
When physically assembling and creating the Ansible inventory file, follow these standard conventions (for more information, see Create the Ansible inventory).
-
File node host names are sequentially numbered (h01-hN) with lower numbers at the top of the rack and higher numbers at the bottom.
For example, the naming convention
[location][row][rack]hN
looks like:beegfs_01
. -
Each block node is comprised of two storage controllers, each with their own host name.
A storage array name is used to refer to the whole block storage system as part of an Ansible inventory. The storage array names should be sequentially numbered (a01 - aN), and the host names for individual controllers are derived from that naming convention.
For example, a block node named
ictad22a01
typically can have host names configured for each controller likeictad22a01-a
andictad22a01-b
, but be referred to in an Ansible inventory asnetapp_01
. -
File and block nodes within the same building block share the same numbering scheme and are adjacent to each other in the rack with both file nodes on top and both block nodes directly underneath them.
For example, in the first building block, file nodes h01 and h02 are both directly connected to block nodes a01 and a02. From top to bottom, the host names are h01, h02, a01, and a02.
-
Building blocks are installed in sequential order based on their host names, so that lower numbered host names are at the top of the rack and higher numbered host names are at the bottom.
The intent is to minimize the length of cable running to the top of rack switches, and to define a standard deployment practice to simplify troubleshooting. For datacenters where this is not allowed due to concerns around rack stability, the inverse is certainly allowed, populating the rack from the bottom up.
InfiniBand storage network configuration
Half the InfiniBand ports on each file node are used to connect directly to block nodes. The other half are connected to the InfiniBand switches and are used for BeeGFS client-server connectivity. When determining the size of the IPoIB subnets that are used for BeeGFS clients and servers, you must consider the anticipated growth of your compute/GPU cluster and BeeGFS file system. If you must deviate from the recommended IP ranges, keep in mind that each direct connect in a single building block has a unique subnet and there is no overlap with subnets used for client-server connectivity.
Direct connects
File and block nodes within each building block always use the IPs in the following table for their direct connects.
This addressing scheme adheres to the following rule: The third octet is always odd or even, which depends on whether the file node is odd or even. |
File node | IB port | IP address | Block node | IB port | Physical IP | Virtual IP |
---|---|---|---|---|---|---|
Odd (h1) |
i1a |
192.168.1.10 |
Odd (c1) |
2a |
192.168.1.100 |
192.168.1.101 |
Odd (h1) |
i2a |
192.168.3.10 |
Odd (c1) |
2a |
192.168.3.100 |
192.168.3.101 |
Odd (h1) |
i3a |
192.168.5.10 |
Even (c2) |
2a |
192.168.5.100 |
192.168.5.101 |
Odd (h1) |
i4a |
192.168.7.10 |
Even (c2) |
2a |
192.168.7.100 |
192.168.7.101 |
Even (h2) |
i1a |
192.168.2.10 |
Odd (c1) |
2b |
192.168.2.100 |
192.168.2.101 |
Even (h2) |
i2a |
192.168.4.10 |
Odd (c1) |
2b |
192.168.4.100 |
192.168.4.101 |
Even (h2) |
i3a |
192.168.6.10 |
Even (c2) |
2b |
192.168.6.100 |
192.168.6.101 |
Even (h2) |
i4a |
192.168.8.10 |
Even (c2) |
2b |
192.168.8.100 |
192.168.8.101 |
BeeGFS client-server IPoIB addressing schemes
Each file node runs multiple BeeGFS server services (management, metadata, or storage). To allow each service to fail over independently to the other file node, each is configured with unique IP addresses that can float between both nodes (sometimes referred to as a logical interface or LIF).
While not mandatory, this deployment presumes the following IPoIB subnet ranges are in use for these connections and defines a standard addressing scheme that applies the following rules:
-
The second octet is always odd or even, based on whether the file node InfiniBand port is odd or even.
-
BeeGFS cluster IPs are always
xxx. 127.100.yyy
orxxx.128.100.yyy
.
In addition to the interface used for in-band OS management, additional interfaces can be used by Corosync for cluster heart beating and synchronization. This ensures that the loss of a single interface does not bring down the entire cluster. |
-
The BeeGFS Management service is always at
xxx.yyy.101.0
orxxx.yyy.102.0
. -
BeeGFS Metadata services are always at
xxx.yyy.101.zzz
orxxx.yyy.102.zzz
. -
BeeGFS Storage services are always at
xxx.yyy.103.zzz
orxxx.yyy.104.zzz
. -
Addresses in the range
100.xxx.1.1
through100.xxx.99.255
are reserved for clients.
IPoIB single subnet addressing scheme
This deployment guide will utilize a single subnet schema given the advantages listed in the software architecture.
The following table provides the range for a single subnet: 100.127.0.0/16.
Purpose | InfiniBand port | IP address or range |
---|---|---|
BeeGFS Cluster IP |
i1b or i4b |
100.127.100.1 - 100.127.100.255 |
BeeGFS Management |
i1b |
100.127.101.0 |
i2b |
100.127.102.0 |
|
BeeGFS Metadata |
i1b or i3b |
100.127.101.1 - 100.127.101.255 |
i2b or i4b |
100.127.102.1 - 100.127.102.255 |
|
BeeGFS Storage |
i1b or i3b |
100.127.103.1 - 100.127.103.255 |
i2b or i4b |
100.127.104.1 - 100.127.104.255 |
|
BeeGFS Clients |
(varies by client) |
100.127.1.1 - 100.127.99.255 |
IPoIB two subnet addressing scheme
A two subnet addressing scheme is no longer recommended, but can still be implemented. Refer to the tables below for a recommended two subnet scheme.
The following table provides the range for Subnet A: 100.127.0.0/16.
Purpose | InfiniBand port | IP address or range |
---|---|---|
BeeGFS Cluster IP |
i1b |
100.127.100.1 - 100.127.100.255 |
BeeGFS Management |
i1b |
100.127.101.0 |
BeeGFS Metadata |
i1b or i3b |
100.127.101.1 - 100.127.101.255 |
BeeGFS Storage |
i1b or i3b |
100.127.103.1 - 100.127.103.255 |
BeeGFS Clients |
(varies by client) |
100.127.1.1 - 100.127.99.255 |
The following table provides the range for Subnet B: 100.128.0.0/16.
Purpose | InfiniBand port | IP address or range |
---|---|---|
BeeGFS Cluster IP |
i4b |
100.128.100.1 - 100.128.100.255 |
BeeGFS Management |
i2b |
100.128.102.0 |
BeeGFS Metadata |
i2b or i4b |
100.128.102.1 - 100.128.102.255 |
BeeGFS Storage |
i2b or i4b |
100.128.104.1 - 100.128.104.255 |
BeeGFS Clients |
(varies by client) |
100.128.1.1 - 100.128.99.255 |
Not all IPs in the above ranges are used in this NetApp Verified Architecture. They demonstrate how IP addresses can be pre-allocated to allow easy file system expansion using a consistent IP addressing scheme. In this scheme, BeeGFS file nodes and service IDs correspond with the fourth octet of a well-known range of IPs. The file system could certainly scale beyond 255 nodes or services if needed. |