你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何从单个 Linux 客户端连接到弹性 SAN 卷。 有关从 Windows 客户端进行连接的详细信息,请参阅连接到弹性 SAN 卷 - Windows。
在本文中,你将将卷组配置为允许来自子网的连接,然后将客户端环境配置为连接到弹性 SAN 卷并建立连接。
将单个弹性 SAN 卷连接到多个客户端时,必须使用群集管理器。 有关详细信息,请参阅 在 Azure Elastic SAN 上使用群集应用程序。
先决条件
启用 iSCSI 发起程序
若要从 Linux 客户端创建 iSCSI 连接,请安装 iSCSI 发起程序包。 确切的命令可能因分发而异,如有必要,应查阅其文档。
例如,使用 Ubuntu 时将使用 sudo apt install open-iscsi
,使用 SUSE Linux Enterprise Server (SLES) 时将使用 sudo zypper install open-iscsi
,而使用 Red Hat Enterprise Linux (RHEL) 时将使用 sudo yum install iscsi-initiator-utils
。
安装多路径 I/O
若要实现更高的卷 IOPS 和吞吐量并达到其最大限制,需要根据应用程序的多线程功能和性能要求,从 iSCSI 发起程序创建到目标卷的多个会话。 需要多路径 I/O 将这些多个路径聚合到单个设备中,并通过基于负载均衡策略将所有可用路径上以最佳方式分布 I/O 来提高性能。
安装适用于 Linux 分发版的多路径 I/O 包。 安装因分发版而异,应查阅其文档。 例如,在 Ubuntu 上命令将是 sudo apt install multipath-tools
,在 SLES 上命令将是 sudo zypper install multipath-tools
,在 RHEL 上命令将是 sudo yum install device-mapper-multipath
。
安装包后,请检查 /etc/multipath.conf 是否存在。 如果 /etc/multipath.conf 不存在,请创建一个空文件,并使用以下示例中的设置进行常规配置。 例如, mpathconf --enable
将在 RHEL 上创建 /etc/multipath.conf 。
需要对 /etc/multipath.conf 进行一些修改。 需要在以下示例中添加 devices 节,以下示例中的默认值部分设置了一些通常通用的默认值。 如果需要进行其他特定配置,例如从多路径拓扑中排除卷,请参阅 multipath.conf 的使用手册页面。
defaults {
user_friendly_names yes # To create ‘mpathn’ names for multipath devices
path_grouping_policy multibus # To place all the paths in one priority group
path_selector "round-robin 0" # To use round robin algorithm to determine path for next I/O operation
failback immediate # For immediate failback to highest priority path group with active paths
no_path_retry 3 # To disable I/O queueing after retrying once when all paths are down
polling_interval 5 # Set path check polling interval to 5 seconds
find multipaths yes # To allow multipath to take control of only those devices that have multiple paths
}
devices {
device {
vendor "MSFT"
product "Virtual HD"
}
}
创建或修改文件后,重启 Multipath I/O。 在 Ubuntu 上,命令在 sudo systemctl restart multipath-tools.service
RHEL 和 SLES 上,命令为 sudo systemctl restart multipathd
.
将卷附加到客户端
可以使用以下脚本创建连接。 若要执行它,请收集或确定以下参数:
- subscription:订阅 ID
- g:资源组名称
- e:弹性 SAN 名称
- v:卷组名称
- n <vol1, vol2, ...>: 卷 1 和 2 的名称和其他可能需要的卷名称,逗号分隔
- s:每个卷的会话数(默认设置为 32)
从 此处 复制脚本并将其另存为.py文件,例如 connect.py。 然后使用所需的参数执行它。 下面是如何运行脚本的示例:
./connect.py --subscription <subid> -g <rgname> -e <esanname> -v <vgname> -n <vol1, vol2> -s 32
可以使用 sudo multipath -ll
验证会话数。
设置会话编号
每个目标卷使用 32 个会话,以达到其最大 IOPS 和/或吞吐量限制。
可以使用以下说明运行脚本来更改会话计数:
注释
用于 -n
设置会话数。 该参数接受从 1 到 32 的值,默认值为 32。
python3 connect_for_documentation.py \
--subscription <your-subscription-id>\
-g <resource-group>\
-e <elastic-san-name>\
-v <volume-group-name>\
-n volume1 volume2 \
-s <value>