Configuring priority flow control

Priority flow control (PFC) is an Ethernet standard that supports the ability to select the priority of different types of traffic within the network. With PFC, administrators can reduce network congestion by slowing or pausing certain classes of traffic on ports, thus providing better bandwidth for more important traffic. The Spectrum Virtualize system supports PFC on various supported Ethernet-based protocols on three types of traffic classes: system, host attachment, and storage traffic.

You can configure a priority tag for each of these traffic classes. The priority tag can be any value 0 - 7. You can set identical or different priority tag values to all these traffic classes. You can also set bandwidth limits to ensure QoS for these traffic classes by using the Enhanced Transmission Selection (ETS) setting on the network. When you plan to configure priority flow control (PFC), follow these guidelines and examples.

To use PFC and ETS, ensure that the following tasks are completed:

  1. Ensure that ports support 10 GB or higher bandwidth to use PFC settings.
  2. Configure VLAN on the system to use PFC capabilities. To configure VLAN settings, see Modifying VLAN for priority flow control.
  3. Ensure that the same VLAN settings are configured on the all entities, including all switches between the communicating end points.
  4. Configure Cloud Object Storage values (priority tag values) for host attachment, storage, or system traffic by using the chsystemethernet command.
  5. To enable priority flow for host attachment traffic on a port, make sure that the host flag is set to yes on the configured IP address on that port.
  6. To enable priority flow for storage traffic on a port, make sure that storage flag is set to yes on the configured IP address on that port.
  7. On the switch, enable Data Center Bridging Exchange (DCBx). DCBx enables switch and adapter ports to exchange parameters that describe traffic classes and PFC capabilities. For these steps, check your switch documentation for details.
    Note: For RoCE adapters, the lsportethernet command does not display DCBx values.
  8. For each supported traffic class, configure and enable the same priority tag on the switch as COS value in step 4 . For example, if you plan to use priority tag 3 for storage traffic, ensure that it is configured on the IBM Spectrum Virtualize system through chsystemethernet -storagecos command and the priority tag 3 is also enabled on the switch.
  9. If you are planning on using the same port for different types of traffic, ensure that ETS settings are configured on the network.

Using the management GUI

To set PFC on the system, complete these steps:
  1. In the management GUI, select Settings > Network > Priority Flow Control.
  2. For each of following classes of service, select the priority setting for that traffic type:
    System
    Set a value in the range 0 - 7 for the system traffic that includes communication between nodes within the system. The system priority tag is supported on iSCSI connections and on systems that support RDMA over Ethernet connections between nodes. Ensure that you set the same priority tag on the switch to use PFC capabilities.
    Host Attachment
    Set the priority tag in the range 0 - 7 for system to host traffic. Ensure that you set the same priority tag on the switch to use PFC capabilities.
    Storage Virtualization
    Set the priority tag in the range 0 - 7 for system to external storage traffic. The storage virtualization priority tag is supported on storage traffic over iSCSI connections. Ensure that you set the same priority tag on the switch to use PFC capabilities.
  3. Click Save.
  4. Make sure that IP is configured with VLAN. If this is not done, see Modifying VLAN for priority flow control to configure the VLAN for host attachment, system, and storage traffic.

Using the command-line interface

To use PFC on the system by using the command-line interface, follow these steps:
  1. To use priority flow control for host attachment and storage traffic, use the chsystemethernet command to set the priority tag (COS) values before you set any data IPs by using the mkip command. All the host attachment and storage connections can then inherit the COS values that are already set.
    Note: You can also set it after you configure data IPs as existing sessions do not refresh the PCP value immediately. Then, when you try to connect again, the new connection takes the newly configured COS values.
  2. Enter the lssystemethernet command to determine the current settings for host attachment, system, or storage priority tags. The resulting output displays values in the range 0 - 7 such as the following example:
    host_attach_cos  0 
    system_cos       0
    storage_cos      0
  3. To set the host attachment, system, or storage priority tags, enter the chsystemethernet command with values in the range 0 - 7 as in the following example:
    chsystemethernet -hostattachcos 4 -systemcos 5 -storagecos 6
    Resulting output:
    host_attach_cos  4 
    system_cos       5
    storage_cos      6
    Where the host attachment priority tag (class of service) is set to 4, the system priority tag is set to 5, and the storage priority tag is set to 6.
  4. Make sure that IP is configured with VLAN. If the IP is not configured with VLAN, see Modifying VLAN for priority flow control to configure the VLAN for host attachment, system, and storage traffic.

Known considerations and limitations for PFC

  • PFC is supported on 16 Gbps, 100 Gbps, and 25 Gbps Ethernet adapters.
  • PFC is not supported by onboard Ethernet ports.
    Considerations for system_cos
    • After an upgrade to 8.5.2 or later releases, you must run satask stopnode -warmstart orderly on all the nodes in the system, if the value of system_cos is set to a nonzero value.
    • On version 8.5.2 or later releases, if you change system_cos values with the chsystemethernet command, you must run satask stopnode -warmstart orderly on all the nodes in the system.

    Warmstart ensures that the system_cos value is reflected correctly for system traffic.