Skip to content

Commit 09d26f4

Browse files
authored
Merge pull request #289183 from adarshv98/patch-9
Documentation for autoscaling
2 parents ca513fb + 0bc06a7 commit 09d26f4

File tree

3 files changed

+111
-13
lines changed

3 files changed

+111
-13
lines changed

articles/storage/elastic-san/elastic-san-create.md

Lines changed: 61 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@ description: Learn how to deploy an Azure Elastic SAN with the Azure portal, Azu
44
author: roygara
55
ms.service: azure-elastic-san-storage
66
ms.topic: how-to
7-
ms.date: 02/13/2024
7+
ms.date: 10/24/2024
88
ms.author: rogarana
99
ms.custom: references_regions, devx-track-azurepowershell, devx-track-azurecli
1010
---
1111

1212
# Deploy an Elastic SAN
1313

14-
This article explains how to deploy and configure an elastic storage area network (SAN). If you're interested in Azure Elastic SAN, or have any feedback you'd like to provide, fill out [this](https://aka.ms/ElasticSANPreviewSignup) optional survey.
14+
This article explains how to deploy and configure an elastic storage area network (SAN).
1515

1616
## Prerequisites
1717

@@ -43,7 +43,7 @@ This article explains how to deploy and configure an elastic storage area networ
4343

4444
# [PowerShell](#tab/azure-powershell)
4545

46-
Use one of these sets of sample code to create an Elastic SAN that uses locally redundant storage or zone-redundant storage. Replace all placeholder text with your own values and use the same variables in all of the examples in this article:
46+
Use one of these sets of sample code to create an Elastic SAN that uses locally redundant storage or zone-redundant storage. One set creates an elastic SAN with [autoscaling](elastic-san-planning.md#autoscaling-preview) (preview) enabled, and the other creates an elastic SAN with [autoscaling](elastic-san-planning.md#autoscaling-preview) disabled. Replace all placeholder text with your own values and use the same variables in all of the examples in this article:
4747

4848
| Placeholder | Description |
4949
|----------------------------------|-------------|
@@ -53,8 +53,12 @@ Use one of these sets of sample code to create an Elastic SAN that uses locally
5353
| `<VolumeName>` | The name of the Elastic SAN Volume to be created. |
5454
| `<Location>` | The region where the new resources will be created. |
5555
| `<Zone>` | The availability zone where the Elastic SAN will be created.<br> *Specify the same availability zone as the zone that will host your workload.*<br>*Use only if the Elastic SAN will use locally redundant storage.*<br> *Must be a zone supported in the target location such as `1`, `2`, or `3`.* |
56+
| `<AutoScalePolicyEnforcement>` | The setting that determines whether or not autoscaling is enabled for the Elastic SAN. <br>*This value is optional but if passed in, must be 'Enabled' or 'Disabled'* |
57+
| `<UnusedSizeTiB>` | The capacity (in TiB) on your Elastic SAN that you want to keep free and unused. If you use more space than this amount, the scale-up operation is automatically triggered, increasing the size of your SAN. This parameter is optional but is required to enable autoscaling. |
58+
|`<IncreaseCapacityUnitByTiB>` | This parameter sets the TiB of additional capacity units that your SAN scales up by when autoscale gets triggered. This parameter is optional but is required to enable autoscaling. |
59+
|`<CapacityUnitScaleUpLimit>` | This parameter sets the maximum capacity (size) that your SAN can grow to using autoscaling. Your SAN won't automatically scale past this size. This parameter is optional but is required to enable autoscaling. |
5660

57-
The following command creates an Elastic SAN that uses **locally redundant** storage.
61+
The following command creates an Elastic SAN that uses locally redundant storage without autoscaling enabled.
5862

5963
```azurepowershell
6064
# Define some variables.
@@ -72,7 +76,29 @@ Connect-AzAccount
7276
New-AzElasticSAN -ResourceGroupName $RgName -Name $EsanName -AvailabilityZone $Zone -Location $Location -BaseSizeTib 100 -ExtendedCapacitySizeTiB 20 -SkuName Premium_LRS
7377
```
7478

75-
The following command creates an Elastic SAN that uses **zone-redundant** storage.
79+
The following command creates an Elastic SAN that uses locally redundant storage with autoscaling enabled.
80+
81+
```azurepowershell
82+
# Define some variables.
83+
$RgName = "<ResourceGroupName>"
84+
$EsanName = "<ElasticSanName>"
85+
$EsanVgName = "<ElasticSanVolumeGroupName>"
86+
$VolumeName = "<VolumeName>"
87+
$Location = "<Location>"
88+
$Zone = <Zone>
89+
$AutoScalePolicyEnforcement = "Enabled"
90+
$UnusedSizeTiB = <UnusedSizeTiB>
91+
$IncreaseCapacityUnitByTiB = <IncreaseCapacityUnitByTiB>
92+
$CapacityUnitScaleUpLimit = <CapacityUnitScaleUpLimit>
93+
94+
# Connect to Azure
95+
Connect-AzAccount
96+
97+
# Create the SAN.
98+
New-AzElasticSAN -ResourceGroupName $RgName -Name $EsanName -AvailabilityZone $Zone -Location $Location -BaseSizeTib 100 -ExtendedCapacitySizeTiB 20 -SkuName Premium_LRS -AutoScalePolicyEnforcement $AutoScalePolicyEnforcement -UnusedSizeTiB $UnusedSizeTiB -IncreaseCapacityUnitByTiB $IncreaseCapacityUnitByTiB -CapacityUnitScaleUpLimit $CapacityUnitScaleUpLimit
99+
```
100+
101+
The following command creates an Elastic SAN that uses zone-redundant storage, without enabling autoscale.
76102

77103
```azurepowershell
78104
# Define some variables.
@@ -88,7 +114,7 @@ New-AzElasticSAN -ResourceGroupName $RgName -Name $EsanName -Location $Location
88114

89115
# [Azure CLI](#tab/azure-cli)
90116

91-
Use one of these sets of sample code to create an Elastic SAN that uses locally redundant storage or zone-redundant storage. Replace all placeholder text with your own values and use the same variables in all of the examples in this article:
117+
Use one of these sets of sample code to create an Elastic SAN that uses locally redundant storage or zone-redundant storage. One set creates an elastic SAN with [autoscaling](elastic-san-planning.md#autoscaling-preview) (preview) enabled, and the other creates an elastic SAN with [autoscaling](elastic-san-planning.md#autoscaling-preview) disabled. Replace all placeholder text with your own values and use the same variables in all of the examples in this article:
92118

93119
| Placeholder | Description |
94120
|----------------------------------|-------------|
@@ -98,8 +124,13 @@ Use one of these sets of sample code to create an Elastic SAN that uses locally
98124
| `<VolumeName>` | The name of the Elastic SAN Volume to be created. |
99125
| `<Location>` | The region where the new resources will be created. |
100126
| `<Zone>` | The availability zone where the Elastic SAN will be created.<br> *Specify the same availability zone as the zone that will host your workload.*<br>*Use only if the Elastic SAN uses locally redundant storage.*<br> *Must be a zone supported in the target location such as `1`, `2`, or `3`.* |
127+
| `<AutoScalePolicyEnforcement>` | The setting that determines whether or not autoscaling is enabled for the Elastic SAN. <br>*This value is optional but if passed in, must be 'Enabled' or 'Disabled'* |
128+
| `<UnusedSizeTiB>` | The capacity (in TiB) on your Elastic SAN that you want to keep free and unused. If you use more space than this amount, the scale-up operation is automatically triggered, increasing the size of your SAN. This parameter is optional but is required to enable autoscaling. |
129+
|`<IncreaseCapacityUnitByTiB>` | This parameter sets the TiB of additional capacity units that your SAN scales up by when autoscale gets triggered. This parameter is optional but is required to enable autoscaling. |
130+
|`<CapacityUnitScaleUpLimit>` | This parameter sets the maximum capacity (size) that your SAN can grow to using autoscaling. Your SAN won't automatically scale past this size. This parameter is optional but is required to enable autoscaling. |
131+
101132

102-
The following command creates an Elastic SAN that uses **locally redundant** storage.
133+
The following command creates an Elastic SAN that uses locally redundant storage without autoscaling enabled.
103134

104135
```azurecli
105136
# Define some variables.
@@ -117,7 +148,29 @@ az login
117148
az elastic-san create -n $EsanName -g $RgName -l $Location --base-size-tib 100 --extended-capacity-size-tib 20 --sku "{name:Premium_LRS,tier:Premium}" --availability-zones $Zone
118149
```
119150

120-
The following command creates an Elastic SAN that uses **zone-redundant** storage.
151+
The following command creates an Elastic SAN that uses locally redundant storage with autoscaling enabled.
152+
153+
```azurecli
154+
# Define some variables.
155+
RgName="<ResourceGroupName>"
156+
EsanName="<ElasticSanName>"
157+
EsanVgName="<ElasticSanVolumeGroupName>"
158+
VolumeName="<VolumeName>"
159+
Location="<Location>"
160+
Zone=<Zone>
161+
AutoScalePolicyEnforcement="Enabled"
162+
UnusedSizeTiB="<UnusedSizeTiB>"
163+
IncreaseCapacityUnitByTiB="<IncreaseCapacityUnitByTiB>"
164+
CapacityUnitScaleUpLimit="<CapacityUnitScaleUpLimit>"
165+
166+
# Connect to Azure
167+
az login
168+
169+
# Create an Elastic SAN
170+
az elastic-san create -n $EsanName -g $RgName -l $Location --base-size-tib 100 --extended-capacity-size-tib 20 --sku "{name:Premium_LRS,tier:Premium}" --availability-zones $Zone --auto-scale-policy-enforcement $AutoScalePolicyEnforcement --unused-size-tib $UnusedSizeTiB --increase-capacity-unit-by-tib $IncreaseCapacityUnitByTiB --capacity-unit-scale-up-limit $CapacityUnitScaleUpLimitTiB
171+
```
172+
173+
The following command creates an Elastic SAN that uses zone-redundant storage, with autoscaling disabled.
121174

122175
```azurecli
123176
# Define some variables.

articles/storage/elastic-san/elastic-san-expand.md

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Learn how to increase or decrease the size of an Azure Elastic SAN
44
author: roygara
55
ms.service: azure-elastic-san-storage
66
ms.topic: how-to
7-
ms.date: 05/31/2024
7+
ms.date: 10/24/2024
88
ms.author: rogarana
99
ms.custom: devx-track-azurecli, devx-track-azurepowershell
1010
---
@@ -17,7 +17,7 @@ This article covers increasing or decreasing the size of an Elastic storage area
1717

1818
To increase the size of your volumes, increase the size of your Elastic SAN first. To decrease the size of your SAN, make sure your volumes aren't using the extra size and then change the size of the SAN.
1919

20-
# [PowerShell](#tab/azure-powershell)
20+
# [PowerShell](#tab/azure-powershell-basesize)
2121

2222
```azurepowershell
2323
@@ -28,20 +28,57 @@ Update-AzElasticSan -ResourceGroupName $resourceGroupName -Name $sanName -BaseSi
2828
2929
```
3030

31-
# [Azure CLI](#tab/azure-cli)
31+
# [Azure CLI](#tab/azure-cli-basesize)
3232

3333
```azurecli
3434
# You can either update the base size or the additional size.
3535
# This command updates the base size, to update the additional size, replace -base-size-tib $newBaseSizeTib with -extended-capacity-size-tib $newExtendedCapacitySizeTib
3636
3737
az elastic-san update -e $sanName -g $resourceGroupName --base-size-tib $newBaseSizeTib
3838
```
39+
---
40+
41+
## Autoscale (preview)
42+
43+
As a preview feature, you can automatically scale up your SAN by specific increments until a specified maximum size. The capacity increments have a minimum of 1 TiB, and you can only set up an autoscale policy for additional capacity units. So when autoscaling, your performance won't automatically scale up as your storage does. Here's an example of setting an autoscale policy using Azure CLI:
44+
45+
`az elastic-san update -n mySanName -g myVolGroupName --auto-scale-policy-enforcement "Enabled" --unused-size-tib 20 --increase-capacity-unit-by-tib 5 --capacity-unit-scale-up-limit-tib 150`
46+
47+
Running that example command would set the following policy on the SAN it's run on: If your SAN's unused capacity (free space) is less than 20 TiB, increase the SAN's additional capacity by 5 TiB, until its unused capacity is at least 20 TiB. Don't allow the SAN's total capacity to exceed 150 TiB.
48+
49+
You can't use an autoscale policy to scale down. To reduce the size of your SAN, follow the manual process in the previous section. If you have configured an autoscaling policy, disable it before reducing the size of your SAN.
50+
51+
52+
53+
The following script can be run to enable an autoscale policy for an existing Elastic SAN.
54+
55+
# [PowerShell](#tab/azure-powershell-autoscale)
56+
```azurepowershell
57+
# Define some variables.
58+
autoscalePolicyEnforcement = "Enabled" # Whether autoscale is enabled or disabled at the SAN level
59+
unusedSizeTiB = "<UnusedSizeTiB>" # Unused capacity on the SAN
60+
increaseCapacityUnit = "<IncreaseCapacityUnit>" # Amount by which the SAN will scale up if the policy is triggered
61+
capacityUnitScaleUpLimit = "<CapacityUnitScaleUpLimit>" # Maximum capacity until which scale up operations will occur
62+
63+
Update-AzElasticSan -ResourceGroupName myresourcegroup -Name myelasticsan -AutoScalePolicyEnforcement $autoscalePolicyEnforcement -UnusedSizeTiB $unusedSizeTiB -IncreaseCapacityUnitByTiB $increaseCapacityUnit -CapacityUnitScaleUpLimitTiB $capacityUnitScaleUpLimit
64+
```
65+
66+
# [Azure CLI](#tab/azure-cli-autoscale)
67+
```azurecli
68+
# Define some variables.
69+
autoscalePolicyEnforcement = "Enabled" # Whether autoscale is enabled or disabled at the SAN level
70+
unusedSizeTiB = "<UnusedSizeTiB>" # Unused capacity on the SAN
71+
increaseCapacityUnit = "<IncreaseCapacityUnit>" # Amount by which the SAN will scale up if the policy is triggered
72+
capacityUnitScaleUpLimit = "<CapacityUnitScaleUpLimit>" # Maximum capacity until which scale up operations will occur
73+
74+
az elastic-san update -n $sanName -g $resourceGroupName --auto-scale-policy-enforcement $autoscalePolicyEnforcement --unused-size-tib $unusedSizeTiB --increase-capacity-unit-by-tib $increaseCapacityUnit --capacity-unit-scale-up-limit-tib $capacityUnitScaleUpLimit
75+
```
3976

4077
---
4178

4279
## Resize a volume
4380

44-
Once you've expanded the size of your SAN, you can either create more volumes, or expand the size of an existing volume. You cannot decrease the size of your volumes.
81+
Once you expand the size of your SAN, you can either create more volumes, or expand the size of an existing volume. You can't decrease the size of your volumes.
4582

4683
# [PowerShell](#tab/azure-powershell)
4784

articles/storage/elastic-san/elastic-san-planning.md

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ description: Plan for an Azure Elastic SAN deployment. Learn about storage capac
44
author: roygara
55
ms.service: azure-elastic-san-storage
66
ms.topic: conceptual
7-
ms.date: 02/13/2024
7+
ms.date: 10/24/2024
88
ms.author: rogarana
99
ms.custom:
1010
- ignite-2023-elastic-SAN
@@ -38,6 +38,14 @@ You create volumes from the storage that you allocated to your Elastic SAN. When
3838

3939
Using the same example of a 100 TiB SAN that has 500,000 IOPS and 20,000 MB/s. Say this SAN had 100 1 TiB volumes. You could potentially have six of these volumes operating at their maximum performance (80,000 IOPS, 1,280 MB/s) since this would be below the SAN's limits. But if seven volumes all needed to operate at maximum at the same time, they wouldn't be able to. Instead the performance of the SAN would be split evenly among them.
4040

41+
### Autoscaling (preview)
42+
43+
As a preview feature, you can automatically scale up your SAN by specific increments until a specified maximum size using an autoscale policy. An autoscale policy is helpful for environments where storage consumption continually increases, like environments using volume snapshots. Volume snapshots consume some of the total capacity of an elastic SAN, and having an autoscale policy helps ensure your SAN doesn't run out of space to store volume snapshots.
44+
45+
When setting an autoscale policy, there's a minimum capacity increment of 1 TiB, and you can only automatically scale additional capacity, rather than base capacity. So when autoscaling, the IOPS and throughput of your SAN won't automatically scale up.
46+
47+
Here's an example of how an autoscale policy works. Say you have an elastic SAN that has 100 TiB total storage capacity. This SAN has volume snapshots configured, so you want the capacity to automatically scale to accommodate your snapshots. You can set a policy so that whenever the unused capacity is less than or equal to 20 TiB, additional capacity on your SAN increases by 5 TiB, up to a maximum of 150 TiB total storage. So, if you use 80 TiB of space, it automatically provisions an additional 5 TiB, so your SAN now has a total storage capacity of 105 TiB.
48+
4149
## Networking
4250

4351
In the Elastic SAN, you can enable or disable public network access at the Elastic SAN level. You can also configure access to volume groups in the SAN over both public [Storage service endpoints](../../virtual-network/virtual-network-service-endpoints-overview.md) and [private endpoints](../../private-link/private-endpoint-overview.md) from selected virtual network subnets. Once network access is configured for a volume group, the configuration is inherited by all volumes belonging to the group. If you disable public access at the SAN level, access to the volume groups within that SAN is only available over private endpoints, regardless of individual configurations for the volume group.

0 commit comments

Comments
 (0)