ViPR 2.2 - Understanding Metrics-Based Port Selection in ViPR

Table of Contents

Overview

Allocating new ports based on performance metrics, computed metrics, and user-defined maximum limits is supported on VMAX, VNX for Block, and Hitachi Data Systems (HDS).

Several performance-based metrics are collected from VMAX, VNX for Block, and HDS and are used to determine:
  • Port percent busy.
  • CPU percent busy.
Two additional metrics are also computed:
  • Number of initiators using a storage port.
  • Number of volumes using a storage port.
These metrics are then used to allocate new ports to avoid:
  • Ports that are overloaded with too many volumes or too high of an I/O load.
  • Ports that reside on CPUs where the CPU percent busy is too high or the CPU is servicing too many volumes.
  • Allocating more storage on arrays that are overloaded.

Before ViPR can allocate new ports based on performance metrics, you must enable ViPR collection of metrics from the storage arrays.

Back to Top

Metering prerequisites

There are two configuration properties that you must ensure are set to enable the collection of metrics from VMAX, VNX for Block, and HDS.

You can set these configuration properties using both the ViPR UI, as shown here, and with the REST API, as shown in Set up Metrics-Based Port Selection using the ViPR REST API.

After logging into the ViPR UI as a system administrator, check whether metering is enabled, and to what value the metering interval is set.

Selecting Settings > Configuration > Controller displays:
  • the value of Enable Metering which should be set to true to collect metrics from the arrays.
  • the value of Metering Interval which sets how often ViPR will collect data from the arrays. The metering interval can be set from 1800 seconds (30 minutes) up to 4 hours. The lower the number of seconds, the more accurate will be the results. However, the higher the metering interval is, the less overhead there is on ViPR and the array.

Back to Top

Prerequisite configuration settings for VNX for Block

You must enable performance data logging in EMC Unisphere so that VNX for Block sends the required metrics to ViPR before you can set up metrics-based port selection for VNX for Block .

Procedure

  1. Log into the EMC Unisphere.
  2. Select System > Statistics for Block. Statistics for Block can be found in the Monitoring and Alerts section.
  3. Click Performance Data Logging.
    The Data Logging dialog is displayed.
  4. If data logging is not already started:
    Note Image
    Do not change the default times for Real Time Interval and Archive Interval.

    1. Click Start to start data logging.
    2. Click Apply.
  5. Click OK.
Back to Top

Prerequisite configuration settings for HDS

Before ViPR can collect statistical information for HDS storage ports, you must create a new user in the Storage navigator and enable performance logging for the HDS storage arrays.

Back to Top

Enable performance data logging of HDS storage arrays in Storage Navigator

Before you can set up the metrics-based port selection for HDS, you must enable performance data logging for the HDS storage arrays in Storage navigator so that ViPR can collect statistical information about the storage ports.

Procedure

  1. Log into the Storage navigator.
  2. Select Performance Monitor.
  3. Click Edit Monitor Switch.
  4. Enable Monitor Switch.
  5. Set the Sample Interval.
Back to Top

Create a new user using the Storage navigator on HDS

To collect statistics using the embedded SMI-S provider, you must create a new user using the Storage Navigator on the Hitachi storage array.

Procedure

  1. Log into the Storage Navigator.
  2. Select Administrator.
  3. Click User Groups.
  4. Select Storage Administrator (View Only) User Group.
  5. Click Create User.
  6. Note Image
    The username and password must be the same as the HiCommand Device Managercredentials which ViPR uses for discovering the storage provider.

    Type a User Name.
  7. Type a Password.
  8. Type the Account status.
  9. Type the Authentication details.
Back to Top

Enable SMI-S Certificates on Hitachi Arrays

You must enable the certificate on the array to access SMI-S in secure mode..

Please refer to the section, Using the SMI-S function, in the Hitachi Command Suite Administrator guide to enable default or upload new certificates on the array to access SMI-S in secure mode.

Back to Top

How does ViPR select a port

ViPR takes averages of the performance-based metrics collected from the storage arrays and the number of initiators and volumes that it has already allocated to ports, and then compares these metrics to maximum limits (ceilings) that you configure fo determine which ports to select.

Metric calculations and averages

Several performance-based metrics are collected from VMAX, VNX for Block, and HDS and are used to determine:

In addition, two additional metrics are computed byViPR :
  • Number of initiators ViPR has already assigned to a storage port
  • Number of volumes ViPR has already assigned to a storage port
    Note Image
    On VMAX, the number of volumes is computed across both ports on a director.

Averaging the metrics values

