5.2.1. vFabric Configuration
vFabrics provide configuration of two properties of the fabric:
Partitioning
Quality of Service
Note
For many installations, additional vFabrics are not required and the Default vFabric in the opafm.xml file is all that is needed. No additional configuration is required. (Refer to Preconfigured vFabrics).
5.2.1.1. Considerations
When considering vFabrics, note the following:
If you do not need a partitioned fabric, do nothing (refer to Nonpartitioned Fabrics).
Note
Default and Admin vFabrics (partitions) are available by default. Refer to Preconfigured vFabrics.
For primary and standby Fabric Managers:
Ensure there is a minimum of one standby.
Note
Additional standby Fabric Managers may be unnecessary and can create additional load for the primary Fabric Manager.
Default based on node GUID. Otherwise, configure your preference.
When changing another Fabric Manager configuration, always disable the standby Fabric Manager until you are finished.
Refer to the CN5000 Fabric Installation Guide for configuring Fabric Managers.
For securing the Admin vFabric :
Define only certain nodes to be Fabric Managers with the ability to run fabric administration commands.
This is a good practice so that anyone becoming root on a node cannot spoof a Fabric Manager or otherwise negatively impact a system.
For more details, refer to Admin vFabric.
When setting QoS (instead of QOSGroups):
Enable one or more of the predefined vFabrics in
opafm.xml(there are multiple predefined vFabrics inopafm.xml) and use QoS settings.For more information, refer to QoS Settings.
When setting up multi-tenancy:
Do not edit
opafm.xmlas it will be overwritten.Define the common attributes of the fabric in
opafm_pp.xml.Define each tenant's vFabrics in
vfs/anddgs/.Use the opafmconfigpp command to combine
opafm_pp.xml(including pointers tovfs/*.xmlanddgs/*.xml) with anopafm.xml, which will be used by the Fabric Manager.
Note
Always restart the Fabric Manager after making changes to the
opafm.xmlfile.For more information, refer to Defining a Multi-Tenant Fabric and Virtual Fabrics for Multi-Tenancy.
5.2.1.1.1. Nonpartitioned Fabrics
If all the nodes (servers) are owned by a single group of users, then partitioning is probably of no interest. However, you may want to configure different QoS for different traffic types.
Configuration of this kind is done in the opafm.xml file, and many QoS strategies can be implemented simply by enabling some of the predefined vFabrics in opafm.xml.
5.2.1.1.2. Partitioned Fabrics
If you have multiple groups of nodes that are owned by different groups of users, then you will probably want to implement some kind of partitioning. An example would be a cloud service provider (CSP) who needs to allocate servers to different customers, and no customer should be able to access the servers of another customer.
Requirements may change over time, so you need to be able to create, change, and destroy groups without disrupting the users in other groups.
The opafmvf command provides a framework for partitioned fabrics (refer to opafmvf). Fabric-wide configuration is defined in opafm_pp.xml, and configuration for the individual groups (vFabrics) is contained in files in the vfs/ and dgs/ directories. To create, change, or destroy a group, changes are made to the configuration fragments in vfs/ and dgs/, then these files are combined with opafm_pp.xml to create an opafm.xml that will be used by the Fabric Manager.
When using this method, note the following:
Each step of the process can be performed using the opafmvf command.
Never make changes to the
opafm.xmlfile as they will be overwritten in the combining process.
If you require QoS with multi-tenancy, use the QOSGroups feature (refer to QOSGroups Parameters) to provide different QoS settings that can be shared amongst different tenants. As the QOSGroups are fabric-wide, they are defined in opafm_pp.xml.
5.2.1.3. Securing the Default vFabric
When using a secured Default vFabric with redundant management nodes, Cornelis recommends that you explicitly specify the nodes and ports as Members of the Default vFabric. Failure to do so limits the operations that the management nodes can perform and the nodes that they can manage.
For more information, refer to Preconfigured vFabrics.
5.2.1.6. Deleting a Tenant or Storage vFabric
To delete a tenant or storage vFabric, you must first remove its members (GUIDS). The following steps provide an example.
List the device groups in the
/etc/opa-fm/dgsdirectory and locate the device group of the vFabric to delete.[root@rh212 dgs]# ls opafm_dg_AdminNodes.xml opafm_dg_Storage.xml opafm_dg_Tenant2.xmlList the contents of the device group to be removed in
/etc/opa-fm/dgsand find the port GUIDs.[root@rh212 dgs]# cat opafm_dg_Tenant2.xml <DeviceGroup> <Name>Tenant2</Name> <PortGUID>0x001175010174428a</PortGUID> <PortGUID>0x0011750101744e4e</PortGUID> </DeviceGroup>Remove the member port GUIDs from the device group.
[root@rh212 dgs]# opafmvf remove Tenant2 0x001175010174428a 0x0011750101744e4e Removed ports from virtual fabric configuration 'Tenant2'Delete the tenant vFabric.
[root@rh212 dgs]# opafmvf delete Tenant2 Deleted virtual fabric configuration 'Tenant2' [root@rh212 dgs]# ls opafm_dg_AdminNodes.xml opafm_dg_Storage.xmlList the contents of the vFabrics in the
/etc/opa-fm/vfsdirectory to ensure that the vFabric has been deleted.[root@rh212 dgs]# ls ../vfs opafm_vf_Storage.xml
Rebuild the
opafm.xmlfile and reload the FM.[root@FM_host opa-fm]# opafmvf commit /etc/opa-fm/opafm.xml will be overwritten! Do you want to continue? [y/N] y Processing files in /etc/opa-fm/dgs Processing files in /etc/opa-fm/vfs Config Check Passed! Generated new configuration for fabric manager [root@FM_host opa-fm]# opafmvf reload
5.2.1.7. Directing a Job or Application to Use the Desired vFabric
For more information on integrating jobs and applications, refer to Fabric Manager Integrating Job Schedulers with Virtual Fabrics and Integrating Other Service Applications with vFabrics, respectively.
Run
opareport -o vfinfoto locate the vFabric you want to use.Getting All Node Records... Done Getting All Node Records Done Getting All Link Records Done Getting All Cable Info Records Done Getting All SM Info Records Done Getting vFabric Records vFabrics: vFabric Index: 0 Name: Default PKey: 0x8001 SL: 0 Select: 0x0 PktLifeTimeMult: 1 MaxMtu: unlimited MaxRate: unlimited Options: 0x00 QOS: Disabled PreemptionRank: 0 HoQLife: 8 ms vFabric Index: 1 Name: Admin PKey: 0x7fff SL: 0 Select: 0x1: PKEY PktLifeTimeMult: 1 MaxMtu: unlimited MaxRate: unlimited Options: 0x01: Security QOS: Disabled PreemptionRank: 0 HoQLife: 8 ms 2 VFs -------------------------------------------------------------
For partitioning, note the PKey.
For QoS, note the SL.
As an example, PKey = 0x1234 and SL = 3.
Run MPI.
When using the OPX Provider:
Note that OPX defaults to using PKey 1 (0x8001).
Set the following environment variables using the
mpiruncommand:FI_OPX_PKEY=0x9234 FI_OPX_SL=3.
Create an IPoIB interface to use.
Normally, when you create an IB interface, it uses the vFabric with the default PKey. The default PKey is the first PKey in the PKey table, which may or may not be the vFabric named 'Default'.
To create an IPoIB interface on a particular PKey, perform the following:
Type:
echo 0x1234 > /sys/class/net/ib0/create_child
This device will be named
ib0.1234.Configure the device with an IP address:
ip addr add 192.168.111.74 dev ib0.1234
Note
To delete the interface, if necessary:
echo 0x1234 > /sys/class/net/ib0/delete_child