我在前面的文章中<深度分析LINUX环境下如何配置multi-path>  介绍了linux下的多路径,今天介绍一下ESX/ESXi的多路径(multipath) 功能。

在ESX/ESXi中为了管理存储多路径,使用特殊的 VMkernel 层。 ESX/ESXi 默认情况下提供的 VMkernel 多路径插件是 VMware 本机多路径插件 (NMP)。NMP 是管理子插件的可扩展模块。NMP 子插件有两种类型,即存储阵列类型插件 (SATP) 和路径选择插件 (PSP)。当然ESX/ESXi也可以支持第三方多路径。

ESX/ESXi多路径策略支持如下三种方式:
(1)固定
当通往磁盘的首选路径可用时,主机将始终使用此路径。如果主机无法通过首选路径访问磁盘,它会尝试替代路径。“固定”是主动-主动存储设备的默认策略。
(2)最近使用
主机使用磁盘的路径,直到路径不可用为止。当路径不可用时,主机将选择替代路径之一。当该路径再次可用时,主机不会恢复到原始路径。没有 MRU 策略的首选路径设置。MRU 是主动-被动存储设备的默认策略并且对于这些设备是必需的。
(3)循环
主机使用自动路径选择算法轮流选择所有可用路径。这样可跨所有可用物理路径实现负载平衡。负载平衡即是将服务器 I/O 请求分散于所有可用主机路径的过程。目的是针对吞吐量(每秒 I/O 流量、每秒兆字节数或响应时间)实现最佳性能。
下表将列出当存储端的主机行为不同时对这三种策略的影响(存储阵列有主动-主动模式和主动-被动模式)

如何在ESX/ESXi中配置多路径策略呢?
通过vsphere client登录到ESX/ESXi服务器,选中需要配置多路径策略的主机,如下图中172.18.30.18---->再点击配置----->再选择存储器---->在右边窗口的数据存储的界面中选中相应的存储磁盘,见下图FCOE_NETAPP (1)---->右击选择属性

最后点击管理路径--->在策略下路径选择的下拉条中可以看到三种策略方式,

可以在命令行模式执行:
~ # esxcli storage nmp device list

Code    View Copy Print
  1. ~ # esxcli storage nmp device list   
  2. naa.60a980006466507244346a36774a4868   
  3. Device Display Name: NETAPP Fibre Channel Disk (naa.60a980006466507244346a36774a4868)   
  4. Storage Array Type: VMW_SATP_DEFAULT_AA   
  5. Storage Array Type Device Config: SATP VMW_SATP_DEFAULT_AA does not support device configuration.   
  6. Path Selection Policy: VMW_PSP_RR   
  7. Path Selection Policy Device Config: {policy=rr,iops=1000,bytes=10485760,useANO=0;lastPathIndex=none}   
  8. Path Selection Policy Device Custom Config:   
  9. Working Paths: vmhba1:C0:T0:L1 vmhba2:C0:T0:L1  

VMW_PSP_RR说明当前启用了Round Robin策略,2个主要的参数 iops=1000, bytes=10485760:前者限定在进行1000次io操作后切换到下一个路径,后者限定在发送10485760字节的数据后切换到下一个路径。

修改iops参数:
esxcli storage nmp psp roundrobin deviceconfig set --type=iops --iops 888 --device naa.xxxxxxxxxxxxxxxxxx
修改bytes参数:
esxcli storage nmp psp roundrobin deviceconfig set --type "bytes" -B 12345 --device naa.xxxxxxxxxxxxxxxxxx
iSCSI LUN的UUID(naa.xxx)可以通过命令: esxcli storage core path list 获取

这里我使用了循环模式,可以看到两个路径的I/O都是处于激活状态。其他的模式就不在这演示了。
希望本文对大家学习虚拟化有所帮助。