多路径 I/O

 

Windows自带mpio(多路径I/O)详解         

面向高可用性的多路径支持

此功能大部分是出现在云计算里面,存储方案的解决。多路径逻辑就使用 I/O 的备用路径以使应用程序仍然能够访问其数据。


Windows Server® 2008(含及其以上版本)包括许多将运行Windows 服务器级操作系统的计算机与存储区域网络 (SAN) 设备连接起来的增强功能。(可以理解成一种虚拟的磁盘设备,但又是真实存在的一种存储阵列形式)

集成的多路径 I/O (MPIO) 支持是为基于 Windows 的服务器与 SAN连接提供高可用性的众多增强功能之一。Microsoft MPIO 体系结构通过建立到存储阵列的多个会话或连接,支持iSCSI、光纤通道和串行连接的存储 (SAS) SAN 连接。

多路径解决方案使用冗余的物理路径组件(适配器、电缆和交换机)在服务器与存储设备之间创建逻辑路径。如果这些组件中的一个或多个发生故障,导致路径无法使用,多路径逻辑就使用 I/O 的备用路径以使应用程序仍然能够访问其数据。每个网络接口卡(在使用 iSCSI 的情况下)或 HBA 都应通过使用冗余的交换机基础结构连接起来,以便在存储结构组件发生故障时能继续访问存储。

故障转移次数因存储供应商而异,并且可以通过使用 Microsoft iSCSI 软件发起程序驱动程序中的计时器,或修改光纤通道主机总线适配器驱动程序参数设置进行配置。

多路径 I/O

有了多路径 I/O (MPIO) 功能,设备仅能通过一个或多个物理连接或路径来检测。

路径控制模块(PCM)提供路径管理功能。

支持 MPIO 的设备驱动程序可以控制多种类型的目标设备。PCM 可以支持一个或多个特定的设备。因此,一个设备驱动程序可对接到多个 PCM,这些 PCM 可控制每个目标设备的多条路径范围内的 I/O。

图 1. MPIO 组件交互作用. 本图例显示了组成 MPIO 解决方案的不同组件之间的交互作用。在此图中,MPIO 设备驱动程序控制多种类型的目标设备,每个类型都需要不同的 PCM。(KE = 内核扩展,RTL = 可装入运行时)。

多路径 I/O_第1张图片

在某个设备可以使用 MPIO 之前,必须修改对象数据管理器(ODM)中的设备驱动程序、方法和预定义属性来支持多条路径的检测、配置和管理。并行 SCSI 和光纤通道磁盘设备驱动程序及其设备方法支持 MPIO 磁盘设备。支持 iSCSI 磁盘设备作为 MPIO 设备。光纤通道磁带设备驱动程序和它的设备方法支持 MPIO 磁带设备。此外,还为 MPIO 修改了 ODM 中某些设备的预定义属性。

AIX® PCM 由 PCM RTL 配置模块和 PCM KE 内核扩展组成。PCM RTL 是一个可装入运行时模块,该模块启用了设备方法来检测 PCM KE 所需的、附加的特定于 PCM KE 设备的属性或路径 ODM 属性。PCM RTL 是通过设备方法装入的。然后访问 PCM RTL 内的一个或多个例程以执行初始化或修改 PM KE 变量的特定操作。

PCM KE 为支持 MPIO 接口的任何设备驱动程序提供路径控制管理功能。PCM KE 依靠设备配置来检测路径并将该信息通知到设备驱动程序。每个支持 MPIO 设备驱动程序从它的一个或多个直接上级向设备中添加路径。不同路径范围内的 I/O 的维护和调度是由 PCM KE 提供的,对于支持 MPIO 的设备驱动程序不可见。

PCM KE 可以提供多个路由算法,这些算法可由用户选择。PCM KE 还帮助收集可用于为任何 I/O 请求确定和选择最佳路径的信息。PCM KE 可选择基于多种条件(包括负载均衡、连接速度、连接故障等等)的最佳路径。

AIX 具有可用于进行以下操作的运行状况检查功能:

  • 检查路径并确定当前可用于发送 I/O 的路径
  • 启用先前由于临时路径故障(例如,除去连接到设备的电缆之后再将其重新连接时)而标记为失败的路径
  • 检查发生故障转移时应使用而当前未使用的路径(例如,当算法属性值为 failover 时,运行状况检查可测试备用路径)

