For the complete and up-to-date information about the compatibility and requirements for
using the IBM block storage CSI driver, refer to its latest
release notes. The release notes detail supported operating system and container platform versions,
as well as microcode versions of the supported storage systems. You can find the latest release
notes on IBM block
storage CSI driver Knowledge Center website.
Before you begin
Before beginning the installation of the
CSI (Container Storage Interface) driver be sure to verify that you comply with the
following prerequisites.
- The CSI driver requires the following ports
to be opened on the worker nodes OS firewall:
- For all iSCSI users
- Port 3260
- FlashSystem A9000 and A9000R
- Port 7778
- IBM Spectrum Virtualize Family
includes IBM SAN Volume Controller and
IBM FlashSystem family members built with IBM Spectrum Virtualize (FlashSystem 5010, 5030, 5100,
7200, 9100, 9200, 9200R)
- Port 22
- DS8000 Family systems
- Port 8452
- Be sure that multipathing is installed and running.
For iSCSI single path users
(RHEL only), be sure to define a virtual multipath. For example, remove
find_multipaths yes from the multipath.conf
file.
About this task
Perform these steps for each worker node in Kubernetes cluster to prepare your environment
for installing the CSI (Container Storage Interface) driver.
Procedure
-
Perform this step to ensure iSCSI connectivity, when using RHEL OS. If using RHCOS or if the packages are already
installed, continue to step 2.
iscsi-initiator-utils (if iSCSI connection is required)
xfsprogs
(if XFS file system is required)
yum -y install iscsi-initiator-utils
yum -y install xfsprogs
- Configure Linux multipath devices on the host, using one of the following procedures.
- Configuring for OpenShift Container Platform users (RHEL and RHCOS)
- The following yaml file can be used for both Fibre Channel and iSCSI
configurations. To support iSCSI, uncomment the last two lines in the file.
Important: The 99-ibm-attach.yaml configuration file
overrides any files that already exist on your system. Only
use this file if the files mentioned are not already created. If one or
more have been created, edit this yaml file, as necessary.
|
Save the following 99-ibm-attach.yaml
file.apiVersion: machineconfiguration.openshift.io/v1
kind: MachineConfig
metadata:
labels:
machineconfiguration.openshift.io/role: worker
name: 99-ibm-attach
spec:
config:
ignition:
version: 2.2.0
storage:
files:
- path: /etc/multipath.conf
mode: 384
filesystem: root
contents:
source: data:,defaults%20%7B%0A%20%20%20%20path_checker%20tur%0A%20%20%20%20path_selector%20%22round-robin%200%22%0A%20%20%20%20rr_weight%20uniform%0A%20%20%20%20prio%20const%0A%20%20%20%20rr_min_io_rq%201%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20polling_interval%2030%0A%20%20%20%20path_grouping_policy%20multibus%0A%20%20%20%20find_multipaths%20yes%0A%20%20%20%20no_path_retry%20fail%0A%20%20%20%20user_friendly_names%20yes%0A%20%20%20%20failback%20immediate%0A%20%20%20%20checker_timeout%2010%0A%20%20%20%20fast_io_fail_tmo%20off%0A%7D%0A%0Adevices%20%7B%0A%20%20%20%20device%20%7B%0A%20%20%20%20%20%20%20%20path_checker%20tur%0A%20%20%20%20%20%20%20%20product%20%22FlashSystem%22%0A%20%20%20%20%20%20%20%20vendor%20%22IBM%22%0A%20%20%20%20%20%20%20%20rr_weight%20uniform%0A%20%20%20%20%20%20%20%20rr_min_io_rq%204%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20path_grouping_policy%20multibus%0A%20%20%20%20%20%20%20%20path_selector%20%22round-robin%200%22%0A%20%20%20%20%20%20%20%20no_path_retry%20fail%0A%20%20%20%20%20%20%20%20failback%20immediate%0A%20%20%20%20%7D%0A%20%20%20%20device%20%7B%0A%20%20%20%20%20%20%20%20path_checker%20tur%0A%20%20%20%20%20%20%20%20product%20%22FlashSystem-9840%22%0A%20%20%20%20%20%20%20%20vendor%20%22IBM%22%0A%20%20%20%20%20%20%20%20fast_io_fail_tmo%20off%0A%20%20%20%20%20%20%20%20rr_weight%20uniform%0A%20%20%20%20%20%20%20%20rr_min_io_rq%201000%20%20%20%20%20%20%20%20%20%20%20%20%0A%20%20%20%20%20%20%20%20path_grouping_policy%20multibus%0A%20%20%20%20%20%20%20%20path_selector%20%22round-robin%200%22%0A%20%20%20%20%20%20%20%20no_path_retry%20fail%0A%20%20%20%20%20%20%20%20failback%20immediate%0A%20%20%20%20%7D%0A%20%20%20%20device%20%7B%0A%20%20%20%20%20%20%20%20vendor%20%22IBM%22%0A%20%20%20%20%20%20%20%20product%20%222145%22%0A%20%20%20%20%20%20%20%20path_checker%20tur%0A%20%20%20%20%20%20%20%20features%20%221%20queue_if_no_path%22%0A%20%20%20%20%20%20%20%20path_grouping_policy%20group_by_prio%0A%20%20%20%20%20%20%20%20path_selector%20%22service-time%200%22%20%23%20Used%20by%20Red%20Hat%207.x%0A%20%20%20%20%20%20%20%20prio%20alua%0A%20%20%20%20%20%20%20%20rr_min_io_rq%201%0A%20%20%20%20%20%20%20%20rr_weight%20uniform%20%0A%20%20%20%20%20%20%20%20no_path_retry%20%225%22%0A%20%20%20%20%20%20%20%20dev_loss_tmo%20120%0A%20%20%20%20%20%20%20%20failback%20immediate%0A%20%20%20%7D%0A%7D%0A
verification: {}
- path: /etc/udev/rules.d/99-ibm-2145.rules
mode: 420
filesystem: root
contents:
source: data:,%23%20Set%20SCSI%20command%20timeout%20to%20120s%20%28default%20%3D%3D%2030%20or%2060%29%20for%20IBM%202145%20devices%0ASUBSYSTEM%3D%3D%22block%22%2C%20ACTION%3D%3D%22add%22%2C%20ENV%7BID_VENDOR%7D%3D%3D%22IBM%22%2CENV%7BID_MODEL%7D%3D%3D%222145%22%2C%20RUN%2B%3D%22/bin/sh%20-c%20%27echo%20120%20%3E/sys/block/%25k/device/timeout%27%22%0A
verification: {}
systemd:
units:
- name: multipathd.service
enabled: true
# Uncomment the following lines if this MachineConfig will be used with iSCSI connectivity
#- name: iscsid.service
# enabled: true
Apply the yaml
file.oc apply -f 99-ibm-attach.yaml
RHEL users
should verify that the
systemctl status multipathd output indicates that the
multipath status is active and
error-free.
yum install device-mapper-multipath
sudo modprobe dm-multipath
systemctl enable multipathd
systemctl start multipathd
systemctl status multipathd
multipath -ll
- Configuring for Kubernetes users (RHEL)
-
Create and set the relevant storage system parameters in the
/etc/multipath.conf file. You can also use the default
multipath.conf file, located in the
/usr/share/doc/device-mapper-multipath-* directory.
Verify that the systemctl status multipathd output indicates that the multipath
status is active and error-free.
yum install device-mapper-multipath
sudo modprobe dm-multipath
systemctl enable multipathd
systemctl start multipathd
systemctl status multipathd
multipath -ll
- Configure storage system connectivity.
- Define the host of each Kubernetes node on the relevant
storage systems with the valid WWPN (for Fibre Channel) or IQN (for iSCSI) of the
node.
- For Fibre Channel, configure the relevant zoning from the storage to the
host.