IBM Support

IBM Spectrum Virtualize with IBM block storage CSI driver for VMware Tanzu Kubernetes Grid multicloud (TKGm)

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
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:
  1. Enable Passthrough for a Network Device on a host
  2. 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.
     Screen example of getting the WWPN from an FC host.
image-20220830161637-2
     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.
This image shows an exmaple screen for kubectl get pv results.
This image shows an exmaple screen for kubectl get sc results, with the first result showing the vsphere provisioner and the two remaining ones showing the IBM driver

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"}]

Document Information

Modified date:
28 March 2023

UID

ibm16616257