不是所有的磁盘设备和磁带设备都可以使用 AIX 缺省 PCM 来检测和配置的。AIX 缺省 PCM 由两个路径控制模块组成,一个用于管理磁盘设备,另一个用于管理磁带设备。如果未检测到您的设备,请向设备供应商核实以确定 PCM 是否可用于您的设备。

  • 管理支持 MPIO 的设备

    可以使用多路径 I/O (MPIO) 功可以把备用通道定义到用于故障转移的设备。

  • 配置 MPIO 设备

    配置支持 MPIO 的设备将使用与配置非 MPIO 设备相同的命令。

  • 受支持的多路径设备

    AIX 缺省 PCM 支持 devices.common.IBM.mpio.rte 文件集中定义的一组磁盘和磁带设备。

  • MPIO 设备属性

    以下属性只受多路径设备支持。可使用 SMIT 或命令(特别是 lsattr 和 chdev 命令)显示或更改属性。

  • 路径控制模块属性

    除了缺省 AIX 的缺省路径控制模块(PCM)外,设备供应商可能还提供特定于设备的 PCM。用户可更改属性的集合是由设备供应商定义的。特定于设备的 PCM 可以具有设备和路径属性。

  • SAN 复制属性

    必须安装 AIX 多路径 I/O (MPIO),并且设备必须正在使用 AIX 路径控制模块 (PCM)。这些属性对存储子系统提供的设置和功能具有依赖性。

  • 卸下通信适配器

    必须先取消配置该适配器,才能卸下或更换热插拔适配器。

  • 取消配置存储适配器

    在可以卸下或更换存储适配器之前,必须取消配置该适配器。

  • 取消配置异步适配器

    您可以取消配置异步适配器。

  • 诊断 I/O 设备

    您可以确定设备问题的原因。

Windows的MPIO 的安装与使用

1.在双活系统中,常常为客户端配置多路径,来保证业务可持续,那今天我们来聊聊windows自带的MPIO

2.首先先教大家如何安装windows自带的MPIO

(1)实验环境是windows2012 R2,其他版本大致一样,FC路径。首先打开服务器管理器,选择"添加角色和功能"

(2)然后点击“下一步”

(3)点击“下一步”

(4)直接点击“下一步”

(5)默认,点击“下一步”

(6)这边是重点,勾选“多路径I/O”,点击下一步

(7)勾选“如果需要,自动重新启动目标服务器”,当我们不确定某个操作后,是否需要重启,就勾选。当然安装mpio是需要重启的。然后点击安装

(8)开始安装

(10)安装成功,点击关闭。

3.安装成功后,如何设置mpio,莫急,下面就是啦。

(服务器管理-工具-mpio)

 

(2)在MPIO属性中,可以添加存储阵列,有两种方式,一种是手动添加;另一种是时device ID(尽量使用这种)

如下图,是手动添加,点击添加,输入供应商(8个字符)和产品ID(16个字符),如果不够,用空格补全。

添加之后需要重启

这是第二种,发现多路径,直接选择硬件,点击添加

(3)在磁盘管理中,可以查看多路径是否绑好,右击,选择“属性”

(4)查看路径是不是显示正常。

4 下面聊一点高级的,关机MPIO的几种模式。

(1)仅故障转移(failover only)

      这是最简单的一种模式,与游戏中的复活类似。一条路径挂了,切到另一条。它是自动切换,active/standby模式

(2)协商会议(round robin)

        李彦宏的英文名字就是robin。这个模式就是负载均衡,每条路径都会写IO,不能浪费服务器性能,  active/active模式

(3)带子集的协商会议(传说中alua),

        比协商会议更高级一点,alua是储存的三种工作模式中的一种,主要是存储控制那一条路径,而不是客户端。主要是提高存储的读写性能和可靠性。 active/active模式

       允许应用程序指定要以轮循机制方式使用的路径集以及备用路径集的负载平衡策略。DSM 使用来自主路径池的路径处理请求,只要其中至少有一个路径可用即可。仅当所有主路径发生故障时,DSM 才使用备用路径。例如,假设有 4 个路径:A、B、C 和 D,路径 A、B 和 C 被列为主路径,而 D 是备用路径。只要 A、B 和 C 中至少有一个可用,DSM 就会以轮循机制方式从中选择一个路径。如果所有三个路径都发生故障,则 DSM 就使用备用路径 D。如果路径 A、B 或 C 变为可用,DSM 将停止使用路径 D 并切换回使用 A、B 和 C 之中的可用路

