CN107870832B - 基于多维度健康诊断方法的多路径存储设备 - Google Patents

基于多维度健康诊断方法的多路径存储设备 Download PDF

Info

Publication number
CN107870832B
CN107870832B CN201610847954.5A CN201610847954A CN107870832B CN 107870832 B CN107870832 B CN 107870832B CN 201610847954 A CN201610847954 A CN 201610847954A CN 107870832 B CN107870832 B CN 107870832B
Authority
CN
China
Prior art keywords
access path
access
path
unhealthy
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610847954.5A
Other languages
English (en)
Other versions
CN107870832A (zh
Inventor
刘冰
吕满
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
EMC Corp
Original Assignee
EMC IP Holding Co LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by EMC IP Holding Co LLC filed Critical EMC IP Holding Co LLC
Priority to CN201610847954.5A priority Critical patent/CN107870832B/zh
Priority to US15/710,796 priority patent/US10698605B2/en
Publication of CN107870832A publication Critical patent/CN107870832A/zh
Application granted granted Critical
Publication of CN107870832B publication Critical patent/CN107870832B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • H04L41/065Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis involving logical or physical relationship, e.g. grouping and hierarchies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/076Error or fault detection not based on redundancy by exceeding limits by exceeding a count or rate limit, e.g. word- or bit count limit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2002Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant
    • G06F11/2007Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media
    • G06F11/201Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where interconnections or communication control functionality are redundant using redundant communication media between storage system components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/2247Verification or detection of system hardware configuration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3041Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is an input/output interface
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • H04L41/064Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis involving time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0686Additional information in the notification, e.g. enhancement of specific meta-data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0805Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
    • H04L43/0817Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking functioning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors

Abstract

本公开的实施例提供了一种存储管理方法和电子设备。该存储管理方法包括:收集指示用于访问存储设备的访问路径的访问错误的信息;基于访问错误,对访问路径进行故障诊断,故障诊断包括以下至少一项:与拓扑有关的第一诊断,与历史访问错误有关的第二诊断,以及与协议有关的第三诊断;以及基于故障诊断来提供与访问路径的健康状况有关的输出。

Description

基于多维度健康诊断方法的多路径存储设备
技术领域
本公开一般性地涉及存储技术,并且更特别地,涉及一种存储管理方法和电子设备。
背景技术
对于大多数企业存储解决方案,引入了多路径方法来支持存储系统的高可用性。多路径方法用于为具有备用访问路径的存储设备提供路径冗余解决方案。在本文中,使用术语“访问路径”、“I/O路径”或“路径”一般性地指代存储设备的包括各种组件的输入输出I/O路径,诸如小型计算机系统接口(SCSI)架构中的I_T关联模型。例如,对于基于串行SCSI(SAS)域的存储产品,访问路径可以包括主机总线适配器(HBA)卡、SAS扩展器和目标驱动器等。
已有的多路径方案的主要问题在于它们的路径健康诊断方法。这些路径健康诊断方法仅关注于一个方面的错误信息,例如较低层的SCSI错误信息。但是,单一方面的错误信息经常不足以(或者不够智能)帮助做出良好的路径相关决策。因此,已有的多路径方案无法进行高效和准确的路径健康诊断,难以满足存储系统的性能要求。
发明内容
本公开的实施例提供了一种存储管理方法和电子设备。
根据本公开的第一方面,提供了一种存储管理方法。该方法包括:收集指示用于访问存储设备的访问路径的访问错误的信息;基于访问错误,对访问路径进行故障诊断,故障诊断包括以下至少一项:与拓扑有关的第一诊断,与历史访问错误有关的第二诊断,以及与协议有关的第三诊断;以及基于故障诊断来提供与访问路径的健康状况有关的输出。
在一些实施例中,对访问路径进行第一诊断可以包括:检测访问路径在拓扑上的如下关联访问路径,访问错误也存在于关联访问路径中;响应于检测到关联访问路径,确定关联访问路径的数目;以及响应于关联访问路径的数目大于第一阈值,确定访问路径的拓扑处于不健康状态。
在一些实施例中,检测关联访问路径可以包括:获得存储设备的访问路径的拓扑信息;基于拓扑信息来检测与访问路径在拓扑上关联的候选访问路径;以及将候选访问路径中存在访问错误的访问路径确定为关联访问路径。
在一些实施例中,提供与访问路径的健康状况有关的输出可以包括:响应于通过第一诊断确定访问路径处于不健康状态,指示访问路径与关联访问路径的共用组件存在故障。
在一些实施例中,对访问路径进行第二诊断可以包括:确定访问路径在过去发生访问错误的次数;以及响应于该次数大于第二阈值,确定访问路径处于不健康状态。
在一些实施例中,提供与访问路径的健康状况有关的输出可以包括:响应于通过第二诊断确定访问路径处于不健康状态,指示放弃重新安装访问路径。
在一些实施例中,对访问路径进行第三诊断可以包括:统计访问路径的与协议有关的错误;以及响应于错误的数目大于第三阈值,确定访问路径处于不健康状态。
在一些实施例中,与协议有关的错误可以包括以下至少一项:小型计算机系统接口(SCSI)协议层错误,串行小型计算机系统接口(SAS)协议层错误,以及特定于厂商的错误。
在一些实施例中,提供与访问路径的健康状况有关的输出可以包括:响应于通过故障诊断确定访问路径处于不健康状态,查找可用的备用访问路径;响应于找到可用的存备用访问路径,提供备用访问路径的指示;以及响应于没有找到可用的备用访问路径,提供访问操作失败的指示。
在一些实施例中,提供与访问路径的健康状况有关的输出可以包括:响应于通过故障诊断确定访问路径处于不健康状态,发送访问路径的故障警报作为对路径健康监测的响应。
在一些实施例中,提供与访问路径的健康状况有关的输出可以包括:响应于通过故障诊断确定访问路径处于不健康状态,提供访问路径不能作为其他访问路径的备用访问路径的指示。
根据本公开的第二方面,提供了一种电子设备。该设备包括:至少一个处理器;以及包括计算机程序指令的至少一个存储器;其中至少一个存储器和计算机程序指令被配置为,与处理器一起,促使该设备:收集指示用于访问存储设备的访问路径的访问错误的信息;基于访问错误,对访问路径进行故障诊断,故障诊断包括以下至少一项:与拓扑有关的第一诊断,与历史访问错误有关的第二诊断,以及与协议有关的第三诊断;以及基于故障诊断来提供与访问路径的健康状况有关的输出。
在一些实施例中,至少一个存储器和计算机程序指令可以进一步被配置为,与处理器一起,促使该设备通过以下操作来对访问路径进行第一诊断:检测访问路径在拓扑上的如下关联访问路径,访问错误也存在于关联访问路径中;响应于检测到关联访问路径,确定关联访问路径的数目;以及响应于关联访问路径的数目大于第一阈值,确定访问路径的拓扑处于不健康状态。
在一些实施例中,至少一个存储器和计算机程序指令可以进一步被配置为,与处理器一起,促使该设备通过以下操作来检测关联访问路径:获得存储设备的访问路径的拓扑信息;基于拓扑信息来检测与访问路径在拓扑上关联的候选访问路径;以及将候选访问路径中存在访问错误的访问路径确定为关联访问路径。
在一些实施例中,至少一个存储器和计算机程序指令可以进一步被配置为,与处理器一起,促使该设备通过以下操作来提供与访问路径的健康状况有关的输出:响应于通过第一诊断确定访问路径处于不健康状态,指示访问路径与关联访问路径的共用组件存在故障。
在一些实施例中,至少一个存储器和计算机程序指令可以进一步被配置为,与处理器一起,促使该设备通过以下操作来对访问路径进行第二诊断:确定访问路径在过去发生访问错误的次数;以及响应于该次数大于第二阈值,确定访问路径处于不健康状态。
在一些实施例中,至少一个存储器和计算机程序指令可以进一步被配置为,与处理器一起,促使该设备通过以下操作来提供与访问路径的健康状况有关的输出:响应于通过第二诊断确定访问路径处于不健康状态,指示放弃重新安装访问路径。
在一些实施例中,至少一个存储器和计算机程序指令可以进一步被配置为,与处理器一起,促使该设备通过以下操作来对访问路径进行第三诊断:统计访问路径的与协议有关的错误;以及响应于错误的数目大于第三阈值,确定访问路径处于不健康状态。
在一些实施例中,与协议有关的错误可以包括以下至少一项:小型计算机系统接口(SCSI)协议层错误,串行小型计算机系统接口(SAS)协议层错误,以及特定于厂商的错误。
在一些实施例中,至少一个存储器和计算机程序指令可以进一步被配置为,与处理器一起,促使该设备通过以下操作来提供与访问路径的健康状况有关的输出:响应于通过故障诊断确定访问路径处于不健康状态,查找可用的备用访问路径;响应于找到可用的存备用访问路径,提供备用访问路径的指示;以及响应于没有找到可用的备用访问路径,提供访问操作失败的指示。
在一些实施例中,至少一个存储器和计算机程序指令可以进一步被配置为,与处理器一起,促使该设备通过以下操作来提供与访问路径的健康状况有关的输出:响应于通过故障诊断确定访问路径处于不健康状态,发送访问路径的故障警报作为对路径健康监测的响应。
在一些实施例中,至少一个存储器和计算机程序指令可以进一步被配置为,与处理器一起,促使该设备通过以下操作来提供与访问路径的健康状况有关的输出:响应于通过故障诊断确定访问路径处于不健康状态,提供访问路径不能作为其他访问路径的备用访问路径的指示。
根据本公开的第三方面,提供了一种计算机程序产品。该计算机程序产品被有形地存储在非易失性计算机可读介质上并且包括机器可执行指令,该机器可执行指令在被执行时使机器执行根据第一方面的方法的步骤。
附图说明
通过参考附图阅读下文的详细描述,本公开的实施例的上述以及其他目的、特征和优点将变得容易理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施例,其中:
图1示意性地示出了本公开的实施例可以被实施在其中的存储设备的多路径访问技术场景的示图。
图2示意性地示出了可以实施根据本公开的实施例的存储管理方法的多路径单元的框图。
图3示意性地示出了根据本公开的实施例的存储管理方法的流程图。
图4示意性地示出了根据本公开的实施例的存储管理方法的路径选择功能的处理过程。
图5示意性地示出了根据本公开的实施例的存储管理方法的路径健康监测功能和路径组件调换预检查功能的处理过程。
图6示意性地示出了根据本公开的实施例的存储管理装置的框图。
图7示意性地示出了一种可以被用来实施本公开的实施例的设备的框图。
贯穿所有附图,相同或者相似的参考标号被用来表示相同或者相似的元件。
具体实施方式
下面将参考附图中所示出的若干示例性实施例来描述本公开的原理和精神。应当理解,描述这些具体的实施例仅是为了使本领域的技术人员能够更好地理解并实现本公开,而并非以任何方式限制本公开的范围。
图1示意性地示出了本公开的实施例可以被实施在其中的存储设备的多路径访问技术场景的示图。如图1中所示出的,来自文件系统110的对存储设备130的访问请求(例如,I/O请求)可以通过多路径单元120最终到达存储设备130。这种解决方案广泛地使用在已有的存储产品中。应当理解,图1中仅简要地示出了与本公开紧密相关的单元或组件。在其他实施例中,例如在后端存储软件栈中的多路径访问场景中,多路径访问过程还可能涉及更多的单元或组件,诸如独立磁盘冗余阵列RAID、SCSI核心层、HBA驱动器等。
在多路径解决方案中,多路径单元120可以与其他组件一起工作并且实现不同的功能。第一种功能是I/O路径选择。当上层的I/O到来时,多路径单元120需要为该I/O选择路径。路径选择可以基于不同的策略。此外,当I/O响应从较低驱动器层返回时,如果访问失败,多路径单元120需要决定错误处理逻辑,诸如是重试还是使用备用路径,或者放弃此次I/O访问。
第二种功能是路径健康监测。通过监测与路径健康有关的统计,多路径单元120可以帮助警报有问题的路径,或者可以重新安装经恢复的路径。
第三种功能是用于路径组件(例如,HBA)调换的预检查。例如,当技术支持人员决定在不关闭存储系统的情况下调换路径中的有问题的HBA卡时,应当确保存储系统中存在备用的访问路径并且预检查备用路径的健康状况。因为HBA调换操作仅在存在健康备份路径时才被允许。多路径单元120需要提供用于该预检查的与备份路径健康有关的报告。
如上文所提到的,已有的多路径方案无法进行高效和准确的路径健康诊断,难以满足存储系统的性能要求。例如,在进行I/O路径选择时,已有的多路径方法关注于I/O性能和负载平衡。这些策略可以包括轮询式、最小队列长度、最小服务时间。但是,已有的多路径方法不关心路径健康状况,所以不能避免用户在访问过程中遇到的访问问题。对于路径健康诊断方面,已有的多路径方法经常利用SCSI错误信息进行它们的决策。这种单一方面的健康诊断不够高效,无法从系统范围视角来分析不同错误之间的关系,即错误相关性。这一缺陷导致了已有的多路径方案在实际运用中的诸多问题。
更具体地,以下三种问题情况是已有的多路径方案在实现不同功能时可能产生的问题。这些问题情况已经真实地发生在一些存储系统中并且由用户多次报告。
在第一种问题情况中,已有的多路径方法通常使用SCSI命令“测试单元就绪(TUR)”来检查有问题的路径。但是,某些故障存储设备可以接受TUR命令但是却拒绝IO命令。所以,对于这种存储设备上的路径,已有的多路径方案将会陷于状态转换的无限循环,访问失败、在TUR检查之后重新激活路径、然后访问再次失败。结果,故障存储设备不能及时从存储系统脱离,从而严重地降低了存储系统的性能。
在第二种问题情况中,当HBA正在进行主机重置时,I/O性能将严重地被影响。此外,如果HBA频繁地忙于主机重置,这暗示了一些问题已经存在于这个路径上。但是从多路径单元侧来看,当路径选择被决定时,它无法意识到这样的事实。结果,在该时刻仍然选择了慢速的I/O路径。
在第三种问题情况中,在许多情形中,驱动器不能从I/O错误得到有效的SCSI密钥或感测数据用于错误分析。但是,从多路径单元的视角来看,它希望能够进行错误分诊。例如,故障是由问题HBA、问题路径、连接问题、还是问题驱动器所引发。这对于正确地报告路径健康状况是重要的,尤其是在多路径单元被用来在组件(例如,HBA等)调换操作之前进行预检查的场景中。
因此,已有的多路径方案没有使用高效和智能的路径健康诊断方法来进行工作,所以它们无法处理上述用户所遇到的错误情况中的问题。鉴于解决传统方案中存在的上述缺陷,本公开的实施例提供了一种存储管理方法和电子设备,以解决传统方案中的技术问题。
图2示意性地示出了可以实施根据本公开的实施例的存储管理方法的多路径单元120的框图。如图2中所示出的,根据本公开的实施例的多路径单元120包括用于进行故障诊断的故障诊断模块200。故障诊断模块200通过第一诊断模块210、第二诊断模块220、第三诊断模块230来进行多个不同方面或者说维度的诊断。如下文将详细描述的,诊断的示例可以包括但不限于:与拓扑有关的第一诊断,与历史访问错误有关的第二诊断,与协议有关的第三诊断。
如图2中进一步示出的,故障诊断模块200还通过组件调换预检查模块240、路径选择模块250和路径健康监测模块260来完成如前文所描述的路径组件调换预检查、路径选择和路径健康监测这三种功能。此外,多路径单元120还分别从错误信息提供模块270和拓扑信息模块280接收相关的错误信息和拓扑信息,以便于进行故障诊断。
在操作过程中,当多路径单元120需要针对不同功能进行路径健康相关诊断时,它从错误信息提供模块270收集错误统计并且尝试通过错误相关性方法获得一些有用结论。这一错误相关性涉及历史维度、拓扑维度和协议维度。然后,当多路径单元120可以利用这一路径健康诊断结果,通过组件调换预检查模块240、路径选择模块250和路径健康监测模块260来建议路径选择、提出有问题的路径警告、或者在路径组件调换之前进行路径预检查。
如此,不同于已有的路径健康诊断方案,本公开的实施例的多路径单元120进行多维度的健康诊断,其思想来自系统范围的视角。它收集不同种类的错误信息并且尝试从错误相关性中挖掘有用信息来帮助检查路径健康状况。这一挖掘信息可以包括拓扑维度、历史维度、协议维度等多个维度。这种多维分析提供了更多的智能,有助于更高效和准确地进行路径健康诊断。下面将结合图3中的流程图来详细描述根据本公开的实施例的多路径单元120的操作过程以及各个模块的功能和彼此之间的交互。
图3示意性地示出了根据本公开的实施例的存储管理方法300的流程图。在一些实施例中,方法300可以由图2中所描绘的多路径单元120来执行。图2示意性地描绘了可以用于实施方法300的各个步骤的单元或模块。为了更好地描述本公开的操作原理,下面将结合图2来描述图3中的方法300。应当注意的是,图2所描绘的各种具体的模块仅是一种示例,无意以任何方式限制本公开的实施例。
在310,多路径单元120收集指示用于访问存储设备130的访问路径的访问错误的信息。例如,如上文提到的,多路径单元120的三个主要功能是路径组件调换预检查功能、路径选择功能、或路径健康监测功能。因此,多路径单元120可以分别响应于这三种功能来进行该信息的收集,以便进行路径健康诊断来帮助执行这些功能。
在某个路径中的组件(例如,HBA卡、扩展器等)需要被调换的场景中,多路径单元120可以通过组件调换预检查模块240接收需要进行预检查的指令,其中组件调换预检查模块240是多路径单元120用以在路径组件调换操作之前提供路径健康预检查的接口。响应于接收到该指令,多路径单元120可以开始收集指示用于访问存储设备130的访问路径的访问错误的信息,以便进行路径健康的诊断。
在路径选择的场景中,如果通过某个访问路径的访问失败,多路径单元120可以通过路径选择模块250接收进行该访问路径的健康诊断的指令,其中路径选择模块250是多路径单元120用来为传入的I/O请求提供路径选择的接口。响应于接收到该指令,多路径单元120可以开始收集指示用于访问存储设备130的访问路径的访问错误的信息,以便进行路径健康的诊断。
在路径健康监测的场景中,多路径单元120可以通过路径健康监测模块260接收进行路径健康监测的指令,其中路径健康监测模块260可以作为守护进程运行。响应于接收到该指令,多路径单元120可以开始收集指示用于访问存储设备130的访问路径的访问错误的信息,以便进行路径健康的诊断。
在图2中所描绘的实施例中,多路径单元120可以从错误信息提供模块270来收集指示用于访问存储设备130的访问路径的访问错误的信息。在一些实施例中,错误信息提供模块270包括SCSI核心模块271和HBA驱动器272。SCSI核心模块271可以包括SCSI核心层,其处理来自HBA驱动器的I/O响应并且收集I/O的SCSI相关错误信息(诸如,SCSI感测密钥/感测数据等)。HBA驱动器272可以包括SCSI较低层,相比于SCSI核心层,它关注于协议(诸如,SAS协议、串行高级技术附件(SATA)协议等)相关错误或特定于厂商的错误。
继续参考图3,在315,多路径单元120基于访问错误来对访问路径进行故障诊断。例如,在图2所描绘的实施例中,多路径单元120可以通过故障诊断模块200来进行针对访问路径的故障诊断。具体地,故障诊断包括与拓扑有关的第一诊断,与历史访问错误有关的第二诊断,以及与协议有关的第三诊断中的至少一项,它们也可以称为不同维度的健康诊断。在图2所描绘的实施例中,第一诊断、第二诊断和第三诊断可以分别由第一诊断模块210、第二诊断模块220和第三诊断模块230来执行,它们可以将各自维度的诊断结果汇总到故障诊断模块200以得到最终的诊断结果。例如,故障诊断模块200与不同的维度诊断模块210、220、230协同工作来提供最终的诊断结果。在一些实施例中,如果任何维度的诊断结果为不健康,则故障诊断模块200可以确定路径诊断的结果为不健康,并且可以向客户端给出有关故障路径的报告。
在与拓扑有关的第一诊断中,第一诊断模块210可以检测访问路径在拓扑上的如下关联访问路径,相同的访问错误也存在于该关联访问路径中。这里,关联访问路径可以是与访问路径共用一个或多个组件(例如,HBA卡、扩展器等)的访问路径。响应于检测到这样的关联访问路径,第一诊断模块210可以确定这种具有相同访问错误的关联访问路径的数目。响应于确定该数目大于第一阈值,第一诊断模块210可以确定访问路径的拓扑处于不健康状态。应当理解,此处的第一阈值可以根据具体的技术环境和要求来进行设置。
在第一诊断的过程中,第一诊断模块210可以从拓扑信息模块280获得存储设备的访问路径的拓扑信息。拓扑信息模块280维护系统的整个拓扑信息。在一些实施例中,拓扑信息可以被描述为关于存储设备的图形,该图形中的节点表示各种组件,诸如驱动器、扩展器或HBA等,该图形中的边缘表示两个组件之间的连接。根据拓扑信息,第一诊断模块210可以知道哪些路径使用相同的组件,例如HBA或扩展器。第一诊断模块210可以基于拓扑信息来检测与访问路径在拓扑上关联的候选访问路径。由此,第一诊断模块210可以将候选访问路径中存在访问错误的访问路径确定为上述关联访问路径。
由此可见,在第一诊断中,多路径单元120从拓扑错误相关性的视角针对不同功能(路径选择、路径健康监测、或路径组件调换预检查)提供路径的健康状况。在具体的操作中,多路径单元120可以首先取回拓扑信息并且找出哪些路径正与给定路径使用相同的组件(HBA、扩展器等),这些路径可以称为路径域。然后,多路径单元120可以将收集的路径错误映射到这一路径域中。最终,多路径单元120可以检查相同或类似的路径错误是否同时发生在整个路径域中。如果是这样,则多路径单元120可以报告有问题的路径作为拓扑错误相关性的分析结果,并且确定访问路径的拓扑处于不健康状态。
在与历史访问错误有关的第二诊断中,第二诊断模块220可以确定访问路径在过去发生访问错误的次数。响应于确定该次数大于第二阈值,第二诊断模块220可以确定访问路径处于不健康状态。应当理解,此处的第二阈值可以根据具体的技术环境和要求来进行设置。
在第二诊断中,多路径单元120从历史错误相关性的视角针对不同功能(路径选择、路径健康监测、或路径组件调换预检查)提供路径的健康状况。多路径单元120从收集的路径错误中搜索针对给定路径的路径错误。然后,多路径单元120可以检查一种类型的错误在一个时间窗口中是否频繁地发生在该路径上。如果是这样,则可以报告有问题的路径作为历史错误相关性结果,并且确定访问路径处于不健康状态。
在与协议有关的第三诊断中,第三诊断模块230可以统计访问路径的与协议有关的错误。响应于确定这种错误的数目大于第三阈值,第三诊断模块230可以确定访问路径处于不健康状态。应当理解,此处的第三阈值可以根据具体的技术环境和要求来进行设置。在这里,与协议有关的错误可以包括以下至少一项:小型计算机系统接口(SCSI)协议层错误,串行小型计算机系统接口(SAS)协议层错误,以及特定于厂商的错误,等等。
在第三诊断中,多路径单元120可以收集I/O错误统计,包括SCSI层、协议层(例如,SAS)和特定于厂商的I/O错误统计,然后给出更加准确的路径相关诊断。以使用常用的SASHBA的场景作为一种示例,多路径单元120可以获得协议层错误代码“OPEN_FAILURE”以及关于这个错误的更详细原因。这些原因可以包括“路径堵塞”、“开放超时”、“SATA初始化超时”或“协议不被支持”(或其他原因)。它们可以被收集用于进一步的分析。例如,如果是由于“路径堵塞”,则可以确定路径存在问题。如果是由于“SATA初始化超时”,则可以趋向于考虑是存储设备存在问题。
继续参考图3,在320,多路径单元120基于故障诊断来提供与访问路径的健康状况有关的输出。例如,在执行三种不同功能的相应场景中,多路径单元120可以分别通过组件调换预检查模块240、路径选择模块250、路径健康监测模块260来提供与访问路径的健康状况有关的输出。
在某个路径中的组件(例如,HBA卡、扩展器等)需要被调换的场景中,响应于通过故障诊断模块200确定访问路径处于不健康状态,多路径单元120可以通过组件调换预检查模块240提供访问路径不能作为其他访问路径的备用访问路径的指示。另一方面,如果故障诊断模块200确定访问路径处于健康状态,则多路径单元120可以通过组件调换预检查模块240提供访问路径可以作为其他访问路径的备用访问路径的指示。
在路径选择的场景中,如果通过某个访问路径的访问失败,并且故障诊断模块200确定访问路径处于不健康状态,则多路径单元120可以查找可用的备用访问路径。响应于找到可用的备用访问路径,多路径单元120可以通过路径选择模块250提供备用访问路径的指示。如果没有找到可用的备用访问路径,则多路径单元120可以通过路径选择模块250提供访问操作失败的指示。
由此可见,本公开的实施例的多路径单元120采用了“错误感知”的路径选择方式,其将多维错误信息纳入考虑。它的策略可以包括多个角度。从历史视角而言,如果发现在一个时间窗口中一条路径失效和重激活(或主机重置)太多次,则多路径单元120将放弃重新安装这条路径。这能够有效地避免前文所提到的已有多路径方案可能产生的第一种问题情况。从拓扑的视角而言,如果多路径单元120感测到使用相同组件(例如,HBA)的许多路径存在相同或类似的问题但不能确保路径损坏,则拓扑维度诊断将推论有问题的组件是该HBA。然后,对于传入的I/O,多路径单元120将避免选择具有这一HBA的访问路径。上述两个思想都利用了错误相关性信息来帮助路径健康诊断,一个是从历史维度而另一个是从拓扑维度。应当理解,尽管这里采用了I/O路径选择作为示例,但是这样的思想也可以使用在路径健康监测器和路径组件调换预检查的功能中。
在路径健康监测的场景中,响应于通过故障诊断模块200确定访问路径处于不健康状态,多路径单元120可以通过路径健康监测模块260发送访问路径的故障警报作为对路径健康监测的响应。另一方面,如果故障诊断模块200确定访问路径处于健康状态,则多路径单元120可以通过路径健康监测模块260发送访问路径健康的指示,或者不进行反馈以默示该访问路径没有问题。
此外,在一些实施例中,在第一诊断模块210的诊断结果为不健康的情况下,多路径单元120可以指示访问路径与关联访问路径的共用组件存在故障,以便于对存在故障的组件进行排查和更换。在第二诊断模块220的诊断结果为不健康的情况下,多路径单元120可以指示放弃重新安装访问路径,以避免陷入前文所描述的无限循环问题。
图4示意性地示出了根据本公开的实施例的存储管理方法300的路径选择功能的处理过程400。特别地,过程400描绘了多路径单元120在进行路径选择功能时的一种具体处理过程,因此过程400属于图3中的方法300的一种具体实施方式。应当注意,图4所描绘的仅是一种示例,无意以任何方式限制本公开的实施例。
如图4中所示出的,在405,响应于某个访问路径发生故障,多路径单元120收集访问路径的访问错误的信息。例如,多路径单元120可以从错误信息提供模块270获得该信息。
在410、420和430,多路径单元120分别进行第一诊断、第二诊断和第三诊断。例如,多路径单元120可以分别通过第一诊断模块210、第二诊断模块220和第三诊断模块230来进行第一诊断、第二诊断和第三诊断。第一诊断、第二诊断和第三诊断的具体内容和诊断过程已经在上文中详细描述,此处不再赘述。应当理解,尽管在图4中框410、420和430被描绘为并行地被执行,但是其他实施方式也是可行的,例如串行地进行第一诊断、第二诊断和第三诊断,并行地执行某两个诊断,等等。
在440,多路径单元120基于第一诊断、第二诊断和第三诊断的诊断结果来确定访问路径是否健康。例如,多路径单元120可以通过故障诊断模块200来进行这一确定。
在450,响应于确定访问路径是健康的,多路径单元120可以指示重试访问路径,例如,直到重试次数超出预设的最大值。在一些实施例中,多路径单元120可以通过路径选择模块250来发送该指示。在460,响应于确定访问路径是不健康的,多路径单元120可以检测备用访问路径是否可用。
在470,响应于检测到备用访问路径是可用的,多路径单元120可以指示使用备用访问路径来访问存储设备130。在480,响应于检测到备用访问路径不是可用的,多路径单元120可以指示针对存储设备130的访问操作失败。在一些实施例中,多路径单元120可以通过路径选择模块250来发送这些指示。
图5示意性地示出了根据本公开的实施例的存储管理方法的路径健康监测功能和路径组件调换预检查功能的处理过程500。过程500描绘了多路径单元120在进行路径健康监测功能和路径组件调换预检查功能时的一种具体处理过程,因此过程500属于图3中的方法300的一种具体实施方式。应当注意,图5所描绘的仅是一种示例,无意以任何方式限制本公开的实施例。
如图5中所示出的,在505,响应于访问路径的健康监测或访问路径的组件调换预检查,多路径单元120收集访问路径的访问错误的信息。例如,多路径单元120可以从错误信息提供模块270获得该信息。
在510、520和530,多路径单元120分别进行第一诊断、第二诊断和第三诊断。例如,多路径单元120可以分别通过第一诊断模块210、第二诊断模块220和第三诊断模块230来进行第一诊断、第二诊断和第三诊断。第一诊断、第二诊断和第三诊断的具体内容和诊断过程已经在上文中详细描述,此处不再赘述。应当理解,尽管在图5中框510、520和530被描绘为并行地被执行,但是其他实施方式也是可行的,例如串行地进行第一诊断、第二诊断和第三诊断,并行地执行某两个诊断,等等。
在540,多路径单元120基于第一诊断、第二诊断和第三诊断的诊断结果来确定访问路径是否健康。例如,多路径单元120可以通过故障诊断模块200来进行这一确定。
在550,响应于确定访问路径是健康的,多路径单元120可以发送访问路径健康的指示或者同意需要调换组件的访问路径进行组件调换的指示。例如,多路径单元120可以分别通过路径健康监测模块260和组件调换预检查模块240来发送该指示。
在560,响应于确定访问路径不是健康的,多路径单元120可以发送访问路径不健康的警报或者不同意需要调换组件的访问路径进行组件调换的指示。例如,多路径单元120可以分别通过路径健康监测模块260和组件调换预检查模块240来发送该警报或指示。在一些实施例中,该警报中可以带有导致访问路径不健康的诊断的标签。例如,如果是与拓扑有关的第一诊断的诊断结果为不健康,则该警报中可以带有指示第一诊断的标签。
图6示意性地示出了根据本公开的实施例的存储管理装置600的框图。本领域的技术人员可以理解,图6中仅示出了装置600中的与本公开紧密相关的单元或组件,在一些实施方式中,装置600还可以包括使其能够正常运转的其他功能单元或组件。此外,图6中所示出的各个单元或组件之间可以存在必要的连接关系,但是出于简洁的考虑,图6中并没有描绘出这些连接关系。在一些实施例中,装置600可以被配置为实施上文结合图3所描述的存储管理方法300。
如图6中所示出的,装置600包括收集单元610、诊断单元620和输出单元630。收集单元610被配置为收集指示用于访问存储设备的访问路径的访问错误的信息。诊断单元620被配置为基于访问错误,对访问路径进行故障诊断,故障诊断包括以下至少一项:与拓扑有关的第一诊断,与历史访问错误有关的第二诊断,以及与协议有关的第三诊断。输出单元630被配置为基于故障诊断来提供与访问路径的健康状况有关的输出。
在一些实施例中,诊断单元620可以进一步被配置为:检测访问路径在拓扑上的如下关联访问路径,访问错误也存在于关联访问路径中;响应于检测到关联访问路径,确定关联访问路径的数目;以及响应于关联访问路径的数目大于第一阈值,确定访问路径的拓扑处于不健康状态。在这些实施例中,诊断单元620可以进一步被配置为:获得存储设备的访问路径的拓扑信息;基于拓扑信息来检测与访问路径在拓扑上关联的候选访问路径;以及将候选访问路径中存在访问错误的访问路径确定为关联访问路径。在一些实施例中,输出单元630可以进一步被配置为:响应于通过第一诊断确定访问路径处于不健康状态,指示访问路径与关联访问路径的共用组件存在故障。
在一些实施例中,诊断单元620可以进一步被配置为:确定访问路径在过去发生访问错误的次数;以及响应于该次数大于第二阈值,确定访问路径处于不健康状态。在这些实施例中,输出单元630可以进一步被配置为:响应于通过第二诊断确定访问路径处于不健康状态,指示放弃重新安装访问路径。
在一些实施例中,诊断单元620可以进一步被配置为:统计访问路径的与协议有关的错误;以及响应于错误的数目大于第三阈值,确定访问路径处于不健康状态。与协议有关的错误可以包括以下至少一项:小型计算机系统接口(SCSI)协议层错误,串行小型计算机系统接口(SAS)协议层错误,以及特定于厂商的错误。
在一些实施例中,输出单元630可以进一步被配置为:响应于通过故障诊断确定访问路径处于不健康状态,查找可用的备用访问路径;响应于找到可用的存备用访问路径,提供备用访问路径的指示;以及响应于没有找到可用的备用访问路径,提供访问操作失败的指示。
在一些实施例中,输出单元630可以进一步被配置为:响应于通过故障诊断确定访问路径处于不健康状态,发送访问路径的故障警报作为对路径健康监测的响应。
在一些实施例中,输出单元630可以进一步被配置为:响应于通过故障诊断确定访问路径处于不健康状态,提供访问路径不能作为其他访问路径的备用访问路径的指示。
图7示意性地示出了一种可以被用来实施本公开内容的实施例的设备700的框图。如图7中所示出的,设备700包括中央处理单元(CPU)701,其可以根据存储在只读存储设备(ROM)702中的计算机程序指令或者从存储单元708加载到随机访问存储设备(RAM)703中的计算机程序指令,来执行各种适当的动作和处理。在RAM 703中,还可存储设备700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备700中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备700通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如方法300,可由处理单元701来执行。例如,在一些实施例中,方法300可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备700上。当计算机程序被加载到RAM 703并由CPU 701执行时,可以执行上文描述的方法300的一个或多个步骤。
在本文中,提出了基于多维健康诊断的多路径解决方案。不同于已有的健康诊断方法,其思想来自系统范围视角。它收集不同种类的错误并且尝试从错误相关性中挖掘有用信息来帮助检查路径健康状况。这一挖掘信息可以包括多个维度:历史维度(相同错误之前是否发生在相同路径上)、拓扑维度(类似错误是否同时发生在多于一个路径上)、以及协议维度(除了SCSI错误之外,还尝试获得一些协议错误信息或特定于厂商的错误)。这种多维分析提供了更多的智能,这有助于更高效和准确地进行路径健康诊断。更重要的是,它可以帮助解决目前的存储产品环境实际发生的不同问题。此外,在未来的存储系统中,本公开的实施例的基于多维健康诊断的多路径方法可以持续优化以改进用户体验。
本公开的实施例的存储管理方法和电子设备相对于已有的解决方案可以取得以下的技术优点。首先,它更加高效,可以及时地检测到有问题的路径并且解决上文提到的第一种问题情况(失败/重新激活无限循环)。其次,它具有更好的性能,可以帮助路径选择功能识别问题路径并且然后避免向问题路径调度I/O。第三,它具有更好的存储可用性,例如更准确的路径健康预检查有助于确保备份路径的健康状况。从服务可靠性的视角来看,它改进了在组件(例如,HBA)调换过程期间的存储可用性。
如本文所使用的,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可以包括运算、计算、处理、导出、调查、查找(例如,在表格、数据库或另一数据结构中查找)、查明等。此外,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)等。此外,“确定”可以包括解析、选择、选取、建立等。
应当注意,本公开的实施例可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。
此外,尽管在附图中以特定顺序描述了本公开的方法的操作,但是这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤组合为一个步骤执行,和/或将一个步骤分解为多个步骤执行。还应当注意,根据本公开的两个或更多装置的特征和功能可以在一个装置中具体化。反之,上文描述的一个装置的特征和功能可以进一步划分为由多个装置来具体化。
虽然已经参考若干具体实施例描述了本公开,但是应当理解,本公开不限于所公开的具体实施例。本公开旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等效布置。

