Skip to content

Commit 9f7e1fa

Browse files
author
Lisa Pettyjohn
committed
OSDOCS-15304#Performance plus for Azure Disk
1 parent 39ab22c commit 9f7e1fa

6 files changed

+324
-0
lines changed
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
//
2+
// Module included in the following assemblies:
3+
//
4+
// * storage/container_storage_interface/persistent-storage-csi-azure.adoc
5+
//
6+
7+
:_mod-docs-content-type: PROCEDURE
8+
[id="persistent-storage-csi-azure-disk-perf-plus-create-new-disk_{context}"]
9+
= Enabling performance plus by creating new disks
10+
11+
To enable performance plus, you need to create a new disk.
12+
13+
The following procedure shows how to create a disk with performance plus enabled and, if desired, attach it to a virtual machine (VM).
14+
15+
.Prerequisites
16+
17+
* Access to Azure CLI with an Azure account
18+
19+
.Procedure
20+
21+
To enable performance plus when creating a new disk:
22+
23+
. Create a resource group by running the following commands in the Azure CLI:
24+
+
25+
[resource,terminal]
26+
----
27+
export RANDOM_SUFFIX=$(openssl rand -hex 3)
28+
export MY_RG="PerfPlusRG$RANDOM_SUFFIX"
29+
export REGION="WestUS2"
30+
az group create -g $MY_RG -l $REGION
31+
----
32+
+
33+
.Example output
34+
[source,terminal]
35+
----
36+
{
37+
"id": "/subscriptions/xxxxx/resourceGroups/PerfPlusRGxxx",
38+
"location": "WestUS2",
39+
"name": "PerfPlusRGxxx",
40+
"properties": {
41+
"provisioningState": "Succeeded"
42+
}
43+
}
44+
----
45+
46+
. Create a new disk with performance plus enabled by running the following commands in the Azure CLI:
47+
+
48+
[source,terminal]
49+
----
50+
export MY_DISK="PerfPlusDisk$RANDOM_SUFFIX"
51+
export SKU="Premium_LRS" <1>
52+
export DISK_SIZE=513 <2>
53+
az disk create -g $MY_RG -n $MY_DISK --size-gb $DISK_SIZE --sku $SKU -l $REGION --performance-plus true
54+
----
55+
<1> In this example, `SKU` is set to `Premium LRS`. Set this to the appropriate SKU for your situation.
56+
<2> In this example, `DISK_SIZE` is set to `513 GiB`. For performance plus, 513 GiB is the minimum required size.
57+
+
58+
This creates a new disk 513 GiB, or larger, with performance plus enabled using a valid SKU value.
59+
+
60+
.Example output
61+
[source,terminal]
62+
----
63+
{
64+
"id": "/subscriptions/xxxxx/resourceGroups/PerfPlusRGxxx/providers/Microsoft.Compute/disks/PerfPlusDiskxxx",
65+
"location": "WestUS2",
66+
"name": "PerfPlusDiskxxx",
67+
"properties": {
68+
"provisioningState": "Succeeded",
69+
"diskSizeGb": 513,
70+
"sku": "Premium_LRS",
71+
"performancePlus": true <1>
72+
},
73+
"type": "Microsoft.Compute/disks"
74+
}
75+
----
76+
<1> `performancePlus = true` indicates that performance plus has been successfully enabled.
77+
78+
. Attempt to attach the disk to a VM by running the following commands in the Azure CLI:
79+
+
80+
[source,terminal]
81+
----
82+
export MY_VM="NonExistentVM"
83+
if az vm show -g $MY_RG -n $MY_VM --query "name" --output tsv >/dev/null 2>&1; then
84+
az vm disk attach --vm-name $MY_VM --name $MY_DISK --resource-group $MY_RG
85+
else
86+
echo "VM $MY_VM not found. Skipping disk attachment."
87+
fi
88+
----
89+
+
90+
.Example output
91+
[source,terminal]
92+
----
93+
VM NonExistentVM not found. Skipping disk attachment.
94+
----
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
//
2+
// Module included in the following assemblies:
3+
//
4+
// * storage/container_storage_interface/persistent-storage-csi-azure.adoc
5+
//
6+
7+
:_mod-docs-content-type: PROCEDURE
8+
[id="persistent-storage-csi-azure-disk-perf-plus-from-snapshots_{context}"]
9+
= Creating new disks from existing disks or snapshots with performance plus enabled
10+
11+
This procedure shows how to create a new disk from an existing disk or snapshot that has performance plus enabled on it.
12+
13+
.Prerequisites
14+
15+
* Access to Azure CLI with an Azure account
16+
17+
* Access to an existing disk with performance plus enabled on it.
18+
19+
.Procedure
20+
21+
To enable performance plus when creating a new disk from an existing disk or snapshot:
22+
23+
. Create a resource group for migration by running the following commands in the Azure CLI:
24+
+
25+
[resource,terminal]
26+
----
27+
export RANDOM_SUFFIX=$(openssl rand -hex 3)
28+
export MY_MIG_RG="PerfPlusMigrRG$RANDOM_SUFFIX"
29+
export REGION="WestUS2"
30+
az group create -g $MY_MIG_RG -l $REGION
31+
----
32+
+
33+
.Example output
34+
[source,terminal]
35+
----
36+
{
37+
"id": "/subscriptions/xxxxx/resourceGroups/PerfPlusMigrRGxxx",
38+
"location": "WestUS2",
39+
"name": "PerfPlusMigrRGxxx",
40+
"properties": {
41+
"provisioningState": "Succeeded"
42+
}
43+
}
44+
----
45+
46+
. Create a snapshot of a disk that has performance plus enabled on it by running the following commands in the Azure CLI:
47+
+
48+
[source,terminal]
49+
----
50+
export MY_SNAPSHOT_NAME="PerfPlusSnapshot$RANDOM_SUFFIX"
51+
echo "Creating snapshot from original disk..."
52+
az snapshot create \
53+
--name $MY_SNAPSHOT_NAME \
54+
--resource-group $MY_RG \
55+
--source $MY_DISK
56+
----
57+
58+
. Obtain the snapshot ID for use as a source.by running the following commands in the Azure CLI:
59+
+
60+
[source,terminal]
61+
----
62+
SNAPSHOT_ID=$(az snapshot show \
63+
--name $MY_SNAPSHOT_NAME \
64+
--resource-group $MY_RG \
65+
--query id \
66+
--output tsv)
67+
68+
echo "Using snapshot ID: $SNAPSHOT_ID"
69+
----
70+
71+
. Create the new disk using the snapshot as the source by running the following commands in the Azure CLI:
72+
+
73+
[source,terminal]
74+
----
75+
export MY_MIG_DISK="PerfPlusMigrDisk$RANDOM_SUFFIX"
76+
export SKU="Premium_LRS"
77+
export DISK_SIZE=513
78+
79+
az disk create \
80+
--name $MY_MIG_DISK \
81+
--resource-group $MY_MIG_RG \
82+
--size-gb $DISK_SIZE \
83+
--performance-plus true \
84+
--sku $SKU \
85+
--source $SNAPSHOT_ID \
86+
--location $REGION
87+
----
88+
+
89+
.Example output
90+
[source,terminal]
91+
----
92+
{
93+
"id": "/subscriptions/xxxxx/resourceGroups/PerfPlusMigrRGxxx/providers/Microsoft.Compute/disks/PerfPlusMigrDiskxxx",
94+
"location": "WestUS2",
95+
"name": "PerfPlusMigrDiskxxx",
96+
"properties": {
97+
"provisioningState": "Succeeded",
98+
"diskSizeGb": 513,
99+
"sku": "Premium_LRS",
100+
"performancePlus": true,
101+
"source": "https://examplestorageaccount.blob.core.windows.net/snapshots/sample-westus2.vhd"
102+
},
103+
"type": "Microsoft.Compute/disks"
104+
}
105+
----
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
//
2+
// Module included in the following assemblies:
3+
//
4+
// * storage/container_storage_interface/persistent-storage-csi-azure.adoc
5+
//
6+
7+
:_mod-docs-content-type: CONCEPT
8+
[id="persistent-storage-csi-azure-disk-perf-plus-limits_{context}"]
9+
= Limitations
10+
11+
Performance plus for Azure Disk has the following limitations:
12+
13+
* Can be enabled only on Standard HDD, Standard SSD, and Premium SSD managed disks that are 513 GiB or larger.
14+
+
15+
[IMPORTANT]
16+
====
17+
If you request a smaller value, the disk size is rounded up to 513GiB.
18+
====
19+
* Can be enabled only on new disks.
20+
+
21+
*Workaround:* Create a snapshot of a disk that has performance plus enabled on it, and then create a new disk from the snapshot.
22+
23+
* Not supported for disks recovered with Azure Site Recovery.
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//
2+
// Module included in the following assemblies:
3+
//
4+
// * storage/container_storage_interface/persistent-storage-csi-azure.adoc
5+
//
6+
7+
:_mod-docs-content-type: CONCEPT
8+
[id="persistent-storage-csi-azure-disk-perf-plus-overview_{context}"]
9+
= Performance plus for Azure Disk
10+
11+
By enabling performance plus, the Input/Output Operations Per Second (IOPS) and throughput limits can be increased for the following types of disks that are 513 GiB, and larger:
12+
13+
* Azure Premium solid-state drives (SSD)
14+
15+
* Standard SSDs
16+
17+
* Standard hard disk drives (HDD)
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
//
2+
// Module included in the following assemblies:
3+
//
4+
// * storage/container_storage_interface/persistent-storage-csi-azure.adoc
5+
//
6+
7+
:_mod-docs-content-type: PROCEDURE
8+
[id="persistent-storage-csi-azure-disk-perf-plus-sc_{context}"]
9+
= Creating or editing a storage class to use performance plus enhanced disks
10+
11+
The following procedure explains how to create a storage class, or edit an existing one, to use performance plus enhanced Azure disks.
12+
13+
.Prerequisites
14+
15+
* Access to a Microsoft Azure cluster with cluster-admin privileges.
16+
17+
* Access to an Azure disk with performance plus enabled.
18+
+
19+
For information about enabling performance plus on disks, see the Microsoft Azure storage documentation.
20+
21+
.Procedure
22+
23+
To create a storage class, or edit an existing one, to use performance plus enhanced disks:
24+
25+
. Create a storage class, or edit an existing one, using the following example YAML file:
26+
+
27+
.Example storage class YAML file
28+
[resource,yaml]
29+
----
30+
apiVersion: storage.k8s.io/v1
31+
kind: StorageClass
32+
metadata:
33+
name: <azure-disk-performance-plus-sc> <1>
34+
provisioner: disk.csi.azure.com <2>
35+
parameters:
36+
skuName: Premium_LRS <3>
37+
cachingMode: ReadOnly
38+
enablePerformancePlus: "true" <4>
39+
reclaimPolicy: Delete
40+
volumeBindingMode: WaitForFirstConsumer
41+
allowVolumeExpansion: true
42+
----
43+
<1> Name of the storage class.
44+
<2> Specifies the Azure Disk Container Storage Interface (CSI) driver provisioner.
45+
<3> Specifies the Azure disk type SKU. In this example, `Premium_LRS` for Premium SSD Locally Redundant Storage.
46+
<4> Enables Azure Disk performance plus.
47+
48+
. Create a persistent volume claim (PVC) that uses this storage class by using the following example YAML file:
49+
+
50+
.Example PVC YAML file
51+
[source,yaml]
52+
----
53+
apiVersion: v1
54+
kind: PersistentVolumeClaim
55+
metadata:
56+
name: <my-azure-pvc> <1>
57+
spec:
58+
accessModes:
59+
- ReadWriteOnce
60+
storageClassName: <azure-disk-performance-plus-sc> <2>
61+
resources:
62+
requests:
63+
storage: 513Gi <3>
64+
----
65+
<1> PVC name.
66+
<2> Reference the performance plus storage class.
67+
<3> Ensure that the disk size requested is 513 GiB, or larger, for performance plus to take effect.
68+
69+

