The cm-nfs-checker
is an integral tool for the proper operation of the BCM tools. It is designed to be a lightweight and safe way for the system to monitor the mount state of filesystems without the risk of hanging the primary service. It will, by default, run on port 8082/UDP bound to localhost.
In some rare cases, a system administrator may need to alter the port number to resolve a conflict.
The value XXXX
in this document should reference a free UDP port. This procedure should only be followed if you have no other options but to change the port number on this service, and if you have questions, you should reach out to support before attempting these steps.
Update systemd unit file
If this file already has the changes listed below you can skip this step.
For BCM releases that are not BCM11 and before 9.2-18, 10.25.04, you will need to manually update the unit file, and it will need to be updated whenever the cmdaemon package is updated. These updates are local and not on the shared filesystem, so it will need to be completed on all head nodes as well as all software images. The path of the files is /usr/lib/systemd/system/cm-nfs-checker.service
and will need the following contents.
[Unit]
Description=BCM NFS monitor and checker
After=syslog.target network.target time-sync.target
Before=cmd.service
[Service]
EnvironmentFile=-/etc/sysconfig/cm-nfs-checker
EnvironmentFile=-/etc/default/cm-nfs-checker
PIDFile=/var/run/cm-nfs-checker.pid
ExecStart=/cm/local/apps/cmd/sbin/cm-nfs-checker --server --pidfile /var/run/cm-nfs-checker.pid $CMNFSCHECKER_OPTIONS
TimeoutStopSec=5
Restart=always
[Install]
WantedBy=multi-user.target
Add EnvironmentFile
To the head node as well as all software images, you need add the following environment file to either /etc/default/cm-nfs-checker
for Ubuntu/DGX systems or /etc/sysconfig/cm-nfs-checker
for RHEL/SLES based platforms. The contents should be as follows
# replace the port number with a free UDP port
CMNFSCHECKER_OPTIONS="--port XXXX"
Update cmd.conf
On each head node and software image, the AdvancedConfig
inside the /cm/local/apps/cmd/etc/cmd.conf
will need to be updated as well. You can manually update it with the necessary changes, as seen below.
AdvancedConfig = {
.. other options ..
"NFSCheckerPort=XXXX",
}
Or you may choose to update it with the provided utility.
cm-manipulate-advanced-config.py "NFSCheckerPort=XXXX"
This step needs to be completed on all head nodes and all software images
Testing
To test this change, you can use the following commands on a head node
systemctl daemon-reload
systemctl restart cm-nfs-checker
ss -nupl | grep XXXX # should show cm-nfs-checker on this port
cm-nfs-checker --port XXXX <path to a mounted filesyste>
# should return <mounted path>: 0, GOOD
Deployment
To activate the changes, both cm-nfs-checker and cmd will need to be restarted site-wide. On the head nodes, you can restart both in succession, and for the compute resources, it is easiest to restart them to take the changes.