Claims (24)

1.一种存储管理方法,包括:
收集指示用于访问存储设备的访问路径的访问错误的信息;
基于所述访问错误,对所述访问路径执行与拓扑错误有关的第一诊断、与历史访问错误有关的第二诊断、以及与协议错误有关的第三诊断;以及
基于所述拓扑错误、所述历史访问错误和所述协议错误的相关性,来提供指示所述访问路径的当前状态是健康还是不健康的输出,
其中执行与所述历史访问错误有关的所述第二诊断包括:在一个时间窗中确定相同访问路径中的相同访问错误的过去发生的数目,并且响应于过去发生的所述数目超出第二阈值,确定所述访问路径的所述当前状态为不健康,并且
其中提供所述输出包括:已经基于在所述时间窗中的过去发生的所述数目超出所述第二阈值而确定所述访问路径的所述当前状态为不健康,则提供指示所述访问路径的所述当前状态为不健康的所述输出。
2.根据权利要求1所述的方法,其中对所述访问路径进行所述第一诊断包括:
检测所述访问路径在拓扑上的如下关联访问路径,所述访问错误也存在于所述关联访问路径中;
响应于检测到所述关联访问路径,确定所述关联访问路径的数目;以及
响应于所述关联访问路径的所述数目大于第一阈值,确定所述访问路径的拓扑处于不健康状态。
3.根据权利要求2所述的方法,其中检测所述关联访问路径包括:
获得所述存储设备的访问路径的拓扑信息;
基于所述拓扑信息来检测与所述访问路径在拓扑上关联的候选访问路径;以及
将所述候选访问路径中存在所述访问错误的访问路径确定为所述关联访问路径。
4.根据权利要求2所述的方法,其中提供指示所述访问路径的当前状态是健康还是不健康的所述输出包括:
响应于通过所述第一诊断确定所述访问路径的所述当前状态为不健康,指示所述访问路径与所述关联访问路径的共用组件存在故障。
5.根据权利要求1所述的方法,其中提供指示所述访问路径的当前状态是健康还是不健康的所述输出包括:
响应于通过所述第二诊断确定所述访问路径的所述当前状态为不健康,指示放弃重新安装所述访问路径。
6.根据权利要求1所述的方法,其中对所述访问路径进行所述第三诊断包括:
统计所述访问路径的与协议有关的错误;以及
响应于所述错误的数目大于第三阈值,确定所述访问路径处于不健康状态。
7.根据权利要求6所述的方法,其中统计与协议有关的所述错误包括:接收协议消息,所述协议消息包含相应的协议层错误代码和相关联的错误原因。
8.根据权利要求7所述的方法,其中所述协议层错误代码包括描述与路径有关的故障的第一代码和描述其他故障的第二代码,并且其中执行所述第三诊断包括:(1)基于接收到所述第一代码,确定所述访问路径的故障是与路径有关的故障,以及(2)基于接收到所述第二代码,确定所述访问路径的所述故障是所述存储设备的与设备有关的故障而不是与路径有关的故障。
9.根据权利要求6所述的方法,其中与协议有关的所述错误包括以下至少一项:小型计算机系统接口(SCSI)协议层错误,串行小型计算机系统接口(SAS)协议层错误,以及特定于厂商的错误。
10.根据权利要求1所述的方法,其中提供指示所述访问路径的当前状态是健康还是不健康的所述输出包括:
响应于通过所述第一诊断、所述第二诊断和所述第三诊断中的一个或多个而确定所述访问路径的所述当前状态为不健康,查找可用的备用访问路径;
响应于找到可用的存备用访问路径,提供所述备用访问路径的指示;以及
响应于没有找到可用的备用访问路径,提供访问操作失败的指示。
11.根据权利要求1所述的方法,其中提供指示所述访问路径的当前状态是健康还是不健康的所述输出包括:
响应于通过所述第一诊断、所述第二诊断和所述第三诊断中的一个或多个而确定所述访问路径的所述当前状态为不健康,发送所述访问路径的故障警报作为对路径健康监测的响应。
12.根据权利要求1所述的方法,其中提供指示所述访问路径的当前状态是健康还是不健康的所述输出包括:
响应于通过所述第一诊断、所述第二诊断和所述第三诊断中的一个或多个而确定所述访问路径的所述当前状态为不健康,提供所述访问路径不能作为其他访问路径的备用访问路径的指示。
13.根据权利要求1所述的方法,其中执行与历史访问错误有关的所述第二诊断还包括:
响应于过去发生的所述数目大于所述第二阈值,避免以下一者或多者:重新激活所述访问路径和执行主机重置。
14.一种电子设备,包括:
至少一个处理器;以及
包括计算机程序指令的至少一个存储器,所述至少一个存储器和所述计算机程序指令被配置为,与所述处理器一起,促使所述设备:
收集指示用于访问存储设备的访问路径的访问错误的信息;
基于所述访问错误,对所述访问路径执行与拓扑错误有关的第一诊断、与历史访问错误有关的第二诊断、以及与协议错误有关的第三诊断;以及
基于所述拓扑错误、所述历史访问错误和所述协议错误的相关性,来提供指示所述访问路径的当前状态是健康还是不健康的输出,
其中执行与所述历史访问错误有关的所述第二诊断包括:在一个时间窗中确定相同访问路径中的相同访问错误的过去发生的数目,并且响应于过去发生的所述数目超出第二阈值,确定所述访问路径的所述当前状态为不健康,并且
其中提供所述输出包括:已经基于在所述时间窗中的过去发生的所述数目超出所述第二阈值而确定所述访问路径的所述当前状态为不健康,则提供指示所述访问路径的所述当前状态为不健康的所述输出。
15.根据权利要求14所述的设备,其中所述至少一个存储器和所述计算机程序指令进一步被配置为,与所述处理器一起,促使所述设备通过以下操作来对所述访问路径进行所述第一诊断:
检测所述访问路径在拓扑上的如下关联访问路径,所述访问错误也存在于所述关联访问路径中;
响应于检测到所述关联访问路径,确定所述关联访问路径的数目;以及
响应于所述关联访问路径的所述数目大于第一阈值,确定所述访问路径的拓扑处于不健康状态。
16.根据权利要求15所述的设备,其中所述至少一个存储器和所述计算机程序指令进一步被配置为,与所述处理器一起,促使所述设备通过以下操作来检测所述关联访问路径:
获得所述存储设备的访问路径的拓扑信息;
基于所述拓扑信息来检测与所述访问路径在拓扑上关联的候选访问路径;以及
将所述候选访问路径中存在所述访问错误的访问路径确定为所述关联访问路径。
17.根据权利要求15所述的设备,其中所述至少一个存储器和所述计算机程序指令进一步被配置为,与所述处理器一起,促使所述设备通过以下操作来提供指示所述访问路径的当前状态是健康还是不健康的所述输出:
响应于通过所述第一诊断确定所述访问路径的所述当前状态为不健康,指示所述访问路径与所述关联访问路径的共用组件存在故障。
18.根据权利要求14所述的设备,其中所述至少一个存储器和所述计算机程序指令进一步被配置为,与所述处理器一起,促使所述设备通过以下操作来提供指示所述访问路径的当前状态是健康还是不健康的所述输出:
响应于通过所述第二诊断确定所述访问路径的所述当前状态为不健康,指示放弃重新安装所述访问路径。
19.根据权利要求14所述的设备,其中所述至少一个存储器和所述计算机程序指令进一步被配置为,与所述处理器一起,促使所述设备通过以下操作来对所述访问路径进行所述第三诊断:
统计所述访问路径的与协议有关的错误;以及
响应于所述错误的数目大于第三阈值,确定所述访问路径处于不健康状态。
20.根据权利要求19所述的设备,其中与协议有关的所述错误包括以下至少一项:小型计算机系统接口(SCSI)协议层错误,串行小型计算机系统接口(SAS)协议层错误,以及特定于厂商的错误。
21.根据权利要求14所述的设备,其中所述至少一个存储器和所述计算机程序指令进一步被配置为,与所述处理器一起,促使所述设备通过以下操作来提供指示所述访问路径的当前状态是健康还是不健康的所述输出:
响应于通过所述第一诊断、所述第二诊断和所述第三诊断中的一个或多个而确定所述访问路径的所述当前状态为不健康,查找可用的备用访问路径;
响应于找到可用的存备用访问路径,提供所述备用访问路径的指示;以及
响应于没有找到可用的备用访问路径,提供访问操作失败的指示。
22.根据权利要求14所述的设备,其中所述至少一个存储器和所述计算机程序指令进一步被配置为,与所述处理器一起,促使所述设备通过以下操作来提供指示所述访问路径的当前状态是健康还是不健康的所述输出:
响应于通过所述第一诊断、所述第二诊断和所述第三诊断中的一个或多个而确定所述访问路径的所述当前状态为不健康,发送所述访问路径的故障警报作为对路径健康监测的响应。
23.根据权利要求14所述的设备,其中所述至少一个存储器和所述计算机程序指令进一步被配置为,与所述处理器一起,促使所述设备通过以下操作来提供指示所述访问路径的当前状态是健康还是不健康的所述输出:
响应于通过所述第一诊断、所述第二诊断和所述第三诊断中的一个或多个而确定所述访问路径的所述当前状态为不健康,提供所述访问路径不能作为其他访问路径的备用访问路径的指示。
24.一种非易失性计算机可读介质,所述非易失性计算机可读介质包括被有形地存储在其上的计算机程序,所述计算机程序包括机器可执行指令,所述机器可执行指令在被执行时使机器执行根据权利要求1至13中任一项所述的方法的步骤。
CN201610847954.5A 2016-09-23 2016-09-23 基于多维度健康诊断方法的多路径存储设备 Active CN107870832B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201610847954.5A CN107870832B (zh) 2016-09-23 2016-09-23 基于多维度健康诊断方法的多路径存储设备
US15/710,796 US10698605B2 (en) 2016-09-23 2017-09-20 Multipath storage device based on multi-dimensional health diagnosis

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610847954.5A CN107870832B (zh) 2016-09-23 2016-09-23 基于多维度健康诊断方法的多路径存储设备

