5.2.1.4. Creating vFabrics
When you create multiple vFabrics that are not used for multi-tenancy, you edit the opafm.xml file directly.
The following example shows how to set up three vFabrics by directly editing the opafm.xml file. For details on opafm.xml sections, refer to vFabric Overview.
Note
QoS and QOSGroups are mutually exclusive.
If you are using QOSGroups, create them in advance of this procedure. Refer to Creating a QOSGroup.
Create three vFabrics by editing the
opafm.xmlfile on the primary Fabric Manager with QoS and BaseSL.Open the file in a text editor.
Search for
/VirtualFabricsand insert a line above it.Copy the following example text and paste it on the empty line.
Since this is an example, you can edit the text as you see fit.
<VirtualFabric> <Name>VF1</Name> <Application>AllOthers</Application> <BaseSL>1</BaseSL> <Enable>1</Enable> <MaxMTU>Unlimited</MaxMTU> <MaxRate>Unlimited</MaxRate> <Member>All</Member> <QOS>1</QOS> </VirtualFabric> <VirtualFabric> <Name>VF2</Name> <Application>AllOthers</Application> <BaseSL>2</BaseSL> <Enable>1</Enable> <MaxMTU>Unlimited</MaxMTU> <MaxRate>Unlimited</MaxRate> <Member>All</Member> <QOS>1</QOS> </VirtualFabric> <VirtualFabric> <Name>VF3</Name> <Application>AllOthers</Application> <BaseSL>3</BaseSL> <Enable>1</Enable> <MaxMTU>Unlimited</MaxMTU> <MaxRate>Unlimited</MaxRate> <Member>All</Member> <QOS>1</QOS> </VirtualFabric>
For simplicity, the vFabrics are named VF1, VF2, and VF3 and correspond to the Base Service Levels (1, 2, and 3, respectively).
Save the file and exit out of the editor:
Copy the updated
opafm.xmlfile to all standby servers.Restart all FMs:
# systemctl restart opafm
Note
There is a specific order to stopping and starting the FM service. Refer to the CN5000 Maintenance and Troubleshooting Guide, Update the OPX Software for more information.
List all of the vFabrics:
The new vFabrics will appear in the list.
# opapaquery -o vfList
Note
For details about the command in this step and the following steps, refer to the CN5000 Commands Guide.
Check the information of all vFabrics.
# opareport -o vfinfo
Or, use this command to output similar information:
# opasaquery -o vfinfo
Get membership information for every vFabric in every node in the fabric:
# opareport -o vfmember
Get the configuration for a specific vFabric:
# opapaquery -o vfConfig -V VF3
Get the Buffer Control tables for all virtual lanes on every node in the Fabric:
# opareport -o bfrctrl
Run the following commands to view the SL to VL mappings:
# opasaquery -o slsc # opasaquery -o scvlt
Clear the port counters before running traffic.
Note
For testing purposes only. Clearing the port counters is NOT recommended for systems in production.
# opapmaquery -o clearportstatus -n 0x2 -w 0x80ff
where (for all
opapmaquerycommands in this section)-n 0x2corresponds to port 1-w 0x80ffcorresponds to all virtual landsRun traffic on all three vFabrics simultaneously as follows:
Open three terminal windows with simultaneous instances of MPI.
Note
The service level set in each Virtual Fabric's corresponding QoS Group determines which Virtual Fabric is used to run the command.
The following is an example of running an IMB-Uniband benchmark (OpenMPI 4.1) as root in two hosts with 96 cores using the transport OFI-OPX.
mpirun -np 192 --map-by ppr:96:node -host hds2fnc4121:96,hds2fnc4122:96 --allow-run-as-root -mca pml cm -mca btl_openib_warn_no_device_params_found 0 -mca btl self,vader -mca mtl ofi -x FI_PROVIDER=opx -x FI_OPX_HFI_SELECT=0 -x FI_LOG_LEVEL=warn -x FI_OPX_EXPECTED_RECEIVE_ENABLE=1 --bind-to core IMB-OMPI/IMB-MPI1 Uniband -npmin 192
Verify that traffic is running over the different VLs by running the following command on any host:
# opapmaquery -o getportstatus -n 0x2 -w 0x80ff
Check that the port counters are incrementing:
# opapaquery -o vfPortCounters -l 3 -P 1 -V VF1
Get a sorted list of virtual fabric ports using utilization or error values (from vFabric buckets):
# opapaquery -o vfFocusPorts -V VF2 -f 0x00030001 -S 0 -r 20
Note
opapaqueryqueries the Fabric Manager and can be run from anywhere in the fabric.View the data counters per Virtual Lane:
# opapmaquery -o getdatacounters -n 0x2 -w 0x80ff
Note
By default,
opapmaqueryqueries the PMA counters on the local host and needs to be run on each host where you want to see the counters.View error counters per Virtual Lane, if they exist.
# opapmaquery -o geterrorcounters -n 0x2 -w 0x80ff
For details about adding, removing, and modifying vFabrics, refer to the following: