CN112969993B - 用于迁移多路径逻辑装置的控制权的设备与方法 - Google Patents

用于迁移多路径逻辑装置的控制权的设备与方法 Download PDF

Info

Publication number
CN112969993B
CN112969993B CN201980073689.1A CN201980073689A CN112969993B CN 112969993 B CN112969993 B CN 112969993B CN 201980073689 A CN201980073689 A CN 201980073689A CN 112969993 B CN112969993 B CN 112969993B
Authority
CN
China
Prior art keywords
multipath
input
logic device
target
output driver
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
CN201980073689.1A
Other languages
English (en)
Other versions
CN112969993A (zh
Inventor
K·库玛
S·沙尔玛
K·古卡姆
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
Publication of CN112969993A publication Critical patent/CN112969993A/zh
Application granted granted Critical
Publication of CN112969993B publication Critical patent/CN112969993B/zh
Active 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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • 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/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • 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
    • G06F3/0611Improving I/O performance in relation to response time
    • 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
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or 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)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Stored Programmes (AREA)

Abstract

在一个实施方案中,一种设备包括主机装置,所述主机装置包括一组输入‑输出(IO)队列和当前多路径输入‑输出(MPIO)驱动程序,所述当前多路径输入‑输出驱动程序被配置为从所述一组IO队列选择用于递送至存储系统的IO操作。所述当前MPIO驱动程序被配置为将从所述主机装置至所述存储系统的逻辑单元编号的多个路径分组到多路径逻辑装置中。所述主机装置被配置为安装目标MPIO驱动程序,并且将所述多路径逻辑装置的控制权从所述当前MPIO驱动程序迁移至所述目标MPIO驱动程序,其中所述迁移包括将所述多路径逻辑装置的IO入口点从所述当前MPIO驱动程序转移至所述目标MPIO驱动程序。所述主机装置被配置为使用所述多路径逻辑装置将由所述目标MPIO驱动程序选择的IO操作递送至所述存储系统。

Description

