Block Storage

 View Only

MPB Load Balancing on VSP One Block and VSP One Block High End using VSP 360 REST API

By Vinod Subramaniam posted 4 days ago

  

VSP 360 REST API - Load balance MPB's on VSP One Block and VSP One Block High End.

When LDEVs are created they are assigned in a round robin fashion across all the MPB's [ Microprocessor Blades ]. Over time as LDEVs are created and deleted the number of LDEVs on each MPB may not be the same. Also as load shifts over time the MPB's may become unbalanced. Another scenario is when you upgrade a 2-node Block High End array to a 4-node etc.

VSP 360 shows this on the dashboard. Select "Processor Load Balance".

Dashboard showing
The below shows a imbalance in IOPS across two B28 MPB's. Note that this is an example only as the MPB's are actually balanced inspite of the IOPS imbalance.

The python script at this GitHub Repository will help you to produce a report which allows you to see which LDEVs need to be moved across MPB's in order to acheive the balance.

https://github.com/visubramaniam/LDEV_MPB_Balancing 

The process used is below:-

1. Ingest    Read LDEV metrics + MPB assignments from JSON/API
2. Score     Composite load = (IOPS × w₁) + (MB/s × w₂)                    
3. Balance   Greedy migration: overloaded → underloaded MPBs 
4. Report    Before/after summary + migration plan 

Sample usage is below:-

Run logs from a sample run are below :-

visubramaniam@MQ7HY4M9M0 LDEV_MPB_Balancing % python3 storage_array_balancer.py --fetch \

--host 192.168.180.60 \

--token $BEARER_TOKEN \

--storage-name "DC2-B28-840183" \

    --start-time 20260110_000000 \

    --end-time 20260217_000000

  Fetching data from https://192.168.180.60 ...

  Storage filter: DC2-B28-840183

  Time range: 20260110_000000 → 20260217_000000

  Received 190 LDEVs

  Storage Array: 840183-00

  MP Blades (2): MPU-010, MPU-020

  LDEVs: 190    Tolerance: ±2.0%

  Weights — per-LDEV adaptive (writes cost 2×):

    LoadScore = RndR × (RdIOPS + 2×WrIOPS) + SeqR × (RdMBps + 2×WrMBps)

  Random I/O threshold: ≤ 64 KB avg I/O size

================================================================================

  BEFORE BALANCING

  Total LDEVs: 190    MPBs: 2

  Average composite load: 6844.16    Tolerance: ±2.0%

================================================================================

       MPB   LDEVs    Tot IOPS    Tot MB/s   Load Score     Dev%   Avg Util  Status

  ────────  ──────  ──────────  ──────────  ───────────  ───────  ─────────  ──────

   MPU-010      99      8487.8      384.77      5937.89   -13.2%      4.55%   

   MPU-020      91      5068.0       62.91      7750.42   +13.2%      5.78%   

  Balanced: NO ✗

  Top 15 busiest LDEVs:

               LDEV ID                    Name       MPB     IOPS     MB/s   RndR   SeqR    w1(Rnd)    w2(Seq)      Score   Util%

  ────────────────────  ──────────────────────  ────────  ───────  ───────  ─────  ─────  ─────────  ─────────  ─────────  ──────

       840183-00:00:15     GAD-Workshop-Quorum   MPU-020   4154.9    16.26   1.00   0.00     6924.1        0.0     6924.1   16.4%

       840183-00:00:8A                 William   MPU-010   3019.9    11.83   1.00   0.00     5032.6        0.0     5032.6   12.2%

       840183-00:05:03          IDA_DataStore4   MPU-010   5118.1   369.25   0.00   1.00        0.0      372.1      372.1   54.2%

       840183-00:05:01          IDA_DataStore2   MPU-020    209.6     1.70   0.93   0.07      364.9        0.2      365.1   17.6%

       840183-00:00:45            GAD-Workshop   MPU-010    208.5     1.03   0.98   0.02      341.0        0.0      341.1    7.5%

       840183-00:05:02          IDA_DataStore3   MPU-010    101.2     1.86   0.75   0.25      133.3        0.8      134.2   15.1%

       840183-00:05:00          IDA_DataStore1   MPU-020     86.7     1.85   0.70   0.30      110.9        1.0      111.9   13.2%

       840183-00:00:0B       cumulus_datastore   MPU-020    380.5    39.07   0.00   1.00        0.0       77.8       77.8   68.9%

       840183-00:00:76           JNL_4_HURDEMO   MPU-020     60.7     0.03   1.00   0.00       60.7        0.0       60.7    1.2%

       840183-00:05:04          IDA_DataStore5   MPU-020     26.2     0.29   0.88   0.12       45.8        0.1       45.9    7.3%

       840183-00:00:81        Casino-Datastore   MPU-020     30.3     0.58   0.74   0.26       35.7        0.2       35.9    3.3%

       840183-00:00:0C    CyberVR-DR-Datastore   MPU-020     28.2     0.42   0.81   0.19       33.0        0.1       33.1   11.1%

       840183-00:00:7B        Casino-Datastore   MPU-020     24.0     0.48   0.73   0.27       27.9        0.2       28.0    4.8%

       840183-00:00:05         SpectrumProtect   MPU-010     18.6     0.41   0.69   0.31       23.6        0.2       23.8    9.0%

       840183-00:00:4D        Casino-Datastore   MPU-020     26.9     1.08   0.38   0.62       20.5        1.3       21.8    8.4%

