In the first blog, we have seen an impressive introduction to Initiator Port Groups
. Just to reiterate, Initiator port groups (IPGs) define the set of VIOS ports to be used for volume attachment when using NPIV.
The upcoming blogs in this series will try to demonstrate the use-cases listed:
- Isolating sets of FC ports based on storage provider. For example, host ports P1, P2 for a volume from Storage-1 and P3, P4 for volumes from Storage-2.
- Use different VFC adapter on the VIOS for different volumes. This enables attachment of a higher number of volumes to a given virtual machine.
- Specific path between host’s FC ports and storage ports (or Storage Port Groups)
In this blog, we will see the 1st use-case.
My PowerVC instance: [I will be using the same setup for upcoming blogs as well]
Two HMC based IBM Power 7 hosts - p730_3 and p740_3.
- Two storages – Storwize (SVC_166) and XIV (XIV_32)
- Two Brocade fabrics - Fab_161 (Fabric A) and Fab_162 (Fabric B)
Each of the host has two VIOSes. Each VIOS has two FC ports(1 port offline each). So overall, we have a FC ports configuration as shown:
Fabric to Storwize storage connection:
Fabric to XIV Storage Connection:
Overall, we have our PowerVC setup like this:
In some scenarios it is required to use different port for different volume attachments, this is where initiator port groups
To demonstrate how we can isolate the traffic between two storages, we are going to create three entities in PowerVC:
- SCG SCG_IPG_Example_1 with two initiator port groups [IPG-SVC and IPG-XIV].
- Storwize Storage template with the 1st initiator port group [IPG-SVC].
- XIV Storage template with 2nd initiator port group [IPG-XIV].
Let’s see SCG creation first.
To create initiator port groups, when we create a new SCG or edit any existing SCG [which is not associated with any virtual machine], select the "Define groups of VIOS FC ports allowed for I/O connectivity"
Click on Create
Following the instructions in the above picture, we create two initiator port groups:
- IPG-SVC - with WWPN ending with 7803 - attached to Fabric A
- IPG-XIV - with WWPN ending with 984f - attached to Fabric B
The initiator port groups created are also visible on the SCG Page under the section “Initiator Port Groups”
Next, we create two storage templates respectively for Storwize and XIV.
When we create the template, we see a new section “Match Initiator Port Groups”
. Select the "Define path between storage port groups and initiator port group"
checkbox under this section.
Select an already defined initiator port group across created SCGs or enter a new initiator port group name if we are planning to create SCG with initiator port group later.
We follow a similar process for XIV Storage as well and finally we create two new templates:
- For Storwize storage: SVC166_isolate_traffic template
- For XIV storage: XIV32_isolate_traffic template
By setting initiator port group on storage template, whenever a volume, which is created using this storage template, is attached to a virtual machine, the initiator port group defined on the template will get used for attachment purposes. The details about selected initiator port group will be displayed in storage template details.
Next, we deploy a virtual machine using SCG_IPG_Example_1 and storage template SVC166_isolate_traffic:
Let’s see the zones in both the fabrics:
When boot volume got attached to the virtual machine, it picked up FC ports in initiator port group: IPG-SVC which was only connected to Fabric A and therefore, it formed zones accordingly on Fabric A.
Let’s attach a volume using XIV32_isolate_traffic template:
Let’s see the zones again:
Fabric A: [No changes, as expected]
When data volume was attached to the virtual machine, it picked up FC ports in initiator port group: IPG-XIV which was only connected to Fabric B and therefore, it created zones accordingly on Fabric B.
Similarly, when you detach the data volume, the zones are removed, only from Fabric B:
Zones on Fabric B:
In a nutshell, when we want to isolate traffic among host FC ports, we need to define initiator port group(s) while creating SCG followed by setting same initiator port group(s) on respective storage template(s).
In the next blog, we will see 2nd use-case which enables attachment of higher number of volumes to a given virtual machine.
If you have any questions about this topic, please comment below. In the meantime, don't forget to follow us on LinkedIn, Facebook, and Twitter.
1. Abhinav Shrivastava
2. Shyama Venugopal