CN104423889A - 一种多路径管理方法和*** - Google Patents

一种多路径管理方法和*** Download PDF

Info

Publication number
CN104423889A
CN104423889A CN201310375639.3A CN201310375639A CN104423889A CN 104423889 A CN104423889 A CN 104423889A CN 201310375639 A CN201310375639 A CN 201310375639A CN 104423889 A CN104423889 A CN 104423889A
Authority
CN
China
Prior art keywords
lun
path
group
port
route
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.)
Granted
Application number
CN201310375639.3A
Other languages
English (en)
Other versions
CN104423889B (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.)
Core Usa Second LLC
GlobalFoundries Inc
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN201310375639.3A priority Critical patent/CN104423889B/zh
Priority to US14/468,544 priority patent/US9535631B2/en
Publication of CN104423889A publication Critical patent/CN104423889A/zh
Application granted granted Critical
Publication of CN104423889B publication Critical patent/CN104423889B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • 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
    • 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
    • G06F3/061Improving I/O performance
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • 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/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Debugging And Monitoring (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)

Abstract

本发明公开了一种多路径管理方法和***,用于管理从主机路由IO到存储***的多个逻辑卷LUN的路径,其中存储***的多个LUN被映射到主机上,该方法包括:将在主机和存储***之间具有相同路径的LUN划分为一个LUN组;以及对一个LUN组中的所有LUN使用一个路径选择线程管理所述相同路径。该方法和***减少了路径管理的工作量和所需要的资源量。

Description

