Automating Capacity Upgrades for Everpure Cloud Dedicated

Everpure Cloud Dedicated for Azure

Audience
Public
Source Type
Documentation

Azure Functions is a serverless compute service provided by Microsoft Azure that allows you to run small pieces of code (called functions) in the cloud without having to manage the underlying infrastructure. With Azure Functions, you can execute code in response to various events, such as HTTP requests, messages from a queue, or changes in data, making it a highly scalable and event-driven platform. Azure Functions combined with PowerShell offers a powerful way to automate tasks, manage resources, and respond to events.

CAUTION:
Please note that starting from Purity//FA version 6.8.7 and higher, this function is deprecated and Everpure Cloud Dedicated Automatic Capacity Upgrade feature should be used. For more details on this feature, read this guide.
Important: Do not use Capacity Monitor function with the Automatic Capacity Upgrade enabled.

This capability of Azure Functions and PowerShell functions allows to automate user-driven capacity upgrades for Everpure Cloud Dedicated for Azure VMware Solution. Users can now set a capacity threshold on a per-array basis that, once reached, automatically initiates a storage expansion.

This enhancement is useful as it ensures your array autonomously expands its storage capacity before reaching full utilization, thereby mitigating the risk associated with maxing out available space.

Important: Opting in is required for this feature.

This requirement is in place because adding capacity to an Everpure Cloud Dedicated instance will increase your monthly spend on Azure infrastructure. We understand that some customers prefer to have direct control over when and how their spending increases.

The PowerShell functions for creating and managing capacity monitoring infrastructure are now available and included in versions 1.1.322 and higher of the PureStorage.CBS.AVS module.

Note: Please see the ​Pure Storage Cloud Provision and Manage with Azure VMware Solution ​ on how to deploy and setup Run Commands for use with AVS and Everpure Cloud Dedicated. The steps outlined in the linked article need to be completed before it can be used.
Attention: When using Deploy-PCBSCapacityMonitor command, it can fail at first time run with the error similar to Code: DeploymentFailed) - { "Code": | "BadRequest", "Message": "Encountered an error (InternalServerError) from host runtime.". The error is under investigation, to solve this issue, please re-run the same command again.
  1. Use the Deploy-PCBSCapacityMonitor to establish a new Azure monitoring resource group or augment an existing host lifecycle monitoring resource group with capacity monitoring capabilities (see details about AVS Host Lifecycle Management here).

    Function name: Deploy-PCBSCapacityMonitor

    Function action: Function establish a new Azure monitoring resource group or augmenting an existing host lifecycle monitoring resource group with capacity monitoring capabilities.

    The Deploy-PCBSCapacityMonitor command requires a few important arguments for deployment. Those arguments specific usage are expanded upon below:

    MonitorResourceGroup: Specifies the name of the resource group where the capacity monitoring system will be deployed. This can either be a newly created resource group or an existing AVS host monitor resource group.

    MonitorResourceGroupRegion: Defines the region where the host monitoring components will be deployed. It’s recommended to use the same region as your Everpure Cloud Dedicated deployment.

    VNetName: The name of the Azure virtual network used by (or peered to) your Everpure Cloud Dedicated.

    VNetResourceGroup: The Azure resource group containing the virtual network mentioned above.

    VNetSubnetAddress: The CIDR block for the capacity monitoring function for network connectivity. This can be the same subnet used by an existing AVS host monitoring setup, a new unused address block within the Azure virtual network, or an existing subnet not currently used by any Azure services. The subnet only requires a few IP addresses, the minimum size for this function subnet is /29 network block which should be enough in most cases.

    Optional parameters include:

    VNetSubnetName: Allows you to specify a name for the Azure virtual network subnet to be used by the capacity monitoring infrastructure. If omitted, a subnet name will be generated automatically.

    DefaultUtilizationThreshold: Sets the default capacity utilization threshold that triggers an expansion. If this parameter is not included, the default threshold is 80%.

    MonitorIntervalInMinute: Specifies how frequently the monitoring system checks array utilization, with the default interval being 30 minutes.

    After successful execution, the capacity resource group will be available in your subscription, comprising the components outlined above.

  2. Use the Add-PCBSCapacityMonitorArray to add a storage array to the monitoring setup.

    Function name: Add-PCBSCapacityMonitorArray

    Function action: After establishing the capacity monitoring system with Deploy-PCBSCapacityMonitor command, this function involves adding a storage array to the monitoring setup.

    The Add-PCBSCapacityMonitorArray command requires the following parameters:

    MonitorResourceGroup: Specifies the capacity monitor resource group that was either created or specified in the previous step.

    PureCloudBlockStoreEndpoint: Identifies the management IP address of the Everpure Cloud Dedicated instance.

    PureCloudBlockStoreCredential (Get-Credential): This will prompt for the Everpure Cloud Dedicated array’s username and password, ensuring secure access.

  3. Verify the Pure Storage Cloud Dedicated array status and adherence to the desired capacity threshold using this command: Get-PCBSCapacityMonitor -MonitorResourceGroup myMonitorGroup

    This verification step ensures that the array is monitored correctly and will trigger an expansion process once it reaches the specified capacity threshold (for example, set at 60%).

If you would like to remove the above automation, use the below 2 functions:

  1. Remove-PCBSCapacityMonitorArray: removes a Everpure Cloud Dedicated instance from the capacity monitoring system.

  2. Remove-PCBSCapacityMonitor: dismantles the resource group with all of its components dedicated to capacity monitoring