你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

连接到弹性 SAN 卷 - Windows

本文介绍如何将 Windows 客户端连接到 Azure 弹性 SAN 卷。 有关从 Linux 客户端进行连接的详细信息,请参阅 “连接到弹性 SAN 卷 - Linux”。

可通过两种方法进行连接:

  • 弹性 SAN 虚拟机扩展:非常适合新虚拟机或虚拟机规模设置。 该扩展在部署时通过 Azure 门户启用自动化和一致的 SAN 连接,或希望尽量减少手动步骤时使用。
  • 手动连接脚本:非常适合需要直接运行脚本的现有 VM、高级自定义或故障排除。

先决条件

在使用 VM 扩展之前,请确保已完成以下作:

  • 部署弹性 SAN
  • 在您的弹性 SAN 上创建和配置至少一个卷组及一个卷。
  • 配置专用终结点配置服务终结点
  • 获取卷 IQN:
    • 建立连接需要每个卷的 IQN(iSCSI 限定名称)。
    • 目前,Azure 门户不会直接显示卷 IQN。 创建弹性 SAN 时请记下它。 可以运行 az elastic-san volume show --name <volume-name> --resource-group <rg-name> --elastic-san-name <esan-name> 或使用相应的 PowerShell cmdlet 提取 IQN。
    • 记录并保存计划连接的所有卷的 IQN 和目标门户名称。

使用弹性 SAN VM 扩展进行连接

若要从 Azure 门户自动执行连接过程,请使用弹性 SAN VM 扩展。 可以通过两种方式使用扩展:

  • 在 VM 创建期间:在预配过程中进行连接。
  • VM 部署后:连接或断开现有 VM 或 ARM 部署脚本以大规模部署多个 VM

VM 扩展配置的内容

使用 Connect 命令配置扩展时,可确保:

  • iSCSI 服务已启用并正在运行。
  • 多路径 I/O (MPIO) 已安装并配置。
  • 指定的弹性 SAN 卷使用你提供的卷 IQN、目标门户地址和会话计数进行连接。 对于多个卷,每个卷与其门户地址之间应有一个 1:1 映射,并且每个卷完全建立指定的会话数。

使用 Disconnect 命令配置扩展时,它会:

  • 断开指定卷的连接。
  • 根据现有的断开连接脚本清理永久性目标数据库中的相应条目。

注释

该扩展仅适用于你提供的参数。 对于多个卷或 IQN,请以逗号分隔的值(例如 volume1、volume2、volume3 及其对应的 IQN)进行输入。 还必须指定会话计数(用于连接)。 该扩展不会推断或维护先前连接的历史记录。

在创建 VM 期间安装和配置 VM 扩展

创建新 VM 并希望在连接到弹性 SAN 时部署它时,请使用此路径:

  1. 登录到 Azure 门户
  2. 填写“基本”、“磁盘”和“网络”上的必填字段。
  3. 在创建 VM 期间导航到 扩展 + 应用程序
  4. 在“市场”磁贴中选择添加,然后搜索适用于 Windows 的弹性 SAN 扩展
  5. 选择扩展以打开其配置面板。
  6. 在配置页上,提供所需的连接参数:卷名称目标 IQN目标门户地址每个目标会话数
  7. 继续 查看+ 创建
  8. 选择 “创建 ”以完成 VM 创建。

VM 成功部署后,扩展会自动运行并:

  • 根据需要启用 iSCSI 和 MPIO。
  • 使用您提供的 IQN 和会话计数发起到您的弹性 SAN 卷的请求连接。

如果任何验证或连接步骤失败(例如资源名称无效、无法访问的卷组子网或会话限制已超出),门户中的扩展状态将反映失败(包括错误消息),并指导你进行故障排除。

在现有 VM 上安装和配置 VM 扩展