一种多路径管理方法和***
技术领域
本发明涉及存储***,更具体地涉及一种多路径管理方法和***。
背景技术
存储***包括RAID阵列、RAID控制器、适配器、存储管理服务器组成。存储管理服务器和其它设备通过网络相连,管理整个存储***的运行。图1示出了存储***的结构框图。RAID(Redundant Array of Independent(or Inexpensive)Disks)阵列,是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果(additive effects)提升整个磁盘***效能。存储***通过RAID控制器在内部创建不同种类的RAID阵列。存储***在RAID阵列再创建逻辑卷(logical volume),也称为LUN(logical unit number)。LUN再映射给主机(host),主机会把LUN当成本地硬盘来使用。
主机与存储***之间通过光纤交换机(FC Switch)通信。主机端由主机总线适配器HBA(Host Bus Adapter)与光纤交换机相连,HBA在主机端称为主机总线适配器,在光纤交换机端也称为光纤接口卡(Fibre Channel interface card)或光纤适配器(FC adapter),存储***端也有光纤接口卡或光纤适配器与光纤交换机相连。图2示出了主机、光纤交换机以及存储***之间的连接关系。在图2中,主机1有4条路径可以访问到存储***上的LUN,即主机1的HBA1端口到存储***的光纤适配器端口1,主机1的HBA1端口到存储***的光纤适配器端口2,主机1的HBA2端口到存储***的光纤适配器端口1,以及主机1的HBA2端口到存储***的光纤适配器端口2。同样,主机2有4条路径可以访问到存储***上的LUN。
主机有多条路径通往存储***,可以在主机上安装多路径软件,来管理主机到存储***之间的多条路径。多路径软件能够均衡每条路径的输入和输出(IO);当发现路径故障时,在路由IO的时候规避故障路径;当路径的故障被排除时,主机和存储***的LUN之间的通信回归到原来的路径等。多路径软件采用的路径选择算法包括:
Failover:只选择一条路径路由IO,只有在该路径故障的情况下才会选择其它路径路由IO;
Round Robin:在多条路径上轮流路由IO;
Load Balance:选择负载较低的HBA上的路径来路由IO;如果HBA负载都一样,就随机选择路径。
当存储***具有很多个LUN映射到主机上,例如主机有1000个或者更多个LUN映射到该主机上,并且该主机有6条或者更多路径可以访问到存储***,则多路径软件将会管理6000条甚至多的路径;另外,主机还需要开启1000个多路径选择进程来分别负责1000个LUN上的路径选择。多路径软件将会耗费大量的主机资源(CPU和内存)来管理这些路径,会使得主机的效率大大降低,因此,当前的多路径软件对每个LUN都不推荐配置很多路径。
发明内容
为了解决上述问题,本发明的一个目的是减少路径管理的工作量和多需要的资源量。
根据本发明的一个方面,提供了一种多路径管理方法,用于管理从主机路由IO到存储***的多个逻辑卷LUN的路径,其中存储***的多个LUN被映射到主机上,该方法包括:将在主机和存储***之间具有相同路径的LUN划分为一个LUN组;以及对一个LUN组中的所有LUN使用一个路径选择线程管理所述相同路径。
据本发明的另一个方面,提供了一种多路径管理***,用于管理从主机路由IO到存储***的多个逻辑卷LUN的路径,其中存储***的多个LUN被映射到主机上,该***包括:分组装置,被配置为将在主机和存储***之间具有相同路径的LUN划分为一个LUN组;以及路径选择装置,被配置为对一个LUN组中的所有LUN使用一个路径选择线程管理所述相同路径。
附图说明
通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出了存储***的结构框图;
图2示出了主机、光纤交换机以及存储***之间的连接关系;
图3示出了适于用来实现本发明实施方式的示例性计算机***/服务器的框图;
图4示意性示出了多路径管理方法的方法流程图;
图5示出了获得在主机和存储***之间具有相同路径的LUN的一种实施方式的具体流程;
图6示出了使用路径选择算法的具体实施方式流程;以及
图7示出了一种多路径管理***的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
所属技术领域的技术人员知道,本发明可以实现为***、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“***”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如”C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种虚拟机,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。
也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instruction means)的制造品(manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。
图3示出了适于用来实现本发明实施方式的示例性计算机***/服务器12的框图。图3显示的计算机***/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图3所示,计算机***/服务器12以通用计算设备的形式表现。计算机***/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,***存储器28,连接不同***组件(包括***存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,***总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及***组件互连(PCI)总线。
计算机***/服务器12典型地包括多种计算机***可读介质。这些介质可以是任何能够被计算机***/服务器12访问的可用介质,包括易失性和非易失性介质,可迁移的和不可迁移的介质。
***存储器28可以包括易失性存储器形式的计算机***可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机***/服务器12可以进一步包括其它可迁移/不可迁移的、易失性/非易失性计算机***存储介质。仅作为举例,存储***34可以用于读写不可迁移的、非易失性磁介质(图3未显示,通常称为“硬盘驱动器”)。尽管图3中未示出,可以提供用于对可迁移非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可迁移非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作***、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机***/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机***/服务器12交互的设备通信,和/或与使得该计算机***/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(IO)接口22进行。并且,计算机***/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机***/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机***/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID***、磁带驱动器以及数据备份存储***等。
下面,将参照附图来描述本发明的实施例。
在本公开的一种实施方式中,提出了一种多路径管理方法,用于管理从主机路由IO到存储***的多个LUN时的路径,其中存储***的多个LUN被映射到主机上。图4示意性示出了多路径管理方法的方法流程图,根据图4,在步骤S402,将在主机和存储***之间具有相同路径的LUN划分为一个LUN组;在步骤S403,对一个LUN组中的所有LUN使用一个路径选择线程管理所述相同路径。在一种实施方式中,还包括步骤S401,获得在主机和存储***之间具有相同路径的LUN。步骤S401之所以是一种优选的实施方式,是因为某些时候,已经通过其它方式得到主机和存储***之间具有相同路径的LUN,例如在映射LUN到主机时已经直接知道那些LUN属于哪个物理存储器,可以直接分组。
这样,根据前面的例子,原来主机有1000个LUN映射到该主机,主机有6条访问存储***的路径,则主机上的多路径软件将会管理6000条路径,对应每个LUN,使用一个路径管理算法线程,则总共需要1000个路径管理算法线程。假设使用本发明方法,LUN1-500来自存储***A,具有相同的存储路径;LUN501-1000来自存储***B,也具有相同的存储路径;则在主机端有两个LUN组,LUN1-500被分为第一组,LUN501-1000被分为第二组。将一个LUN组的所有LUN绑定在该组所有LUN都使用的路径上的结果是:第一组LUN有6条路径;第二组LUN也有6条路径,由于路径是基于LUN组的中心管理,即对一个LUN组中的所有LUN使用一个路径选择线程管理所述相同路径,则在第一组内只需要使用一个路径管理算法的线程管理这6条路径,路径管理线程在第一组内对所有的LUN都使用这6条路径,当有IO需要路由到该组内的LUN时,该路径管理线程的线程在上述6条路径中选择一条可用的路径;在第二组亦然,则主机端只有两个路径管理算法的线程,每个线程只要管理6条路径,与现有技术相比,大大减少了路径管理的工作量和需要的资源量。
具体实施中,在步骤S401中需要获得在主机和存储***之间具有相同路径的LUN,该步骤可以有多种实施方式,可以由主机直接获得具有相同路径的LUN,也可以由和主机之间耦接的其它设备获得具有相同路径的LUN。下面介绍一种最基本的实施方式。
图5示出了获得在主机和存储***之间具有相同路径的LUN的一种实施方式的具体流程,根据图5,在步骤S501,扫描获得主机端映射的至少一部分LUN。该步骤可以通过命令触发(比如AIX操作***的cfgmgr命令),也可以周期性地运行命令来触发,也可以通过重启主机来触发。在步骤S502,分别通过主机上的各总线适配器HBA端口向光纤交换机发送命令,来查询HBA端口能够访问的存储***的光纤适配器(FC adapter)FC端口的端口ID(Port ID);在步骤S503,分别接收光纤交换机返回的各HBA端口能够访问的各FC端口的端口ID;如果各HBA端口已经与返回的端口ID对应的各FC端口建立了连接,在步骤S504,分别通过各HBA端口对能够访问的各FC端口发送命令,获得不同路径上的LUN;其中,特定的HBA端口ID到特定FC端口ID为LUN的一条路径。在这种实施方式中,如果HBA端口没有与返回的端口ID对应的FC端口建立了连接,则首先需要通过SCSI协议中的PLOGI/PRLI命令建立连接。发送的SCSI命令为INQUIRY和REPORT LUNS。在步骤S505,根据获得的主机端映射的至少一部分LUN以及不同路径上的LUN,获得在主机和存储***之间具有相同路径的LUN。由于同一个LUN会从所有建立连接的存储***的FC端口和主机端的HBA端口来上报(即从所有可用的多路径来上报),所以只要记录同一个LUN是从哪些存储端FC端口到哪些主机端HBA端口上报的,即记录下LUN上报的路径,然后在每个上报LUN之间进行上报路径的比对,即可知道哪些LUN拥有同样的路径。
在另外一种实施方式中,有些存储***有这样一种功能:即将一个LUN映射给某个主机的时候,指定这个LUN只能通过特定的存储端FC端口来访问。对于不支持该功能的存储来说,主机到存储的多条路径也就是主机能够访问存储上LUN的多条路径,这也意味着主机上对来自同一存储的LUN的访问路径都是一样的。对于支持该功能的存储来说,只要不使用这个功能,那么在主机上来自同一存储的LUN的访问路径也就是一样的。只要满足以上条件,在判断主机上的LUN是否拥有相同路径的时候,只要判断LUN是否来自同一存储就可以了,因为来自同一存储的LUN拥有同样的路径。
这样就得到了在主机和存储***之间具有相同路径的LUN,就可以执行步骤S402,将在主机和存储***之间具有相同路径的LUN划分为一个LUN组,并且对一个LUN组中的所有LUN使用一个路径选择线程管理所述相同路径。
路径选择算法可以使用现有的任何一种路径选择算法,既可以对不同的LUN组,使用同一种路径选择算法,也可以对不同的LUN组,使用不同的路径选择算法。例如某个LUN组使用Failover算法,只选择一条路径路由IO,只有在该路径故障的情况下才会选择其它路径路由IO,则该组中所有的LUN选择可用的路径后,都使用一条路径路由IO,只有在该路径故障的情况下,才会选择其它路径路由IO,则该组的全部LUN都切换到其它路径上。同样也可以使用Round Robin和Load Balance算法选择路径。
在使用路径选择算法线程管理多路径的过程中,在一种实施方式中,需要对每一条路径维护该路径的路径状态。路径状态可以有3种,一种是可用(Available),也就是该路径没有故障,能够路由IO;一种是失败(Fail),也就是该路径有故障,不能路由IO;另外一种是部分失败(Partly Fail),也就是该路径对部分LUN不能路由IO。可以用不同的参数或者其它形式来表示,例如用0表示路径可用,1表示路径失败,2表示路径部分失败等等。路径状态的默认值是路径可用。
对于主机,图6示出了使用路径选择算法的具体实施方式流程,根据图6,在步骤S601,接收一个路由IO到LUN的请求,通过该LUN所在的LUN组使用的路径选择线程在所述相同路径上选择一条路径状态为可用或者部分失败的路径,然后利用选择的路径路由该IO到该LUN;在步骤S602,判断IO路由是否成功,如果IO路由成功,则该路径的路径状态保持不变,即继续可用,返回步骤S601,继续接收路由IO请求。如果IO路由失败,在步骤S603,判断该路径是否为该LUN所在LUN组的最后一条路径状态为可用的路径;如果该路径是该LUN所在LUN组的最后一条路径状态为可用的路径,在步骤S604,不置该LUN组上的该路径的路径状态为失败(否则整个LUN组将没有可用路径),而是置该LUN组上的该路径状态为部分失败,同时在该LUN上置标志位,以表示该LUN不能使用该路径来路由IO。这时,这个IO就不能路由到相应的LUN,主机会收到***报告的错误。然后返回步骤S601,继续接收路由IO的请求。如果这条路径不是该LUN所在LUN组的最后一条路径状态为可用的路径,在步骤S605,置该LUN组上的这条路径的路径状态为失败,从而使LUN组内的所有LUN将不再使用该路径来路由IO,以及使用该LUN所在的LUN组使用的路径选择线程在所述相同路径上重新选择另外一条可用路径,返回步骤S602,使用新选择的路径路由IO后,继续判断IO路由是否成功。
在一种优选的实施方式中,在步骤S605中在LUN组上的某条路径的路径状态被置为失败之后,继续在步骤S606,检查LUN组内的其它LUN是否能够使用该失败路径来访问。如果LUN组内所有其它LUN都不能够使用该失败路径来访问,则保持LUN组上的该路径的失败状态,返回步骤S602,使用新选择的路径路由IO后,继续判断IO路由是否成功。一般来说,此类情况为绝大多数,因为路径故障都是由主机端HBA端口故障、存储端PC端口故障、光纤交换机端口故障、或者各端口间光纤线连接故障导致的,这些故障导致的路径故障情况下,会导致某个LUN组内的所有LUN都不能够使用该路径来路由IO。但是,如果LUN组内的其它LUN中有些LUN能给通过该失败路径访问,则在步骤S607,将LUN组上的该路径的路径状态置为部分失败,并在LUN组内的所有不能通过该路径访问到的LUN上置标志位,表示这些LUN不能够使用该路径来路由IO。同样,此类情况为极少数,只有当存储对于自身内部的有些LUN能够访问,有些LUN不能够访问时才会出现。此时存储本身已经出了较大故障,但是本多路径管理方法能够很好地应对这种故障,使其不影响到其它能够正常访问到的LUN,然后返回步骤S602,使用新选择的路径路由IO后,继续判断IO路由是否成功。具体的检查的方法可以为:通过该路径向LUN发送SCSI协议中的INQUIRY命令;也可以为:通过该路径向LUN发送SCSI协议中的Mode Sense命令。
下面给出LUN上设置标志位的两种实现方法:
1.LUN组内的每个LUN的数据结构内部可以定义一个指针,默认指向空。当需要在LUN上置标志位说明某些路径不能使用时,就临时分配一个字节(8个比特,可以代表8条路径的状态)的内存,并且给这个字节赋值(比如00000001代表不能使用LUN组上的第一条路径,00001001代表不能使用LUN组上的第一和第四条路径),然后让前面提到的指针指向该内存空间。这样这个指针就起到了标志位的作用。如果LUN组上的路径较多,那就分配两个字节或者三个字节的内存来表示。
2.LUN组内的每个LUN的数据结构内部可以定义一个字节(8个比特,可以代表8条路径的状态;如果LUN组上的路径较多,就定义两个字节或三个字节),默认值为0。当需要在LUN上置标志位说明某些路径不能使用时,就给这个字节内部赋值,比如00000001代表不能使用LUN组上的第一条路径,00001001代表不能使用LUN组上的第一和第四条路径。这样这个字节就起到了标志位的作用。
上述方法可以选择可用路径路由IO,同时也会发现故障路径,即路径状态为失败或者部分失败的路径。故障路径被排除后,还需要回收故障路径。因此,在一种优选的实施方式中,如果某个LUN组有故障路径,可以不定期或周期性地检查LUN组内是否所有的LUN都能够重新使用该路径访问。这里周期性检查的周期可以由用户配置。例如可以1分钟检查一次或半分钟检查一次等;检查的方法可以为:通过该路径向LUN发送SCSI协议中的INQUIRY命令,也可以通过该路径向LUN发送SCSI协议中的Mode Sense命令进行检查。如果LUN组内所有LUN都能通过该路径访问,则置LUN组上该路径的路径状态为可用,如果原来的路径状态为部分失败,还要删除LUN上的不能使用该路径的标志位;如果部分LUN能访问,部分LUN不能访问(这种情况极少),则置LUN组上该路径的路径状态为部分失败,在LUN组内的那些不能访问到的LUN上置标志位,表示这些LUN不能使用这条路径来路由IO;如果LUN组内所有LUN都不能通过该路径访问,则继续不定期或周期性地检查。这样,修复故障路径后,就能够恢复路径的状态到可用,可以进一步减少IO延迟。
现有技术中,多路径软件对每个LUN上的多路径分开处理。当在某个LUN的某条路径上路由IO失败时,则置该路径状态为失败;如果其它LUN上也有相同的路径,那么这些路径还是可用状态。但是在绝大多数情况下,这些LUN上的相同路径实际上是有故障不能用来路由IO的,不过多路径软件并不知道,还会使用这些实际上已经故障了的但状态仍是可用的路径来路由IO,造成更多的IO路由失败,导致IO延迟增大以及***开销的上升。采用本发明中的多路径管理方法,就能很好地规避上述问题。当在某个LUN的某条路径上路由IO失败时,会在LUN组上置该路径状态为失败状态(只要该路径不是LUN组的最后一条路径状态为可用的路径),LUN组内所有的LUN都不在使用该路径。
在同一个发明构思下,本发明的实施方式还公开了一种多路径管理***,用于管理从主机路由IO到存储***的多个逻辑卷LUN的路径,其中存储***的多个LUN被映射到主机上,图7示出了一种多路径管理***的结构框图,根据图7,该***包括:分组装置702,被配置为将在主机和存储***之间具有相同路径的LUN划分为一个LUN组;以及路径选择装置703,被配置为对一个LUN组中的所有LUN使用一个路径选择线程管理所述相同路径。在一种优选的实施方式中,该***还包括:获得装置701,被配置为获得在主机和存储***之间具有相同路径的LUN。
在一种实施方式中,上述获得装置包括:扫描装置,被配置为扫描获得主机端映射的至少一部分LUN;查询装置,被配置为分别通过主机上的各总线适配器HBA端口向光纤交换机发送命令,来查询HBA端口能够访问的存储***的各光纤适配器FC端口的端口ID;接收装置,被配置为分别接收光纤交换机返回的各HBA端口能够访问的各FC端口的端口ID;不同路径LUN获得装置,被配置为如果各HBA端口已经与返回的端口ID对应的各FC端口建立了连接,分别通过各HBA端口对能够访问的各FC端口发送命令,获得不同路径上的LUN,其中,特定的HBA端口ID到特定FC端口ID为LUN的一条路径。以及相同路径LUN获得装置,被配置为根据获得的主机端映射的至少一部分LUN以及不同路径上的LUN,获得在主机和存储***之间具有相同路径的LUN。
在另一种实施方式中,路径选择装置包括:状态维护装置,被配置为对每一条路径维护该路径的路径状态,其中路径状态有3种:可用—表示该路径没有故障,能够路由IO;失败—表示该路径有故障,不能路由IO;以及部分失败—表示该路径对部分LUN不能路由IO。
在又一种实施方式中,路径选择装置进一步被配置为:接收路由IO到LUN的请求;通过该LUN所在的LUN组使用的路径选择线程在所述相同路径上选择一条路径状态为可用或者部分失败的路径;利用选择的路径路由该IO到该LUN。在进一步的实施方式中,路径选择装置利用选择的路径路由该IO到该LUN后进一步配置为:判断IO路由是否成功;如果IO路由失败,进一步判断该路径是否为该LUN所在LUN组的最后一条路径状态为可用的路径;如果该路径是该LUN所在LUN组的最后一条路径状态为可用的路径,则置该LUN组上的该路径状态为部分失败;并在该LUN上置标志位,表示该LUN不能使用该路径路由IO。如果路径选择装置判断如果该路径不是该LUN所在LUN组的最后一条路径状态为可用的路径,则置该LUN组上的该路径的路径状态为失败从而使LUN组内的所有LUN不再使用该路径来路由IO;以及应用该LUN所在的LUN组使用的路径选择线程在所述相同路径上重新选择另外一条可用路径。
在更进一步的实施方式中,路径选择装置置该LUN组上的该路径的路径状态为失败还被进一步配置为:检查LUN组内的其它LUN是否能够使用该失败路径来访问;如果LUN组内所有其它LUN都不能够使用该失败路径来访问,则保持LUN组上的该路径状态为失败;如果LUN组内的其它LUN中有些LUN能给通过该失败路径访问,则将LUN组上的该路径的路径状态置为部分失败,在LUN组内的所有不能通过该路径访问到的LUN上置标志位,表示这些LUN不能够使用该路径来路由IO。
在又一个实施方式中,该***还包括路径恢复装置,被配置为:对于路径状态为路径失败或者路径部分失败的路径,检查LUN组内是否所有的LUN都能够重新使用该路径访问;如果LUN组内所有LUN都能通过该路径访问,则置LUN组上该路径的路径状态为可用,并且如果原来的路径状态为部分失败,删除LUN上的不能使用该路径的标志位;如果部分LUN能访问,部分LUN不能访问,则置LUN组上该路径的路径状态为部分失败,在LUN组内的那些不能访问到的LUN上置标志位,表示这些LUN不能使用这条路径来路由IO;以及如果LUN组内所有LUN都不能通过该路径访问,则继续检查。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

Claims (18)

1.一种多路径管理方法,用于管理从主机路由IO到存储***的多个逻辑卷LUN的路径,其中存储***的多个LUN被映射到主机上,该方法包括:
将在主机和存储***之间具有相同路径的LUN划分为一个LUN组;以及
对一个LUN组中的所有LUN使用一个路径选择线程管理所述相同路径。
2.如权利要求1所述的方法,该方法还包括:获得在主机和存储***之间具有相同路径的LUN。
3.如权利要求2所述的方法,其中获得在主机和存储***之间具有相同路径的LUN包括:
扫描获得主机端映射的至少一部分LUN;
分别通过主机上的各总线适配器HBA端口向光纤交换机发送命令,来查询HBA端口能够访问的存储***的各光纤适配器FC端口的端口ID;
分别接收光纤交换机返回的各HBA端口能够访问的各FC端口的端口ID;
如果各HBA端口已经与返回的端口ID对应的各FC端口建立了连接,分别通过各HBA端口对能够访问的各FC端口发送命令,获得不同路径上的LUN,其中,特定的HBA端口ID到特定FC端口ID为LUN的一条路径;
根据获得的主机端映射的至少一部分LUN以及不同路径上的LUN,获得在主机和存储***之间具有相同路径的LUN。
4.如权利要求1-3之一所述的方法,其中对一个LUN组中的所有LUN使用一个路径选择线程管理所述相同路径包括:对每一条路径维护该路径的路径状态,其中路径状态有3种:
可用—表示该路径没有故障,能够路由IO;
失败—表示该路径有故障,不能路由IO;
部分失败—表示该路径对部分LUN不能路由IO。
5.如权利要求4所述的方法,其中对一个LUN组中的所有LUN使用一个路径选择线程管理所述相同路径包括:
接收路由IO到LUN的请求;
通过该LUN所在的LUN组使用的路径选择线程在所述相同路径上选择一条状态为可用或者部分失败的路径;
利用选择的路径路由该IO到该LUN。
6.如权利要求5所述的方法,其中利用选择的路径路由该IO到该LUN后进一步包括:
判断IO路由是否成功;
如果IO路由失败,进一步判断该路径是否为该LUN所在LUN组的最后一条路径状态为可用的路径;
如果该路径是该LUN所在LUN组的最后一条路径状态为可用的路径,则
置该LUN组上的该路径状态为部分失败;
在该LUN上置标志位,表示该LUN不能使用该路径路由IO。
7.如权利要求6所述的方法,其中如果该路径不是该LUN所在LUN组的最后一条路径状态为可用的路径,则
置该LUN组上的该路径的路径状态为失败从而使LUN组内的所有LUN不再使用该路径来路由IO;以及
应用该LUN所在的LUN组使用的路径选择线程在所述相同路径上重新选择另外一条可用路径。
8.如权利要求7所述的方法,其中所述置该LUN组上的该路径的路径状态为失败还包括:
检查LUN组内的其它LUN是否能够使用该失败路径来访问;
如果LUN组内所有其它LUN都不能够使用该失败路径来访问,则保持LUN组上的该路径状态为失败;
如果LUN组内的其它LUN中有些LUN能给通过该失败路径访问,则将LUN组上的该路径的路径状态置为部分失败,在LUN组内的所有不能通过该路径访问的LUN上置标志位,表示这些LUN不能够使用该路径来路由IO。
9.如权利要求4-8之一所述的方法,该方法还包括:
对于路径状态为路径失败或者路径部分失败的路径,检查LUN组内是否所有的LUN都能够重新使用该路径访问;
如果LUN组内所有LUN都能通过该路径访问,则置LUN组上该路径的路径状态为可用,并且如果原来的路径状态为部分失败,删除LUN上的不能使用该路径的标志位;
如果部分LUN能访问,部分LUN不能访问,则置LUN组上该路径的路径状态为部分失败,在LUN组内的那些不能访问的LUN上置标志位,表示这些LUN不能使用这条路径来路由IO;
如果LUN组内所有LUN都不能通过该路径访问,则继续检查。
10.一种多路径管理***,用于管理从主机路由IO到存储***的多个逻辑卷LUN的路径,其中存储***的多个LUN被映射到主机上,该***包括:
分组装置,被配置为将在主机和存储***之间具有相同路径的LUN划分为一个LUN组;
路径选择装置,被配置为对一个LUN组中的所有LUN使用一个路径选择线程管理所述相同路径。
11.如权利要求10所述的***,该***还包括:获得装置,被配置为获得在主机和存储***之间具有相同路径的LUN。
12.如权利要求11所述的***,其中获得装置包括:
扫描装置,被配置为扫描获得主机端映射的至少一部分LUN;
查询装置,被配置为分别通过主机上的各总线适配器HBA端口向光纤交换机发送命令,来查询HBA端口能够访问的存储***的各光纤适配器FC端口的端口ID;
接收装置,被配置为分别接收光纤交换机返回的各HBA端口能够访问的各FC端口的端口ID;
不同路径LUN获得装置,被配置为如果各HBA端口已经与返回的端口ID对应的各FC端口建立了连接,分别通过各HBA端口对能够访问的各FC端口发送命令,获得不同路径上的LUN,其中,特定的HBA端口ID到特定FC端口ID为LUN的一条路径;
相同路径LUN获得装置,被配置为根据获得的主机端映射的至少一部分LUN以及不同路径上的LUN,获得在主机和存储***之间具有相同路径的LUN。
13.如权利要求10-12之一所述的***,其中路径选择装置包括:状态维护装置,被配置为对每一条路径维护该路径的路径状态,其中路径状态有3种:
可用—表示该路径没有故障,能够路由IO;
失败—表示该路径有故障,不能路由IO;
部分失败—表示该路径对部分LUN不能路由IO。
14.如权利要求13所述的***,其中路径选择装置进一步被配置为:
接收路由IO到LUN的请求;
通过该LUN所在的LUN组使用的路径选择线程在所述相同路径上选择一条路径状态为可用或者部分失败的路径;
利用选择的路径路由该IO到该LUN。
15.如权利要求14所述的***,其中路径选择装置利用选择的路径路由该IO到该LUN后进一步配置为:
判断IO路由是否成功;
如果IO路由失败,进一步判断该路径是否为该LUN所在LUN组的最后一条路径状态为可用的路径;
如果该路径是该LUN所在LUN组的最后一条路径状态为可用的路径,则
置该LUN组上的该路径状态为部分失败;
在该LUN上置标志位,表示该LUN不能使用该路径路由IO。
16.如权利要求15所述的***,其中路径选择装置判断如果该路径不是该LUN所在LUN组的最后一条路径状态为可用的路径,则
置该LUN组上的该路径的路径状态为失败从而使LUN组内的所有LUN不再使用该路径来路由IO;以及
应用该LUN所在的LUN组使用的路径选择线程在所述相同路径上重新选择另外一条可用路径。
17.如权利要求16所述的***,其中路径选择装置置该LUN组上的该路径的路径状态为失败还被进一步配置为:
检查LUN组内的其它LUN是否能够使用该失败路径来访问;
如果LUN组内所有其它LUN都不能够使用该失败路径来访问,则保持LUN组上的该路径状态为失败;
如果LUN组内的其它LUN中有些LUN能给通过该失败路径访问,则将LUN组上的该路径的路径状态置为部分失败,在LUN组内的所有不能通过该路径访问的LUN上置标志位,表示这些LUN不能够使用该路径来路由IO。
18.如权利要求13-17之一所述的***,该***还包括路径恢复装置,被配置为:
对于路径状态为路径失败或者路径部分失败的路径,检查LUN组内是否所有的LUN都能够重新使用该路径访问;
如果LUN组内所有LUN都能通过该路径访问,则置LUN组上该路径的路径状态为可用,并且如果原来的路径状态为部分失败,删除LUN上的不能使用该路径的标志位;
如果部分LUN能访问,部分LUN不能访问,则置LUN组上该路径的路径状态为部分失败,在LUN组内的那些不能访问的LUN上置标志位,表示这些LUN不能使用这条路径来路由IO;
如果LUN组内所有LUN都不能通过该路径访问,则继续检查。
CN201310375639.3A 2013-08-26 2013-08-26 一种多路径管理方法和*** Expired - Fee Related CN104423889B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201310375639.3A CN104423889B (zh) 2013-08-26 2013-08-26 一种多路径管理方法和***
US14/468,544 US9535631B2 (en) 2013-08-26 2014-08-26 Multi-path management

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310375639.3A CN104423889B (zh) 2013-08-26 2013-08-26 一种多路径管理方法和***

Publications (2)

Publication Number Publication Date
CN104423889A true CN104423889A (zh) 2015-03-18
CN104423889B CN104423889B (zh) 2017-06-16

Family

ID=52481447

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310375639.3A Expired - Fee Related CN104423889B (zh) 2013-08-26 2013-08-26 一种多路径管理方法和***

Country Status (2)

Country Link
US (1) US9535631B2 (zh)
CN (1) CN104423889B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106506355A (zh) * 2015-09-07 2017-03-15 中兴通讯股份有限公司 多路径路由的管理方法及装置
CN106708445A (zh) * 2017-01-19 2017-05-24 北京腾凌科技有限公司 链路选择方法及装置
CN107515805A (zh) * 2017-08-28 2017-12-26 郑州云海信息技术有限公司 一种在主机端查看存储端portWWPN以获取映射路径的方法
WO2018024214A1 (zh) * 2016-08-04 2018-02-08 北京忆恒创源科技有限公司 Io流调节方法与装置
CN107888517A (zh) * 2016-09-30 2018-04-06 华为技术有限公司 一种为主机划域的方法及设备
CN108170381A (zh) * 2017-12-28 2018-06-15 湖南国科微电子股份有限公司 一种SLC Block到XLC Block数据迁移方法
CN111988169A (zh) * 2020-07-29 2020-11-24 苏州浪潮智能科技有限公司 一种云平台异常磁盘清理修复的方法、***、设备及介质
CN112148644A (zh) * 2019-06-27 2020-12-29 伊姆西Ip控股有限责任公司 处理输入/输出请求的方法、装置和计算机程序产品
CN113238719A (zh) * 2021-07-12 2021-08-10 苏州浪潮智能科技有限公司 一种清理主机端残留路径的方法、装置以及设备
US11507505B2 (en) 2017-10-25 2022-11-22 Huawei Technologies Co., Ltd. Active-active storage system and address assignment method

Families Citing this family (86)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8589640B2 (en) 2011-10-14 2013-11-19 Pure Storage, Inc. Method for maintaining multiple fingerprint tables in a deduplicating storage system
US11652884B2 (en) 2014-06-04 2023-05-16 Pure Storage, Inc. Customized hash algorithms
US11960371B2 (en) 2014-06-04 2024-04-16 Pure Storage, Inc. Message persistence in a zoned system
US9836234B2 (en) 2014-06-04 2017-12-05 Pure Storage, Inc. Storage cluster
US9367243B1 (en) 2014-06-04 2016-06-14 Pure Storage, Inc. Scalable non-uniform storage sizes
US9218244B1 (en) 2014-06-04 2015-12-22 Pure Storage, Inc. Rebuilding data across storage nodes
US10574754B1 (en) 2014-06-04 2020-02-25 Pure Storage, Inc. Multi-chassis array with multi-level load balancing
US9003144B1 (en) 2014-06-04 2015-04-07 Pure Storage, Inc. Mechanism for persisting messages in a storage system
US11068363B1 (en) 2014-06-04 2021-07-20 Pure Storage, Inc. Proactively rebuilding data in a storage cluster
US11886308B2 (en) 2014-07-02 2024-01-30 Pure Storage, Inc. Dual class of service for unified file and object messaging
US9021297B1 (en) 2014-07-02 2015-04-28 Pure Storage, Inc. Redundant, fault-tolerant, distributed remote procedure call cache in a storage system
US8868825B1 (en) 2014-07-02 2014-10-21 Pure Storage, Inc. Nonrepeating identifiers in an address space of a non-volatile solid-state storage
US9836245B2 (en) 2014-07-02 2017-12-05 Pure Storage, Inc. Non-volatile RAM and flash memory in a non-volatile solid-state storage
US11604598B2 (en) 2014-07-02 2023-03-14 Pure Storage, Inc. Storage cluster with zoned drives
US10853311B1 (en) 2014-07-03 2020-12-01 Pure Storage, Inc. Administration through files in a storage system
US9811677B2 (en) 2014-07-03 2017-11-07 Pure Storage, Inc. Secure data replication in a storage grid
US9747229B1 (en) 2014-07-03 2017-08-29 Pure Storage, Inc. Self-describing data format for DMA in a non-volatile solid-state storage
US9495255B2 (en) 2014-08-07 2016-11-15 Pure Storage, Inc. Error recovery in a storage cluster
US9082512B1 (en) 2014-08-07 2015-07-14 Pure Storage, Inc. Die-level monitoring in a storage cluster
US9483346B2 (en) 2014-08-07 2016-11-01 Pure Storage, Inc. Data rebuild on feedback from a queue in a non-volatile solid-state storage
US10983859B2 (en) 2014-08-07 2021-04-20 Pure Storage, Inc. Adjustable error correction based on memory health in a storage unit
US10079711B1 (en) 2014-08-20 2018-09-18 Pure Storage, Inc. Virtual file server with preserved MAC address
US9940234B2 (en) 2015-03-26 2018-04-10 Pure Storage, Inc. Aggressive data deduplication using lazy garbage collection
US10178169B2 (en) 2015-04-09 2019-01-08 Pure Storage, Inc. Point to point based backend communication layer for storage processing
US9672125B2 (en) 2015-04-10 2017-06-06 Pure Storage, Inc. Ability to partition an array into two or more logical arrays with independently running software
US10846275B2 (en) 2015-06-26 2020-11-24 Pure Storage, Inc. Key management in a storage device
US10983732B2 (en) 2015-07-13 2021-04-20 Pure Storage, Inc. Method and system for accessing a file
US10108355B2 (en) 2015-09-01 2018-10-23 Pure Storage, Inc. Erase block state detection
US11341136B2 (en) 2015-09-04 2022-05-24 Pure Storage, Inc. Dynamically resizable structures for approximate membership queries
US10853266B2 (en) 2015-09-30 2020-12-01 Pure Storage, Inc. Hardware assisted data lookup methods
US9768953B2 (en) 2015-09-30 2017-09-19 Pure Storage, Inc. Resharing of a split secret
US10762069B2 (en) 2015-09-30 2020-09-01 Pure Storage, Inc. Mechanism for a system where data and metadata are located closely together
US9843453B2 (en) 2015-10-23 2017-12-12 Pure Storage, Inc. Authorizing I/O commands with I/O tokens
US10007457B2 (en) 2015-12-22 2018-06-26 Pure Storage, Inc. Distributed transactions with token-associated execution
US10261690B1 (en) 2016-05-03 2019-04-16 Pure Storage, Inc. Systems and methods for operating a storage system
US11861188B2 (en) 2016-07-19 2024-01-02 Pure Storage, Inc. System having modular accelerators
US10768819B2 (en) 2016-07-22 2020-09-08 Pure Storage, Inc. Hardware support for non-disruptive upgrades
US9672905B1 (en) 2016-07-22 2017-06-06 Pure Storage, Inc. Optimize data protection layouts based on distributed flash wear leveling
US11604690B2 (en) 2016-07-24 2023-03-14 Pure Storage, Inc. Online failure span determination
US11734169B2 (en) 2016-07-26 2023-08-22 Pure Storage, Inc. Optimizing spool and memory space management
US11886334B2 (en) 2016-07-26 2024-01-30 Pure Storage, Inc. Optimizing spool and memory space management
US10203903B2 (en) 2016-07-26 2019-02-12 Pure Storage, Inc. Geometry based, space aware shelf/writegroup evacuation
US11797212B2 (en) 2016-07-26 2023-10-24 Pure Storage, Inc. Data migration for zoned drives
US10366004B2 (en) 2016-07-26 2019-07-30 Pure Storage, Inc. Storage system with elective garbage collection to reduce flash contention
US11422719B2 (en) 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US9747039B1 (en) 2016-10-04 2017-08-29 Pure Storage, Inc. Reservations over multiple paths on NVMe over fabrics
US10481798B2 (en) 2016-10-28 2019-11-19 Pure Storage, Inc. Efficient flash management for multiple controllers
US11550481B2 (en) 2016-12-19 2023-01-10 Pure Storage, Inc. Efficiently writing data in a zoned drive storage system
US11307998B2 (en) 2017-01-09 2022-04-19 Pure Storage, Inc. Storage efficiency of encrypted host system data
US11955187B2 (en) 2017-01-13 2024-04-09 Pure Storage, Inc. Refresh of differing capacity NAND
US9747158B1 (en) 2017-01-13 2017-08-29 Pure Storage, Inc. Intelligent refresh of 3D NAND
US10528488B1 (en) 2017-03-30 2020-01-07 Pure Storage, Inc. Efficient name coding
US11016667B1 (en) 2017-04-05 2021-05-25 Pure Storage, Inc. Efficient mapping for LUNs in storage memory with holes in address space
US10516645B1 (en) 2017-04-27 2019-12-24 Pure Storage, Inc. Address resolution broadcasting in a networked device
US10141050B1 (en) 2017-04-27 2018-11-27 Pure Storage, Inc. Page writes for triple level cell flash memory
US11782625B2 (en) 2017-06-11 2023-10-10 Pure Storage, Inc. Heterogeneity supportive resiliency groups
US10425473B1 (en) 2017-07-03 2019-09-24 Pure Storage, Inc. Stateful connection reset in a storage cluster with a stateless load balancer
US10402266B1 (en) 2017-07-31 2019-09-03 Pure Storage, Inc. Redundant array of independent disks in a direct-mapped flash storage system
US10545687B1 (en) 2017-10-31 2020-01-28 Pure Storage, Inc. Data rebuild when changing erase block sizes during drive replacement
US10496330B1 (en) 2017-10-31 2019-12-03 Pure Storage, Inc. Using flash storage devices with different sized erase blocks
US10860475B1 (en) 2017-11-17 2020-12-08 Pure Storage, Inc. Hybrid flash translation layer
US10976948B1 (en) 2018-01-31 2021-04-13 Pure Storage, Inc. Cluster expansion mechanism
US10467527B1 (en) 2018-01-31 2019-11-05 Pure Storage, Inc. Method and apparatus for artificial intelligence acceleration
US11036596B1 (en) 2018-02-18 2021-06-15 Pure Storage, Inc. System for delaying acknowledgements on open NAND locations until durability has been confirmed
US11385792B2 (en) 2018-04-27 2022-07-12 Pure Storage, Inc. High availability controller pair transitioning
US11868309B2 (en) 2018-09-06 2024-01-09 Pure Storage, Inc. Queue management for data relocation
US11354058B2 (en) 2018-09-06 2022-06-07 Pure Storage, Inc. Local relocation of data stored at a storage device of a storage system
US11500570B2 (en) 2018-09-06 2022-11-15 Pure Storage, Inc. Efficient relocation of data utilizing different programming modes
US10976947B2 (en) 2018-10-26 2021-04-13 Pure Storage, Inc. Dynamically selecting segment heights in a heterogeneous RAID group
WO2020113875A1 (zh) * 2018-12-07 2020-06-11 华为技术有限公司 一种控制设备的切换方法、控制设备、及存储***
CN111290702B (zh) * 2018-12-07 2022-04-05 华为技术有限公司 一种控制设备的切换方法、控制设备、及存储***
US11099986B2 (en) 2019-04-12 2021-08-24 Pure Storage, Inc. Efficient transfer of memory contents
US11281394B2 (en) 2019-06-24 2022-03-22 Pure Storage, Inc. Replication across partitioning schemes in a distributed storage system
US11893126B2 (en) 2019-10-14 2024-02-06 Pure Storage, Inc. Data deletion for a multi-tenant environment
US11704192B2 (en) 2019-12-12 2023-07-18 Pure Storage, Inc. Budgeting open blocks based on power loss protection
US11416144B2 (en) 2019-12-12 2022-08-16 Pure Storage, Inc. Dynamic use of segment or zone power loss protection in a flash device
US11847331B2 (en) 2019-12-12 2023-12-19 Pure Storage, Inc. Budgeting open blocks of a storage unit based on power loss prevention
US11188432B2 (en) 2020-02-28 2021-11-30 Pure Storage, Inc. Data resiliency by partially deallocating data blocks of a storage device
US11265261B2 (en) * 2020-03-18 2022-03-01 EMC IP Holding Company LLC Access path management based on path condition
US11474986B2 (en) 2020-04-24 2022-10-18 Pure Storage, Inc. Utilizing machine learning to streamline telemetry processing of storage media
US11157432B1 (en) * 2020-08-28 2021-10-26 EMC IP Holding Company LLC Configuration of block devices based on provisioning of logical volumes in a storage system
US11487455B2 (en) 2020-12-17 2022-11-01 Pure Storage, Inc. Dynamic block allocation to optimize storage system performance
US11614880B2 (en) 2020-12-31 2023-03-28 Pure Storage, Inc. Storage system with selectable write paths
US11847324B2 (en) 2020-12-31 2023-12-19 Pure Storage, Inc. Optimizing resiliency groups for data regions of a storage system
US11507597B2 (en) 2021-03-31 2022-11-22 Pure Storage, Inc. Data replication to meet a recovery point objective
CN115412486B (zh) * 2022-08-26 2023-07-14 苏州浪潮智能科技有限公司 一种存储多路径中路径失效管理方法、装置、设备及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1348134A (zh) * 2000-10-13 2002-05-08 国际商业机器公司 在非并发群集环境中提供多路径输入/输出的方法和设备
JP2005149276A (ja) * 2003-11-18 2005-06-09 Hitachi Ltd 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム
US7318138B1 (en) * 2005-08-30 2008-01-08 Symantec Operating Corporation Preventing undesired trespass in storage arrays
US20080250042A1 (en) * 2007-04-09 2008-10-09 Hewlett Packard Development Co, L.P. Diagnosis of a Storage Area Network

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7228538B1 (en) * 2000-05-02 2007-06-05 International Business Machines Corporation Method, system, and program for updating firmware to a storage system comprised of multiple controllers
US7343410B2 (en) * 2001-06-28 2008-03-11 Finisar Corporation Automated creation of application data paths in storage area networks
US7293039B1 (en) 2004-03-12 2007-11-06 Network Appliance, Inc. Storage resource management across multiple paths
US8583861B1 (en) * 2006-06-29 2013-11-12 Emc Corporation Presentation of management functionality of virtual arrays
JP4824638B2 (ja) 2007-06-27 2011-11-30 株式会社日立製作所 ストレージシステムにおけるマルチホスト管理サーバ及びそのプログラム並びにパス情報管理方法
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
US8332505B2 (en) * 2008-03-04 2012-12-11 Lsi Corporation Method to automatically determine host to LUN (logical unit number) path availability for multi path attached storage systems
US7839788B2 (en) 2008-05-19 2010-11-23 Lsi Corporation Systems and methods for load balancing storage system requests in a multi-path environment based on transfer speed of the multiple paths
DE102012206283B4 (de) 2011-05-06 2013-04-11 International Business Machines Corporation Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1348134A (zh) * 2000-10-13 2002-05-08 国际商业机器公司 在非并发群集环境中提供多路径输入/输出的方法和设备
JP2005149276A (ja) * 2003-11-18 2005-06-09 Hitachi Ltd 情報処理システム、情報処理装置、情報処理装置の制御方法及びプログラム
US7318138B1 (en) * 2005-08-30 2008-01-08 Symantec Operating Corporation Preventing undesired trespass in storage arrays
US20080250042A1 (en) * 2007-04-09 2008-10-09 Hewlett Packard Development Co, L.P. Diagnosis of a Storage Area Network

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017041500A1 (zh) * 2015-09-07 2017-03-16 中兴通讯股份有限公司 多路径路由的管理方法及装置
CN106506355A (zh) * 2015-09-07 2017-03-15 中兴通讯股份有限公司 多路径路由的管理方法及装置
CN106506355B (zh) * 2015-09-07 2020-06-19 中兴通讯股份有限公司 多路径路由的管理方法及装置
WO2018024214A1 (zh) * 2016-08-04 2018-02-08 北京忆恒创源科技有限公司 Io流调节方法与装置
CN107888517B (zh) * 2016-09-30 2020-08-14 华为技术有限公司 一种为主机划域的方法及设备
CN107888517A (zh) * 2016-09-30 2018-04-06 华为技术有限公司 一种为主机划域的方法及设备
CN106708445A (zh) * 2017-01-19 2017-05-24 北京腾凌科技有限公司 链路选择方法及装置
CN107515805A (zh) * 2017-08-28 2017-12-26 郑州云海信息技术有限公司 一种在主机端查看存储端portWWPN以获取映射路径的方法
US11507505B2 (en) 2017-10-25 2022-11-22 Huawei Technologies Co., Ltd. Active-active storage system and address assignment method
US11704243B2 (en) 2017-10-25 2023-07-18 Huawei Technologies Co., Ltd. Active-active storage system and address assignment method
CN108170381B (zh) * 2017-12-28 2021-01-01 湖南国科微电子股份有限公司 一种SLC Block到XLC Block数据迁移方法
CN108170381A (zh) * 2017-12-28 2018-06-15 湖南国科微电子股份有限公司 一种SLC Block到XLC Block数据迁移方法
CN112148644A (zh) * 2019-06-27 2020-12-29 伊姆西Ip控股有限责任公司 处理输入/输出请求的方法、装置和计算机程序产品
CN112148644B (zh) * 2019-06-27 2024-05-07 伊姆西Ip控股有限责任公司 处理输入/输出请求的方法、装置和计算机程序产品
CN111988169A (zh) * 2020-07-29 2020-11-24 苏州浪潮智能科技有限公司 一种云平台异常磁盘清理修复的方法、***、设备及介质
CN111988169B (zh) * 2020-07-29 2022-12-06 苏州浪潮智能科技有限公司 一种云平台异常磁盘清理修复的方法、***、设备及介质
CN113238719A (zh) * 2021-07-12 2021-08-10 苏州浪潮智能科技有限公司 一种清理主机端残留路径的方法、装置以及设备
CN113238719B (zh) * 2021-07-12 2021-10-15 苏州浪潮智能科技有限公司 一种清理主机端残留路径的方法、装置以及设备
WO2023284174A1 (zh) * 2021-07-12 2023-01-19 苏州浪潮智能科技有限公司 一种清理主机端残留路径的方法、装置、设备及存储介质

Also Published As

Publication number Publication date
US9535631B2 (en) 2017-01-03
CN104423889B (zh) 2017-06-16
US20150058558A1 (en) 2015-02-26

Similar Documents

Publication Publication Date Title
CN104423889A (zh) 一种多路径管理方法和***
US7555575B2 (en) Method and apparatus for migrating data between storage volumes of different data pattern
US9372707B2 (en) Computer, virtual machine deployment method and program
US11182258B2 (en) Data rebuild using dynamic peer work allocation
US8112596B2 (en) Management apparatus, management method and storage management system
US8639898B2 (en) Storage apparatus and data copy method
US9367265B2 (en) Storage system and method for efficiently utilizing storage capacity within a storage system
TWI497316B (zh) 透過小型計算機系統介面輸入/輸出(scsi i/o)指示提供多重路徑之方法、電腦可讀取媒體及系統
US7480780B2 (en) Highly available external storage system
US8694727B2 (en) First storage control apparatus and storage system management method
KR101196547B1 (ko) 결정론적 sas 검색 및 구성을 위한 방법
US8027263B2 (en) Method to manage path failure threshold consensus
US10229023B2 (en) Recovery of storage device in a redundant array of independent disk (RAID) or RAID-like array
US8001324B2 (en) Information processing apparatus and informaiton processing method
TW201714076A (zh) 具有介面控制機構之電子系統及其操作方法
US11665046B2 (en) Failover port forwarding between peer storage nodes
WO2019047026A1 (zh) 数据迁移的方法、***及智能网卡
EP4036735A1 (en) Method, apparatus and readable storage medium
CN105739930A (zh) 一种存储架构及其初始化方法和数据存储方法及管理装置
US7983171B2 (en) Method to manage path failure thresholds
JP2015532734A (ja) 物理ストレージシステムを管理する管理システム、物理ストレージシステムのリソース移行先を決定する方法及び記憶媒体
US20140289489A1 (en) Information processing apparatus, information processing method, storage system and non-transitory computer readable storage media
US20130073914A1 (en) Storage management systems and methods
US20210405893A1 (en) Application-based storage device configuration settings
US11693577B2 (en) Storage operation processing during data migration using migrated indicator from source storage

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20171130

Address after: Grand Cayman, Cayman Islands

Patentee after: GLOBALFOUNDRIES INC.

Address before: American New York

Patentee before: Core USA second LLC

Effective date of registration: 20171130

Address after: American New York

Patentee after: Core USA second LLC

Address before: American New York

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20170616

Termination date: 20210826

CF01 Termination of patent right due to non-payment of annual fee