Non-Disruptive Controller Scaling Procedure

Everpure Cloud Dedicated for Azure

Audience
Public
Source Type
Documentation

This guide describes how to perform a Everpure Cloud Dedicated Non-Disruptive Controller Scaling.

With this procedure, not only can the storage capacity of the array be expanded smoothly, but the performance of the controllers can also be upgraded to handle increased workloads. These enhancements provide a flexible approach to managing storage resources, ensuring optimal performance and scalability as business requirements change over time.

Pre-requisites

Please make sure that array identity is given correct role assignments. These are the "Microsoft.Network/virtualNetworks/subnets/join/action" and "Microsoft.Network/virtualNetworks/subnets/joinViaServiceEndpoint/action" actions over the virtual network used for the PSC Dedicated array. See the Customer-Driven Purity Upgrade Pre-requisites article for guidance on setting the required role assignment.

Before running the controller upgrade process, it is also necessary to reach the base (or higher) capacity point of the target SKU. See capacity points details here.

For example, the base raw capacity point of the V20 PSC Dedicated array is 7TiB. This means that the V10 PSC Dedicated array needs to be at capacity point 1 (RAW 7TiB / 7696581394432 Bytes) or higher before running the upgrade to the V20 SKU.

Note: One of the pre-checks of the upgrade process checks if the capacity point is sufficient. This check cannot be skipped or overridden. Running the capacity expansion to the required capacity is required before starting the controller upgrade.

Running the PSC Dedicated Non-Disruptive Controller Scaling

Before initiating the non-disruptive controller scaling of the PSC Dedicated array on Azure, it is recommended to run the following command to display current array models:

purearray list --controller
Name  Type          	Mode   	Model     	Version  Status  Current Mode Since
CT0   array_controller  primary	CBS-V10MP2R2  99.9.9   ready   2024-10-17 10:31:39 EDT
CT1   array_controller  secondary  CBS-V10MP2R2  99.9.9   ready   2024-10-17 10:39:35 EDT

The following command is used to list supported model hops:

purearray cloud-config model list --supported
Supported Models
CBS-V20MP2R2
  1. To initiate the controller upgrade, (in this example from a PSC Dedicated V10 array to PSC Dedicated V20) run the following command:
    purearray cloud-config model setattr --requested-model CBS-V20MP2R2
    Current Model  	Requested Model	Status 	Step  Details
    CBS-V10MP2R2  CBS-V20MP2R2  upgrading    	Preparing for running pre-upgrade-check

    As shown in the output of the command, the procedure will run a series of pre-upgrade checks.

    Note:

    Pre-upgrade checks are the first series of checks through the controller upgrade procedure. The overall array health is evaluated to ensure successful completion. If all the checks are successful, the system will proceed to the next stage.

    Should one or more of the pre-upgrade checks fail, the system will offer guidance on next available steps. Please go to Non-Disruptive Controller Scaling Troubleshooting for more information.

  2. The system will automatically deploy and reserve the VM shapes to ensure they will be available for the upgrade.
    Important:

    Failure to deploy and reserve new virtual machines will pause the upgrade:

    purearray cloud-config model list
    Current Model   	Requested Model 	Status  Step           	Details
    CBS-V10MP2R2  CBS-V20MP2R2  paused  pre-upgrade-check  Upgrade has been paused: Azure allocation error detected.
     
    Azure lacks sufficient capacity for the 'Standard_E32bds_v5' VM SKU required for the CBS-V20MP2R2 model in zone 3.
    Please try again later or contact Azure Support if the issue persists.
     
    To proceed with the upgrade, either:
    1) Retry upgrade checks - Run "purearray cloud-config model setattr --requested-model CBS-V20MP2R2 [--override <CheckName>]"
    2) Abort the upgrade - Run "purearray cloud-config model setattr --requested-model ''"
    3) Contact Azure Support for assistance
    

    If you abort the controller upgrade process, the VM reservation will be released.

    Please note that reservation incurs a cost for the reserved VM resource. There will therefore be a charge by Azure for both existing and new controller VMs, but only for the duration of the controller upgrade process.

  3. The controller upgrade process increases the IOPS and Bandwidth of the underlying SSDs used for NVRAMs to match the expected level for the requested controller SKU.
    purearray cloud-config model list
    Current Model   	Requested Model 	Status 	Step        	Details
    CBS-V10MP2R2  CBS-V20MP2R2  upgrading  upgrade-drives  Upgrading SSDs with new IOPS and Bandwidth values
    
    purearray cloud-config model list
    Current Model   	Requested Model 	Status 	Step        	Details
    CBS-V10MP2R2  CBS-V20MP2R2  upgrading  upgrade-drives  Upgrading NVRAMs with new IOPS and Bandwidth values
    
    Important: Once the NVRAMs are upgraded, you can no longer abort the upgrade process. You can only retry the process.
  4. The system upgrades the secondary controller VM (ct1).
    purearray cloud-config model list
    Current Model   	Requested Model 	Status 	Step     	Details
    CBS-V10MP2R2  CBS-V20MP2R2  upgrading  upgrade-ct1  Upgrading the secondary controller (ct1)
    
  5. The system runs a series of mid-upgrade checks to ensure ct1 has been upgraded successfully.
    • If all checks are passed with no issues, the upgrade proceeds to the next step.

    • If one or more checks fail, the controller upgrade is paused with warning.

    At this stage, only the second controller VM has been upgraded so the upgrade process cannot be aborted. However, the health checks may be retried or overridden, allowing the hardware upgrade to eventually proceed with next steps. Please refer to Overriding upgrade checks for more information on overriding of the checks.

  6. The process triggers a high-availability (HA) failover, promoting the upgraded secondary controller to become the primary controller.
    purearray cloud-config model list
    Current Model   	Requested Model 	Status 	Step  	Details
    CBS-V10MP2R2  CBS-V20MP2R2  upgrading  failover  Triggering HA failover
    
  7. Following the failover, the process automatically starts the upgrade of the new secondary controller (ct0).
    purearray cloud-config model list
    Current Model   	Requested Model 	Status 	Step     	Details
    CBS-V20MP2R2  CBS-V20MP2R2  upgrading  upgrade-ct0  HA failover complete. Upgrading the new secondary controller (ct0)
    
  8. The system replaces the main ARM template.
    purearray cloud-config model list
    Current Model   	Requested Model 	Status 	Step           	Details
    CBS-V20MP2R2  CBS-V20MP2R2  upgrading  upgrade-template   Upgrading template with new model
    
  9. The process runs the post-upgrade checks to ensure ct0 has been upgraded successfully and the entire PSC Dedicated instance is running as expected.
    purearray cloud-config model list
    Current Model   	Requested Model  Status  Step  Details
    CBS-V20MP2R2         	idle
    Note:

    The upgrade may complete with a warning message. This indicates that the array is now running on the new model with upgraded hardware, that all mandatory hardware changes have been successfully completed and the array is running on better performing resources; however, the final verification step has failed.

    If the failed check cannot be resolved independently, it is recommended to contact Everpure Technical Services for further assistance.

    Keep in mind that even if the issue is resolved, the failed check will still appear in the cloud-config UI, although it is no longer relevant. To update the UI to remove the failed check, please contact Everpure Technical Services.