当 VM 已部署并且您想从门户连接或断开弹性 SAN 卷时,请使用此路径。

  1. 在 Azure 门户中,导航到 Windows VM。
  2. 在“设置”下,选择“ 扩展 + 应用程序”。
  3. 选择 “添加 ”并搜索 适用于 Windows 的弹性 SAN 扩展 ,或者打开现有的弹性 SAN 扩展实例(如果已安装)。
  4. 选择 “配置/重新配置”。
  5. 在扩展配置面板中,选择 “连接 ”或“ 断开连接 ”,然后提供所需的参数: 卷名称(s)目标 IQN(s)目标门户地址(es)每个目标会话 (仅适用于连接)。
  6. 应用配置。

注释

重新配置 VM 扩展不会重新启动 VM,并且不会自动更改现有连接,除非显式请求断开连接。 扩展仅执行新请求的连接或断开连接操作。

手动连接到弹性 SAN 卷

本节介绍如何从单个 Windows 客户端连接到弹性存储区域网络 (SAN) 卷。 有关从 Linux 客户端进行连接的详细信息,请参阅 “连接到弹性 SAN 卷 - Linux”。

在本节中,你将配置客户端环境以连接到弹性 SAN 卷并建立连接。 为了获得最佳性能,请确保 VM 和弹性 SAN 位于同一区域。

将 VM 扩展与虚拟机规模集一起使用时,规模集中的每个 VM 会自动连接到弹性 SAN 卷。 如果多个 VM 将访问同一卷,则必须使用群集管理器来协调共享访问和维护数据一致性。 有关详细信息,请参阅 在 Azure Elastic SAN 上使用群集应用程序

先决条件

设置客户端环境

启用 iSCSI 发起程序

若要从 Windows 客户端创建 iSCSI 连接,请确认 iSCSI 服务正在运行。 如果不是,请启动服务,并将其设置为自动启动。

# Confirm iSCSI is running
Get-Service -Name MSiSCSI

# If it's not running, start it
Start-Service -Name MSiSCSI

# Set it to start automatically
Set-Service -Name MSiSCSI -StartupType Automatic

安装多路径 I/O

若要实现更高的卷 IOPS 和吞吐量并达到其最大限制,需要根据应用程序的多线程功能和性能要求,从 iSCSI 发起程序创建到目标卷的多个会话。 需要多路径 I/O 将这些多个路径聚合到单个设备中,并通过基于负载均衡策略将所有可用路径上以最佳方式分布 I/O 来提高性能。

安装多路径 I/O,为 iSCSI 设备启用多路径支持,并设置默认负载均衡策略。

# Install Multipath-IO
Add-WindowsFeature -Name 'Multipath-IO'

# Verify if the installation was successful
Get-WindowsFeature -Name 'Multipath-IO'

# Enable multipath support for iSCSI devices
Enable-MSDSMAutomaticClaim -BusType iSCSI

# Set the default load balancing policy based on your requirements. In this example, we set it to round robin
# which should be optimal for most workloads.
mpclaim -L -M 2

将卷附加到客户端

可以使用以下脚本创建连接。 若要执行它,需要以下参数:

  • $rgname:资源组名称
  • $esanname:弹性 SAN 名称
  • $vgname:卷组名称
  • $vol 1:第一个卷名称
  • $vol2:第二卷名称及其他您可能需要的卷名
  • 32:每个卷的会话数

此处 复制脚本并将其另存为 .ps1 文件,例如 connect.ps1。 然后使用所需的参数执行它。 下面是如何运行脚本的示例:

./connect.ps1 $rgname $esanname $vgname $vol1,$vol2,$vol3 32

使用 iscsicli SessionListmpclaim -s -d 验证卷的会话数

会话数

需要对每个目标卷使用 32 个会话来实现其最大 IOPS 和/或吞吐量限制。 Windows iSCSI 发起程序的最大会话数限制为 256 个。 如果需要将 8 个以上的卷连接到 Windows 客户端,请减少每个卷的会话数。

.\connect.ps1 `

  -ResourceGroupName "<resource-group>" ` 

  -ElasticSanName "<esan-name>" ` 

  -VolumeGroupName "<volume-group>" ` 

  -VolumeName "<volume1>", "<volume2>" ` 

  -NumSession “<value>”

使用 iscsicli SessionListmpclaim -s -d 验证卷的会话数

后续步骤

配置弹性 SAN 网络