用于迁移多路径逻辑装置的控制权的设备与方法
技术领域
领域总体涉及信息处理系统,并且更具体地,涉及信息处理系统中的存储。
背景技术
存储阵列和其他类型的存储系统常常由网络上的多个主机装置共享。给定的主机装置可包括被配置为处理输入-输出(IO)操作以便从给定的主机装置递送至存储系统的多路径输入-输出(MPIO)驱动程序。在一些情况下,给定的主机装置的用户可希望更新或更换给定的主机装置上的当前MPIO驱动程序。例如,如果已经发布了当前MPIO驱动程序的新的版本,则给定的主机装置的用户可希望将当前MPIO驱动程序更新至所述新的版本。在另一示例中,如果给定的主机装置的用户希望使用新的或不同的MPIO驱动程序,则给定的主机装置的用户可使用新的或不同的MPIO驱动程序来更换当前MPIO驱动程序。然而,对当前MPIO驱动程序的更新或更换通常在执行所述更新时要求显著和大量的应用程序停机时间,诸如电力中断、重新配置或其他类似的停机时间。
发明内容
本发明的说明性实施方案提供了用于将多路径逻辑装置的控制权从当前MPIO驱动程序迁移至目标MPIO驱动程序而不需要显著的应用程序停机时间的技术。所述迁移说明性地包括将多路径逻辑装置的IO入口点从当前MPIO驱动程序映射至目标MPIO驱动程序,这允许目标MPIO驱动程序利用与当前MPIO驱动程序相关联的多路径逻辑装置来继续IO操作,而在所述迁移期间没有显著或大量的应用程序停机时间。这些和其他实施方案克服了在更换MPIO驱动程序软件时原本可能导致的显著或大量的应用程序停机时间的问题。例如,由于目标MPIO驱动程序无缝地接管与当前MPIO驱动程序相关联的多路径逻辑装置的控制权,所以很少需要或不需要应用程序停机时间来执行将控制权从当前MPIO驱动程序迁移至目标MPIO驱动程序,并且主机装置可在所述迁移期间继续使用现有的多路径逻辑装置来将IO操作递送至存储系统。
在一个实施方案中,一种设备包括被配置为在网络上与存储系统通信的主机装置。所述主机装置包括一组IO队列和当前MPIO驱动程序,所述当前MPIO驱动程序被配置为从所述一组IO队列选择用于在所述网络上递送至存储系统的IO操作。所述当前MPIO驱动程序还被配置为将从主机装置至存储系统的逻辑单元编号的多个路径分组到多路径逻辑装置中。所述主机装置还被配置为安装目标MPIO驱动程序,并且将多路径逻辑装置的控制权从当前MPIO驱动程序迁移至目标MPIO驱动程序,其中所述迁移包括将多路径逻辑装置的IO入口点从当前MPIO驱动程序转移至目标MPIO驱动程序。所述主机装置还被配置为禁止当前MPIO驱动程序使用多路径逻辑装置,并且使用所述多路径逻辑装置将由目标MPIO驱动程序选择的IO操作递送至存储系统。
这些和其他说明性实施方案包括(不限于)设备、系统、方法和包括处理器可读存储介质的计算机程序产品。
附图说明
图1是说明性实施方案中的信息处理系统的框图,所述信息处理系统配置有用于将现有的多路径逻辑装置的控制权从当前MPIO驱动程序迁移至目标MPIO驱动程序而不需要应用程序停机时间的功能性。
图2是说明性实施方案中的用于将现有的多路径逻辑装置的控制权从当前MPIO驱动程序迁移至目标MPIO驱动程序而不需要应用程序停机时间的过程的流程图。
图3是绘示说明性实施方案中的使用由当前MPIO驱动程序控制的多路径逻辑装置在主机装置与存储阵列之间的交互路径的图。
图4是绘示说明性实施方案中的在已经将控制权迁移至目标MPIO驱动程序之后使用多路径逻辑装置在图3的主机装置与存储阵列之间的交互路径的图。
图5是另一说明性实施方案中的用于将现有的多路径逻辑装置的控制权从当前MPIO驱动程序迁移至目标MPIO驱动程序而不需要应用程序停机时间的过程的流程图。
具体实施方式
本文将参考示例性信息处理系统和相关联的计算机、服务器、存储装置和其他处理装置来描述说明性实施方案。然而,将了解,本公开的实施方案不限于用于所示出的特定说明性系统和装置配置。因此,如本文使用的术语“信息处理系统”希望在广义上理解成涵盖(例如)包括云计算和存储系统的处理系统以及包括物理处理资源与虚拟处理资源的各种组合的其他类型的处理系统。信息处理系统因此可包括(例如)至少一个数据中心,所述至少一个数据中心包括托管共享云资源的多个租户的一个或多个云。当本文在广义上使用那个术语时,术语“信息处理系统”还涵盖众多其他类型的企业和基于云的计算和存储系统。
图1示出了根据说明性实施方案而配置的信息处理系统100。信息处理系统100包括多个主机装置102-1、102-2……102-N。主机装置102在存储区域网络(SAN)104上与至少一个存储阵列105通信。存储阵列105包括多个存储装置106-1……106-M,每个存储装置存储由在主机装置102中的一者或多者上运行的一个或多个应用程序利用的数据。存储装置106说明性地被布置成一个或多个存储池。存储阵列105和其相关联的存储装置106是在本文更一般地称为“存储系统”的东西的示例。本实施方案中的此存储系统由主机装置102共享,并且因此在本文还称为“共享存储系统”。
主机装置102说明性地包括相应的计算机、服务器或能够与SAN 104的存储阵列105通信的其他类型的处理装置。例如,至少主机装置102的子集可实施为计算服务平台或其他类型的处理平台的相应的虚拟机。处于此类布置的主机装置102说明性地提供计算服务,诸如代表与主机装置102中的相应主机装置相关联的一个或多个用户中的每一者执行一个或多个应用程序。本文的术语“用户”希望在广义上理解成涵盖人类、硬件、软件或固件实体以及此类实体的组合的众多布置。可在平台即服务(PaaS)模型下为用户提供计算服务,但将了解,可使用众多其他云基础设施布置。
SAN 104的存储阵列105的存储装置106实施被配置为存储与主机装置102相关联的用户的对象的逻辑单元(LUN)。这些对象可包括文件、块或其他类型的对象。主机装置102利用读取和写入命令以及在SAN 104上传输的其他类型的命令来与存储阵列105交互。此类命令在一些实施方案中更具体地包括小型计算机系统接口(SCSI)命令,但在其他实施方案中可使用其他类型的命令。给定的IO操作在本文在广义上使用那个术语时说明性地包括一个或多个此类命令。本文对诸如“输入-输出”和“IO”等术语的提及应理解为是指输入和/或输出。因此,IO操作涉及输入和输出中的至少一者。
而且,如本文使用的术语“存储装置”希望在广义上理解成涵盖(例如)诸如LUN或其他逻辑存储卷等逻辑存储装置。可在存储阵列105中将逻辑存储装置限定为包括一个或多个物理存储装置的不同部分。存储装置106因此可被视为包括相应的LUN或其他逻辑存储卷。
主机装置102中的每一者说明性地具有至存储阵列105的多个IO路径,其中存储阵列105的存储装置106中的至少一者对于那个主机装置在所述路径中的给定一者上是可见的。存储装置106中的给定一者可以能够由给定的主机装置在多个IO路径上进行访问。
存储阵列105的存储装置106中的不同一者说明性地展现在处理IO操作过程中的不同等待时间。在一些情况下,相同的存储装置可在可借以从主机装置102中的给定一者访问存储装置的多个IO路径中的不同一者上展现不同的等待时间。
假设图1实施方案中的主机装置102、SAN 104和存储阵列105是使用至少一个处理平台来实施,每个处理平台包括一个或多个处理装置,每个处理装置具有耦合到存储器的处理器。此类处理装置可说明性地包括计算资源、存储资源和网络资源的特定布置。例如,与在其中Docker容器或其他类型的Linux容器(LXC)被配置为在虚拟机(VM)上运行的布置中一样,一些实施方案中的处理装置至少部分地利用诸如VM或LXC或以上两者的组合等虚拟资源来实施。
主机装置102和存储阵列105可在相应的不同的处理平台上实施,但众多其他布置是可能的。例如,在一些实施方案中,主机装置102和存储阵列105的至少部分在同一处理平台上实施。存储阵列105因此可至少部分地在至少实施主机装置102的子集的至少一个处理平台内实施。
可使用不同类型的多个网络来实施SAN 104以将存储系统部件互连。例如,SAN104可包括全球计算机网络(例如,诸如互联网)的一部分,但其他类型的网络可以是SAN104的部分,包括广域网(WAN)、局域网(LAN)、卫星网络、电话或有线电视网络、蜂窝网络、诸如WiFi或WiMAX网络等无线网络,或这些和其他类型的网络的各个部分或组合。一些实施方案中的SAN 104因此包括多种不同类型的网络的组合,每种网络包括被配置为使用因特网协议(IP)或其他相关通信协议进行通信的处理装置。
作为更具体的示例,一些实施方案可利用一种或多种高速本地网络,其中相关联的处理装置利用那些装置的高速外围部件互连(PCIe)卡和诸如InfiniBand、千兆位以太网或光纤通道等连网协议彼此通信。本领域技术人员将了解,在给定实施方案中,众多替代性连网布置是可能的。
主机装置102包括相应组的IO路径109-1、109-2……109-N、相应组的IO队列110-1、110-2……110-N、相应的当前MPIO驱动程序112-1、112-2……112-N以及相应的目标MPIO驱动程序113-1、113-2……113-N。
如本文使用,IO路径109-1到109-N涉及关于在给定的主机装置102-1到102-N与一个或多个存储阵列105之间的IO路径的信息或所述IO路径的列表。此信息可包括(例如)发起者-目标对或可限定在给定的主机装置102与一个或多个存储阵列105之间的IO路径的其他类似信息。此信息可由给定的主机装置的MPIO驱动程序使用,以使用所限定的IO路径向一个或多个存储阵列105传输数据或从所述一个或多个存储阵列接收数据。
虽然每个主机装置102被说明为具有相应的目标MPIO驱动程序113,但在一些实施方案中,可将此类目标MPIO驱动程序113安装在主机装置102中的一者或主机装置102的子集上。例如,可将目标MPIO驱动程序113安装在用户希望将与当前MPIO驱动程序112相关联的多路径逻辑装置114的控制权迁移至目标MPIO驱动程序113的主机装置102上。
MPIO驱动程序通常将从主机至逻辑单元编号(LUN)的所有IO路径109分组到被称为多路径逻辑装置114的单个逻辑装置中。例如,当前MPIO驱动程序112-1、112-2……112-N可具有相应的多路径逻辑装置114-1、114-2……114-N,每个多路径逻辑装置将用于相应的主机装置102-1、102-2……102-N的IO路径109的至少一部分分组在一起。在一些实施方案中,每个相应的当前MPIO驱动程序112-1、112-2……112-N可包括多个多路径逻辑装置114-1、114-2……114-N。表示每个IO路径109的单独的块装置被称为本机装置。应用程序将多路径逻辑装置114用于IO操作,使得IO操作可跨所有可用的IO路径109而分布。当IO路径出故障时,MPIO驱动程序将通常将IO操作重新引导至多路径逻辑装置114中的其他活的IO路径。
本文描述的MPIO驱动程序可包括(例如)原本常规的MPIO驱动程序,诸如来自DellEMC的PowerPath驱动程序,其按照本文公开的方式经适当地修改以实施用于将多路径逻辑装置的控制权从当前MPIO驱动程序迁移至目标MPIO驱动程序而不需要显著的应用程序停机时间的功能性。来自其他驱动程序供应商的其他类型的MPIO驱动程序可经适当地修改以并入本文公开的用于迁移多路径逻辑装置的控制权的功能性。
包括MPIO驱动程序的多路径层支持在主机装置102中的每一者与存储阵列105之间的多个IO路径109。这些IO路径109说明性地与相应的发起者-目标对相关联,其中每个发起者包括诸如主机装置102-1的给定的主机装置的主机总线适配器(HBA)或其他发起实体,并且每个目标包括与存储阵列105的存储装置106中的一者或多者相对应的端口或其他目标实体。如上文所述,存储装置106说明性地包括LUN或其他类型的逻辑存储装置。
可在系统100中的主机装置102与存储阵列105之间添加或删除IO路径109。例如,对存储阵列105的存储装置106的至少一部分的相应的添加或删除可导致添加从主机装置102-1至存储阵列105的一个或多个新的IO路径109-1或删除从主机装置102-1至存储阵列105的一个或多个现有的IO路径109-1。
还可由于分区和掩码改变或由存储管理员或其他用户执行的其他类型的存储系统重新配置而发生添加或删除IO路径。
在一些实施方案中,连同向包括多个存储阵列的存储系统添加新的存储阵列或从所述存储系统删除现有的存储阵列一起,可能连同针对迁移操作和复制操作中的至少一者对存储系统的配置一起而添加或删除IO路径。
例如,存储系统可包括第一存储阵列和第二存储阵列,其中在从存储系统移除第一存储阵列之前将数据从第一存储阵列迁移至第二存储阵列。
作为另一示例,存储系统可包括产生存储阵列和恢复存储阵列,其中将数据从产生存储阵列复制至恢复存储阵列,以便在涉及产生存储阵列的故障的情况下可用于数据恢复。
在这些情形和其他情形下,可在需要时由多路径层的MPIO驱动程序执行IO路径发现扫描,以便发现新的IO路径的添加或现有的IO路径的删除。
可利用诸如PowerPath驱动程序等常规的MPIO驱动程序的已知的功能性来执行给定的IO路径发现扫描。
在一些实施方案中,IO路径发现扫描还可被配置为识别与在路径发现扫描中识别的一个或多个新的IO路径相关联的一个或多个新的LUN或其他逻辑存储卷。IO路径发现扫描可包括(例如)一个或多个总线扫描,所述一个或多个总线扫描被配置为发现已经被添加至存储阵列105的任何新的LUN的出现,并且发现已经从存储阵列105删除的任何现有的LUN的消失。
对于在上文描述的类型的IO路径发现扫描中识别的一个或多个新的IO路径109中的每一者,主机装置102中的对应一者被配置为针对那个IO路径109执行主机注册操作。针对给定的新的IO路径109的主机注册操作说明性地向存储阵列105提供以下通知:主机装置102中的对应一者已经发现新的路径。
MPIO驱动程序利用上文描述的多个IO路径109将IO操作从主机装置102发送至存储阵列105。
例如,MPIO驱动程序被配置为从其对应的一组IO队列110-1选择IO操作以便在SAN104上递送至存储阵列105。存储在所述一组IO队列110-1中的IO操作的来源说明性地包括在主机装置102-1上执行的一个或多个应用程序的相应进程。在系统100的给定实现方式中可存在IO操作的其他类型的来源。
当前MPIO驱动程序112和目标MPIO驱动程序113共同地包括主机装置102的多路径层。目标MPIO驱动程序113提供了以下功能性:例如使用在目标MPIO驱动程序113内实施的相应的MPIO驱动程序迁移逻辑115-1、115-2……115-N将多路径逻辑装置114的控制权从当前MPIO驱动程序112迁移至目标MPIO驱动程序113而不需要显著的应用程序停机时间。在一些实施方案中,MPIO驱动程序迁移逻辑115可在与当前MPIO驱动程序112和目标MPIO驱动程序113分开的主机装置102内实施,例如存储在主机装置的存储器中。在一些实施方案中,例如,主机装置102可提供用于使用MPIO驱动程序迁移逻辑115将多路径逻辑装置的控制权从当前MPIO驱动程序迁移至目标MPIO驱动程序的功能性,而不依赖于目标MPIO驱动程序113提供所述功能性。虽然在本文相对于目标MPIO驱动程序113描述MPIO驱动程序迁移逻辑115的实现方式,但在一些实施方案中,主机装置102还可或可替代地单独地实施MPIO驱动程序迁移逻辑115中的一些或全部。
由于应用程序连续不断地将多路径逻辑装置114用于IO操作,所以在执行移除的情况下在不中断IO操作或不导致使用主机装置102的应用程序中的大量的或显著的应用程序停机时间的情况下移除/更换当前MPIO驱动程序112可具有挑战性。在现有的系统中,由于多路径逻辑装置114是由当前MPIO驱动程序112创建的实体,所以在不首先卸载和移除对应的多路径逻辑装置114的情况下无法更换当前MPIO驱动程序112。
用户可出于许多原因而希望修改或更换当前MPIO驱动程序112,所述原因包括(例如)更好的IO吞吐量、额外的特征或其他类似的原因。由于由当前MPIO驱动程序112创建的多路径逻辑装置114紧密地耦合到现有的系统中的当前MPIO驱动程序112,所以用户不能在不引发显著和大量的应用程序停机时间的情况下修改或更换当前MPIO驱动程序112。
MPIO驱动程序迁移逻辑115被配置为将主机装置102中的多路径逻辑装置114的控制权从使用当前MPIO驱动程序112将IO操作选择和递送至存储阵列105迁移至使用目标MPIO驱动程序113选择和递送所述IO操作。在不引发在正在执行迁移的主机装置102上运行的应用程序的显著或大量的停机时间以及在一些实施方案中在不引发所述应用程序的任何停机时间的情况下执行此迁移。例如,MPIO驱动程序迁移逻辑115被配置为通过将多路径逻辑装置114的控制权从当前MPIO驱动程序112转移至目标MPIO驱动程序113来执行所述迁移。
与上述现有的系统不同,在现有的系统中,切换至目标MPIO驱动程序113要求卸载由当前MPIO驱动程序112创建的多路径逻辑装置114并且由目标MPIO驱动程序生成或创建新的多路径逻辑装置,替代地,MPIO驱动程序迁移逻辑115再使用已经由当前MPIO驱动程序112生成或创建的多路径逻辑装置114。在MPIO驱动程序迁移逻辑115下,目标MPIO驱动程序113辨识出由当前MPIO驱动程序112创建的多路径逻辑装置114并且取得他们的控制权而不是创建其自身的新的多路径逻辑装置。此无缝迁移允许目标MPIO驱动程序113保留在正在执行迁移的主机装置上运行的应用程序的IO操作流。
现在将参考图2更详细地描述MPIO驱动程序迁移逻辑115的技术和功能性的说明性实施方案。
如图2中所示的过程包括步骤200到206,并且适合于在系统100中使用,但更一般适用于包括多个主机装置和共享存储系统的其他类型的系统。假设在此实施方案中的共享存储系统包括具有多个存储装置的至少一个存储阵列。所述存储装置可包括逻辑存储装置,诸如LUN或其他逻辑存储卷。
在200处,主机装置102可安装目标MPIO驱动程序113。在一些实施方案中,可已经将目标MPIO驱动程序113安装在主机装置102上。例如,目标MPIO驱动程序113可已经在主机装置102上活动,并且可例如使用其自身的多路径逻辑装置从IO队列110选择用于递送至SAN 104的IO操作。在一些实施方案中,MPIO驱动程序迁移逻辑115可确定当前MPIO驱动程序112和目标MPIO驱动程序113是否都存在于主机装置102上。例如,如果目标MPIO驱动程序113尚未被安装在主机装置102上或不存在当前MPIO驱动程序112,则MPIO驱动程序迁移逻辑115可中止,因为对多路径逻辑装置114的控制权的迁移不可发生。
在一些实施方案中,连同其中目标MPIO驱动程序113通常可创建新的多路径逻辑装置的对目标MPIO驱动程序113的安装一起或在所述安装目标MPIO驱动程序期间,如果当前MPIO驱动程序112已经包括可迁移至目标MPIO驱动程序113的控制的对应的多路径逻辑装置114,则目标MPIO驱动程序113可以可替代地不创建新的多路径逻辑装置。
在202处,MPIO驱动程序迁移逻辑115将多路径逻辑装置114的控制权从当前MPIO驱动程序112迁移至目标MPIO驱动程序113。
例如,在一些实施方案中,MPIO驱动程序迁移逻辑115可获得或创建数据结构,诸如阵列、列表或其他数据结构,所述数据结构包含关于控制权将要被迁移至目标MPIO驱动程序113的每个多路径逻辑装置114的信息。所述数据结构可包含关于在多路径逻辑装置114中的每一者中包括的本机路径的信息。例如,用户可指定哪些多路径逻辑装置114将包括在数据结构中以进行迁移。在一些实施方案中,用户可指定将迁移在当前MPIO驱动程序112的控制下的所有多路径逻辑装置114的控制权,并且可将在当前MPIO驱动程序112的控制下的每个多路径逻辑装置114添加至数据结构或包括在数据结构中。
数据结构中的每个多路径逻辑装置条目可包括识别多路径逻辑装置114的信息。例如,数据结构中的条目可包括装置主编号、装置次编号、装置唯一标识符、其组合或识别给定的多路径逻辑装置114的任何其他信息。在一些实施方案中,在数据结构的条目中包含的信息可唯一地识别给定的多路径逻辑装置114。作为示例,装置唯一标识符可包括网络寻址机构标识符(NAA ID),诸如NAA 6ID。在一些实施方案中,数据结构可存储在数据库或持久文件中。用于多路径逻辑装置114的数据结构中的条目可包括(例如)类似于以下伪代码的结构:
在一些实施方案中,可向目标MPIO驱动程序113发送IO控制消息(IOCTL),所述IO控制消息向目标MPIO驱动程序113指示需要执行将给定的多路径逻辑装置114的控制权从当前MPIO驱动程序112迁移至目标MPIO驱动程序113。在一些实施方案中,所述消息可提供或包含关于将被迁移的给定的多路径逻辑装置114的信息,诸如存储在数据结构中的针对给定的多路径逻辑装置114的条目的信息的一些或全部。在一些实施方案中,所述消息可仅仅指示需要迁移哪些多路径逻辑装置114,并且目标MPIO驱动程序113可从数据结构检索信息。
作为迁移过程的部分,MPIO驱动程序迁移逻辑115可使用在数据结构中找到的与那个多路径逻辑装置114相对应的唯一ID来扫描每个多路径逻辑装置114的IO路径109,并且可生成对应的IO路径109的映射。
可于在数据结构中找到的每个多路径逻辑装置114(例如,控制权将被迁移至目标MPIO驱动程序113的每个多路径逻辑装置114)的目标MPIO驱动程序113中创建IO堆叠。
作为迁移过程的部分,可通过一种方式部分冻结或挂起给定的多路径逻辑装置114以免作用于传入的IO操作,使得将任何新的传入的IO操作展现于队列中,诸如IO队列110。例如,可暂时保持对与IO操作的处理相关联的给定的多路径逻辑装置114的数据结构上的锁定以迫使传入的IO操作进入队列。在一些实施方案中,可例如在Linux系统上保持请求队列自旋锁。
在保持锁定时,将继续正常处理给定的多路径逻辑装置114的任何未解决的IO操作直到完成为止,同时将向所述队列添加任何新的IO操作。
在一些实施方案中,可将发出IO操作的过程置于休眠,使得将IO操作置于队列中不会耗尽主机装置102的资源。
连同对未解决的IO操作的锁定和处理一起,可将给定的多路径逻辑装置114的IO入口点改变为目标MPIO驱动程序113入口和策略功能。例如,可将IO入口点映射至目标MPIO驱动程序113,可建立从目标MPIO驱动程序113至IO入口点的链接,或可对给定的多路径逻辑装置114的IO入口点作出其他类似的改变。可针对控制权将被迁移至目标MPIO驱动程序113的多路径逻辑装置114中的每一者执行此过程。
在204处,主机装置将当前MPIO驱动程序112中的已经被迁移至目标MPIO驱动程序113的控制的多路径逻辑装置114列入黑名单,以确保禁止当前MPIO驱动程序112使用已迁移的多路径逻辑装置114进行进一步的IO处理。例如,可向当前MPIO驱动程序112未被授权使用的装置列表添加已迁移的多路径逻辑装置114。在一些实施方案中,当前MPIO驱动程序112可以可替代地包括白名单(例如,被批准或被授权的装置),并且可从所述白名单移除已经迁移的多路径逻辑装置114以禁止让当前MPIO驱动程序112使用。在一些实施方案中,如果在当前MPIO驱动程序112的控制下的所有多路径逻辑装置114都已经被迁移至目标MPIO驱动程序113的控制(或另一驱动程序的控制),则可从系统卸载当前MPIO驱动程序112。例如,如果不存在与当前MPIO驱动程序112相关联的IO入口点,则将不会有IO操作通过当前MPIO驱动程序112,并且可卸载当前MPIO驱动程序112。
在206处,目标MPIO驱动程序113例如通过以下操作来恢复控制权已经被迁移的多路径逻辑装置114的IO操作:释放对那些多路径逻辑装置114的锁定,并且使用已经被迁移至目标MPIO驱动程序113的控制的多路径逻辑装置114将IO操作递送至存储阵列105。
在一些实施方案中,例如,在其中主机装置使用小型计算机系统接口持久保留(SCSI PR)密钥来向多路径逻辑装置114提供保护的集群环境中,目标MPIO驱动程序113的责任是管理属于同一多路径逻辑装置114的所有IO路径109并且向所述所有IO路径应用密钥。连同主机装置、MPIO驱动程序、存储阵列或系统的其他部分的重启一起,例如,可由于将一个或多个多路径逻辑装置114迁移至目标MPIO驱动程序113的控制而执行额外的过程。
例如,当目标MPIO驱动程序113连同系统启动一起重新起动时,其通常将创建其自身的对应的多路径逻辑装置。当创建多路径逻辑装置时,目标MPIO驱动程序113可检查正在创建的给定的多路径逻辑装置的控制权是否先前从当前MPIO驱动程序112迁移。
作为示例,目标MPIO驱动程序113可将连同系统启动一起创建的多路径逻辑装置的唯一ID与和数据结构中的多路径逻辑装置条目相关联的唯一ID进行比较。如果所创建的多路径逻辑装置的唯一ID匹配于与数据结构中的多路径逻辑装置条目中的一者相关联的唯一ID,则目标MPIO驱动程序113可照常继续创建多路径逻辑装置,并且可进一步在曾由当前MPIO驱动程序112用来与多路径逻辑装置114通信的目录中创建至匹配的多路径逻辑装置114的软链接。
以此方式,主机装置102不需要重新配置来使用由目标MPIO驱动程序113连同系统启动一起创建的新的多路径逻辑装置。
可在共享存储阵列的相应的额外的主机装置中执行图2过程的单独示例。
仅通过说明性示例呈现连同图2的流程图一起描述的特定处理操作和其他系统功能性,并且不应理解为以任何方式限制本公开的范围。替代性实施方案可使用涉及主机装置、存储系统和MPIO驱动程序迁移逻辑的其他类型的处理操作。例如,可在其他实施方案中改变过程步骤的排序,或者可至少部分地彼此同时地而不是连续地执行某些步骤。而且,可周期性地重复过程步骤中的一者或多者,或者可彼此并行地执行所述过程的多个示例以便实施给定的信息处理系统内的多个不同的MPIO驱动程序迁移逻辑布置。
可至少部分地以存储在存储器中并且由诸如计算机或服务器的处理装置的处理器执行的一个或多个软件程序的形式实施诸如连同图2的流程图一起描述的功能性。如将在本文描述,在其中体现有一个或多个软件程序的可执行程序代码的存储器或其他存储装置是在本文更一般称为“处理器可读存储介质”的东西的示例。
可在实施图2的过程和其他说明性实施方案的过程中使用这些和其他特征的众多替代性布置。
本文公开的说明性实施方案可相对于常规的布置提供若干显著的优势。例如,一些实施方案将一个或多个主机装置的多路径层配置成包括以下功能性:将多路径逻辑装置的控制权从当前MPIO驱动程序迁移至目标MPIO驱动程序,而不需要相关联的存储阵列或其他类型的存储系统中的显著的应用程序停机时间。此类布置中的多路径层可被配置为将多路径逻辑装置的控制权从当前MPIO驱动程序迁移至目标MPIO驱动程序。
现在参考图1和图3,现在将描述图3的图,其绘示使用由当前MPIO驱动程序112控制的多路径逻辑装置114在主机装置102与存储阵列105之间的交互路径。
例如,在用户空间300中,驻留在主机装置102上的应用程序302提交用于处理的IO操作。当前MPIO驱动程序112可经由多路径逻辑装置304选择用于递送的IO操作,从而在应用程序302与多路径逻辑装置304之间建立通信。
在内核空间306中,由当前MPIO驱动程序112控制的多路径逻辑装置304的IO入口点308被配置为接收选定的IO操作,并且将所述选定的IO操作提交给当前MPIO驱动程序112的IO负载平衡部件310。IO负载平衡部件310例如通过将IO操作指派给多路径逻辑装置304的不同路径312-A、312-B、312-C……312-N而执行负载平衡。例如,如果选择了m个IO操作,则可将它们分开至若干路径,其中(例如)路径312-A接收一个或多个IO操作,路径312-B接收一个或多个IO操作,路径312-C接收一个或多个IO操作……,并且路径312-N接收一个或多个IO操作。在一些实施方案中,给定路径可不接收IO操作、所有m个IO操作或所述m个IO操作的任何部分。可例如基于每个路径上的当前负载或通过由MPIO驱动程序在负载平衡期间通常使用的任何其他方式来确定指派给每个路径的IO操作的数目。
较低层级装置驱动程序314被配置为从路径312接收IO操作,并且将所述IO操作转移至存储阵列105的目标LUN 316。
现在参考图1和图4,现在将描述图4的图,其绘示在已经将控制权迁移至目标MPIO驱动程序113之后使用与参考图3所描述的相同的多路径逻辑装置在主机装置102与存储阵列105之间的交互路径。
例如,在用户空间300中,驻留在主机装置102上的应用程序302提交用于处理的IO操作。目标MPIO驱动程序113可经由在图3中发现的相同的多路径逻辑装置304选择用于递送的IO操作,从而在应用程序302与多路径逻辑装置304之间建立通信。
在内核空间306中,在迁移之后,多路径逻辑装置304的IO入口点308现在由目标MPIO驱动程序113控制,并且被配置为接收选定的IO操作并且将所述选定的IO操作提交给目标MPIO驱动程序113的IO负载平衡部件410而不是IO负载平衡部件310。如上文描述,IO负载平衡部件410例如通过将IO操作指派给多路径逻辑装置304的不同路径312-A、312-B、312-C……312-N而执行负载平衡。由于目标MPIO驱动程序113现在控制多路径逻辑装置304,所以在路径312之间的负载平衡可不同于由当前MPIO驱动程序112执行的负载平衡。
较低层级装置驱动程序314被配置为从路径312接收IO操作,并且将所述IO操作转移至存储阵列105的目标LUN 316。
从图3和图4中看到,可无缝地执行将多路径逻辑装置304的控制权从当前MPIO驱动程序112的控制迁移至目标MPIO驱动程序113,而不引发从主机装置102的应用程序302至存储阵列105的IO操作流的显著或大量的中断。
现在将参考图5更详细地描述MPIO驱动程序迁移逻辑115的技术和功能性的额外的说明性实施方案。
如图5中所示的过程包括步骤500到522,并且适合于在系统100中使用,但更一般适用于包括多个主机装置和共享存储系统的其他类型的系统。假设在此实施方案中的共享存储系统包括具有多个存储装置的至少一个存储阵列。所述存储装置可包括逻辑存储装置,诸如LUN或其他逻辑存储卷。
在500处,例如,如上文参考图2所描述,主机装置102可安装目标MPIO驱动程序113。
在502处,MPIO驱动程序迁移逻辑115确定是否存在需要被迁移至目标MPIO驱动程序113的控制的任何现有的多路径逻辑装置114。如果没有现有的多路径逻辑装置114要迁移,则方法可在504处结束。
在506处,如果仍有现有的多路径逻辑装置114要迁移,则MPIO驱动程序迁移逻辑115可获得现有的多路径逻辑装置114的唯一ID。例如,MPIO驱动程序迁移逻辑115可获得或创建包含若干条目的数据结构,所述条目包括关于控制权将被迁移至目标MPIO驱动程序113的每个多路径逻辑装置114的信息,如上文参考图2所描述。此信息可包括(例如)与现有的多路径逻辑装置114相对应的唯一ID。
在508处,可向目标MPIO驱动程序113发送IOCTL消息,所述IOCTL消息向目标MPIO驱动程序113指示需要执行将给定的多路径逻辑装置114的控制权从当前MPIO驱动程序112迁移至目标MPIO驱动程序113,例如,如上文参考图2所描述。
在510处,MPIO驱动程序迁移逻辑115可获得现有的多路径逻辑装置114的本机IO路径的列表。
在512处,MPIO驱动程序迁移逻辑115可确定所获得的唯一ID的对应的多路径逻辑装置是否存在于目标MPIO驱动程序113中。
在514处,如果对应的多路径逻辑装置存在于所获得的唯一ID的目标MPIO驱动程序113中,则由MPIO驱动程序迁移逻辑115从目标MPIO驱动程序113删除或以其他方式移除对应的多路径逻辑装置。在一些实施方案中,还可由MPIO驱动程序迁移逻辑115从目标MPIO驱动程序113删除或以其他方式销毁或移除与对应的多路径逻辑装置相关联的IO堆叠。
在516处,如果没有对应的多路径逻辑装置存在于所获得的唯一ID的目标MPIO驱动程序113中(步骤512的否)或对应的多路径逻辑装置存在于目标MPIO驱动程序113中但已经被删除或以其他方式移除(步骤514),则由MPIO驱动程序迁移逻辑115在目标MPIO驱动程序113中创建现有的多路径逻辑装置114的新的IO堆叠。
在518处,MPIO驱动程序迁移逻辑115将现有的多路径逻辑装置114的IO入口点改变为目标MPIO驱动程序113,例如,如上文参考图2所描述。
在520处,MPIO驱动程序迁移逻辑115在目标MPIO驱动程序113中创建现有的多路径逻辑装置114的本机IO路径的映射。
在522处,MPIO驱动程序迁移逻辑115将关于已迁移的多路径逻辑装置114的信息存储在数据存储库中,例如,与主机装置102相关联的数据存储库。所述方法随后返回到502以确定是否还存在需要将控制权迁移至目标MPIO驱动程序113的现有的多路径逻辑装置114。目标MPIO驱动程序113还可恢复已经如上文描述迁移了控制权的任何已迁移的多路径逻辑装置114的IO操作。
可在共享存储阵列的相应的额外的主机装置中执行图5过程的单独示例。
仅通过说明性示例呈现连同图5的流程图一起描述的特定处理操作和其他系统功能性,并且不应理解为以任何方式限制本公开的范围。替代性实施方案可使用涉及主机装置、存储系统和MPIO驱动程序迁移逻辑的其他类型的处理操作。例如,可在其他实施方案中改变过程步骤的排序,或者可至少部分地彼此同时地而不是连续地执行某些步骤。而且,可周期性地重复过程步骤中的一者或多者,或者可彼此并行地执行所述过程的多个示例以便实施给定的信息处理系统内的多个不同的MPIO驱动程序迁移逻辑布置。
可至少部分地以存储在存储器中并且由诸如计算机或服务器的处理装置的处理器执行的一个或多个软件程序的形式实施诸如连同图5的流程图一起描述的功能性。如将在本文描述,在其中体现有一个或多个软件程序的可执行程序代码的存储器或其他存储装置是在本文更一般称为“处理器可读存储介质”的东西的示例。
与用于将多路径逻辑装置的控制权从当前MPIO驱动程序迁移至目标MPIO驱动程序而不需要显著的应用程序停机时间的功能性相关联的上述功能至少部分地在其MPIO驱动程序迁移逻辑115的控制下执行。例如,MPIO驱动程序迁移逻辑115说明性地被配置为控制在上文连同图2和图5以及图3和图4的图一起描述的流程图中示出的过程的部分的执行。
假设以类似于上文和本文其他地方针对第一当前MPIO驱动程序112-1和第一目标MPIO驱动程序113-1描述的方式来配置其他MPIO驱动程序112和113中的每一者。系统100的其他主机装置102因此还被配置为在SAN 104上与存储阵列105通信,并且此类其他主机装置的MPIO驱动程序112和113各自类似地被配置为从多组IO队列110中的其对应一者选择用于在SAN 104上递送至存储阵列105的IO操作,并且执行所公开的用于将多路径逻辑装置114的控制权从当前MPIO驱动程序112迁移至目标MPIO驱动程序113而不需要显著的应用程序停机时间的功能性。因此,假设上文在第一MPIO驱动程序112-1和113-1的背景下描述的功能性类似地由其他MPIO驱动程序112-2和113-2到112-N和113-N中的每一者执行以用于迁移相应的多路径逻辑装置114-1到114-N的控制权。
MPIO驱动程序112和113可另外利用众所周知的MPIO功能性来配置,所述MPIO功能性诸如为在以引用的方式并入本文的K.Piepho的“Dell EMC SC Series Storage:Microsoft Multipath I/O”(Dell EMC Engineering,2017年6月)中描述的MPIO功能性。此类常规的MPIO功能性在本文公开的说明性实施方案中经适当地修改以支持将多路径逻辑装置114的控制权从当前MPIO驱动程序112迁移至目标MPIO驱动程序113而不需要显著的应用程序停机时间。
虽然在一些实施方案中主机装置102用来与存储阵列105通信的某些命令说明性地包括SCSI命令,但在其他实施方案中可使用其他类型的命令和命令格式。例如,一些实施方案可利用与在以引用的方式并入本文的NVMe规范(修订1.3,2017年5月)中描述的NVMExpress(NVMe)相关联的命令特征和功能性来实施IO操作。在本文公开的说明性实施方案中可利用的此类型的其他存储协议包括NVMe over Fabric,其还称为NVMeoF。
如先前指示,在不使用本文公开的用于迁移多路径逻辑装置的控制权的功能性的情况下,许多存储系统将需要大量的或显著的应用程序停机时间来更新、升级或以其他方式改变它们的MPIO驱动程序。这导致存储系统中以及共享那个存储系统的主机装置中的低效。
在本文的说明性实施方案中通过以下方式有利地克服此类缺陷:利用MPIO驱动程序迁移逻辑115来实施如上文描述的用于将多路径逻辑装置114的控制权从当前MPIO驱动程序112迁移至目标MPIO驱动程序113而不需要显著的应用程序停机时间的功能性。
假设本实施方案中的存储阵列105包括使用快闪存储器或存储阵列105的其他类型的非易失性存储器实施的持久性存储器。更具体的示例包括基于NAND的快闪存储器或其他类型的非易失性存储器,诸如电阻性RAM、相变存储器、自旋力矩转移磁-电阻RAM(STT-MRAM)和Intel的基于3D XPointTM存储器的OptaneTM装置。还假设所述持久性存储器与存储阵列105的存储装置106分开,但在其他实施方案中,所述持久性存储器可实施为存储装置106中的一者或多者的指定部分。例如,在一些实施方案中,存储装置106可包括基于快闪的存储装置,与在涉及全快闪存储阵列的实施方案中一样。
本实施方案中的存储阵列105还包括说明性地被配置为利用上述持久性存储器的额外部件,诸如响应时间控制模块120和IO操作优先级队列122。例如,响应时间控制模块120可用于至少部分地基于由存储阵列105存储在其持久性存储器中的服务水平目标(SLO)信息而针对特定IO操作实施基于存储阵列的响应时间调整。响应时间控制模块120与IO操作优先级队列122联合操作。
存储阵列105利用其IO操作优先级队列122来提供IO操作的不同性能水平。例如,IO操作优先级队列122可具有相应的不同优先级水平。存储阵列105可被配置为通过向IO操作优先级队列122中的不同IO操作优先级队列指派IO操作中的不同IO操作而提供IO操作中的不同IO操作的不同优先级水平。IO操作优先级队列122说明性地与用于处理存储阵列105中的IO操作的相应SLO相关联。
如以引用的方式并入本文的在2017年12月21日提交且名称为“Storage Systemwith Input-Output Performance Control Utilizing Application ProcessDetection”的美国专利申请序列号15/849,828中所公开,可在向IO操作优先级队列122中的不同IO操作优先级队列指派IO操作中的不同IO操作的过程中使用过程标签。
如上文提及,在主机装置102与存储阵列105之间的通信可利用PCIe连接或在一个或多个网络上实施的其他类型的连接。例如,说明性实施方案可使用接口,诸如串行附接SCSI(SAS)和串行ATA(SATA)。在其他实施方案中可使用众多其他接口和相关联的通信协议。
存储阵列105在一些实施方案中可实施为呈基于云的系统的形式的云基础设施的部分,所述基于云的系统诸如为Amazon的网络服务(AWS)系统。可用于提供存储阵列105的至少部分和可能系统100的其他部分的基于云的系统的其他示例包括谷歌的云平台(GCP)和微软的Azure。
存储阵列105可另外或可替代地被配置为实施多层存储系统的多个不同的存储层。举例来说,给定的多层存储系统可包括使用快闪存储装置实施的快速层或性能层,以及使用硬盘驱动器装置实施的容量层。如本领域技术人员将显而易见的,在其他实施方案中可使用广泛多种其他类型的基于服务器的快闪存储装置和多层存储系统。在给定的存储层中使用的特定存储装置可依据给定实施方案的特定需求而变,并且可在单个存储层内使用多种不同的存储装置类型。如先前指示,本文使用的术语“存储装置”希望在广义上来理解,并且因此可涵盖(例如)磁盘驱动器、快闪驱动器、固态驱动器、混合驱动器或其他类型的存储产品和装置,或其部分,并且说明性地包括诸如LUN的逻辑存储装置。
作为另一示例,存储阵列105可用于在包括通过一个或多个网络互连的多个存储节点的群集存储系统中实施一个或多个存储节点。
因此应明白,本文使用的术语“存储阵列”希望在广义上来理解,并且可涵盖经适当地重新配置以支持如本文公开的将多路径逻辑装置的控制权从当前MPIO驱动程序迁移至目标MPIO驱动程序而不需要显著的应用程序停机时间的市售的存储阵列的多个不同的示例。
例如,存储阵列105可包括一个或多个诸如来自Dell EMC的市售的Symmetrix/>和UnityTM存储阵列的存储阵列。可用于实施说明性实施方案中的给定存储系统的其他类型的存储产品包括:软件限定的存储产品,诸如ScaleIOTM;云存储产品,诸如弹性云存储(ECS);基于对象的存储产品,诸如Atmos;扩展全快闪存储阵列,诸如XtremIOTM;以及扩展NAS群集,包括/>平台节点和相关联的加速器,以上全部都来自Dell EMC。这些和其他存储产品中的多者的组合也可用于实施说明性实施方案中的给定存储系统。
这些和其他存储系统可以是在本文更一般地称为处理平台的东西的部分,所述处理平台包括一个或多个处理装置,每个处理装置包括耦合到存储器的处理器。给定的此类处理装置可对应于一个或多个虚拟机或其他类型的虚拟化基础设施,诸如Docker容器或其他类型的LXC。如上文指示,在系统100的此类元件之间的通信可在一个或多个网络上进行。
如本文使用的术语“处理平台”希望在广义上理解成通过说明而非限制的方式涵盖被配置为在一个或多个网络上通信的多组处理装置和相关联的存储系统。例如,主机装置102的分布式实现方式是可能的,其中主机装置102中的某些主机装置驻留在处于第一地理位置的一个数据中心中,而主机装置102中的其他主机装置驻留在处于可能远离所述第一地理位置的一个或多个其他地理位置的一个或多个其他数据中心中。因此,在系统100的一些实现方式中,有可能主机装置102中的不同主机装置驻留在与存储阵列105不同的数据中心中。
主机装置102和/或存储阵列105的众多其他分布式实现方式是可能的。因此,还可跨多个数据中心以分布方式实施存储阵列105。
将了解,仅举例呈现说明性实施方案的这些和其他特征,并且不应以任何方式理解为具限制性。因此,在其他实施方案中可使用不同数目、类型和布置的系统部件,诸如主机装置102、SAN 104、存储阵列105、存储装置106、多组IO队列110、MPIO驱动程序112和MPIO驱动程序迁移逻辑115。
还应理解,在图1中说明的系统100中实施的特定组模块和其他部件仅是举例呈现。在其他实施方案中,可使用仅这些部件的子集或额外组或替代组部件,并且此类部件可展现替代性功能性和配置。
将了解,上文描述的特定优势与特定说明性实施方案相关联,并且不需要存在于其他实施方案中。而且,在附图中说明以及在上文描述的特定类型的信息处理系统特征和功能性仅是示例性的,并且在其他实施方案中可使用众多其他布置。
上面提到可使用一个或多个处理平台来实施本文公开的信息处理系统的部分。现在将更详细地描述此类平台的说明性实施方案。在其他实施方案中,这些和其他处理平台可用于实施其他信息处理系统的至少部分。给定的此类处理平台包括至少一个处理装置,所述至少一个处理装置包括耦合到存储器的处理器。
可用于实施信息处理系统的至少一部分的处理平台的一个说明性实施方案包括云基础设施,所述云基础设施包括使用在物理基础设施上运行的管理程序实施的虚拟机。所述云基础设施还包括在管理程序的控制下在虚拟机中的相应者上运行的多组应用程序。还有可能使用多个管理程序,每个管理程序使用至少一个基础物理机器来提供一组虚拟机。可利用由一个或多个管理程序提供的不同组虚拟机来配置系统的各种部件的多个示例。
这些和其他类型的云基础设施可用于提供在本文还称为多租户环境的东西。说明性地实施诸如虚拟机或其部分的一个或多个系统部件以供此类多租户环境的租户使用。
如本文公开的云基础设施可包括基于云的系统,诸如Amazon的网络服务、谷歌的云平台和微软的Azure。在此类系统中提供的虚拟机可用于在说明性实施方案中实施多层存储系统的快速层或其他前端层。可使用诸如Amazon S3、谷歌的云平台云存储以及微软的Azure Blob存储的一个或多个对象存储来实施此类多层存储系统的容量层或其他后端层。
在一些实施方案中,云基础设施另外或可替代地包括使用一个或多个容器主机装置的相应的操作系统内核控制群而说明性地实施的多个容器。例如,云基础设施的给定容器说明性地包括Docker容器或使用内核控制群实施的其他类型的LXC。所述容器可在多租户环境中的虚拟机上运行,但其他布置是可能的。可利用所述容器来实施系统100内的多种不同类型的功能性。例如,可使用容器来实施基于云的系统的相应的计算节点或存储节点。同样,可与诸如使用管理程序实施的虚拟机的其他虚拟化基础设施组合地使用容器。
可用于实施信息处理系统的至少一部分的处理平台的另一说明性实施方案包括在至少一个网络上彼此通信的多个处理装置。所述网络可包括任何类型的网络,包括(举例来说)诸如互联网的全球计算机网络、WAN、LAN、卫星网络、电话或有线电视网络、蜂窝网络、诸如WiFi或WiMAX网络的无线网络,或这些和其他类型的网络的各个部分或组合。
处理平台的每个处理装置包括耦合到存储器的处理器。所述处理器可包括微处理器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)或其他类型的处理电路,以及此类电路元件的部分或组合。所述存储器可包括随机存取存储器(RAM)、只读存储器(ROM)、快闪存储器或其他类型的存储器的任何组合。本文公开的所述存储器和其他存储器应视为存储一个或多个软件程序的可执行程序代码的更一般称为“处理器可读存储介质”的东西的说明性示例。
包括此类处理器可读存储介质的制品被视为说明性实施方案。给定的此类制品可包括(例如)存储阵列、存储盘或包含RAM、ROM、快闪存储器或其他电子存储器的集成电路,或广泛多种其他类型的计算机程序产品中的任一者。如本文使用的术语“制品”应理解为排除瞬态的传播信号。
在处理装置中还包括网络接口电路,所述网络接口电路用于使处理装置与网络和其他系统部件介接,并且可包括常规的收发器。
作为另一示例,在一些实施方案中的给定的处理平台的部分可包括聚合基础设施,诸如来自VCE(虚拟计算环境公司,现在是Dell EMC的聚合平台和解决方案部门)的VxRailTM、VxRackTM、VxRackTMFLEX、VxBlockTM聚合基础设施。
同样,仅举例呈现这些特定处理平台,并且其他实施方案可包括额外的或替代性处理平台以及众多不同的处理平台的任何组合,其中每个此类平台包括一个或多个计算机、服务器、存储装置或其他处理装置。
因此应理解,在其他实施方案中,可使用额外的或替代性元件的不同布置。这些元件的至少子集可共同地实施于共同的处理平台上,或每个此类元件可实施于单独的处理平台上。
而且,在本文公开的信息处理系统中,计算机、服务器、存储装置或其他部件的众多其他布置是可能的。此类部件可在任何类型的网络或其他通信媒体上与信息处理系统的其他元件通信。
如先前指示,本文公开的信息处理系统的部件可至少部分地以存储在存储器中并且由处理装置的处理器执行的一个或多个软件程序的形式实施。例如,主机装置102、SAN104和存储阵列105的功能性的至少部分说明性地以在一个或多个处理装置上运行的软件的形式实施。作为更具体的示例,MPIO驱动程序迁移逻辑115可至少部分地以软件实施,如本文先前指示。
应再次强调,仅出于说明目的呈现上述实施方案。可使用许多变化和其他替代性实施方案。例如,所公开的技术适用于利用主机装置、网络、存储系统、存储阵列、存储装置、处理器、存储器、IO队列、MPIO驱动程序、MPIO驱动程序迁移逻辑和额外或替代性部件的其他布置的广泛多种其他类型的信息处理系统。而且,在其他实施方案中可改变在附图中说明性地示出的系统和装置元件的特定配置和相关联的处理操作。例如,在其他实施方案中可使用广泛多种不同的MPIO驱动程序配置和相关联的MPIO驱动程序迁移布置。另外,上文在描述说明性实施方案的过程中作出的各种假设也应视为示例性的,而不是作为要求或限制。所附权利要求的范围内的众多其他替代性实施方案对于本领域技术人员来说将容易显而易见。

