Skip to content

Commit ca8f780

Browse files
author
Lisa Pettyjohn
committed
OSDOCS-15304#Performance plus for Azure Disk
1 parent 36c5a26 commit ca8f780

6 files changed

+252
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
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+
Normally, performance plus can be enabled only on new disks. For a workaround, you can use this procedure.
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+
.Procedure
20+
To enable performance plus on a disk that does not currently have it enabled it:
21+
22+
. Create a snapshot of the existing performance plus disk.
23+
24+
. Provision a new disk from that snapshot using a storage class with `enablePerformancePlus` set to "true".
25+
26+
Or
27+
28+
* Clone the persistent volume claim (PVC) using a storage class with `enablePerformancePlus` set to "true" to create a new disk clone.
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: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
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+
20+
* Can be enabled only on new disks. For a workaround, see the following topic _Enabling performance plus on new disks_.
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+
= Overview
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: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,21 @@ 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+
58+
include::modules/persistent-storage-csi-azure-disk-perf-plus-overview.adoc[leveloffset=+2]
59+
60+
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].
61+
62+
include::modules/persistent-storage-csi-azure-disk-perf-plus-limits.adoc[leveloffset=+2]
63+
64+
include::modules/persistent-storage-csi-azure-disk-perf-plus-create-new-disk.adoc[leveloffset=+2]
65+
66+
include::modules/persistent-storage-csi-azure-disk-perf-plus-sc.adoc[leveloffset=+2]
67+
5668
[id="additional-resources_persistent-storage-csi-azure"]
5769
[role="_additional-resources"]
5870
== Additional resources
5971
* xref:../../storage/persistent_storage/persistent-storage-azure.adoc#persistent-storage-using-azure[Persistent storage using Azure Disk]
6072
* xref:../../storage/container_storage_interface/persistent-storage-csi.adoc#persistent-storage-csi[Configuring CSI volumes]
73+
* link:https://learn.microsoft.com/azure/[Microsoft Azure storage documentation]

0 commit comments

Comments
 (0)