Configuring storage port groups

Storage port groups allow more flexibility in Fibre Channel zoning and can provide storage port load balancing across your array when zoning to virtual machines with NPIV-attached volumes. When a single port group is defined to a storage template and that storage template is used to attach a volume, the port group functions as a whitelist of WWPNs that are allowed for zoning (if zoning is not yet in place for the virtual machine). When multiple storage port groups are associated with a storage template, PowerVC ensures that virtual machines deployed with that template use one of the groups of ports in a balanced fashion. That is, when the first virtual machine is deployed, it is connected to one or more ports from the first port group (depending on the value of the powervc-command zone-one-target property). When the second virtual machine is deployed, it uses the second port group, and so on.

Note: The port group is not selected based on I/O metrics from the array. PowerVC simply iterates over the port groups.
Port groups take priority over the global whitelist and blacklist. Therefore, when a port group is specified for a virtual machine, all the ports listed in that port group are available, regardless of whether they are on the global blacklist.

Work with port groups when using IBM storage

For IBM® storage, you can work with port groups by using the user interface.

You can create a port group when creating a storage template.

  1. Navigate to Configuration > Storage templates and click Create.
  2. On the Create Storage Template page, select Define groups of storage ports allowed for I/O connectivity, then click Create Port Group.
  3. On the Create Port Group page, specify the group's name and select the ports to add to the group, then click Create.
  4. Continue creating port groups as necessary.
  5. Fill out other fields in the storage template as required, then click Create.

Working with port groups for other brands of storage

The user interface does not support creating custom storage templates for pluggable storage drivers. If you want to define port groups for zoning associated with pluggable storage drivers, use the information in this section to set the appropriate extra specs on a volume type (storage template) through a REST API.

Adding a port group to a storage template

The drivers:target_port_groups extra spec key defines the list of groups for the storage template. The extra spec value can be up to 255 characters. Therefore, the number of groups you can specify depends on how long the name of each port group is. In our example, each port group name is four characters. Adding in the comma, each name takes five characters, which would allow you to specify 51 groups.

The drivers:port_group:port_group_name key defines a port group.

Example
POST /v3/<template_id>/extra_specs 
Body: 
{ 
    "extra_specs": 
    { 
        "drivers:target_port_groups": "PG01,PG02,PG03,PG04", 
        "drivers:port_group:PG01": "50050768021357bc,50050768024357bd", 
        "drivers:port_group:PG02": "50050768024357bc,50050768023357bc", 
        "drivers:port_group:PG03": "50050768021357bd,50050768023357bd", 
        "drivers:port_group:PG04": "50050768022357bd,50050768022357bc" 
    } 
} 

Removing a port group from a storage template

To remove a port group from a storage template, delete the port group key, then update the drivers:target_port_groups key with the new list of port groups.

Example:

DELETE /types/<storage_template_id>/extra_specs/drivers:PG02 

POST /v3/<template_id>/extra_specs 
Body: 
{ 
    "extra_specs": 
    { 
        "drivers:target_port_groups": "PG01,PG03,PG04",
    } 
}