Different Use Cases for PowerVC Initiator Port Groups
In this blog, procedure to use PowerVC initiator port groups (IPGs) based on different use cases is described.
1. Use Case 1: FC Port Load balancing by using IPG: To enable higher number of volume attachment for IBMi or any virtual machine (VM). If your VM requires large number of volume attachment, you can use IPG to distribute the I/O load across multiple virtual fiber channel (VFC) adapters by utilizing maximum Virtual I/O Server (VIOS) fiber channel (FC) ports.
2. Use Case 2: Utilizing the selected FC ports for provisioning: There are several FC ports on the power host. If you want to isolate the deployments by using the single host and by isolating the FC ports for your development and test environment, you can create different storage connectivity groups (SCGs) by creating the IPG with selected FC ports.
3. Use Case 3: Distribute FC ports across multiple storages: If there are multiple storage controllers and you want to distribute the FC ports for dedicated storage controllers, then IPGs can be used and associated with the storage templates.
4. Use Case 4: Define a specific path for Host FC port and storage ports: IPG can be paired with storage port groups (SPGs) to define the exact match for initiators and storage port group. For example, if you want the FC port 1 to be paired with storage port SP1, you can define the IPG and SPG and match them to form the exact defined path. Ensure that the IPG and SPG names match if the storage includes more than one IO group, such as ipg1, ipg2, ipg3, ipg4.
5. Use Case 5: IPGs with FC Tapes:If your environment is using FC Tape controller along with storage area network (SAN) storage controllers, and your requirement is to use only defined FC ports for Tape I/O, then IPG can be used and associated with the FC tape storage template.
Demonstration of PowerVC setup for all the use cases
1. Compute: Two Power Hosts (Host-F51, Host-B1) added to a single HMC.

2. Each host has two VIOSs. Each VIOS is connected to two ports, which in-turn are connected to two distinct fabrics (G&H).

3. Storage: Two IBM Storwize Storages, SVC-104 and SVC-32.
For SVC-104, four ports are connected to Fabric G and two ports are connected to Fabric H.

For SVC-32, four ports are connected to Fabric G and four ports are connected to Fabric H.

Connectivity diagram:

If the VM is deployed with default SCG, all the volumes attached uses the same VFC adapters. This might result in slow performance if there are considerable amount of I/O throughput with large number of volumes.
Use Case 1: FC Port Load balancing by using IPG
IBMi VMs require larger number of volumes. For better performance, it is required to distribute the volume attachment across multiple VFC adapters. This distribution allows maximum number of volume attachments to a single VM.
To ensure that the volume attachments that are either specified during the deploy time or post virtual machine deploy selects the created IPGs in a round-robin fashion, perform the following steps:
1. Create a SCG with the required VIOS redundancy and Fabric redundancy.
2. In the IPG tab of the SCG, select the ports for creating IPG. You can create multiple IPG groups.
The created IPGs must satisfy constraints set by storage connectivity group.
In the following example, SCG named SCG-max-attachments-IPG is created:

While deploying the VM, you must select the SCG that is created with the required VIOS redundancy and Fabric redundancy.
In this demonstration, four IPGs (IPG-e50, IPG-e51, IPG-78, and IPG-79) are created. Each of these IPGs contain only one port.
As the volume attachment progresses, each volume attachment starts picking one of the IPGs. If the first volume attachment selects IPG-e51, the next volume attachment might select any of the remaining IPGs (IPG-e50, IPG-e78, or IPG-79). If the second volume attachment selects IPG-79, then the third volume attachment have the choice between IPG-e50 and IPG-78. If the third volume attachment selects IPG-78, then the fourth volume attachment selects IPG-e50. The fifth volume attachment once again selects IPG-e51 and so on.
In the following example, a VM with a single boot volume by using the SCG, SCG-max-attachments-IPG is deployed:


After starting PowerVC 2.2.0, you can use powervc-ipg-info CLI to check which IPG is selected as follows:
[root@vm-xxx ~]# powervc-ipg-info --list-instances
+--------------------------------------+-------------------+--------+------------+---
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+-------------------+--------+------------+---
| d76e98e2-0883-443a-aadb-18f8709e59af | IPG-VM-Scenario-1 | ACTIVE | | Running | NW-2227=X.X.X.146 |
+--------------------------------------+-------------------+--------+------------+---
[root@vm-xxx ~]# powervc-ipg-info -i d76e98e2-0883-443a-aadb-18f8709e59af --list-attached-volumes
Instance ID: d76e98e2-0883-443a-aadb-18f8709e59af
Display Name: IPG-VM-Scenario-1
Instance Name: IPG-VM-Scenar-d76e98e2-00000002
Deployed host: XXXXXXF51
Storage Connectivity Group: SCG-max-attachments-IPG (ID: 21250e0e-d7a4-45a2-9feb-0877b7caf6d3)
Attached Volumes Information:
+----------------------------------------+--------------------------------------+-----
| Volume Name | Volume ID | Size (GB) | Status | Attachment Type | Volume Template |
+----------------------------------------+--------------------------------------+-----
| IPG-VM-Scenar-d76e98e2-00000002-boot-0 | 9ab51329-0be5-4a3b-8134-93dbca311fc1 | 20 | in-use | boot | SVC-104 base template |
[root@vm-XXX ~]# powervc-ipg-info -i d76e98e2-0883-443a-aadb-18f8709e59af --volume-ids 9ab51329-0be5-4a3b-8134-93dbca311fc1 --list-ipg-info
Instance ID: d76e98e2-0883-443a-aadb-18f8709e59af
Display Name: IPG-VM-Scenario-1
Instance Name: IPG-VM-Scenar-d76e98e2-00000002
Deployed host: XXXXXXF51
Storage Connectivity Group: SCG-max-attachments-IPG (ID: 21250e0e-d7a4-45a2-9feb-0877b7caf6d3)
Attached Volumes Information:
+----------+------------------+--------------+----------------------------------------
| IPG-name | IPG-Ports | Connectivity | Associated Volume-IDs |
+----------+------------------+--------------+----------------------------------------
| IPG-e50 | XXXXXXXae50 | | Boot volumes: 9ab51329-0be5-4a3b-8134-93dbca311fc1 |
+----------+------------------+--------------+---------------------------------------
You can also check which IPG is selected by checking the zones or by checking the host entry from the backend or topology view in the UI from PowerVC.

Click on the VM name to see the initiator WWPNs in-use. Click on the volume details to bring up the storage ports in use.

Attach one more volume to the VM and check which IPG is selected by using the powervc-ipg-info CLI option.

[root@vm-xxx ~]# powervc-ipg-info -i d76e98e2-0883-443a-aadb-18f8709e59af --volume-ids 95078e4d-5163-4066-a2ed-4cf956317868 --list-ipg-info
Instance ID: d76e98e2-0883-443a-aadb-18f8709e59af
Display Name: IPG-VM-Scenario-1
Instance Name: IPG-VM-Scenar-d76e98e2-00000002
Deployed host: XXXXXXXXF51
Storage Connectivity Group: SCG-max-attachments-IPG (ID: 21250e0e-d7a4-45a2-9feb-0877b7caf6d3)
Attached Volumes Information:
+----------+------------------+--------------+----------------------------------------
| IPG-name | IPG-Ports | Connectivity | Associated Volume-IDs |
+----------+------------------+--------------+----------------------------------------
| IPG-e51 | XXXXXXXXe51 | | Data volumes: 95078e4d-5163-4066-a2ed-4cf956317868 |
+----------+------------------+--------------+----------------------------------------
Check the topology view from PowerVC GUI one more time:

Attach a third volume to the VM and check which IPG is selected by using the powervc-ipg-info CLI option.

[root@vm-xxx ~]# powervc-ipg-info -i d76e98e2-0883-443a-aadb-18f8709e59af --volume-ids c7f476be-3000-42fe-bed8-f0f1e9f66591 --list-ipg-info
Instance ID: d76e98e2-0883-443a-aadb-18f8709e59af
Display Name: IPG-VM-Scenario-1
Instance Name: IPG-VM-Scenar-d76e98e2-00000002
Deployed host: XXXXXXF51
Storage Connectivity Group: SCG-max-attachments-IPG (ID: 21250e0e-d7a4-45a2-9feb-0877b7caf6d3)
Attached Volumes Information:
+----------+------------------+--------------+----------------------------------------
| IPG-name | IPG-Ports | Connectivity | Associated Volume-IDs |
+----------+------------------+--------------+----------------------------------------
| IPG-79 | XXXXXXX179 | | Data volumes: c7f476be-3000-42fe-bed8-f0f1e9f66591 |
+----------+------------------+--------------+----------------------------------------
Check the topology view again.

