How To
Summary
The focus of this article is to demonstrate how IBM Spectrum Virtualize family and IBM block storage CSI driver can be used as a preferred backend persistent storage for VMware Tanzu based deployments.
Objective
This article shows the details of using IBM Spectrum Virtualize and IBM block storage (Container Storage Interface) CSI driver leveraged by Kubernetes persistent volumes (PVs) to provision for block storage used with stateful containers.
Models of IBM Spectrum Virtualize 8.5.x and IBM block storage CSI driver 1.9.0 or later are supported.
For a full list of supported storage systems with the CSI driver, see the Lifecycle and support matrix.
The Spectrum Virtualize™ family includes Spectrum Virtualize as software only, Spectrum Virtualize for Public Cloud, SAN Volume Controller (SVC), Storwize, and FlashSystem® family members built with Spectrum® Virtualize (including FlashSystem 5xxx, 7xxx, 9xxx).
Environment
The following components are supported for VMware Tanzu Kubernetes Grid multicloud (TKGm) with Spectrum Virtualize family and IBM block storage CSI driver:
VMware Tanzu
- Tanzu Kubernetes Grid multicloud with vSphere, versions 1.5.0 or later
- Infrastructure platform: vSphere 7.0 or later
- Kubernetes node OS distributed with TKG: Ubuntu 20.04 or later
- Ingress: Avi Controller 20.1.6 or later
IBM products
- IBM Spectrum Virtualize storage system 8.5.x or later (including both LTS and non-LTS versions. For more information, see IBM Spectrum Virtualize FAQ for Continuous Development (CD) Release Model for software releases).
- IBM block storage CSI driver 1.9.0 or later
Host attachment
- Three or more ESXi hosts, running ESXi 7.0 or later
- Minimum of two HBA/NIC cards
Steps
1. DirectPath I/O setup for worker nodes
The DirectPath I/O must be configured in order to enable the IBM block storage CSI driver installation on the worker node's virtual machine (VM) running on vSphere environment. This allows the worker nodes access to the physical PCI functions, as if they were physically attached to the guests operating system.
Important: The Direct Path I/O must be created in all worker nodes in order to be able to connect them as hosts to the storage system.
Follow the steps provided within vSphere Networking > Managing Network Resources > Direct I/O within VMware vSphere product documentation, including:
- Enable Passthrough for a Network Device on a host
- Configure a PCI Device on a Virtual Machine
Note: For a full list of unavailable features for VMs configured with DirectPath I/O, see DirectPath I/O.
2. Environment preparation for installing the block storage CSI driver
Note: For full documentation on the IBM block storage CSI driver, including release notes, compatibility and requirements, and user information, see IBM block storage CSI driver documentation.
In addition to the listed compatibility and requirements within the full product documentation, complete the following steps:
1. Configure TKGm with Ubuntu 20.04 multipath devices, per worker node.
1.1 Log into the worker node by using SSH.
ssh capv@IP_address
1.2 Install the multipath packages for Ubuntu OS.
sudo apt-get update -y
sudo apt-get install -y multipath-tools
sudo apt-get install -y multipath-tools-boot
1.3 Install the iSCSI packages for Ubuntu OS
sudo apt-get update -y
sudo apt install -y open-iscsi
2. Configure your storage system host attachment, per worker node.
Important: The Direct Path I/O must be created in all worker nodes in order to be able to connect them as hosts to the storage system.
Add each worker node as a host to your storage system.
2.1 Log in to the worker node via SSH.
ssh capv@IP_address_worker_node
2.2 Get the WWPN of the HBA or FC card of your worker node VM.
cat/sys/class/fc_host/<hostX>/port_name
Replace hostX with your host number.


2.3 Configure your storage system host attachment, per worker node.
Note: IBM block storage CSI driver 1.10.0 introduces dynamic host definition. For more information and installation instructions, see Installing the host definer. If this feature is not installed, the nodes are not dynamically defined on the storage system and they must be defined manually.
Within the Spectrum Virtualize UI, use the worker node name as a the host name, in the Add Host form. For more information about configuring the storage system host attachment, see the product documentation on IBM Documentation.
3. Install the IBM block storage CSI operator and driver
Install the CSI operator and driver.
Important: The IBM block storage CSI driver and the vSphere CSI driver use the Health port 9808 by default. In order to allow both drivers to exist on the same cluster, be sure to uncomment and change the HealthPort configuration in the csi.ibm.com_v1_ibmblockcsi_cr.yaml file before deploying, Be sure to use a different port number that is not currently in use (for example, 9810).
For more information, see Installing within the CSI driver documentation.
4. Configure the IBM block storage CSI driver
Configure the CSI driver relevant YAML files. For more information, see Configuring within the CSI driver documentation.
Once the CSI driver is properly configured and the Secret, StorageClass, and PersistentVolume (PV) YAML files are applied the CSI driver and vSphere CSI driver are able to work together.
The following examples demonstrated the PVs were created with one volume using the vSphere CSI driver and the remaining using the IBM CSI driver.