Publications (2)

Publication Number Publication Date
CN107870832A CN107870832A (zh) 2018-04-03
CN107870832B true CN107870832B (zh) 2021-06-18

Family

ID=61685378

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610847954.5A Active CN107870832B (zh) 2016-09-23 2016-09-23 基于多维度健康诊断方法的多路径存储设备

Country Status (2)

Country Link
US (1) US10698605B2 (zh)
CN (1) CN107870832B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111124250B (zh) * 2018-10-30 2023-11-21 伊姆西Ip控股有限责任公司 用于管理存储空间的方法、设备和计算机程序产品
KR20200065929A (ko) * 2018-11-30 2020-06-09 에스케이하이닉스 주식회사 컨트롤러, 이를 포함하는 메모리 컨트롤러 및 이를 포함하는 저장 장치
US11265261B2 (en) * 2020-03-18 2022-03-01 EMC IP Holding Company LLC Access path management based on path condition
CN113448795A (zh) 2020-03-26 2021-09-28 伊姆西Ip控股有限责任公司 用于获取系统诊断信息的方法、设备和计算机程序产品
FI20205385A1 (en) * 2020-04-14 2021-10-15 Elisa Oyj Network monitoring
CN111901399B (zh) * 2020-07-08 2022-12-09 苏州浪潮智能科技有限公司 云平台块设备异常审计方法、装置、设备及存储介质
US11561702B2 (en) 2020-10-30 2023-01-24 EMC IP Holding Company LLC Using path quarantining to identify and handle backend issues
CN114666251A (zh) * 2022-02-14 2022-06-24 浙江华消科技有限公司 一种基于蚁群算法的数据轮询方法以及相关装置
CN115114062A (zh) * 2022-04-27 2022-09-27 腾讯科技(深圳)有限公司 指令字线路的故障检测方法、装置、设备和存储介质
US20240012708A1 (en) * 2022-07-06 2024-01-11 Dell Products L.P. Real-time sense data querying

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5949759A (en) * 1995-12-20 1999-09-07 International Business Machines Corporation Fault correlation system and method in packet switching networks
US8856584B2 (en) * 2008-08-11 2014-10-07 Hitachi, Ltd. Transport control server that modifies routing information
CN105915555A (zh) * 2016-06-29 2016-08-31 北京奇虎科技有限公司 网络异常行为的检测方法及系统

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4453215A (en) * 1981-10-01 1984-06-05 Stratus Computer, Inc. Central processing apparatus for fault-tolerant computing
EP0616708B1 (en) * 1992-10-13 2000-03-22 Hewlett-Packard Company System management method and apparatus
US5506956A (en) * 1993-04-07 1996-04-09 Sprint Communications Company L.P. Error correction and channel restoration apparatus for T1 digital links
JPH0950405A (ja) * 1995-08-04 1997-02-18 Fujitsu Ltd バックアップ機能付き記憶装置および同記憶装置を有する情報処理システム
US5805920A (en) * 1995-11-13 1998-09-08 Tandem Computers Incorporated Direct bulk data transfers
US6532440B1 (en) * 1998-10-16 2003-03-11 Fujitsu Limited Multiple error and fault diagnosis based on Xlists
US6895189B1 (en) * 1998-10-20 2005-05-17 Lucent Technologies Inc. Optical synchronization system
JP3987241B2 (ja) * 1999-07-29 2007-10-03 株式会社東芝 系間情報通信システム
AU2002216644A1 (en) * 2000-10-23 2002-05-06 Radisys Corporation Method and apparatus for common channel communication using a packet switched network
US7191373B2 (en) * 2001-03-01 2007-03-13 Syntest Technologies, Inc. Method and apparatus for diagnosing failures in an integrated circuit using design-for-debug (DFD) techniques
CN1754352B (zh) * 2003-02-21 2011-09-21 日本电信电话株式会社 用于进行通信网络中的通道的故障救济的装置和方法
US7249286B1 (en) * 2003-03-24 2007-07-24 Network Appliance, Inc. System and method for automatically diagnosing protocol errors from packet traces
US7146544B2 (en) * 2003-10-01 2006-12-05 Hewlett-Packard Development Company, L.P. Method and apparatus for supporting error handling in a web presentation architecture
US7281169B2 (en) * 2004-01-30 2007-10-09 Dell Products L.P. Method, software and system for multi-path fail-over recovery in sequential storage systems
US7454533B2 (en) * 2004-02-06 2008-11-18 Nec Corporation Redundant path control apparatus and redundant path control method
US8280687B2 (en) * 2004-03-31 2012-10-02 Mentor Graphics Corporation Direct fault diagnostics using per-pattern compactor signatures
JP4520802B2 (ja) * 2004-09-09 2010-08-11 株式会社日立製作所 ストレージネットワーク管理サーバ、ストレージネットワーク管理方法、ストレージネットワーク管理用プログラムおよびストレージネットワーク管理システム
US8060650B2 (en) 2004-10-27 2011-11-15 Hewlett-Packard Development Company, L.P. Diagnosing a path in a storage network
US20060212855A1 (en) * 2005-03-16 2006-09-21 Bournas Redha M Methods, systems and computer program products for implementing production processes
US8001267B2 (en) * 2005-12-15 2011-08-16 International Business Machines Corporation Apparatus, system, and method for automatically verifying access to a multipathed target at boot time
JP2007206766A (ja) 2006-01-31 2007-08-16 Fujitsu Ltd データストレージシステム、データストレージ制御装置及びその障害箇所診断方法。
JP4878479B2 (ja) * 2006-02-01 2012-02-15 株式会社日立製作所 光クロスコネクト装置
US8467301B2 (en) * 2006-06-05 2013-06-18 Hewlett-Packard Development Company, L.P. Router misconfiguration diagnosis
US20080137669A1 (en) * 2006-12-12 2008-06-12 Nokia Corporation Network of nodes
US8365110B2 (en) * 2007-05-25 2013-01-29 The Regents Of The University Of Michigan Automatic error diagnosis and correction for RTL designs
US8204980B1 (en) 2007-06-28 2012-06-19 Emc Corporation Storage array network path impact analysis server for path selection in a host-based I/O multi-path system
US7904756B2 (en) * 2007-10-19 2011-03-08 Oracle International Corporation Repair planning engine for data corruptions
US8531976B2 (en) * 2008-03-07 2013-09-10 Cisco Technology, Inc. Locating tunnel failure based on next-next hop connectivity in a computer network
GB0804920D0 (en) * 2008-03-17 2008-04-16 Ericsson Telefon Ab L M Method and apparatus for ethernet re-routing
US8204498B1 (en) * 2008-09-30 2012-06-19 Sprint Communications Company L.P. Automated content download tool
US8098572B2 (en) * 2009-02-03 2012-01-17 Google Inc. Interface monitoring for link aggregation
US8095821B2 (en) * 2009-03-17 2012-01-10 International Business Machines Corporation Debugging for multiple errors in a microprocessor environment
US8381077B2 (en) * 2009-09-08 2013-02-19 Lsi Corporation Systems and methods for implementing error correction in relation to a flash memory
US8074101B1 (en) * 2009-10-29 2011-12-06 Symantec Corporation Systems and methods for handling path failures to active-passive storage arrays
US8713350B2 (en) * 2009-12-08 2014-04-29 Hewlett-Packard Development Company, L.P. Handling errors in a data processing system
US8811158B1 (en) * 2012-02-29 2014-08-19 Juniper Networks, Inc. Fast reroute for common network routes
US8839048B2 (en) * 2012-03-07 2014-09-16 International Business Machines Corporation Method for ranking analysis tools
US9690640B2 (en) * 2013-09-26 2017-06-27 Intel Corporation Recovery from multiple data errors
US20150128260A1 (en) * 2013-11-06 2015-05-07 Telefonaktiebolaget L M Ericsson (Publ) Methods and systems for controlling communication in a virtualized network environment
KR102041743B1 (ko) * 2013-12-26 2019-11-06 인텔 코포레이션 Pci 익스프레스 강화
US9858102B2 (en) * 2015-05-21 2018-01-02 Dell Products, L.P. Data path failover method for SR-IOV capable ethernet controller
JP6540309B2 (ja) * 2015-07-16 2019-07-10 富士通株式会社 共有メモリシステム、演算処理装置、及び方法
US10341258B2 (en) * 2016-05-02 2019-07-02 Ciena Corporation Dynamic adjustment of connection priority in networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5949759A (en) * 1995-12-20 1999-09-07 International Business Machines Corporation Fault correlation system and method in packet switching networks
US8856584B2 (en) * 2008-08-11 2014-10-07 Hitachi, Ltd. Transport control server that modifies routing information
CN105915555A (zh) * 2016-06-29 2016-08-31 北京奇虎科技有限公司 网络异常行为的检测方法及系统