Attach a fourth volume to the VM and check which IPG is selected by using the powervc-ipg-info CLI option.

[root@vm-xxx ~]# powervc-ipg-info -i d76e98e2-0883-443a-aadb-18f8709e59af --volume-ids 42ad6b7d-99a7-4493-9237-df6ed9972ba1 --list-ipg-info
Instance ID: d76e98e2-0883-443a-aadb-18f8709e59af
Display Name: IPG-VM-Scenario-1
Instance Name: IPG-VM-Scenar-d76e98e2-00000002
Deployed host: XXXXXXF51
Storage Connectivity Group: SCG-max-attachments-IPG (ID: 21250e0e-d7a4-45a2-9feb-0877b7caf6d3)
Attached Volumes Information:
+----------+------------------+--------------+----------------------------------------
| IPG-name | IPG-Ports | Connectivity | Associated Volume-IDs |
+----------+------------------+--------------+----------------------------------------
| IPG-78 | XXXXXXX178 | | Data volumes: 42ad6b7d-99a7-4493-9237-df6ed9972ba1 |
+----------+------------------+--------------+----------------------------------------
Check the topology view from the GUI:

Attach four more volume to the VM and check which IPGs are selected by using the powervc-ipg-info CLI option:

[root@vm-xxx ~]# powervc-ipg-info -i d76e98e2-0883-443a-aadb-18f8709e59af --list-ipg-info
Instance ID: d76e98e2-0883-443a-aadb-18f8709e59af
Display Name: IPG-VM-Scenario-1
Instance Name: IPG-VM-Scenar-d76e98e2-00000002
Deployed host: XXXXXXXXF51
Storage Connectivity Group: SCG-max-attachments-IPG (ID: 21250e0e-d7a4-45a2-9feb-0877b7caf6d3)
Attached Volumes Information:
+----------+------------------+--------------+------------------------------------------------------------------------------------------+
| IPG-name | IPG-Ports | Connectivity | Associated Volume-IDs |
+----------+------------------+--------------+------------------------------------------------------------------------------------------+
| IPG-e50 | XXXXXXXe50 | | Boot volumes: 9ab51329-0be5-4a3b-8134-93dbca311fc1 |
| | | | Data volumes: 3a828357-eca0-4dae-b102-b018c6951c64 |
| IPG-e51 | XXXXXXXXe51 | | Data volumes: 95078e4d-5163-4066-a2ed-4cf956317868, d044c770-ddba-479f-899f-1694d2f6d012 |
| IPG-79 | XXXXXXXXXb179 | | Data volumes: c7f476be-3000-42fe-bed8-f0f1e9f66591, 0594b281-7b0c-4083-a3be-c47b216f1ba8 |
| IPG-78 | XXXXXXXXXb178 | | Data volumes: 42ad6b7d-99a7-4493-9237-df6ed9972ba1, ac2f4a3b-ec1b-4d6b-a509-8404f7ce1ef9 |
+----------+------------------+--------------+----------------------------------------
Check the topology view from the GUI:

The last four volume attachments start selecting the existing IPGs in round-robin fashion. There are no new WWPNs in the topology view.
Further attachments to the VM selects the existing IPGs in round-robin fashion as described earlier.
To summarize, if VM is deployed with SCG that has multiple IPGs, each volume attachment picks one of the IPG in a round-robin fashion and creates its own set of VFC adapters. In this case you have more paths in the VM for each IPG.
For example, if SCG has two IPG each with four paths, and two volumes are attached, then you have eight paths in the VM, four for each volume.
In our upcoming blogs, we will discuss more on the other use cases.
Happy reading.
Authors:
Abhinav Shrivastava
Chhavi Agarwal