================================================================================

  AFTER BALANCING

  Total LDEVs: 190    MPBs: 2

  Average composite load: 6844.16    Tolerance: ±2.0%

================================================================================

       MPB   LDEVs    Tot IOPS    Tot MB/s   Load Score     Dev%   Avg Util  Status

  ────────  ──────  ──────────  ──────────  ───────────  ───────  ─────────  ──────

   MPU-010     108      9360.9      430.27      6718.11    -1.8%      5.46%   

   MPU-020      82      4194.9       17.41      6970.20    +1.8%      4.71%   

  Balanced: YES ✓

──────────────────────────────────────────────────────────────────────────────────────────

  Migration plan (9 LDEV moves):

──────────────────────────────────────────────────────────────────────────────────────────

    #    Action               LDEV ID                    Name     IOPS     MB/s      From            To

  ───  ────────  ────────────────────  ──────────────────────  ───────  ───────  ────────  ───  ────────

    1    move →       840183-00:05:01          IDA_DataStore2    209.6     1.70   MPU-020      MPU-010

    2    move →       840183-00:05:00          IDA_DataStore1     86.7     1.85   MPU-020      MPU-010

    3    move →       840183-00:00:0B       cumulus_datastore    380.5    39.07   MPU-020      MPU-010

    4    move →       840183-00:00:76           JNL_4_HURDEMO     60.7     0.03   MPU-020      MPU-010

    5    move →       840183-00:05:04          IDA_DataStore5     26.2     0.29   MPU-020      MPU-010

    6    move →       840183-00:00:81        Casino-Datastore     30.3     0.58   MPU-020      MPU-010

    7    move →       840183-00:00:0C    CyberVR-DR-Datastore     28.2     0.42   MPU-020      MPU-010

    8    move →       840183-00:00:7B        Casino-Datastore     24.0     0.48   MPU-020      MPU-010

    9    move →       840183-00:00:4D        Casino-Datastore     26.9     1.08   MPU-020      MPU-010

Note that the script only produces a plan and does not execute the move.
You can execute the move using raidcom CLI or via PFREST API.

Below are some URL's that will be helpful

1. How to generate a BEARER token for VSP 360 API :
2. Modify LDEV MPB assignment using raidcom :   

3. Modify LDEV MPB assignment using PFREST API :

Test Run on a VSP One BHE [ B85] Array :-

visubramaniam@MQ7HY4M9M0 LDEV_MPB_Balancing % python3 storage_array_balancer.py --fetch \

--host vsp360.storage.idc.coe.hv \

--token $BEARER_TOKEN \

