Define the BeeGFS storage service
BeeGFS services are configured using group variables (group_vars).
Overview
This section walks through defining the BeeGFS storage service. At least one service of this type should exist in the HA cluster(s) for a particular file system. Configuring this service includes defining:
-
The service type (storage).
-
Defining any configuration that should only apply to this BeeGFS service.
-
Configuring one or more floating IPs (logical interfaces) where this service can be reached.
-
Specifying where/how volume(s) should be to store data for this service (the BeeGFS storage targets).
Steps
Referencing the Plan the File System section, create a file at group_vars/stor_<ID>.yml
for each storage service in the cluster, and populate them as follows:
-
Indicate this file represents the configuration for a BeeGFS storage service:
beegfs_service: storage
-
Define any configuration that should apply only to this BeeGFS service. At minimum you must specify the desired TCP and UDP port, however any supported configuration parameter from
beegfs-storage.conf
can also be included. Note the following parameters are configured automatically/elsewhere and should not be specified here:sysMgmtdHost
,storeStorageDirectory
,connAuthFile
,connDisableAuthentication
,connInterfacesFile
, andconnNetFilterFile
.beegfs_ha_beegfs_storage_conf_resource_group_options: connStoragePortTCP: <TCP PORT> connStoragePortUDP: <UDP PORT> tuneBindToNumaZone: <NUMA ZONE> # Recommended if using file nodes with multiple CPU sockets.
-
Configure one or more floating IPs that other services and clients will use to connect to this service (this will automatically set the BeeGFS
connInterfacesFile
option):floating_ips: - <INTERFACE>:<IP/SUBNET> # Primary interface. Ex. i1b:100.127.101.1/16 - <INTERFACE>:<IP/SUBNET> # Secondary interface(s) as needed.
-
Optionally, specify one or more allowed IP subnets which may be used for outgoing communication (this will automatically set the BeeGFS
connNetFilterFile
option):filter_ip_ranges: - <SUBNET>/<MASK> # Ex. 192.168.10.0/24
-
Specify the BeeGFS storage target(s) where this service will store data according to the following guidelines (this will also automatically configure the
storeStorageDirectory
option):-
The same storage pool or volume group name can be used for multiple BeeGFS services/targets, simply ensure to use the same
name
,raid_level
,criteria_*
, andcommon_*
configuration for each (the volumes listed for each service should be different). -
Volume sizes should be specified as a percentage of the storage pool/volume group and the total should not exceed 100 across all services/volumes using a particular storage pool/volume group. Note when using SSDs it is recommended to leave some free space in the volume group to maximize SSD performance and wear life (click here for more details).
-
Click here for a full list of configuration options available for the
eseries_storage_pool_configuration
. Note some options such asstate
,host
,host_type
,workload_name
, andworkload_metadata
and volume names are generated automatically and should not be specified here.beegfs_targets: <BLOCK_NODE>: # The name of the block node as found in the Ansible inventory. Ex: netapp_01 eseries_storage_pool_configuration: - name: <NAME> # Ex: beegfs_s1_s2 raid_level: <LEVEL> # One of: raid1, raid5, raid6, raidDiskPool criteria_drive_count: <DRIVE COUNT> # Ex. 4 common_volume_configuration: segment_size_kb: <SEGMENT SIZE> # Ex. 128 volumes: - size: <PERCENT> # Percent of the pool or volume group to allocate to this volume. Ex. 1 owning_controller: <CONTROLLER> # One of: A, B # Multiple storage targets are supported / typical: - size: <PERCENT> # Percent of the pool or volume group to allocate to this volume. Ex. 1 owning_controller: <CONTROLLER> # One of: A, B
-
Click here for an example of a complete inventory file representing a BeeGFS storage service.