Related Information
Document Location
Worldwide
[{"Type":"MASTER","Line of Business":{"code":"LOB26","label":"Storage"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"STSLR9","label":"IBM FlashSystem 9x00"},"ARM Category":[{"code":"a8m0z000000bqPqAAI","label":"Documentation"},{"code":"a8m0z000000bqUgAAI","label":"Host Related->Host Plug In"},{"code":"a8m3p000000LQl6AAG","label":"Host Related->VMware\/ESX"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"},{"Type":"MASTER","Line of Business":{"code":"LOB26","label":"Storage"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"ST3FR9","label":"IBM FlashSystem 5000"},"ARM Category":[{"code":"a8m0z000000bqPqAAI","label":"Documentation"},{"code":"a8m0z000000bqUgAAI","label":"Host Related->Host Plug In"},{"code":"a8m3p000000LQl6AAG","label":"Host Related->VMware\/ESX"}],"Platform":[{"code":"PF025","label":"Platform Independent"}]},{"Type":"MASTER","Line of Business":{"code":"LOB26","label":"Storage"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"ST3FR9","label":"IBM FlashSystem 5x00"},"ARM Category":[{"code":"a8m0z000000bqPqAAI","label":"Documentation"},{"code":"a8m0z000000bqUgAAI","label":"Host Related->Host Plug In"},{"code":"a8m3p000000LQl6AAG","label":"Host Related->VMware\/ESX"}],"Platform":[{"code":"PF025","label":"Platform Independent"}]},{"Type":"MASTER","Line of Business":{"code":"LOB26","label":"Storage"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSA76Z4","label":"IBM FlashSystem 7x00"},"ARM Category":[{"code":"a8m0z000000bqPqAAI","label":"Documentation"},{"code":"a8m0z000000bqUgAAI","label":"Host Related->Host Plug In"},{"code":"a8m3p000000LQl6AAG","label":"Host Related->VMware\/ESX"}],"Platform":[{"code":"PF025","label":"Platform Independent"}]},{"Type":"MASTER","Line of Business":{"code":"LOB26","label":"Storage"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SSA76Z4","label":"IBM FlashSystem 7x00"},"ARM Category":[{"code":"a8m0z000000bqPqAAI","label":"Documentation"},{"code":"a8m0z000000bqUgAAI","label":"Host Related->Host Plug In"},{"code":"a8m3p000000LQl6AAG","label":"Host Related->VMware\/ESX"}],"Platform":[{"code":"PF025","label":"Platform Independent"}]},{"Type":"MASTER","Line of Business":{"code":"LOB26","label":"Storage"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"STSLR9","label":"IBM FlashSystem 9x00"},"ARM Category":[{"code":"a8m0z000000bqPqAAI","label":"Documentation"},{"code":"a8m0z000000bqUgAAI","label":"Host Related->Host Plug In"},{"code":"a8m3p000000LQl6AAG","label":"Host Related->VMware\/ESX"}],"Platform":[{"code":"PF025","label":"Platform Independent"}]},{"Type":"MASTER","Line of Business":{"code":"LOB26","label":"Storage"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"STSLR9","label":"IBM FlashSystem 9x00"},"ARM Category":[{"code":"a8m0z000000bqPqAAI","label":"Documentation"},{"code":"a8m0z000000bqUgAAI","label":"Host Related->Host Plug In"},{"code":"a8m3p000000LQl6AAG","label":"Host Related->VMware\/ESX"}],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"},{"Type":"MASTER","Line of Business":{"code":"LOB26","label":"Storage"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"STSLR9","label":"IBM FlashSystem 9x00"},"ARM Category":[{"code":"a8m0z000000bqPqAAI","label":"Documentation"},{"code":"a8m0z000000bqUgAAI","label":"Host Related->Host Plug In"},{"code":"a8m3p000000LQl6AAG","label":"Host Related->VMware\/ESX"}],"Platform":[{"code":"PF025","label":"Platform Independent"}]},{"Type":"MASTER","Line of Business":{"code":"LOB26","label":"Storage"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"STPVGU","label":"SAN Volume Controller"},"ARM Category":[{"code":"a8m0z000000bqPqAAI","label":"Documentation"},{"code":"a8m0z000000bqUgAAI","label":"Host Related->Host Plug In"},{"code":"a8m3p000000LQl6AAG","label":"Host Related->VMware\/ESX"}],"Platform":[{"code":"PF025","label":"Platform Independent"}]},{"Type":"MASTER","Line of Business":{"code":"LOB26","label":"Storage"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"ST2HTZ","label":"IBM FlashSystem Software"},"ARM Category":[{"code":"a8m0z000000bqPqAAI","label":"Documentation"},{"code":"a8m0z000000bqUgAAI","label":"Host Related->Host Plug In"},{"code":"a8m3p000000LQl6AAG","label":"Host Related->VMware\/ESX"}],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"},{"Type":"MASTER","Line of Business":{"code":"LOB26","label":"Storage"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"STHGUJ","label":"IBM Storwize V5000"},"ARM Category":[{"code":"a8m0z000000bqPqAAI","label":"Documentation"},{"code":"a8m0z000000bqUgAAI","label":"Host Related->Host Plug In"},{"code":"a8m3p000000LQl6AAG","label":"Host Related->VMware\/ESX"}],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"},{"Type":"MASTER","Line of Business":{"code":"LOB26","label":"Storage"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"STHGUL","label":"IBM Storwize V5000E"},"ARM Category":[{"code":"a8m0z000000bqPqAAI","label":"Documentation"},{"code":"a8m0z000000bqUgAAI","label":"Host Related->Host Plug In"},{"code":"a8m3p000000LQl6AAG","label":"Host Related->VMware\/ESX"}],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"},{"Type":"MASTER","Line of Business":{"code":"LOB26","label":"Storage"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"ST3FR7","label":"IBM Storwize V7000"},"ARM Category":[{"code":"a8m0z000000bqPqAAI","label":"Documentation"},{"code":"a8m0z000000bqUgAAI","label":"Host Related->Host Plug In"},{"code":"a8m3p000000LQl6AAG","label":"Host Related->VMware\/ESX"}],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"All Versions"}]
Was this topic helpful?
Document Information
Modified date:
28 March 2023
UID
ibm16616257