Also Published As

Publication number Publication date
US10698605B2 (en) 2020-06-30
CN107870832A (zh) 2018-04-03
US20180088809A1 (en) 2018-03-29

Similar Documents

Publication Publication Date Title
CN107870832B (zh) 基于多维度健康诊断方法的多路径存储设备
Xu et al. Improving service availability of cloud systems by predicting disk error
US7340649B2 (en) System and method for determining fault isolation in an enterprise computing system
US8204980B1 (en) Storage array network path impact analysis server for path selection in a host-based I/O multi-path system
CN109783262B (zh) 故障数据处理方法、装置、服务器及计算机可读存储介质
US7281040B1 (en) Diagnostic/remote monitoring by email
EP3745272B1 (en) An application performance analyzer and corresponding method
CN105468484B (zh) 用于在存储系统中确定故障位置的方法和装置
JP3752150B2 (ja) ストレージ・エリア・ネットワーク(san)内でのエラー処理方法及びデータ処理システム
US7412631B2 (en) Methods and structure for verifying domain functionality
CN100417081C (zh) 检查和修复网络配置的方法和系统
US20070079170A1 (en) Data migration in response to predicted disk failure
US7756971B2 (en) Method and system for managing programs in data-processing system
US20030172150A1 (en) System and method for determining availability of an arbitrary network configuration
US20080080384A1 (en) System and method for implementing an infiniband error log analysis model to facilitate faster problem isolation and repair
CN1841547B (zh) 识别故障模块的方法及装置
US7870045B2 (en) Computer system for central management of asset information
US8006133B2 (en) Non-disruptive I/O adapter diagnostic testing
WO2017218277A1 (en) Monitoring peripheral transactions
US9465684B1 (en) Managing logs of storage systems
CN111857555A (zh) 避免磁盘阵列的故障事件的方法、设备和程序产品
CN106155826B (zh) 用于在总线结构中检测及处理错误的方法和系统
US20040073648A1 (en) Network calculator system and management device
US20160197994A1 (en) Storage array confirmation of use of a path
US8527815B2 (en) Method for detecting a failure in a SAS/SATA topology

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant