You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
You can either create single sessions or multiple-sessions to every Elastic SAN volume based on your application's multi-threaded capabilities and performance requirements. To achieve higher IOPS and throughput to a volume and reach its maximum limits, use multiple sessions and adjust the queue depth and IO size as needed, if your workload allows.
31
+
### Set up your client environment
32
32
33
-
When using multiple sessions, generally, you should aggregate them with Multipath I/O. It allows you to aggregate multiple sessions from an iSCSI initiator to the target into a single device, and can improve performance by optimally distributing I/O over all available paths based on a load balancing policy.
33
+
#### Enable iSCSI Initiator
34
34
35
-
### Environment setup
36
-
37
-
To create iSCSI connections from a Linux client, install the iSCSI initiator package. The exact command may vary depending on your distribution, and you should consult their documentation if necessary.
35
+
To create iSCSI connections from a Linux client, install the iSCSI initiator package. The exact command might vary depending on your distribution, and you should consult their documentation if necessary.
38
36
39
37
As an example, with Ubuntu you'd use `sudo apt install open-iscsi`, with SUSE Linux Enterprise Server (SLES) you'd use `sudo zypper install open-iscsi` and with Red Hat Enterprise Linux (RHEL) you'd use `sudo yum install iscsi-initiator-utils`.
40
38
41
-
#### Multipath I/O - for multi-session connectivity
39
+
#### Install Multipath I/O
40
+
41
+
To achieve higher IOPS and throughput to a volume and reach its maximum limits, you need to create multiple-sessions from the iSCSI initiator to the target volume based on your application's multi-threaded capabilities and performance requirements. You need Multipath I/O to aggregate these multiple paths into a single device, and to improve performance by optimally distributing I/O over all available paths based on a load balancing policy.
42
42
43
43
Install the Multipath I/O package for your Linux distribution. The installation will vary based on your distribution, and you should consult their documentation. As an example, on Ubuntu the command would be `sudo apt install multipath-tools`, for SLES the command would be `sudo zypper install multipath-tools` and for RHEL the command would be `sudo yum install device-mapper-multipath`.
44
44
45
45
Once you've installed the package, check if **/etc/multipath.conf** exists. If **/etc/multipath.conf** doesn't exist, create an empty file and use the settings in the following example for a general configuration. As an example, `mpathconf --enable` will create **/etc/multipath.conf** on RHEL.
46
46
47
-
You'll need to make some modifications to **/etc/multipath.conf**. You'll need to add the devices section in the following example, and the defaults section in the following example sets some defaults are generally applicable. If you need to make any other specific configurations, such as excluding volumes from the multipath topology, see the main page for multipath.conf.
47
+
You'll need to make some modifications to **/etc/multipath.conf**. You'll need to add the devices section in the following example, and the defaults section in the following example sets some defaults are generally applicable. If you need to make any other specific configurations, such as excluding volumes from the multipath topology, see the manual page for multipath.conf.
48
48
49
49
```config
50
50
defaults {
@@ -64,80 +64,27 @@ devices {
64
64
65
65
After creating or modifying the file, restart Multipath I/O. On Ubuntu, the command is `sudo systemctl restart multipath-tools.service` and on RHEL and SLES the command is `sudo systemctl restart multipathd`.
66
66
67
-
### Gather information
68
-
69
-
Before you can connect to a volume, you'll need to get **StorageTargetIQN**, **StorageTargetPortalHostName**, and **StorageTargetPortalPort** from your Azure resources.
70
-
71
-
Run the following command to get these values:
72
-
73
-
```azurecli
74
-
# Connect to Azure
75
-
az login
76
-
77
-
# Get volume information
78
-
az elastic-san volume show -e yourSanName -g yourResourceGroup -v yourVolumeGroupName -n yourVolumeName
79
-
```
80
-
81
-
You should see a list of output that looks like the following:
82
-
83
-
:::image type="content" source="media/elastic-san-create/elastic-san-volume.png" alt-text="Screenshot of command output." lightbox="media/elastic-san-create/elastic-san-volume.png":::
84
67
68
+
### Attach Volumes to the client
85
69
86
-
Note down the values for **targetIQN**, **targetPortalHostName**, and **targetPortalPort**, you'll need them for the next sections.
70
+
You can use the following script to create your connections. To execute it, you will require the following parameters:
71
+
- subscription: Subscription ID
72
+
- g: Resource Group Name
73
+
- e: Elastic SAN Name
74
+
- v: Volume Group Name
75
+
- n <vol1, vol2, ...>: Names of volumes 1 and 2 and other volume names that you might require, comma separated
76
+
- s: Number of sessions to each volume (set to 32 by default)
87
77
88
-
## Determine sessions to create
89
-
90
-
You can either create single sessions or multiple-sessions to every Elastic SAN volume based on your application's multi-threaded capabilities and performance requirements. To achieve higher IOPS and throughput to a volume and reach its maximum limits, use multiple sessions and adjust the queue depth and IO size as needed, if your workload allows.
91
-
92
-
For multi-session connections, install [Multipath I/O - for multi-session connectivity](#multipath-io---for-multi-session-connectivity).
93
-
94
-
### Multi-session connections
95
-
96
-
To establish multiple sessions to a volume, first you'll need to create a single session with particular parameters.
97
-
98
-
To establish persistent iSCSI connections, modify **node.startup** in **/etc/iscsi/iscsid.conf** from **manual** to **automatic**.
99
-
100
-
Replace **yourTargetIQN**, **yourTargetPortalHostName**, and **yourTargetPortalPort** with the values you kept, then run the following commands from your compute client to connect an Elastic SAN volume.
78
+
Copy the script from [here](https://github.com/Azure-Samples/azure-elastic-san/blob/main/CLI%20(Linux)%20Multi-Session%20Connect%20Scripts/connect_for_documentation.py) and save it as a .py file, for example, connect.py. Then execute it with the required parameters. The following is an example of how you'd run the script:
101
79
102
80
```bash
103
-
sudo iscsiadm -m node --targetname yourTargetIQN --portal yourTargetPortalHostName:yourTargetPortalPort -o new
Then, get the session ID and create as many sessions as needed with the session ID. To get the session ID, run `iscsiadm -m session` and you should see output similar to the following:
109
-
110
-
```output
111
-
tcp:[15] <name>:port,-1 <iqn>
112
-
tcp:[18] <name>:port,-1 <iqn>
113
-
```
114
-
15 is the session ID we'll use from the previous example.
115
-
116
-
The following script is a loop that creates as many additional sessions as you specify. Replace **numberOfAdditionalSessions** with your desired number of additional sessions and replace **sessionID** with the session ID you'd like to use, then run the script.
You can verify the number of sessions using `sudo multipath -ll`
123
85
124
-
When you've finished creating sessions for each of your volumes, run the following command once for each volume you'd like to maintain persistent connections to. This keeps the volume's connections active when your client reboots.
To establish persistent iSCSI connections, modify **node.startup** in **/etc/iscsi/iscsid.conf** from **manual** to **automatic**.
133
-
134
-
Replace **yourTargetIQN**, **yourTargetPortalHostName**, and **yourTargetPortalPort** with the values you kept, then run the following commands from your compute client to connect an Elastic SAN volume.
135
-
136
-
```bash
137
-
sudo iscsiadm -m node --targetname yourTargetIQN --portal yourTargetPortalHostName:yourTargetPortalPort -o new
This article explains how to connect to an Elastic storage area network (SAN) volume from a Windows client. For details on connecting from a Linux client, see [Connect to Elastic SAN Preview volumes - Linux](elastic-san-connect-linux.md).
15
15
16
-
In this article, you'll add the Storage service endpoint to an Azure virtual network's subnet, then you'll configure your volume group to allow connections from your subnet. Finally, you'll configure your client environment to connect to an Elastic SAN volume and establish a connection.
16
+
In this article, you add the Storage service endpoint to an Azure virtual network's subnet, then you configure your volume group to allow connections from your subnet. Finally, you configure your client environment to connect to an Elastic SAN volume and establish a connection. For best performance, ensure that your VM and your Elastic SAN are in the same zone.
17
17
18
18
## Prerequisites
19
19
@@ -26,14 +26,10 @@ In this article, you'll add the Storage service endpoint to an Azure virtual net
You can either create single sessions or multiple-sessions to every Elastic SAN volume based on your application's multi-threaded capabilities and performance requirements. To achieve higher IOPS and throughput to a volume and reach its maximum limits, use multiple sessions and adjust the queue depth and IO size as needed, if your workload allows.
32
-
33
-
When using multiple sessions, generally, you should aggregate them with Multipath I/O. It allows you to aggregate multiple sessions from an iSCSI initiator to the target into a single device, and can improve performance by optimally distributing I/O over all available paths based on a load balancing policy.
34
-
35
-
### Set up your environment
29
+
## Connect to volumes
36
30
31
+
### Set up your client environment
32
+
#### Enable iSCSI Initiator
37
33
To create iSCSI connections from a Windows client, confirm the iSCSI service is running. If it's not, start the service, and set it to start automatically.
38
34
39
35
```powershell
@@ -47,7 +43,9 @@ Start-Service -Name MSiSCSI
47
43
Set-Service -Name MSiSCSI -StartupType Automatic
48
44
```
49
45
50
-
#### Multipath I/O - for multi-session connectivity
46
+
#### Install Multipath I/O
47
+
48
+
To achieve higher IOPS and throughput to a volume and reach its maximum limits, you need to create multiple-sessions from the iSCSI initiator to the target volume based on your application's multi-threaded capabilities and performance requirements. You need Multipath I/O to aggregate these multiple paths into a single device, and to improve performance by optimally distributing I/O over all available paths based on a load balancing policy.
51
49
52
50
Install Multipath I/O, enable multipath support for iSCSI devices, and set a default load balancing policy.
Before you can connect to a volume, you'll need to get **StorageTargetIQN**, **StorageTargetPortalHostName**, and **StorageTargetPortalPort** from your Azure Elastic SAN volume.
69
+
You can use the following script to create your connections. To execute it, you require the following parameters:
70
+
- $rgname: Resource Group Name
71
+
- $esanname: Elastic SAN Name
72
+
- $vgname: Volume Group Name
73
+
- $vol1: First Volume Name
74
+
- $vol2: Second Volume Name
75
+
and other volume names that you might require
76
+
- 32: Number of sessions to each volume
72
77
73
-
Fill in the variables with your values, then run the following commands:
78
+
Copy the script from [here](https://github.com/Azure-Samples/azure-elastic-san/blob/main/CLI%20(Linux)%20Multi-Session%20Connect%20Scripts/connect_for_documentation.py) and save it as a .ps1 file, for example, connect.ps1. Then execute it with the required parameters. The following is an example of how to run the script:
74
79
75
-
```azurepowershell
76
-
# Connect to Azure
77
-
Connect-AzAccount
78
-
79
-
# Get the target name and iSCSI portal name to connect a volume to a client
Note down the values for **StorageTargetIQN**, **StorageTargetPortalHostName**, and **StorageTargetPortalPort**, you'll need them for the next sections.
92
-
93
-
## Determine sessions to create
94
-
95
-
You can either create single sessions or multiple-sessions to every Elastic SAN volume based on your application's multi-threaded capabilities and performance requirements. To achieve higher IOPS and throughput to a volume and reach its maximum limits, use multiple sessions and adjust the queue depth and IO size as needed, if your workload allows.
96
-
97
-
For multi-session connections, install [Multipath I/O - for multi-session connectivity](#multipath-io---for-multi-session-connectivity).
98
-
99
-
### Multi-session configuration
100
-
101
-
To create multiple sessions to each volume, you must configure the target and connect to it multiple times, based on the number of sessions you want to that volume.
102
-
103
-
You can use the following scripts to create your connections.
104
-
105
-
To script multi-session configurations, use two files. An XML configuration file includes the information for each volume you'd like to establish connections to, and a script that uses the XML files to create connections.
106
-
107
-
The following example shows you how to format your XML file for the script, for each volume, create a new `<Target>` section:
Verify the number of sessions your volume has with either `iscsicli SessionList` or `mpclaim -s -d`
170
85
171
-
### Single-session configuration
172
-
173
-
Replace **yourStorageTargetIQN**, **yourStorageTargetPortalHostName**, and **yourStorageTargetPortalPort** with the values you kept, then run the following commands from your compute client to connect an Elastic SAN volume. If you'd like to modify these commands, run `iscsicli commandHere -?` for information on the command and its parameters.
174
-
175
-
```
176
-
# Add target IQN
177
-
# The *s are essential, as they are default arguments
You need to use 32 sessions to each target volume to achieve its maximum IOPS and/or throughput limits. Windows iSCSI initiator has a limit of maximum 256 sessions. If you need to connect more than 8 volumes to a Windows client, reduce the number of sessions to each volume.
Copy file name to clipboardExpand all lines: articles/storage/elastic-san/elastic-san-create.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,6 +32,7 @@ There are no additional registration steps required.
32
32
1. Select **+ Create a new SAN**
33
33
1. On the basics page, fill in the appropriate values.
34
34
-**Elastic SAN name** must be between 3 and 24 characters long. The name may only contain lowercase letters, numbers, hyphens and underscores, and must begin and end with a letter or a number. Each hyphen and underscore must be preceded and followed by an alphanumeric character.
35
+
For best performance, your SAN should be in the same zone as your VM.
35
36
36
37
1. Specify the amount of base capacity you require, and any additional capacity, then select next.
Copy file name to clipboardExpand all lines: articles/storage/elastic-san/elastic-san-performance.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -20,7 +20,7 @@ Your application's performance gets throttled when it requests more IOPS or thro
20
20
21
21
### Elastic SAN performance
22
22
23
-
An Elastic SAN has three attributes that determine its performance: total capacity, IOPS, and throughput.
23
+
An Elastic SAN has three attributes that determine its performance: total capacity, IOPS, and throughput. For the best possible performance, your SAN should be in the same zone as the VM you're provisioning.
24
24
25
25
### Capacity
26
26
@@ -64,7 +64,7 @@ Each of the example scenarios in this article uses the following configuration f
64
64
65
65
## Example scenarios
66
66
67
-
The following example scenarios depict how your Elastic SAN handles performance allocation.
67
+
The following example scenarios depict how your Elastic SAN handles performance allocation. For best performance, both the VMs and the SAN need to be in the same zone.
68
68
69
69
### Typical workload
70
70
@@ -114,4 +114,4 @@ In this scenario, all the workloads hit their spike at almost the same time. At
114
114
115
115
## Next steps
116
116
117
-
[Deploy an Elastic SAN (preview)](elastic-san-create.md).
117
+
[Deploy an Elastic SAN (preview)](elastic-san-create.md).
0 commit comments