(4)最少队列深度(呃呃呃这个英文我就不清楚了)

 沿着当前未完成的 I/O 请求最少的路径发送 I/O 的负载平衡策略。例如,考虑有一个 I/O,该 I/O 发送到路径 1 上的 LUN 1,其他 I/O 发送到路径 1 上的 LUN 2。则路径 1 上累积未完成的 I/O 为 2,在路径 2 上它为 0。因此,任一 LUN 的下一个 I/O 将在路径 2 上处理。

(5)加权路径(weighted path)

沿着当前处理的数据块数最少的路径发送 I/O 的负载平衡策略。例如,如果有两个 I/O:一个是 10 个字节,而另一个是 20 个字节。这两个都在路径 1 上进行处理,并且都已完成路径 2。则路径 1 上累积的未完成 I/O 数量为 30 个字节。在路径 2 上为 0。因此下一个 I/O 将在路径 2 上处理。

Windows Server 2008 中的新 MPIO 功能包含一个设备特定模块 (DSM),该模块用于处理支持非对称逻辑单元访问 (ALUA) 控制器模型(在 SPC-3 中定义)的存储阵列,以及遵循 Active/Active 控制器模型的存储阵列。

包含的 DSM 的功能

Microsoft DSM 提供以下负载平衡策略。请注意,负载平衡策略通常取决于连接到基于 Windows 的计算机的存储阵列的控制器模型(ALUA 或实际 Active/Active)。

  • 故障转移   不执行负载平衡。应用程序指定一个主路径和一组备用路径。主路径用于处理设备请求。如果主路径发生故障,使用其中一个备用路径。备用路径必须按优先顺序降序排列(最优先的路径排在第一位)。
     
  • 故障回复   故障回复是指只要首选路径起作用,就将 I/O 专用于首选路径的功能。如果首选路径发生故障,I/O 将被定向到备用路径,直到首选路径功能恢复为止,而当功能恢复时, I/O 会自动切换回首选路径。
     
  • 循环   DSM 以平衡的循环方式使用 I/O 的所有可用路径。
     
  • 带有路径子集的循环   应用程序指定一组以循环方式使用的路径和一组备用路径。DSM 使用来自主路径池的路径处理请求,只要其中至少有一个路径可用即可。仅当所有主路径发生故障时,DSM 才使用备用路径。备用路径必须按优先顺序降序排列(最优先的路径排在第一位)。如果一个或多个主路径变为可用,DSM 就按其优先顺序使用备用路径。例如,假设有 4 个路径:A、B、C 和 D,A、B 和 C 被列为主路径,而 D 是备用路径。只要 A、B 和 C 中至少有一个可用,DSM 就会以循环方式从中选择一个路径。

    如果所有三个路径都发生故障,则 DSM 就使用备用路径 D。如果 A、B 或 C 变为可用,DSM 将停止使用 D 并切换回使用 A、B 和 C 之中的可用路径。
     
  • 动态最小队列深度   DSM 将 I/O 路由到未完成的请求数最小的路径。
     
  • 加权路径   应用程序给每个路径分配权重;权重表示给定路径的相对优先级。数值越大,优先级越低。DSM 从可用路径中选择具有最小权重的路径。
     

即使在计算机重新启动之后,Microsoft DSM 仍然会保留负载平衡设置。管理应用程序未设置策略时,DSM 使用的默认策略或者是轮循机制(存储控制器遵循实际 Active/Active 模型时使用),或者是简单故障转移(在使用支持 SPC-3 ALUA 模型的存储控制器时使用)。使用简单故障转移时,任何一个可用路径都能被用作主路径,而其余路径用作备用路径。

添加和删除 MPIO 支持

若要在运行 Windows Server 2008 的计算机上安装多路径 I/O,请完成下列步骤。

