Configure Azure VM hosts using Azure Mount VM Extension

Everpure Cloud Dedicated for Azure

Audience
Public
Source Type
Documentation

VM Extensions for Everpure Cloud Dedicated on Azure

The Everpure Cloud iSCSI Mount VM Extension (formerly PSC iSCSI Mount VM Extension) is designed to simplify and standardize host-side configuration of mounting volumes on Azure VMs. Instead of requiring administrators to manually configure iSCSI sessions, multipathing, and related host settings on each VM, the Azure VM extension automates these tasks in a repeatable and supportable way.

The VM extension helps reduce configuration drift, speed up onboarding of new Azure VMs, and lower the risk of misconfiguration that can impact performance, resiliency, or supportability.
Note: Both extensions are available for both Windows and Linux operating systems.

The Everpure Cloud iSCSI Mount VM Extension also supports Automatic Startup Mode. In this mode, the extension configures the VM based on the provided settings and continuously monitors the VM storage configuration.

During every VM startup, the extension validates the configuration and automatically remediates any detected changes to ensure the VM remains configured as expected.

Similarly to manual mounting of iSCSI volumes to VMs (described in this KB article), it is required to first create a Host entity on the Everpure Cloud Dedicated array and map a volume to it. A how-to for these two actions can be found in the following KB: Host and Volume Creation.

After the host and volume are configured, it is possible to proceed with installation of the VM extension.

Install VM Extension using the Azure Portal

  1. In the Azure Portal, navigate to the virtual machine where you want to install the extension.

  2. In the left-hand menu under Settings, select Extensions + applications.

  3. Click + Add to open the list of available extensions.

  4. In the search box, type PSC iSCSI Mount

  5. Select the Everpure Cloud iSCSI Mount VM Extension, that matches the operating system of VM (Windows or Linux)

  6. Review the extension description and click Next.

  7. Provide configuration values:

    - iSCSI targets – iSCSI targets provided in format <IP address>[:port]/[:<IQN>] delimited by comma. Use IP addresses of the iSCSI interface of Everpure Cloud Dedicated array.

    - Host IQN – (optional) iSCSI initiator IQN of the VM. When using existing/default IQN, this field can be left empty. However, it is possible to use this field to override IQN settings on the VM and set a custom IQN value. The custom IQN must still match the IQN set on the Everpure Cloud Dedicated array.

    - Number of sessions per iSCSI target – number of iSCSI sessions to establish per target.

    - iSCSI targets (update mode) - with Append mode, the existing iSCSI targets on the VM will be retained and provided iSCSI targets will be added. With Replace mode, the existing iSCSI targets will be replaced with provided list.

    - Auto-reboot VM (if required) – (optional) confirm whether the VM may be automatically rebooted if needed by OS for applying changes (typically Windows).

    - Enable startup auto-configuration - (optional) when checked, the automatic startup mode is enabled

    - Auto-reboot VM during startup check (if required) – (optional) confirm whether the VM may be automatically rebooted if needed by OS for applying changes (typically Windows), even by the automatic startup mode

  8. Click Create to start deployment.

  9. After deployment completes, verify the extension status under Extensions + applications on the VM.

Review VM configuration

For Windows VMs, a reboot is required after the Mount iSCSI extension is installed. If you allowed the extension to reboot the VM, no additional action is needed; otherwise, reboot the VM manually. Please note that during reboot, the VM extension may change its state, e.g. be in "Succeeded" state after deployment, but fail after the reboot etc.

After the VM is online, log in and verify that:

Note: The Mount iSCSI extension first checks the number of ISCSI sessions already configured on the given VM. If the number is same or higher than the number user wants to set by the VM extension, no configuration change is made, e.g. the number of iSCSI sessions remains the same as before.

Execution of the VM extension and applied commands and settings can be reviewed in a VM extension log. For Windows OS, the log can be found at: C:\WindowsAzure\logs\Plugins\PureStorage.Extensions.MountIscsiWindows\<version>\CommandExecution.log

InstallVM Extension via CLI/ARM

The Everpure Cloud iSCSI Mount VM Extension can be also deployed using a programmatic/infrastructure as a code approach, such as CLI, ARM, Azure Bicep or Terraform.

Below is an example of Azure Cloud Shell for Mount iSCSI extension on Windows:

subscriptionId="<YOUR-SUBSCRIPTION-ID>"
resourceGroup="<RESOURCE-GROUP-OF-THE-VM>"
vmResourceName="<NAME-OF-THE-VM>"
iqn="<IQN>"
replaceTargets="false" # false for append new configuration, true for replace existing configuration  
iscsiTarget0="<ISCSI-CT0-IP>/<IQN>" # IP of the iSCSI interface of CT0
iscsiTarget1="<ISCSI-CT1-IP>/<IQN>" # IP of the iSCSI interface of CT1
iscsiSessionCount=2 #for example 2 sessions/per iSCSI target

az account set --subscription $subscriptionId

az vm extension set \
    --resource-group $resourceGroup \
    --vm-name $vmResourceName \
    --name MountIscsiWindows \
    --publisher PureStorage.Extensions \
    --version  1.1 \
    --settings "{\"settings\": {\"targets\": [\"$iscsiTarget0\", \"$iscsiTarget1\"],\"replaceTargets\": \"$mode\",\"initiatorName\": \"$iqn\",\"sessionCount\": \"$iscsiSessionCount\",\"reboot\": \"true\",\"autoUpdateConfiguration\": {\"enabled\":\"true\",\"allowRebootOnAutoUpdate\": \"true\"}}"

For Linux Azure VMs:

subscriptionId="<YOUR-SUBSCRIPTION-ID>"
resourceGroup="<RESOURCE-GROUP-OF-THE-VM>"
vmResourceName="<NAME-OF-THE-VM>"
iqn="<IQN>"
replaceTargets="false" # false for append new configuration, true for replace existing configuration  
iscsiTarget0="<ISCSI-CT0-IP>/<IQN>" # IP of the iSCSI interface of CT0
iscsiTarget1="<ISCSI-CT1-IP>/<IQN>" # IP of the iSCSI interface of CT1
iscsiSessionCount=2 #for example 2 sessions/per iSCSI target

az account set --subscription $subscriptionId

az vm extension set \
    --resource-group $resourceGroup \
    --vm-name $vmResourceName \
    --name MountIscsiLinux \
    --publisher PureStorage.Extensions \
    --version  1.1 \
    --settings "{\"settings\": {\"targets\": [\"$iscsiTarget0\", \"$iscsiTarget1\"],\"replaceTargets\": \"$mode\",\"initiatorName\": \"$iqn\",\"sessionCount\": \"$iscsiSessionCount\",\"autoUpdateConfiguration\": {\"enabled\":\"true\"}}"

Updating iSCSI configuration

With the VM Extension installed, iSCSI and MPIO configuration can still be changed manually. It is however recommended that Pure best practices configuration is maintained for Everpure connection and volume consumption.

Uninstalling the VM extension does not revert the iSCSI/MPIO configuration to OS defaults.

Should there be a change in the best practices configuration from Everpure side, an updated version of the VM Extension will be made available. To apply the new settings, the Extension needs to be uninstalled and reinstalled again. This ensures that no configuration changes will happen without the customer knowledge and willful interaction.

To uninstall VM Extension, navigate to the same menu from where the extension was installed.