查看多路径参数配置
多路径的前端智能均衡、负载均衡算法或其他参数设置不当,会导致链路上的I/O压力不均或影响顺序I/O的顺序性,从而无法达到最优性能,对带宽有很大的影响。
- 在Windows主机下,可以通过主机多路径软件UltraPath Console查询多路径的参数配置。
操作入口:“系统 > 全局设置”。
- 在Linux主机下,可以通过运行upadmin show upconfig命令查询多路径的配置参数。
# upadmin show upconfig ======================================================= UltraPath Configuration ======================================================= Basic Configuration Working Mode : load balancing within controller LoadBalance Mode : min-queue-depth Loadbanlance io threshold : 1 LUN Trespass : on Advanced Configuration Io Retry Times : 10 Io Retry Delay : 0 Faulty path check interval : 10 Idle path check interval : 60 Failback Delay Time : 600 Io Suspension Time : 60 Max io retry timeout : 1800 Path reliability configuration Timeout degraded statistical time : 600 Timeout degraded threshold : 1 Timeout degraded path recovery time : 1800 Intermittent I/O error degraded statistical time : 300 Min. I/Os for intermittent I/O error degraded statistical : 5000 Intermittent I/O error degraded threshold : 20 Intermittent I/O error degraded path recovery time : 1800 Intermittent fault degraded statistical time : 1800 Intermittent fault degraded threshold : 3 Intermittent fault degraded path recovery time : 3600 High latency degraded statistical time : 300 High latency degraded threshold : 1000 High latency degraded path recovery time : 3600 HyperMetro configuration HyperMetro Primary Array SN : Not configured HyperMetro WorkingMode : read write within primary array HyperMetro Split Size : 128MB
- 在AIX主机下,可以通过运行upadm show upconfig命令查询多路径的配置参数。
# upadm show upconfig ======================================================= UltraPath Configuration ======================================================= Basic Configuration Working Mode : load balancing within controller LoadBalance Mode : min-queue-depth Loadbanlance io threshold : 1 LUN Trespass : on Advanced Configuration Io Retry Times : 10 Io Retry Delay : 0 Faulty path check interval : 10 Idle path check interval : 60 Failback Delay Time : 600 Io Suspension Time : 60 Max io retry timeout : 1800 Path reliability configuration Timeout degraded statistical time : 600 Timeout degraded threshold : 1 Timeout degraded path recovery time : 1800 Intermittent I/O error degraded statistical time : 300 Min. I/Os for intermittent I/O error degraded statistical : 5000 Intermittent I/O error degraded threshold : 20 Intermittent I/O error degraded path recovery time : 1800 Intermittent fault degraded statistical time : 1800 Intermittent fault degraded threshold : 3 Intermittent fault degraded path recovery time : 3600 High latency degraded statistical time : 300 High latency degraded threshold : 1000 High latency degraded path recovery time : 3600 Sensitive delayed degraded threshold : 30000 Sensitive delayed degraded recovery time : 120 HyperMetro configuration HyperMetro Primary Array SN : Not configured HyperMetro WorkingMode : read write within primary array HyperMetro Split Size : 128MB
- 在VMware ESXi主机下,可以通过运行esxcli upadm show upconfig命令查询多路径的配置参数。
# esxcli upadm show upconfig ======================================================= UltraPath Configuration ======================================================= Basic Configuration Working Mode : load balancing within controller LoadBalance Mode : round-robin Loadbanlance io threshold : 1 LUN Trespass : on Advanced Configuration Io Retry Times : 10 Io Retry Delay : 0 Faulty path check interval : 10 Idle path check interval : 60 Failback Delay Time : 0 Max io retry timeout : 1800 Path reliability configuration Timeout degraded statistical time : 600 Timeout degraded threshold : 1 Timeout degraded path recovery time : 1800 Intermittent IO error degraded statistical time : 300 Min. I/Os for intermittent IO error degraded statistical : 5000 Intermittent IO error degraded threshold : 20 Intermittent IO error degraded path recovery time : 1800 Intermittent fault degraded statistical time : 1800 Intermittent fault degraded threshold : 3 Intermittent fault degraded path recovery time : 3600 High latency degraded statistical time : 300 High latency degraded threshold : 1000 High latency degraded path recovery time : 3600 Sensitive delayed degraded threshold : 30000 Sensitive delayed degraded recovery time : 120 APDtoPDL configuration APD to PDL Mode : off APD to PDL Timeout : 10 HyperMetro configuration HyperMetro Primary Array SN : Not configured HyperMetro WorkingMode : read write within primary array HyperMetro Split Size : 128MB
关于其他操作系统的查询方法,请参见对应操作系统的多路径用户指南。
前端智能均衡
在使用华为UltraPath多路径21.6.0及后续版本的情况下,UltraPath与存储系统紧密配合,首先采用智能分发算法,计算每个I/O的shard值,并根据shard值查找存储系统中对应的vNode。根据查找结果,把主机I/O直接分发vNode对应的前端链路,避免后续转发。
负载均衡算法
多路径的负载均衡算法设置不当也可能导致各条链路上的I/O压力不均,无法达到最优性能。当前UltraPath 21.6.0版本的多路径负载均衡策略支持三种:min-queue-depth、round-robin和min-task。
- min-queue-depth:最小队列深度,实时统计各路径的排队I/O数,并将I/O下发到当前排队I/O数最小的路径。即应用服务器向存储系统发送I/O时,I/O队列最小的将拥有I/O发送的优先权。
默认的选路算法,一般情况下性能最优。
- round-robin:轮询,应用服务器第一次向存储系统发送I/O时,UltraPath将通过路径1传送,第二次发送时采用路径2,以此类推。路径采用轮流使用的方式进行,保证了每条路径的充分利用。
常与控制器间均衡策略一起使用。一般情况下轮询算法对带宽性能会造成不利影响:I/O严格按照顺序下发到每条逻辑链路,不考虑链路的负载情况,可能会造成已拥塞的链路压力更大的情况,且会打乱顺序I/O的顺序性。
- min-task:最小任务,应用服务器向存储系统发送I/O时,根据每个I/O请求的块大小计算出总体负载数据量,将I/O下发到当前负载数据量最小的路径。
较少采用,对性能的影响与最小队列算法差异不大。
负载均衡连续I/O数量
负载均衡连续I/O数量表示在每一条选定路径上主机一次连续下发I/O的数量。例如Linux操作系统的多路径软件UltraPath中“Loadbalance io threshold”即为负载均衡连续I/O数量,默认值为“100”,表示会在每一条选定的路径上主机连续下发100个I/O。控制连续下发I/O数量的意义在于,Linux块设备会对连续I/O进行合并,如果下发到一条路径上的多个I/O都是连续地址,则会被块设备合并成一个大I/O发送到存储,从而提升效率。
但是某些场景下,此参数设置不当会对性能造成影响:
- 在Windows环境下此参数默认为1,建议不做修改,原因是Windows操作系统无块设备,不会进行I/O合并。
- 在Linux环境下,大I/O的场景建议将此参数调小。由于Linux块设备默认的I/O最大为512KB,即使发生合并,也不会产生超过512KB大小的I/O。例如下发512KB大小的I/O,完全不可能发生合并,在此条件下,建议将此参数调整为1。
- 全随机的场景下,几乎无法进行I/O合并,为减少开销,建议将此参数设置为1。