Claims (20)

1.一种用于迁移多路径逻辑装置的控制权的设备,所述设备包括:主机装置,所述主机装置被配置为在网络上与存储系统通信;
所述主机装置包括:
一组输入-输出队列;
当前多路径输入-输出驱动程序,所述当前多路径输入-输出驱动程序被配置为从所述一组输入-输出队列选择用于在所述网络上递送至所述存储系统的输入-输出操作,所述当前多路径输入-输出驱动程序被配置为将从所述主机装置至所述存储系统的逻辑单元编号的多个路径分组到多路径逻辑装置中;
其中所述主机装置还被配置为:
安装目标多路径输入-输出驱动程序;
将所述多路径逻辑装置的控制权从所述当前多路径输入-输出驱动程序迁移至所述目标多路径输入-输出驱动程序,所述迁移包括将所述多路径逻辑装置的输入-输出入口点从所述当前多路径输入-输出驱动程序转移至所述目标多路径输入-输出驱动程序;
禁止所述当前多路径输入-输出驱动程序使用所述多路径逻辑装置;以及
使用所述多路径逻辑装置将由所述目标多路径输入-输出驱动程序选择的输入-输出操作递送至所述存储系统。
2.如权利要求1所述的设备,所述设备还包括一个或多个额外的主机装置,每个额外的主机装置被配置为在所述网络上与所述存储系统通信,并且其中每个额外的主机装置包括一组输入-输出队列和多路径输入-输出驱动程序,所述多路径输入-输出驱动程序被配置为从所述一组输入-输出队列选择用于在所述网络上递送至所述存储系统的输入-输出操作。
3.如权利要求1所述的设备,其中将所述多路径逻辑装置的控制权迁移至所述目标多路径输入-输出驱动程序包括生成所述多路径逻辑装置的输入-输出堆叠。
4.如权利要求3所述的设备,其中所述主机装置还被配置为:
将所述多路径逻辑装置的传入的输入-输出操作展现于所述一组输入-输出队列中;
执行所述多路径逻辑装置的未解决的输入-输出操作,直到没有剩余所述多路径逻辑装置的未解决的输入-输出操作为止;以及
响应于完成对所述未解决的输入-输出操作的所述执行以及将所述多路径逻辑装置的控制权迁移至所述目标多路径输入-输出驱动程序,在所述目标多路径输入-输出驱动程序的控制下从所述一组输入-输出队列恢复所述多路径逻辑装置上的输入-输出操作。
5.如权利要求4所述的设备,其中将所述多路径逻辑装置的所述传入的输入-输出操作展现于所述一组输入-输出队列中包括保持对所述多路径逻辑装置的数据结构的锁定,并且其中恢复所述多路径逻辑装置上的输入-输出操作包括释放所述锁定。
6.如权利要求1所述的设备,其中所述主机装置还被配置为获得表征控制权将被迁移至所述目标多路径输入-输出驱动程序的一个或多个多路径逻辑装置的信息,所述信息包括控制权将被迁移至所述目标多路径输入-输出驱动程序的每个多路径逻辑装置的唯一标识符。
7.如权利要求6所述的设备,其中所述主机装置还被配置为:识别与所述唯一标识符中的给定一者相关联的至少一个本机路径;以及生成所述至少一个本机路径至与所述唯一标识符中的所述给定一者相对应的所述多路径逻辑装置的映射。
8.如权利要求1所述的设备,其中所述主机装置还被配置为:
将在所述当前多路径输入-输出驱动程序的控制下的所有所述多路径逻辑装置的控制权迁移至所述目标多路径输入-输出驱动程序的控制;以及
响应于完成在所述当前多路径输入-输出驱动程序的控制下的所有所述多路径逻辑装置的控制权至所述目标多路径输入-输出驱动程序的所述迁移,卸载所述当前多路径输入-输出驱动程序。
9.如权利要求1所述的设备,其中在将所述多路径逻辑装置的控制权迁移至所述目标多路径输入-输出驱动程序之后连同重启一起,所述目标多路径输入-输出驱动程序被配置为:
生成多个多路径逻辑装置;
确定所生成的多路径逻辑装置中的给定一者是否对应于控制权曾被迁移至所述目标多路径输入-输出驱动程序的所述多路径逻辑装置;
响应于确定所述所生成的多路径逻辑装置中的所述给定一者对应于控制权曾被迁移至所述目标多路径输入-输出驱动程序的所述多路径逻辑装置,生成从所述所生成的多路径逻辑装置中的所述给定一者至控制权曾被迁移至所述目标多路径输入-输出驱动程序的所述多路径逻辑装置的链接,所述链接允许所述目标多路径输入-输出驱动程序经由所述所生成的多路径逻辑装置中的所述给定一者利用控制权曾被迁移至所述目标多路径输入-输出驱动程序的所述多路径逻辑装置。
10.如权利要求9所述的设备,其中确定所述所生成的多路径逻辑装置中的所述给定一者是否对应于控制权曾被迁移至所述目标多路径输入-输出驱动程序的所述多路径逻辑装置包括:将与所述所生成的多路径逻辑装置中的所述给定一者相对应的标识符与和控制权曾被迁移至所述目标多路径输入-输出驱动程序的所述多路径逻辑装置相对应的标识符进行比较。
11.一种用于迁移多路径逻辑装置的控制权的方法,所述方法包括:
配置主机装置的当前多路径输入-输出驱动程序以从所述主机装置的一组输入-输出队列选择用于在网络上递送至存储系统的输入-输出操作,所述当前多路径输入-输出驱动程序被配置为将从所述主机装置至所述存储系统的逻辑单元编号的多个路径分组到多路径逻辑装置中;
其中所述主机装置执行以下步骤:
安装目标多路径输入-输出驱动程序;
将所述多路径逻辑装置的控制权从所述当前多路径输入-输出驱动程序迁移至所述目标多路径输入-输出驱动程序,所述迁移包括将所述多路径逻辑装置的输入-输出入口点从所述当前多路径输入-输出驱动程序转移至所述目标多路径输入-输出驱动程序;
禁止所述当前多路径输入-输出驱动程序使用所述多路径逻辑装置;以及
使用所述多路径逻辑装置将由所述目标多路径输入-输出驱动程序选择的输入-输出操作递送至所述存储系统。
12.如权利要求11所述的方法,其中将所述多路径逻辑装置的控制权迁移至所述目标多路径输入-输出驱动程序包括生成所述多路径逻辑装置的输入-输出堆叠。
13.如权利要求12所述的方法,其中所述方法还包括:
将所述多路径逻辑装置的传入的输入-输出操作展现于所述一组输入-输出队列中;
执行所述多路径逻辑装置的未解决的输入-输出操作,直到没有剩余所述多路径逻辑装置的未解决的输入-输出操作为止;以及
响应于完成对所述未解决的输入-输出操作的所述执行以及将所述多路径逻辑装置的控制权迁移至所述目标多路径输入-输出驱动程序,在所述目标多路径输入-输出驱动程序的控制下从所述一组输入-输出队列恢复所述多路径逻辑装置上的输入-输出操作。
14.如权利要求13所述的方法,其中将所述多路径逻辑装置的所述传入的输入-输出操作展现于所述一组输入-输出队列中包括保持对所述多路径逻辑装置的数据结构的锁定,并且其中恢复所述多路径逻辑装置上的输入-输出操作包括释放所述锁定。
15.如权利要求11所述的方法,其中所述方法还包括获得表征控制权将被迁移至所述目标多路径输入-输出驱动程序的一个或多个多路径逻辑装置的信息,所述信息包括控制权将被迁移至所述目标多路径输入-输出驱动程序的每个多路径逻辑装置的唯一标识符。
16.如权利要求15所述的方法,其中所述方法还包括:识别与所述唯一标识符中的给定一者相关联的至少一个本机路径;以及生成所述至少一个本机路径至与所述唯一标识符中的所述给定一者相对应的所述多路径逻辑装置的映射。
17.如权利要求11所述的方法,其中所述方法还包括:
将在所述当前多路径输入-输出驱动程序的控制下的所有所述多路径逻辑装置的控制权迁移至所述目标多路径输入-输出驱动程序的控制;以及
响应于完成在所述当前多路径输入-输出驱动程序的控制下的所有所述多路径逻辑装置的控制权至所述目标多路径输入-输出驱动程序的所述迁移,卸载所述当前多路径输入-输出驱动程序。
18.如权利要求11所述的方法,其中在迁移了所述多路径逻辑装置的控制权之后连同重启一起,所述方法还包括:
生成多个多路径逻辑装置;
确定所生成的多路径逻辑装置中的给定一者是否对应于控制权曾被迁移至所述目标多路径输入-输出驱动程序的所述多路径逻辑装置;
响应于确定所生成的多路径逻辑装置中的所述给定一者对应于控制权曾被迁移至所述目标多路径输入-输出驱动程序的所述多路径逻辑装置,生成从所述所生成的多路径逻辑装置中的所述给定一者至控制权曾被迁移至所述目标多路径输入-输出驱动程序的所述多路径逻辑装置的链接,所述链接允许所述目标多路径输入-输出驱动程序经由所述所生成的多路径逻辑装置中的所述给定一者利用控制权曾被迁移至所述目标多路径输入-输出驱动程序的所述多路径逻辑装置。
19.如权利要求18所述的方法,其中确定所述所生成的多路径逻辑装置中的所述给定一者是否对应于控制权曾被迁移至所述目标多路径输入-输出驱动程序的所述多路径逻辑装置包括:将与所述所生成的多路径逻辑装置中的所述给定一者相对应的标识符与和控制权曾被迁移至所述目标多路径输入-输出驱动程序的所述多路径逻辑装置相对应的标识符进行比较。
20.一种计算机程序产品,所述计算机程序产品包括非暂时性处理器可读存储介质,在所述非暂时性处理器可读存储介质中存储有一个或多个软件程序的程序代码,其中所述程序代码在由主机装置执行时致使所述主机装置进行以下操作,所述主机装置包括当前多路径输入-输出驱动程序和一组输入-输出队列,所述主机装置被配置为在网络上与存储系统通信,所述当前多路径输入-输出驱动程序被配置为从所述一组输入-输出队列选择用于在所述网络上递送至所述存储系统的输入-输出操作,所述当前多路径输入-输出驱动程序被配置为将从所述主机装置至所述存储系统的逻辑单元编号的多个路径分组到多路径逻辑装置中:
安装目标多路径输入-输出驱动程序;
将所述多路径逻辑装置的控制权从所述当前多路径输入-输出驱动程序迁移至所述目标多路径输入-输出驱动程序,所述迁移包括将所述多路径逻辑装置的输入-输出入口点从所述当前多路径输入-输出驱动程序转移至所述目标多路径输入-输出驱动程序;
禁止所述当前多路径输入-输出驱动程序使用所述多路径逻辑装置;以及
使用所述多路径逻辑装置将由所述目标多路径输入-输出驱动程序选择的输入-输出操作递送至所述存储系统。
CN201980073689.1A 2018-10-09 2019-09-26 用于迁移多路径逻辑装置的控制权的设备与方法 Active CN112969993B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/155,491 2018-10-09
US16/155,491 US10754572B2 (en) 2018-10-09 2018-10-09 Migrating control of a multi-path logical device from a current MPIO driver to a target MPIO driver
PCT/US2019/053204 WO2020076512A1 (en) 2018-10-09 2019-09-26 Migrating control of a multi-path logical device from a current mpio driver to a target mpio driver

Publications (2)

Publication Number Publication Date
CN112969993A CN112969993A (zh) 2021-06-15
CN112969993B true CN112969993B (zh) 2023-09-01

Family

ID=68208350

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980073689.1A Active CN112969993B (zh) 2018-10-09 2019-09-26 用于迁移多路径逻辑装置的控制权的设备与方法

Country Status (3)

Country Link
US (1) US10754572B2 (zh)
CN (1) CN112969993B (zh)
WO (1) WO2020076512A1 (zh)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10757189B2 (en) 2018-04-30 2020-08-25 EMC IP Holding Company LLC Service level objection based input-output selection utilizing multi-path layer of host device
US11044313B2 (en) 2018-10-09 2021-06-22 EMC IP Holding Company LLC Categorizing host IO load pattern and communicating categorization to storage system
US10880217B2 (en) 2018-12-24 2020-12-29 EMC IP Holding Company LLC Host device with multi-path layer configured for detection and resolution of oversubscription conditions
US10754559B1 (en) 2019-03-08 2020-08-25 EMC IP Holding Company LLC Active-active storage clustering with clock synchronization
US11099755B2 (en) * 2020-01-06 2021-08-24 EMC IP Holding Company LLC Multipath device pseudo name to logical volume mapping for host devices
US11366756B2 (en) 2020-04-13 2022-06-21 EMC IP Holding Company LLC Local cached data coherency in host devices using remote direct memory access
US11561699B2 (en) 2020-04-24 2023-01-24 EMC IP Holding Company LLC Input-output path selection using switch topology information
US11216200B2 (en) 2020-05-06 2022-01-04 EMC IP Holding Company LLC Partition utilization awareness of logical units on storage arrays used for booting
US11099754B1 (en) 2020-05-14 2021-08-24 EMC IP Holding Company LLC Storage array with dynamic cache memory configuration provisioning based on prediction of input-output operations
US11175828B1 (en) 2020-05-14 2021-11-16 EMC IP Holding Company LLC Mitigating IO processing performance impacts in automated seamless migration
US11012512B1 (en) 2020-05-20 2021-05-18 EMC IP Holding Company LLC Host device with automated write throttling responsive to storage system write pressure condition
US11023134B1 (en) 2020-05-22 2021-06-01 EMC IP Holding Company LLC Addition of data services to an operating system running a native multi-path input-output architecture
US11151071B1 (en) 2020-05-27 2021-10-19 EMC IP Holding Company LLC Host device with multi-path layer distribution of input-output operations across storage caches
US11226851B1 (en) 2020-07-10 2022-01-18 EMC IP Holding Company LLC Execution of multipath operation triggered by container application
US11256446B1 (en) * 2020-08-03 2022-02-22 EMC IP Holding Company LLC Host bus adaptor (HBA) virtualization aware multi-pathing failover policy
US11916938B2 (en) 2020-08-28 2024-02-27 EMC IP Holding Company LLC Anomaly detection and remediation utilizing analysis of storage area network access patterns
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
US11392459B2 (en) 2020-09-14 2022-07-19 EMC IP Holding Company LLC Virtualization server aware multi-pathing failover policy
US11320994B2 (en) 2020-09-18 2022-05-03 EMC IP Holding Company LLC Dynamic configuration change control in a storage system using multi-path layer notifications
US11032373B1 (en) 2020-10-12 2021-06-08 EMC IP Holding Company LLC Host-based bandwidth control for virtual initiators
US11397540B2 (en) 2020-10-12 2022-07-26 EMC IP Holding Company LLC Write pressure reduction for remote replication
US11630581B2 (en) 2020-11-04 2023-04-18 EMC IP Holding Company LLC Host bus adaptor (HBA) virtualization awareness for effective input-output load balancing
US11385824B2 (en) 2020-11-30 2022-07-12 EMC IP Holding Company LLC Automated seamless migration across access protocols for a logical storage device
US11204777B1 (en) 2020-11-30 2021-12-21 EMC IP Holding Company LLC Boot from SAN operation support on multi-pathing devices
US11543971B2 (en) 2020-11-30 2023-01-03 EMC IP Holding Company LLC Array driven fabric performance notifications for multi-pathing devices
US11397539B2 (en) 2020-11-30 2022-07-26 EMC IP Holding Company LLC Distributed backup using local access
US11620240B2 (en) 2020-12-07 2023-04-04 EMC IP Holding Company LLC Performance-driven access protocol switching for a logical storage device
US11409460B2 (en) 2020-12-08 2022-08-09 EMC IP Holding Company LLC Performance-driven movement of applications between containers utilizing multiple data transmission paths with associated different access protocols
US11455116B2 (en) 2020-12-16 2022-09-27 EMC IP Holding Company LLC Reservation handling in conjunction with switching between storage access protocols
US11651066B2 (en) 2021-01-07 2023-05-16 EMC IP Holding Company LLC Secure token-based communications between a host device and a storage system
US11308004B1 (en) 2021-01-18 2022-04-19 EMC IP Holding Company LLC Multi-path layer configured for detection and mitigation of slow drain issues in a storage area network
US11449440B2 (en) 2021-01-19 2022-09-20 EMC IP Holding Company LLC Data copy offload command support across multiple storage access protocols
US11494091B2 (en) 2021-01-19 2022-11-08 EMC IP Holding Company LLC Using checksums for mining storage device access data
US11467765B2 (en) 2021-01-20 2022-10-11 EMC IP Holding Company LLC Detection and mitigation of slow drain issues using response times and storage-side latency view
US11386023B1 (en) 2021-01-21 2022-07-12 EMC IP Holding Company LLC Retrieval of portions of storage device access data indicating access state changes
US11640245B2 (en) 2021-02-17 2023-05-02 EMC IP Holding Company LLC Logical storage device access in an encrypted storage environment
US11755222B2 (en) 2021-02-26 2023-09-12 EMC IP Holding Company LLC File based encryption for multi-pathing devices
US11797312B2 (en) 2021-02-26 2023-10-24 EMC IP Holding Company LLC Synchronization of multi-pathing settings across clustered nodes
US11928365B2 (en) 2021-03-09 2024-03-12 EMC IP Holding Company LLC Logical storage device access using datastore-level keys in an encrypted storage environment
US11294782B1 (en) 2021-03-22 2022-04-05 EMC IP Holding Company LLC Failover affinity rule modification based on node health information
US11782611B2 (en) 2021-04-13 2023-10-10 EMC IP Holding Company LLC Logical storage device access using device-specific keys in an encrypted storage environment
US11422718B1 (en) 2021-05-03 2022-08-23 EMC IP Holding Company LLC Multi-path layer configured to provide access authorization for software code of multi-path input-output drivers
US11550511B2 (en) 2021-05-21 2023-01-10 EMC IP Holding Company LLC Write pressure throttling based on service level objectives
US11822706B2 (en) 2021-05-26 2023-11-21 EMC IP Holding Company LLC Logical storage device access using device-specific keys in an encrypted storage environment
US11625232B2 (en) 2021-06-07 2023-04-11 EMC IP Holding Company LLC Software upgrade management for host devices in a data center
US11526283B1 (en) 2021-06-08 2022-12-13 EMC IP Holding Company LLC Logical storage device access using per-VM keys in an encrypted storage environment
US11762588B2 (en) 2021-06-11 2023-09-19 EMC IP Holding Company LLC Multi-path layer configured to access storage-side performance metrics for load balancing policy control
US11954344B2 (en) 2021-06-16 2024-04-09 EMC IP Holding Company LLC Host device comprising layered software architecture with automated tiering of logical storage devices
US11750457B2 (en) 2021-07-28 2023-09-05 Dell Products L.P. Automated zoning set selection triggered by switch fabric notifications
US11625308B2 (en) 2021-09-14 2023-04-11 Dell Products L.P. Management of active-active configuration using multi-pathing software
US11586356B1 (en) 2021-09-27 2023-02-21 Dell Products L.P. Multi-path layer configured for detection and mitigation of link performance issues in a storage area network
US11656987B2 (en) 2021-10-18 2023-05-23 Dell Products L.P. Dynamic chunk size adjustment for cache-aware load balancing
US11418594B1 (en) 2021-10-20 2022-08-16 Dell Products L.P. Multi-path layer configured to provide link availability information to storage system for load rebalancing
US11567669B1 (en) 2021-12-09 2023-01-31 Dell Products L.P. Dynamic latency management of active-active configurations using multi-pathing software
US11620054B1 (en) 2022-04-21 2023-04-04 Dell Products L.P. Proactive monitoring and management of storage system input-output operation limits
US11983432B2 (en) 2022-04-28 2024-05-14 Dell Products L.P. Load sharing of copy workloads in device clusters
US11789624B1 (en) 2022-05-31 2023-10-17 Dell Products L.P. Host device with differentiated alerting for single points of failure in distributed storage systems
US11886711B2 (en) 2022-06-16 2024-01-30 Dell Products L.P. Host-assisted IO service levels utilizing false-positive signaling
US11983429B2 (en) 2022-06-22 2024-05-14 Dell Products L.P. Migration processes utilizing mapping entry timestamps for selection of target logical storage devices
US11934659B1 (en) 2022-09-28 2024-03-19 Dell Products L.P. Host background copy process with rate adjustment utilizing input-output processing pressure feedback from storage system
US11989156B1 (en) 2023-03-06 2024-05-21 Dell Products L.P. Host device conversion of configuration information to an intermediate format to facilitate database transitions

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102760046A (zh) * 2011-04-27 2012-10-31 国际商业机器公司 使用多路输入/输出伪装的在线卷迁移方法和系统
CN106168884A (zh) * 2011-08-26 2016-11-30 威睿公司 访问对象存储系统的计算机系统

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6687746B1 (en) 1999-08-30 2004-02-03 Ideaflood, Inc. System apparatus and method for hosting and assigning domain names on a wide area network
US6684209B1 (en) 2000-01-14 2004-01-27 Hitachi, Ltd. Security method and system for storage subsystem
US6567397B1 (en) 2000-02-15 2003-05-20 Sophia Communications, Inc. System and method for wireless exchange of data in a non-real-time data communications system
US6697875B1 (en) 2000-06-27 2004-02-24 Sun Microsystems, Inc. Methods for building and using a network device database
JP4039794B2 (ja) 2000-08-18 2008-01-30 富士通株式会社 マルチパス計算機システム
US7225242B2 (en) 2001-01-26 2007-05-29 Dell Products L.P. System and method for matching storage device queue depth to server command queue depth
US7617292B2 (en) 2001-06-05 2009-11-10 Silicon Graphics International Multi-class heterogeneous clients in a clustered filesystem
US20040010563A1 (en) 2002-06-26 2004-01-15 John Forte Method for enterprise device naming for storage devices
US8285825B1 (en) 2002-11-13 2012-10-09 Novell, Inc. Method and system for managing network resources based on a dynamic quorum
US7275103B1 (en) 2002-12-18 2007-09-25 Veritas Operating Corporation Storage path optimization for SANs
US8713295B2 (en) 2004-07-12 2014-04-29 Oracle International Corporation Fabric-backplane enterprise servers with pluggable I/O sub-system
JP4643198B2 (ja) 2004-07-28 2011-03-02 株式会社日立製作所 負荷分散コンピュータシステム、経路設定プログラム及びその方法
US7454437B1 (en) 2004-09-22 2008-11-18 Emc Corporation Methods and apparatus for naming resources
US7529816B2 (en) 2005-06-03 2009-05-05 Hewlett-Packard Development Company, L.P. System for providing multi-path input/output in a clustered data storage network
US20070174849A1 (en) 2006-01-12 2007-07-26 Cheung Yan M Non-disruptive multipath device driver update system and method
US7904681B1 (en) 2006-06-30 2011-03-08 Emc Corporation Methods and systems for migrating data with minimal disruption
US7925872B2 (en) 2006-08-07 2011-04-12 Oracle America, Inc. Method and apparatus for using a directory service to facilitate centralized device naming
US7809912B1 (en) 2006-09-29 2010-10-05 Emc Corporation Methods and systems for managing I/O requests to minimize disruption required for data migration
US7770053B1 (en) 2006-12-01 2010-08-03 Emc Corporation Systems and methods for maintaining data integrity during a migration
US7711979B2 (en) 2007-02-16 2010-05-04 Symantec Corporation Method and apparatus for flexible access to storage facilities
US7668981B1 (en) 2007-03-28 2010-02-23 Symantec Operating Corporation Storage paths
US7778157B1 (en) 2007-03-30 2010-08-17 Symantec Operating Corporation Port identifier management for path failover in cluster environments
US9134921B1 (en) 2007-04-23 2015-09-15 Netapp, Inc. Uniquely naming storage devices in a global storage environment
US8250256B2 (en) 2007-07-24 2012-08-21 International Business Machines Corporation Methods, systems and computer products for user-managed multi-path performance in balanced or unbalanced fabric configurations
US7890664B1 (en) 2008-03-31 2011-02-15 Emc Corporation Methods and apparatus for non-disruptive upgrade by redirecting I/O operations
US8417991B2 (en) 2009-06-03 2013-04-09 Oracle International Corporation Mitigating reduction in availability level during maintenance of nodes in a cluster
US8230192B2 (en) 2010-02-05 2012-07-24 Lsi Corporation System and method for QoS-based storage tiering and migration technique
US8874746B1 (en) 2010-05-24 2014-10-28 Datacore Software Corporation Collaboration between discrete systems and a shared system to consolidate shared storage-related services
CN102263807A (zh) 2010-05-31 2011-11-30 国际商业机器公司 在存储区域网络保持通信路径畅通的方法和存储区域网络
US8489939B2 (en) 2010-10-25 2013-07-16 At&T Intellectual Property I, L.P. Dynamically allocating multitier applications based upon application requirements and performance and reliability of resources
US8825919B1 (en) 2011-12-22 2014-09-02 Emc Corporation Path performance data collection
US8954575B2 (en) 2012-05-23 2015-02-10 Vmware, Inc. Fabric distributed resource scheduling
US8832334B2 (en) 2012-08-09 2014-09-09 Hitachi, Ltd. Method and apparatus to migrate existing data among storage systems based on a traffic amount that does not exceed a preset threshold
WO2014039922A2 (en) 2012-09-06 2014-03-13 Pi-Coral, Inc. Large-scale data storage and delivery system
US9030947B2 (en) 2012-10-12 2015-05-12 Futurewei Technologies, Inc. Methods for zero loss and nonstop packet processing during system software upgrades
WO2014064756A1 (ja) 2012-10-22 2014-05-01 株式会社日立製作所 ストレージプールから実記憶領域を仮想ボリュームへ割り当てる方法及び計算機システム
US9400611B1 (en) 2013-03-13 2016-07-26 Emc Corporation Data migration in cluster environment using host copy and changed block tracking
US9026694B1 (en) 2013-06-24 2015-05-05 Emc Corporation Techniques for workload redistibution
US9594780B1 (en) 2013-06-28 2017-03-14 EMC IP Holding Company LLC Database system with user-directed application-side control of data movement among storage tiers
US9778852B1 (en) 2013-09-27 2017-10-03 EMC IP Holding Company LLC Automated storage tiering based on application awareness
CN103677927B (zh) 2013-12-16 2017-02-22 华为技术有限公司 软件升级的方法及装置
US10725684B2 (en) 2014-09-30 2020-07-28 EMC IP Holding Company LLC Method and apparatus for cost-based load balancing for port selection
US9864531B2 (en) 2015-05-13 2018-01-09 International Business Machines Corporation Raid-topology-aware multipath routing
US10809998B2 (en) 2016-02-12 2020-10-20 Nutanix, Inc. Virtualized file server splitting and merging
US11010431B2 (en) 2016-12-30 2021-05-18 Samsung Electronics Co., Ltd. Method and apparatus for supporting machine learning algorithms and data pattern matching in ethernet SSD
US10254991B2 (en) 2017-03-06 2019-04-09 Cisco Technology, Inc. Storage area network based extended I/O metrics computation for deep insight into application performance
TWI623886B (zh) 2017-04-05 2018-05-11 指紋感測器以及其降低雜訊干擾方法
JP2018191055A (ja) 2017-04-28 2018-11-29 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
US10289325B1 (en) 2017-07-31 2019-05-14 EMC IP Holding Company LLC Managing multiple tenants in NAS (network attached storage) clusters
US20190095299A1 (en) 2017-09-28 2019-03-28 Cnex Labs, Inc. Storage system with machine learning mechanism and method of operation thereof
US10726930B2 (en) 2017-10-06 2020-07-28 Western Digital Technologies, Inc. Method and system for a storage (SSD) drive-level failure and health prediction leveraging machine learning on internal parametric data
US10474367B1 (en) 2017-12-21 2019-11-12 EMC IP Holding Company LLC Storage system with input-output performance control utilizing application process detection
US10353714B1 (en) 2018-01-12 2019-07-16 EMC IP Holding Company LLC Non-disruptive upgrade of multipath drivers in information processing system
US10476960B1 (en) 2018-05-01 2019-11-12 EMC IP Holding Company LLC Host device configured to automatically discover new paths responsive to storage system prompt
US10439878B1 (en) 2018-05-31 2019-10-08 EMC IP Holding Company LLC Process-based load balancing and failover policy implementation in storage multi-path layer of host device

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102760046A (zh) * 2011-04-27 2012-10-31 国际商业机器公司 使用多路输入/输出伪装的在线卷迁移方法和系统
CN106168884A (zh) * 2011-08-26 2016-11-30 威睿公司 访问对象存储系统的计算机系统