storage/container_storage_interface/persistent-storage-csi-azure.adoc

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,24 @@ include::modules/machineset-creating-azure-ultra-disk.adoc[leveloffset=+2]
5353
//Troubleshooting resources for compute machine sets that enable ultra disks
5454
include::modules/machineset-troubleshooting-azure-ultra-disk.adoc[leveloffset=+2]
5555

56+
== Performance plus for Azure Disk
57+
By enabling performance plus, the input/output operations per second (IOPS) and throughput limits can be increased for the following types of disks that are 513 GiB, and larger:
58+
59+
* Azure Premium solid-state drives (SSD)
60+
61+
* Standard SSDs
62+
63+
* Standard hard disk drives (HDD)
64+
65+
To see what the increased limits are for IOPS and throughput, consult the columns that begin with *Expanded* in the tables in link:https://learn.microsoft.com/en-us/azure/virtual-machines/disks-scalability-targets[Scalability and performance targets for VM disks].
66+
67+
include::modules/persistent-storage-csi-azure-disk-perf-plus-limits.adoc[leveloffset=+2]
68+
69+
include::modules/persistent-storage-csi-azure-disk-perf-plus-sc.adoc[leveloffset=+2]
70+
5671
[id="additional-resources_persistent-storage-csi-azure"]
5772
[role="_additional-resources"]
5873
== Additional resources
5974
* xref:../../storage/persistent_storage/persistent-storage-azure.adoc#persistent-storage-using-azure[Persistent storage using Azure Disk]
6075
* xref:../../storage/container_storage_interface/persistent-storage-csi.adoc#persistent-storage-csi[Configuring CSI volumes]
76+
* link:https://learn.microsoft.com/azure/[Microsoft Azure storage documentation]

0 commit comments

Comments
 (0)