Skip to content

Conversation

@qwordy
Copy link
Member

@qwordy qwordy commented Apr 19, 2021

Description

Resolve #17065

ZRS managed disks provides synchronous replication of data across the Zones in a region, enabling disks to tolerate Zonal failures which may occur due to natural disasters or hardware issues. ZRS disks maintain three consistent copies of the data in distinct Availability Zones in a region, making them tolerant to outages. ZRS disks enable customers to maximize their virtual machine availability without the need for application-level replication of data across zones, which is not supported by many legacy applications such as old versions of SQL or industry-specific proprietary software. This means that, if a virtual machine becomes unavailable in an affected Zone, you can continue to work with the ZRS disk by mounting it to a virtual machine in a different zone. You can also use the ZRS option with shared disks to provide improved availability for clustered or distributed applications like SQL FCI, SAP ASCS/SCS or GFS2. ZRS disks is now supported on Premium SSDs and Standard SSDs.

I did the following changes:

  1. Update Azure CLI to use the API version 2020-12-01 for virtual machines, virtual machine scale sets and managed disks
  2. Update the VM, VMSS and disk commands to accept the two new types of disks: Premium_ZRS and StandardSSD_ZRS
  3. Update the VM and disk commands to ensure that ZRS disks cannot be pinned with a zone.
  4. Update the VM commands to ensure that a ZRS disk can be attached to a zonal VM.
  5. Update the disk commands to ensure that customers can change the sku (StorageType) of a ZRS disk to other types such as Premium_LRS, StandardSSD_LRS and vice versa.
  6. Update the disk commands to ensure that Premium_ZRS and StandardSSD_ZRS works for shared disks.

Testing Guide

        # az feature register --namespace Microsoft.Compute -n SharedDisksForStandardSSD
        # az provider register -n Microsoft.Compute
        self.cmd('disk create -g {rg} -n d1 --size-gb 1024 --sku StandardSSD_ZRS --max-shares 3', checks=[
            self.check('sku.name', 'StandardSSD_ZRS')
        ])
        self.cmd('disk update -g {rg} -n d1 --sku Premium_ZRS', checks=[
            self.check('sku.name', 'Premium_ZRS')
        ])
        self.cmd('vm create -g {rg} -n d1 --image ubuntults --zone 1 --attach-data-disks d1 --generate-ssh-keys --nsg-rule None')
        # ZRS disks cannot be pinned with a zone
        self.cmd('disk create -g {rg} -n d1 --size-gb 10 --sku StandardSSD_ZRS --zone 1', expect_failure=True)

History Notes

[Component Name 1] BREAKING CHANGE: az command a: Make some customer-facing breaking change.
[Component Name 2] az command b: Add some customer-facing feature.


This checklist is used to make sure that common guidelines for a pull request are followed.

@qwordy qwordy requested review from houk-ms and yungezz as code owners April 19, 2021 07:17
@qwordy qwordy changed the title [Compute] zone-redundant storage (ZRS) managed disks [Compute] Zone-redundant storage (ZRS) managed disks Apr 19, 2021
@qwordy qwordy merged commit 03bfa70 into Azure:dev Apr 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Support for zone-redundant storage (ZRS) managed disks

2 participants