Search the docs

Appendix 1 - Installing Data Movers on Linux Nodes

There are two components that are collectively referred to as data movers:

  • Mover, sometimes referred to as NFS mover, and internally referred to as Data Instantiator or DI. This mover moves or copies instances of files between local storage volumes via NFS. This could be between DSX nodes, to/from a Linux storage server or other third part storage system.

  • Cloud Mover or CM. CM moves or copies files to and from object storage (local or remote) and cloud storage using S3, HTTPS and proprietary cloud protocols. CM also manages chunking, hash values, deduplication, and encryption for data placed in object storage.

There are three ways to implement the Hammerspace data mover technology:

  • Deploy DSX nodes, which include data movers as part of their included functionality.

  • Deploy the data mover RPMs on a supported Linux distribution.

  • Deploy the data movers as containers

While it is supported to install DI and CM on GPU nodes, customers may choose to install on separate servers to avoid additional resource consumption on the CPUs of GPU nodes.

Supported Distributions / Platforms

DI as an RPM is available for el8 and el9 platforms.

Other x86 based Linux distributions must use container based deployments.

Dependencies

  • Firewall ports 9095 and 9096 open for inbound from all Anvil IPs.

  • epel-release

  • platform-python

  • lttng-tools

  • lttng-ust

  • jemalloc

  • Babeltrace

Download and installation instructions for the above packages are below.

Installation, Setup, and Configuration of the DI Using RPM

Install Extra Packages for Enterprise Linux and other dependencies:

# dnf install -y epel-release

# dnf install -y platform-python lttng-tools lttng-ust jemalloc

Download and install babeltrace:

# wget https://dl.rockylinux.org/pub/rocky/9/devel/x86_64/os/Packages/b/babeltrace-1.5.8-10.el9.x86_64.rpm

# dnf install -y ./babeltrace-1.5.8-10.el9.x86_64.rpm

Get the Hammerspace Data Services Components Kit

Download the Hammerspace Data Services Components appropriate to your version of Hammerspace, and the CPU architecture and Linux distribution of the servers that will run the DI. If the version you need is not listed, contact your Hammerspace tech team.

For some Hammerspace releases, all of the components are included in a single tarball. Download and extract tarball, then extract and install the DI. File names will match the version of the components.

# wget trans.doit.hammerspace.com/download/tier0/components/el9-components-5.1.41-452.tar.gz

# gunzip el9-components-5.1.41-452.tar.gz

# tar xvf el9-components-5.1.41-452.tar */pd-di-*

el9-components/pd-di-5.1.41-452.el9.x86_64.rpm

# dnf install -y el9-components/pd-di-5.1.41-452.el9.x86_64.rpm

Add the management IP address of the Hammerspace cluster to /etc/hosts. Be sure to use the correct management floating IP for your Hammerspace cluster.

# echo "10.1.2.3 data-cluster" >>/etc/hosts

Open up the firewall ports Anvil uses to talk to the DI:

# firewall-cmd --zone=public --add-port=9095/tcp --permanent; firewall-cmd --zone=public --add-port=9096/tcp --permanent

# firewall-cmd --reload

Check firewall settings with firewall-cmd --list-all. You should see "ports: 9095/tcp 9096/tcp".

# firewall-cmd --list-all

public (active)

target: default

icmp-block-inversion: no

interfaces: ens192

sources:

services: cockpit dhcpv6-client mountd nfs rpc-bind ssh

ports: 9095/tcp 9096/tcp

protocols:

forward: yes

masquerade: no

forward-ports:

source-ports:

icmp-blocks:

rich rules:

Disable SELinux.

# vi /etc/selinux/config

# Set SELINUX to disabled and reboot.

SELINUX=disabled

Enable Linux Trace Toolkit: next generation (LTTNG) services:

# systemctl enable --now lttng-sessiond.service

# systemctl enable --now pd-di-lttng-recorder.service

Install Python PIP and other dependencies needed by the script to add the DI to the Hammerspace cluster:

# dnf install -y pip

# pip3 install urllib3

# pip3 install requests

Download and run the add_node.py script to add the DI to the cluster:

# ./add_node.py -i 10.4.5.6 -l 20 -d -u admin -n di-6

In the above command, the following options are used:

-i IP address of the DI node being added

-l Netmask prefix length of the DI node being added

-d A DI is being added (as opposed to a cloud mover)

-u Administrative user name on the Hammerspace cluster

-n Node name of the DI as you wish it to appear in Hammerspace

You can also specify admin user password with the -p option, but if not, the script will prompt.

Enable and start the DI service:

systemctl enable --now pd-di.service

You can verify the DI is properly configured and added to Hammerspace by logging in to the Hammerspace CLI as admin (or equivalent user) and running the node-list command specifying the DI node name.

admin@anvil> node-list --name my_di1

Name: my_di1

Type: External Mover

Internal ID: 1073744505

ID: bae33620-0281-11ef-8cab-5254009a4b8c

HW state: OK

Node state: MANAGED

Management IP: 10.4.5.6/20

S3 auth signing type: Default

Created: 2024-06-05 15:45:23 UTC

Modified: 2024-06-05 15:45:33 UTC

System services:

Object type: Data Mover

ID: 254e163c-1767-4b02-87b4-2f9c9c688b26

Internal ID: 536873594

Admin state: Up

Oper state: Up

Port: 9095

Troubleshooting

The following node-list command shows the status of the DI from the Anvil perspective. In this example, there is a problem with the firewall on the node running the DI.

admin@anvil> node-list --name di-173

Name: di-173

Type: External Mover

Internal ID: 1073741834

ID: 594662a3-e045-507b-a609-0d2cb6f16beb

HW state: OK

Node state: MANAGED

Management IP: 10.200.100.173/64

S3 auth signing type: Default

Created: 2025-06-03 23:59:31 UTC

Modified: 2025-06-05 05:29:37 UTC

System services:

Object type: Data Mover

ID: 553b23ef-0709-567b-80f0-2be3fe68a852

Internal ID: 536870923

Admin state: Up

Oper state: Down

Oper state reason: Failed port tests: [10.200.100.173:9095(Connection refused), 10.200.100.173:9096(Connection refused)]

Port: 9095

The above error can also be caused by the pd-di service not installed, correctly configured, or started. You might also see:

Oper state reason: Failed port tests: [10.200.101.3:9095(No route to host), 10.200.101.3:9096(No route to host)]

When you fix firewall and pd-di service issues, it may take a few seconds for Anvil to recognize the change.