Skip to content

Commit 493d39f

Browse files
committed
formatting & acrolinx
1 parent 68291d9 commit 493d39f

File tree

1 file changed

+21
-22
lines changed

1 file changed

+21
-22
lines changed

articles/azure-netapp-files/configure-application-volume-group-sap-hana-api.md

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ ms.author: b-ahibbard
1717
---
1818
# Configure application volume groups for the SAP HANA REST API
1919

20-
Application volume group (AVG) enables customers to deploy all volumes for a single HANA host in one atomic step. The Azure portal and the Azure Resource Manager template have implemented pre-checks and recommendations for deployment in areas including throughputs and volume naming conventions. As a REST API user, those checks and recommendations are not available.
20+
Application volume group (AVG) enables you to deploy all volumes for a single HANA host in one atomic step. The Azure portal and the Azure Resource Manager template have implemented pre-checks and recommendations for deployment in areas including throughputs and volume naming conventions. As a REST API user, those checks and recommendations are not available.
2121

2222
Without these checks, it's important to understand the requirements for running HANA on Azure NetApp Files and the basic architecture and workflows application volume groups on which are built.
2323

@@ -56,15 +56,15 @@ The following list describes all the possible volume types for application volum
5656

5757
1. **Networking:** You need to decide on the networking architecture. To use Azure NetApp Files, a VNet needs to be created and within the vNet a delegated subnet where the ANF storage endpoints (IPs) will be placed. To ensure that the size of this subnet is large enough, see [Considerations about delegating a subnet to Azure NetApp Files](azure-netapp-files-delegate-subnet.md#considerations).
5858
1. Create a VNet.
59-
2. Create a VM subnet and delegated subnet for ANF.
59+
2. Create a virutal machine (VM) subnet and delegated subnet for ANF.
6060
1. **Storage Account and Capacity Pool:** A storage account is the entry point to consume Azure NetApp Files. At least one storage account needs to be created. Within a storage account, a capacity pool is the logical unit to create volumes. Application volume groups require a capacity pool with a manual QoS. It should be created with a size and service level that meets your HANA requirements. NOTE: a capacity pool can be resized at any time.
6161
1. Create a NetApp storage account.
6262
2. Create a manual QoS capacity pool.
63-
1. **Create AvSet and proximity placement group (PPG):** For production landscapes, you should AvSet that is manually pinned to a data center where Azure NetApp Files resources are available in proximity. The AvSet pinning ensures that VMs will not be moved on restart. The proximity placement group (PPG) needs to be assigned to the AvSet and with the help of application volume groups can find the closest Azure NetApp Files hardware, see [Best practices about proximity placement groups](application-volume-group-considerations.md#best-practices-about-proximity-placement-groups).
63+
1. **Create AvSet and proximity placement group (PPG):** For production landscapes, you should AvSet that is manually pinned to a data center where Azure NetApp Files resources are available in proximity. The AvSet pinning ensures that VMs will not be moved on restart. The proximity placement group (PPG) needs to be assigned to the AvSet. With the help of application volume groups, the PPG can find the closest Azure NetApp Files hardware. For more information, see [Best practices about proximity placement groups](application-volume-group-considerations.md#best-practices-about-proximity-placement-groups).
6464
1. Create AvSet.
6565
2. Create PPG.
6666
3. Assign PPG to AvSet.
67-
1. **Manual Steps - Request AvSet pinning**: AvSet pinning is required for long term SAP HANA systems. The Microsoft capacity planning team ensures that the required VMS for SAP HANA and Azure NetApp Files resources be in proximity to the VMs that are available. VMs will not move on restart.
67+
1. **Manual Steps - Request AvSet pinning**: AvSet pinning is required for long term SAP HANA systems. The Microsoft capacity planning team ensures that the required VMs for SAP HANA and Azure NetApp Files resources be in proximity to the VMs that are available. VMs will not move on restart.
6868
* Request pinning using [this form](https://aka.ms/HANAPINNING).
6969
1. **Create and start HANA DB VM:** Before you can create volumes using application volume groups, the PPG must be anchored. At least one VM must be created using the pinned AvSet. Once this VM is started, the PPG can be used to detect where the VM is running.
7070
1. Create and start the VM using the AvSet.
@@ -113,12 +113,12 @@ This table describes the request body parameters and volume properties for creat
113113
| `tags` | Volume tags | None, however, it may be helpful to add a tag to the HSR partner volume to identify the corresponding HSR partner volume. The Azure portal suggests the following tag for the HSR Secondary volumes: <ul><li> **Name**: `HSRPartnerStorageResourceId` </li><li> **Value:** `<Partner volume Id>` </li></ul> |
114114
| **Volume properties** | **Description** | **SAP HANA Value Restrictions** |
115115
| `creationToken` | Export path name, typically same as name above. | None. Example: `SH9-data-mnt00001` |
116-
| `throughputMibps` | QoS throughput | This must be between 1 and 4500 Mbps. You should set throughput based on volume type. |
116+
| `throughputMibps` | QoS throughput | This must be between 1 Mbps and 4500 Mbps. You should set throughput based on volume type. |
117117
| `usageThreshhold` | Size of the volume in bytes. This must be in the 100 GiB to 100 TiB range. For instance, 100 GiB = 107374182400 bytes. | None. You should set volume size depending on the volume type. |
118118
| `exportPolicyRule` | Volume export policy rule | At least one export policy rule must be specified for SAP HANA. Only the following rules values can be modified for SAP HANA, the rest _must_ have their default values: <ul><li>`unixReadOnly`: should be false</li><li>`unixReadWrite`: should be true</li><li>`allowedClients`: specify allowed clients. Use `0.0.0.0/0` for no restrictions.</li><li>`hasRootAccess`: must be true to install SAP.</li><li>`chownMode`: Specify `chown` mode.</li><li>`nfsv41`: true for data, log, and shared volumes, optionally true for data backup and log backup volumes</li><li>`nfsv3`: optionally true for data backup and log backup volumes</li><ul> All other rule values _must_ be left defaulted. |
119119
| `volumeSpecName` | Specifies the type of volume for the application volume group being created | SAP HANA volumes must have a value that is one of the following: <ul><li>"data"</li><li>"log"</li><li>"shared"</li><li>"data-backup"</li><li>"log-backup"</li></ul> |
120120
| `proximityPlacementGroup` | Resource ID of the Proximity Placement Group (PPG) for proper placement of the volume. | <ul><li>The “data”, “log” and “shared” volumes must each have a PPG specified, preferably a common PPG.</li><li>A PPG must be specified for the “data-backup” and “log-backup” volumes, but it will be ignored during placement.</li></ul> |
121-
| `subnetId` | Delegated subnet ID for Azure NetApp Files. | In a normal case (where there are sufficient resources available), the number of IP address required in the subnet depends on the order of the application volume group created in the subscription: <ol><li> First application volume group created: the creation usually requires to 3-4 IP addresses but can require up to 5</li><li> Second application volume group created: Normally requires two IP addresses</li><li></li>Third and subsequent application volume group created: Normally, more IP addresses will not be required</ol> |
121+
| `subnetId` | Delegated subnet ID for Azure NetApp Files. | In a normal case where there are sufficient resources available, the number of IP addresses required in the subnet depends on the order of the application volume group created in the subscription: <ol><li> First application volume group created: the creation usually requires to 3-4 IP addresses but can require up to 5</li><li> Second application volume group created: Normally requires two IP addresses</li><li></li>Third and subsequent application volume group created: Normally, more IP addresses will not be required</ol> |
122122
| `capacityPoolResourceId` | ID of the capacity pool | The capacity pool must be of type manual QoS. Generally, all SAP volumes are placed in a common capacity pool, however this is not a requirement. |
123123
| `protocolTypes` | Protocol to use | This should be either NFSv3 or NFSv4.1 and should match the protocol specified in the Export Policy Rule described earlier in this table. |
124124

@@ -141,9 +141,9 @@ In the examples below, selected placeholders are specified and should be replace
141141
>[!NOTE]
142142
> The following samples use jq, a tool that helps format the JSON output in a user-friendly way. If you don't have or use jq, you should omit the `| jq xxx` snippets.
143143
144-
## Creating SAP HANA volume groups using Curl
144+
## Creating SAP HANA volume groups using curl
145145

146-
SAP HANA volume groups for the following examples can be created using a sample shell script that calls the API using Curl:
146+
SAP HANA volume groups for the following examples can be created using a sample shell script that calls the API using curl:
147147

148148
1. Extract the subscription ID. This will automate the extraction of the subscription ID and generate the authorization token:
149149
```bash
@@ -162,15 +162,15 @@ SAP HANA volume groups for the following examples can be created using a sample
162162
curl -X PUT -H "Authorization: Bearer $token" -H "Content-Type:application/json" -H "Accept:application/json" -d @<ExampleJson> https://management.azure.com/subscriptions/$subId/resourceGroups/<ResourceGroup>/providers/Microsoft.NetApp/netAppAccounts/<NtapAccount>/volumeGroups/<VolumeGroupName>?api-version=2022-03-01 | jq .
163163
```
164164

165-
### Example 1 - Deploy volumes for the first HANA host for a single-host or multi-host configuration
165+
### Example 1: Deploy volumes for the first HANA host for a single-host or multi-host configuration
166166
To create the five volumes (data, log, shared, data-backup, log-backup) for a single-node SAP HANA system with SID `SH9` as in the example, use the following API request as shown in the JSON example.
167167

168168
>[!NOTE]
169169
>You need to replace the placeholders and adapt the parameters to meet your requirements.
170170

171171
#### Example single-host SAP HANA application volume group creation Request
172172

173-
This example pertains to data, log, shared, data-backup, and log-backup volumes demonstrating best practices for naming, sizing, and throughputs. This example will serve as the primary volume if you are configuring an HSR pair.
173+
This example pertains to data, log, shared, data-backup, and log-backup volumes demonstrating best practices for naming, sizing, and throughputs. This example will serve as the primary volume if you're configuring an HSR pair.
174174
175175
1. Save the JSON template as `sh9.json`:
176176
```json
@@ -368,24 +368,23 @@ This example pertains to data, log, shared, data-backup, and log-backup volumes
368368
}
369369
}
370370
```
371-
1. Run the test script.
371+
1. Extract the subscription ID:
372372
```bash
373-
# 1. Extract the subscription ID
374373
subId=$(az account list | jq ".[] | select (.name == \"Pay-As-You-Go\") | .id" -r)
375374
echo "Subscription ID: $subId"
376-
#
377-
# 2. Create the access token
375+
```
376+
1. Create the access token:
377+
```bash
378378
response=$(az account get-access-token)
379379
token=$(echo $response | jq ".accessToken" -r)
380380
echo "Token: $token"
381-
#
382-
# 3. Call the REST API using curl
383-
#
381+
```
382+
3. Call the REST API using curl
383+
```bash
384384
echo "---"
385385
curl -X PUT -H "Authorization: Bearer $token" -H "Content-Type:application/json" -H "Accept:application/json" -d @sh9.json https://management.azure.com/subscriptions/$subId/resourceGroups/rg-westus/providers/Microsoft.NetApp/netAppAccounts/ANF-WestUS-test/volumeGroups/SAP-HANA-SH9-00001?api-version=2022-03-01 | jq .
386-
```
386+
```
387387
1. Sample result:
388-
389388
```json
390389
{
391390
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/rg-westus/providers/Microsoft.NetApp/netAppAccounts/ANF-WestUS-test/volumeGroups/SAP-HANA-SH9-00001",
@@ -592,7 +591,7 @@ This example pertains to data, log, shared, data-backup, and log-backup volumes
592591
}
593592
```
594593
595-
### Example 2 - Deploy volumes for an additional HANA Host for a multiple-host HANA configuration
594+
### Example 2: Deploy volumes for an additional HANA Host for a multiple-host HANA configuration
596595
597596
To create a multiple-host HANA system, you need to add additional hosts to the previously deployed HANA hosts. Additional hosts only require a data and log volume each host you add. In this example, a volume group is added for host number `00002`.
598597
@@ -685,7 +684,7 @@ This example is similar to the single-host system request in the earlier example
685684
}
686685
```
687686
688-
### Example 3 - Deploy volumes for a secondary HANA system using HANA system replication
687+
### Example 3: Deploy volumes for a secondary HANA system using HANA system replication
689688
690689
HANA System Replication (HSR) will be used to set up a HANA database where both databases are using the same SAP System Identifier (SID) but have their individual volumes. Typically, HSR setups are in different zones and therefore require different proximity placement groups.
691690
@@ -900,7 +899,7 @@ This example encompasses the creation of data, log, shared, data-backup, and log
900899
}
901900
```
902901

903-
### Example 4 - Deploy volumes for a secondary HANA system using HANA system replication
902+
### Example 4: Deploy volumes for a secondary HANA system using HANA system replication
904903

905904
Cross-region replication is one way to set up a disaster recovery configuration for HANA, where the volumes of the HANA database in the DR-region are replicated on the storage side using cross-region replication in contrast to HSR, which replicates at the application level where it requires to have the HANA VMs deployed and running. Refer to the documentation (link) to understand which volumes require CRR replication. Refer to [Add volumes for an SAP HANA system as a DR system using cross-region replication](application-volume-group-disaster-recovery.md) to understand for which volumes in cross-region replication relations are required (data, shared, log-backup), not allowed (log), or optional (data-backup).
906905

0 commit comments

Comments
 (0)