Also Published As

Publication number Publication date
US10754572B2 (en) 2020-08-25
WO2020076512A8 (en) 2020-06-25
CN112969993A (zh) 2021-06-15
US20200110552A1 (en) 2020-04-09
WO2020076512A1 (en) 2020-04-16

Similar Documents

Publication Publication Date Title
CN112969993B (zh) 用于迁移多路径逻辑装置的控制权的设备与方法
US10789006B1 (en) Path-based data migration from source device to target device
US10936335B2 (en) Path-based migration of control of a multi-path logical device from a current MPIO driver to a target MPIO driver
US11126358B2 (en) Data migration agnostic of pathing software or underlying protocol
US11126363B2 (en) Migration resumption using journals
US10838648B2 (en) Distributed host copy migration in a cluster environment using changed block tracking
US20200314218A1 (en) Command communication via mpio driver agnostic of underlying communication protocols
US11012510B2 (en) Host device with multi-path layer configured for detecting target failure status and updating path availability
US20210232468A1 (en) Fast multipath failover
US11086785B2 (en) Host device with storage cache aware processing of input-output operations in multi-path layer
US11023134B1 (en) Addition of data services to an operating system running a native multi-path input-output architecture
US11386023B1 (en) Retrieval of portions of storage device access data indicating access state changes
US11397589B2 (en) Snapshot transmission from storage array to cloud using multi-path input-output
US20230185467A1 (en) Non-disruptive switching of multi-pathing software
US11750457B2 (en) Automated zoning set selection triggered by switch fabric notifications
US11294782B1 (en) Failover affinity rule modification based on node health information
US11151071B1 (en) Host device with multi-path layer distribution of input-output operations across storage caches
US11543971B2 (en) Array driven fabric performance notifications for multi-pathing devices
US11175840B2 (en) Host-based transfer of input-output operations from kernel space block device to user space block device
US11226851B1 (en) Execution of multipath operation triggered by container application
US20210181947A1 (en) Path selection modification for non-disruptive upgrade of a host device
US11461026B2 (en) Non-disruptive update of host multipath device dependency
US11204777B1 (en) Boot from SAN operation support on multi-pathing devices
US11157432B1 (en) Configuration of block devices based on provisioning of logical volumes in a storage system
US20240126459A1 (en) Spoofing of device identifiers in non-disruptive data migration

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