安装多路径 I/O 的步骤

  1. 打开服务器管理器。

    要打开“服务器管理器”,请单击“开始”,指向“管理工具”,然后单击“服务器管理器”。

  2. 在“功能”区域中单击“添加功能”。

  3. 在添加功能向导的“选择功能”页中,选择“多路径 I/O”,然后单击“下一步”。

  4. 在“确认安装选择”页上,单击“安装”。

  5. 安装完成后,单击“关闭”。

若要使用 服务器管理器 命令行在计算机上安装多路径 I/O,请完成下列步骤。

使用命令行安装多路径 I/O 的步骤

  1. 使用提升权限打开“命令提示符”窗口。

    右键单击「开始」菜单中的“命令提示符”对象,然后单击“以管理员身份运行”。

  2. 键入下列命令并按 Enter。

    ServerManagerCmd.exe -install Multipath-IO

  3. 安装完成后,您可以通过输入下列命令并检查命令窗口中的查询结果来验证多路径 I/O 是否已经安装。多路径 I/O 应该显示在已安装程序包列表中。

    ServerManagerCmd.exe -query

删除多路径 I/O

要删除多路径 I/O,请完成下列步骤。

删除多路径 I/O 的步骤

  1. 打开服务器管理器。

    要打开“服务器管理器”,请单击“开始”,指向“管理工具”,然后单击“服务器管理器”。

  2. 在“功能”区域中单击“删除功能”。

  3. 在添加功能向导的“选择功能”页中,选择“多路径 I/O”,然后单击“下一步”。

  4. 在“确认安装选择”页上,单击“安装”。

  5. 安装完成后,单击“关闭”。

若要使用 服务器管理器 命令行删除多路径 I/O,请完成下列步骤。

使用命令行删除多路径 I/O 的步骤

  1. 使用提升权限打开“命令提示符”窗口。

    右键单击「开始」菜单中的“命令提示符”对象,然后单击“以管理员身份运行”。

  2. 键入下列命令并按 Enter。

    ServerManagerCmd.exe -remove Multipath-IO

  3. 删除完成后,您可以通过输入下列命令并检查命令窗口中的查询结果来验证多路径 I/O 是否已经删除。多路径 I/O 不应出现在已安装程序包列表中。

    ServerManagerCmd.exe -query

打开并配置多路径 I/O

安装了多路径 I/O 后,您可以从控制面板中打开“MPIO 属性”对话框,也可以单击「开始」菜单上“管理工具”中的 MPIO 打开该对话框。

配置和 DSM 安装

可以使用“MPIO 属性”对话框或命令行界面配置通过 Microsoft MPIO 的其他连接。

添加第三方 DSM

许多遵循 Active/Active 模型且与 SPC-3 兼容的存储阵列也使用 MPIO 通用 DSM。有些存储阵列供应商也提供他们自己的 DSM 来与 Microsoft MPIO 体系结构交互。第三方 DSM 应该使用“MPIO 属性”对话框中的“DSM 安装”选项卡进行安装。

“发现多路径”选项卡检查存在多个存储阵列路径的设备。一旦检查完成,“设备硬件 ID”字段将自动填充。

如果不存在存储的多个路径,或者如果存储设备未连接,可以通过在“MPIO 设备”选项卡中提供信息,手动添加设备硬件 ID。

使用 MPclaim 命令行工具

可以使用 MPclaim 命令行工具管理多路径 I/O。

备注
命令行是在运行 Windows Server 2008 的服务器核心安装的计算机上进行多路径 I/O 配置的唯一可用方法。

 

MPclaim 的语法

mpclaim restart_option install_switch device_switch device_hwid

MPclaim 参数

下表描述了可以用于 MPclaim 命令,通过命令行管理多路径 I/O 的命令参数。

 

参数 描述  

Restart_option

选项

描述

-r

-r

不提示的情况下自动重新启动

-n

-n

取消重新启动请求。

Install_switch

选项

描述

-i

-i

安装 MPIO 并为存储设备添加多路径支持

-u

-u

删除 MPIO 并停止对存储设备的支持

device_switch

选项

描述

-d

-d

指定需要 MPIO 支持的设备。设备 ID 用空格分隔。

-a

-a

将 MPIO 支持应用到所有兼容设备。

-c

-c

仅将 MPIO 支持应用

你可能感兴趣的:(多路径 I/O)