The metrics collected for CPU Percent Busy and Port Percent Busy are averaged over time so that they reflect a relatively long term view of whether the port is overloaded. The system administrator can control this averaging process. There are three important time periods:
  • The "Metering Interval" controls how often metering records will be read from the storage arrays. The default time period for this is one hour. This can be reduced to 30 minutes, or increased to multiple hours. To get accurate metrics on heavily loaded ports, it may be necessary to decrease the Metering Interval to 30 minutes, although this will cause increased ViPR load for systems with many arrays. Increasing the Metering Interval will reduce the load. It is not recommended to have a Metering Interval greater than four hours. The Metering Interval is found in the ViPR UI under the System Properties in the Controller tab.
  • The "Days to Average" found under the Controller Port Allocation parameters controls how long various samples are averaged together using a modified moving average. The default averaging period is 1 day, but you can configure the period from 1 to 30 days. The longer the averaging period, the less an instantaneous change in load is reflected in the average, and the less affect a current sample will have on the average. After the averaging period has been completed, a new average starts and will be computed.
  • At the end of each averaging period, the modified moving average is added into a longer term Exponential Moving Average (EMA) that is calculated for each metric. The purpose of the EMA is to retain history about the port's utilization over time. An EMA is used because it weights recent values higher, and past values with exponentially decreasing weights as the sample's age increases. In that way recent port utilization is more important than past utilization. The "EMA Factor" controls the weight of the current modified moving average versus past averages. It is found under the Controller Port Allocation parameters.

The default weight of the EMA is set at 0.6, but you can configure the weight from greater than 0 to less than or equal to 1. The higher the EMA weighting factor the more weight that the current modified moving average has on the EMA. A value of 1.0 uses only the current averaging period. For example, if the EMA weight is 0.6, the current modified moving average is multiplied by 0.6 and added to the previous EMA multiplied by 0.4 (1 - 0.4).

User-configurable parameters

There are several maximum limits (ceilings) that you can set, in addition to sampling times and the weight to use for the exponential moving average (EMA).

When a port reaches or exceeds one of the ceiling values, it is no longer available for new allocations, even if that causes provisioning to fail. You can change the settings using both the ViPR UI and the REST API. See Set up Metrics-Based Port Selection using the ViPR UI and Set up Metrics-Based Port Selection using the ViPR REST API.

You can change the following settings:
  • Maximum number of initiators that can use the port before new allocations are not allowed.
  • Maximum number of volumes that can use the port before new allocations are not allowed.
  • Maximum average port percent busy value (from 0 - 100%) before new allocations are not allowed.
  • Maximum average CPU percent busy value (from 0 - 100%) before new allocations are not allowed.
  • The sample averaging time in days (1 -30 days)
  • The weight for the EMA (the EMA factor).
  • Metrics enabled
    • true = use collected metrics and calculate the port percent busy and the CPU percent busy.
    • false = only use the number of initiators and the number of volumes to allocate ports; ignore the collected metrics and do not calculate port percent busy and CPU percent busy.
Note Image
You should take care in setting ceilings. These are absolute limits. Ports which have one or more metrics over a ceiling will not be used for any allocations until such time as all metrics return to a value under the ceilings (or the ceiling limits are increased).

Allocating a port

The EMA Factor and (1- EMA Factor) values that you configured are used when ViPR allocates a port. ViPR takes the (modified moving average x EMAfactor) and the (EMA x 1 - EMAfactor) and does an instantaneous check of these values against the ceilings that you configured. For example, if you have the EMA factor set at 0.6, then ViPR takes the (modified moving average x 0.6) and the (EMA x 0.4) for the instantaneous check against your configured ceiling values.

The port with the lowest metric, which has not reached or exceeded a ceiling is selected. When you require more than one port allocated, ViPR tries to choose two ports that are on different hardware units. For example, you need two ports on a VMAX and there are 3 ports available:
  • 7E0 has a port metric of 10
  • 7F0 has a port metric of 20
  • 8E0 has a port metric of 30
ViPR chooses 7E0 as the first port since it has the lowest port metric, but 8E0 is chosen as the second port. Port 8E0 has a higher port metric than 7F0, but 8E0 is on a different director and, therefore, on different hardware units. This provides redundancy against hardware failures.
Note Image
If you have already allocated ports to a host or cluster, and you are just adding volumes to the same host, then ViPR does not reallocate ports, it just adds the volumes to the export structure.

Back to Top

VMAX performance metrics

The VMAX metrics collection is contingent on having metering turned on and configured.

The table describes the metrics that are collected from VMAX which ViPR uses to allocate ports.

These metrics are used to calculate two values:
  • Percent busy for the port (FEPort) which is computed from kbytesTransferred over the time period since the last valid sample.
  • Percent busy for the CPU (FEAdapt) which is computed from the non IdleTime over the time period since the last valid sample.

Back to Top

VNX for Block performance metrics

The table describes the metrics that are collected onVNX for Block which ViPR uses to allocate ports.

Note Image
VNX for Block metrics collection is contingent on having metering turned on and configured.

These metrics are used to calculate two values:
  • Percent busy for the port (FEPort) which is computed from kbytesTransferred over the time period since the last valid sample.
  • Percent busy for the CPU (FEAdapt) which is computed from the non idle time over the time period since the last valid sample.

Back to Top

HDS performance metrics

The table describes the metrics that are collected from HDS which ViPR uses to allocate ports.

These metrics are used to calculate:
  • Percent busy for the port (FEPort) which is computed from kbytesTransferred over the time period since the last valid sample.

Back to Top