--storage-name "DC2-B85"

  Fetching data from https://vsp360.storage.idc.coe.hv ...

  Storage filter: DC2-B85

  Time range: 20260216_000000 → 20260217_000000

  Received 160 LDEVs

  Storage Array: 70128-00

  MP Blades (4): MPU-010, MPU-020, MPU-110, MPU-120

  LDEVs: 160    Tolerance: ±2.0%

  Weights — IOPS: 1.0  Throughput: 1.0

================================================================================

  BEFORE BALANCING

  Total LDEVs: 160    MPBs: 4

  Average composite load: 0.01    Tolerance: ±2.0%

================================================================================

       MPB   LDEVs    Tot IOPS    Tot MB/s   Load Score     Dev%   Avg Util  Status

  ────────  ──────  ──────────  ──────────  ───────────  ───────  ─────────  ──────

   MPU-010      43         0.0        0.00         0.01   +33.3%      4.27%   

   MPU-020      40         0.0        0.00         0.00   -55.6%      4.18%   

   MPU-110      37         0.0        0.00         0.01   +33.3%      4.19%   

   MPU-120      40         0.0        0.00         0.01   -11.1%      3.35%   

  Balanced: NO ✗

  Top 15 busiest LDEVs:

               LDEV ID                       Name       MPB      IOPS      MB/s     Score   Util%

  ────────────────────  ─────────────────────────  ────────  ────────  ────────  ────────  ──────

        70128-00:40:00                     CS-B85   MPU-110       0.0      0.00      0.00    0.0%

        70128-00:0A:11                    DGR-TIA   MPU-110       0.0      0.00      0.00    1.0%

        70128-00:0A:10                    DGR-TIA   MPU-010       0.0      0.00      0.00    0.5%

        70128-00:0A:14                    DGR-TIA   MPU-020       0.0      0.00      0.00    1.0%

        70128-00:0A:15                    DGR-TIA   MPU-110       0.0      0.00      0.00    1.0%

        70128-00:0A:13                    DGR-TIA   MPU-010       0.0      0.00      0.00    0.5%

        70128-00:0A:12                    DGR-TIA   MPU-120       0.0      0.00      0.00    0.9%

        70128-00:0A:17                    DGR-TIA   MPU-010       0.0      0.00      0.00    0.4%

        70128-00:0A:16                    DGR-TIA   MPU-120       0.0      0.00      0.00    0.9%

        70128-00:FE:B1                              MPU-020       0.0      0.00      0.00    1.4%

        70128-00:FE:D8                              MPU-010       0.0      0.00      0.00    0.0%

        70128-00:FE:D7                              MPU-120       0.0      0.00      0.00    0.0%

        70128-00:FE:B0                              MPU-010       0.0      0.00      0.00    1.1%

        70128-00:FE:D6                              MPU-110       0.0      0.00      0.00    0.0%

        70128-00:FE:F3                              MPU-120       0.0      0.00      0.00    0.9%

================================================================================

  AFTER BALANCING

  Total LDEVs: 160    MPBs: 4

  Average composite load: 0.01    Tolerance: ±2.0%

================================================================================

       MPB   LDEVs    Tot IOPS    Tot MB/s   Load Score     Dev%   Avg Util  Status

  ────────  ──────  ──────────  ──────────  ───────────  ───────  ─────────  ──────

   MPU-010      43         0.0        0.00         0.01   +33.3%      4.27%   

   MPU-020      40         0.0        0.00         0.00   -55.6%      4.18%   

   MPU-110      37         0.0        0.00         0.01   +33.3%      4.19%   

   MPU-120      40         0.0        0.00         0.01   -11.1%      3.35%   

  Balanced: NO ✗

────────────────────────────────────────────────────────────────────────────────

  Migration plan (0 LDEV moves):

────────────────────────────────────────────────────────────────────────────────

  No migrations needed — already balanced!


#VSPOneBlock
#VSPOneBlockHighEnd
#VSP360
#VSPOneBlock80Series
#VSPOneBlockManagementSoftware

0 comments
22 views

Permalink