Setting node or target IDs

BeeGFS metadata and storage services and targets use a numeric ID, which is by default sequentially generated by the management daemon. Numeric IDs are 16-bit values in range 1..65535. It is usually not required to set node IDs or target IDs manually since they are assigned automatically as nodes and targets are created. It is, however, possible to force the use of specific node and target IDs on creation before the service starts up for the first time. These IDs should not conflict with any existing IDs in the file system.

Note

An ID only needs to be unique in its class. So a metadata server daemon and a storage server daemon may have the same node ID, but two metadata servers (or two storage servers) may not use the same ID.

Previously BeeGFS nodes and targets also had a string ID, which was replaced in BeeGFS 8 by aliases. The old string-based IDs were tightly coupled to the numeric IDs and could not be updated. The new aliases are initially generated by the management daemon and can be dynamically updated by the user/administrator at any time. These aliases are found in log messages and other output to help conveniently identify a particular service in place of the old string IDs.

Setting IDs by setup script

Use the corresponding setup script of each service to manually define IDs when first setting up the daemon:

# /opt/beegfs/sbin/beegfs-setup-meta
# /opt/beegfs/sbin/beegfs-setup-storage

See the help output of each script. Add -h argument for help and usage examples.

Setting IDs manually

Each BeeGFS server daemon checks for special files inside their storage directory during startup. To manually force certain IDs instead of having them generated automatically, you would create these special files before the first startup of a BeeGFS server daemon. The names of these special files are:

  • nodeNumID: numeric node ID

  • targetNumID: numeric target ID (only for storage server targets)

Warning

These IDs are an essential part of all lookups in BeeGFS. Do not change IDs after starting up a daemon for the first time (or BeeGFS would no longer be able to retrieve the data that was stored based on the old ID).

For example if you want to set the numeric ID of your first storage server and its storage target to 1. If your storeStorageDirectory in /etc/beegfs/beegfs-storage.conf is set to /mnt/myraid/beegfs_storage, before starting up the beegfs-storage daemon for the first time you would run the following commands:

$ echo 1 > /mnt/myraid/beegfs_storage/nodeNumID
$ echo 1 > /mnt/myraid/beegfs_storage/targetNumID

The ID settings can be confirmed by checking the storage server logs (journalctl -u beegfs-storage) after starting up the daemon. Or by querying the management server:

$ beegfs node list --node-type=storage --debug
$ beegfs target list --node-type=storage --debug