Configuring shared memory communications direct
Use this procedure to configure the SMC-D on Linux® on Z nodes.
-
Verify that the internal shared memory (ISM) device is available. You can list ISM devices by
issuing the following command:
lspci | grep ISM
A sample output is as follows:1014:00:00.0 Non-VGA unclassified device: IBM Internal Shared Memory (ISM) virtual PCI device
For more information about ISM devices, see Internal shared memory device driver.
- Make sure that the operating system packages for smc-tools and
qclib are installed.
rpm -qa | grep -E 'smc-tools|qclib'
If necessary, set up the operating system packages for smc-tools and qclib.
- SLES
-
zypper install smc-tools qclib
- RHEL
-
dnf install smc-tools qclib
- Configure SELinux for SMC-D on RHEL.
SMC sockets are not included in the standard SELinux policies. Therefore, SMC-D does not support the enforcing mode of SELinux with the standard policies. To enable SMC-D support, you must either disable SELinux or install the custom SELinux policy to be able to use the SELinux enforcing mode.
To disable SELinux, complete the following steps.- Verify the SELinux settings in the /etc/selinux/config file.
- Set the SELinux=permissive or SELinux=disabled mode.
- Restart the node to apply the changes.
To install the custom SELinux policy to be able to use SELinux enforcing mode, complete the following steps.- Install selinux-policy-devel package by issuing the next
command:
dnf install selinux-policy-devel
- Create a text file named "storage-scale-smc.te" and add the following
content in it:
policy_module(storage-scale-smc, 1.0.0) require { type unconfined_service_t; } kernel_rw_unlabeled_smc_socket(unconfined_service_t)
- Run the following commands to create and instal the policy for SMC
sockets:
make -f /usr/share/selinux/devel/Makefile storage-scale-smc.pp semodule -i storage-scale-smc.pp
- Set maximum socket read/write buffer sizes to 1048576
bytes.
sysctl -w net.core.rmem_max=1048576 >> /etc/sysctl.conf
sysctl -w net.core.wmem_max=1048576 >> /etc/sysctl.conf