CN112965659A - 处理i/o请求的方法、存储阵列及主机 - Google Patents

处理i/o请求的方法、存储阵列及主机 Download PDF

Info

Publication number
CN112965659A
CN112965659A CN202110171553.3A CN202110171553A CN112965659A CN 112965659 A CN112965659 A CN 112965659A CN 202110171553 A CN202110171553 A CN 202110171553A CN 112965659 A CN112965659 A CN 112965659A
Authority
CN
China
Prior art keywords
disk
path
identifier
storage array
host
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.)
Pending
Application number
CN202110171553.3A
Other languages
English (en)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN112965659A publication Critical patent/CN112965659A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1092Rebuilding, e.g. when physically replacing a failing disk
    • 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/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
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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/0656Data buffering arrangements
    • 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
    • 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/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • 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/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • 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

Abstract

一种I/O请求处理方法,由主机的代理模块执行。所述代理模块在将所述待迁移磁盘的磁盘标识发送至所述阵列标识对应的第二存储阵列,以使所述第二存储阵列根据所述待迁移磁盘的磁盘标识构建所述待迁移磁盘的镜像磁盘。在所述镜像磁盘构建好之后,所述代理模块为上报镜像磁盘的磁盘标识的路径设置虚拟路径信息,并将所述虚拟路径信息上报至所述多路径模块。所述代理模块接收多路径模块通过虚拟路径发送的磁盘标识查询请求,将所述待迁移磁盘的磁盘标识发送至所述多路径模块,以使所述多路径模块将所述虚拟路径作为所述待迁移磁盘的路径进行优先访问路径管理,并将所述虚拟路径设置为所述待迁移磁盘的优先访问路径。

Description

处理I/O请求的方法、存储阵列及主机
技术领域
本申请涉及存储领域,尤其涉及处理I/O请求的方法、存储阵列、及主机。
背景技术
在IT运维中,经常需要用新的存储阵列替换旧的存储阵列,这就需要将旧的存储阵列中的数据迁移至新的存储阵列中。但在很多场景下,比如金融行业,通信运营商行业,用户希望在新旧存储阵列之间的I/O(Input/Output)请求处理是在线进行的,以避免产生业务中断或者数据丢失。
现有的I/O请求处理方法,可以在同构存储阵列(可以被同一多路径模块管理的存储阵列,所述多路径模块为由主机执行的软件)之间实现数据的在线迁移。但是无法在异构存储阵列(不能被同一多路径模块管理的存储阵列)之间实现数据的在线迁移。
发明内容
本发明实施例提供I/O请求的处理方法、设备、及主机,用于实现异构存储阵列间数据的在线迁移。
本发明实施例第一方面提供一种I/O请求处理方法,用于将位于第一存储阵列的待迁移磁盘中的数据在线迁移至第二存储阵列。本方面的实现方式中,在所述主机中安装了一个代理模块,由所述代理模块执行所述I/O请求处理方法。所述代理模块在侦测到发送至主机的数据迁移请求后,从所述数据迁移请求中获取待迁移磁盘的磁盘标识及第二存储阵列的阵列标识,并将所述待迁移磁盘的磁盘标识发送至所述阵列标识对应的第二存储阵列。这样可以使得所述第二存储阵列根据所述待迁移磁盘的磁盘标识构建所述待迁移磁盘的镜像磁盘。在所述第二存储阵列构建好所述镜像磁盘之后,所述代理模块通知所述第二存储阵列上报归属于所述主机的磁盘的磁盘标识,为上报所述镜像磁盘的磁盘标识的路径设置虚拟路径信息,并将所述虚拟路径信息上报至所述主机的多路径模块。之后,所述的代理模块接收所述主机通过所述虚拟路径信息所指示的虚拟路径发送的磁盘标识查询命令。所述代理模块在接收到所述磁盘标识查询命令后,将所述待迁移磁盘的磁盘标识发送至所述多路径模块。这样可以使得所述多路径模块将所述虚拟路径作为所述待迁移磁盘的路径,并将所述虚拟路径设置为所述待迁移磁盘的优先访问路径。也就是说访问所述待迁移磁盘的输入输出I/O请求优先通过所述虚拟路径下发。
通过在主机中安装代理模块,所述代理模块拦截第二存储阵列上报给多路径模块的镜像磁盘的磁盘标识,并为上报镜像磁盘的路径设置指向代理模块的虚拟路径。在多路径通过所述虚拟路径查询镜像磁盘的磁盘标识时,所述代理模块将待迁移磁盘的磁盘标识通过所述虚拟路径上报至多路径模块,以使所述多路径模块将所述虚拟路径作为待迁移磁盘的路径,并将所述虚拟路径作为优先访问路径。如此,主机即可将所接收到访问所述待迁移磁盘的IO通过所述虚拟路径下发至镜像磁盘所在的第二存储阵列,从而实现待迁移磁盘中的数据的在线迁移。
在所述第一方面的一种可能的实现中,在获取所述第二存储阵列在构建所述镜像磁盘后发送的镜像磁盘的磁盘标识后,所述代理模块会建立所述镜像磁盘的磁盘标识与所述待迁移磁盘的磁盘标识的映射关系。这样,在接收到所述磁盘标识查询请求后,所述代理模块根据所述磁盘标识查询请求中的所述镜像磁盘的磁盘编码获取所述镜像磁盘的磁盘标识,根据所述映射关系获取所述镜像磁盘的磁盘标识对应的所述待迁移磁盘的磁盘标识,然后才将所述待迁移磁盘的磁盘标识发送至所述多路径模块。
通过建立待迁移磁盘的磁盘标识与镜像磁盘的磁盘标识的映射关系,所述代理模块在接收到镜像磁盘的磁盘标识时,可以快速的找到所述镜像磁盘的磁盘标识对应的待迁移磁盘的磁盘标识。
结合第一方面以上任一种可能的实现,在一种可能的实现中,所述代理模块通知所述第二存储阵列上报归属于主机的磁盘的磁盘标识时,首先触发主机操作系统发送磁盘上报命令至所述第二存储阵列,所述磁盘上报命令指示所述第二存储阵列根据所述上报命令生成上报信息,并上报所述上报信息;然后,在接收到所述上报信息后,获取所述上报信息中的路径信息,所述路径信息为上报所述上报信息的路径的路径信息,为在上报所述上报信息的过程中生成的;最后,通过由所述路径信息确定的路径发送磁盘标识查询命令至所述第二存储阵列,以通知所述第二存储阵列上报归属于所述主机的磁盘的磁盘标识。
通过这种可能的实现,所述代理模块在触发操作系统发送磁盘上报命令至第二存储阵列后,拦截第二存储阵列上报给所述多路径模块的上报信息,并通过代理模块获取第二存储阵列中的磁盘标识,从而使代理模块可以为上报镜像磁盘的磁盘标识的路径设置访问待迁移磁盘的虚拟路径。
结合第一方面以上任一种可能的实现,在一种可能的实现中,所述代理模块获取所述第二存储阵列在构建所述镜像磁盘后发送的镜像磁盘的磁盘标识;建立所述镜像磁盘的磁盘标识与所述待迁移磁盘的磁盘标识的映射关系;在接收到第二存储阵列上报的归属于所述主机的磁盘的磁盘标识后,若所上报的磁盘标识存在于所述映射关系中,则确定所上报的磁盘标识为镜像磁盘的磁盘标识,在确定所述镜像磁盘的磁盘标识后,即可为上报所述镜像磁盘的磁盘标识的路径设置虚拟路径信息。
结合第一方面以上任一种可能的实现,在一种可能的实现中,所述虚拟路径信息包括路径编号及路径指针,所述路径编号用于表示上报所述镜像磁盘标识的路径,所述路径指针指向上报所述镜像磁盘标识的路径。
通过设置所述路径指针,可以使所述多路径模块通过所述虚拟路径下发的或请求被下发至所述代理模块。
结合第一方面以上任一种可能的实现,在一种可能的实现中,所述第一存储阵列与所述第二存储阵列的厂商不同,所述待迁移磁盘的标识和所述镜像磁盘的磁盘标识中包括厂商信息。
本发明更有利于解决第一存储阵列和第二存储阵列为不同厂商的数据的在线迁移。
结合第一方面以上任一种可能的实现,在一种可能的实现中,所述代理模块通过所述主机与所述第二存储阵列之间的通讯协议中的私有命令将所述待迁移磁盘的磁盘标识发送至所述第二存储阵列。
结合第一方面以上任一种可能的实现,在一种可能的实现中,所述私有命令包括命令描述块及缓存,所述命令描述块指示所述第二存储阵列生成所述镜像磁盘,所述缓存包括发送信息部分和返回信息部分,所述发送信息部分用于写入所述待迁移磁盘的磁盘标识;所述返回信息部分用于在所述第二存储阵列构建所述镜像磁盘后,写入所述镜像磁盘的磁盘标识。
结合第一方面以上任一种可能的实现,在一种可能的实现中,所述迁移方法还包括在所述多路径模块将所述虚拟路径设置为所述待迁移磁盘的优先访问路径后,所述代理模块发送迁移命令至所述第二存储阵列,所述迁移命令指示所述第二存储阵列对所述待迁移磁盘的数据进行迁移,所述迁移命令中包括所述镜像磁盘或者待迁移磁盘的的磁盘标识。
本发明第二方面提供提供一种I/O请求处理方法,用于将位于第一存储阵列的待迁移磁盘中的数据在线迁移至第二存储阵列。所述处理方法由主机执行。当主机根据侦测到的数据迁移请求获取待迁移磁盘的磁盘标识及第二存储阵列的阵列标识,并将所述待迁移磁盘的磁盘标识发送至所述阵列标识对应的第二存储阵列,以使所述第二存储阵列根据所述待迁移磁盘的磁盘标识构建所述待迁移磁盘的镜像磁盘,其中,所述待迁移磁盘构建于所述第一存储阵列。之后,所述主机将所述镜像磁盘设置为所述待迁移磁盘的磁盘对象的被优先访问的磁,然后接收访问待迁移磁盘的输入/输出I/O请求,并根据所述I/O请求中携带的待迁移磁盘的磁盘对象的名称将所述I/O请求发送给所述镜像磁盘。
本发明第二方面提供的I/O请求处理方法的达到的效果与第一方面提供的I/O请求处理方法相同,在此不再赘述。
结合本发明的第二方面,在第一种可能的实现中,所述主机上运行了代理模块以及多路径模块。在主机将所述镜像磁盘设置为所述待迁移磁盘的磁盘对象的被优先访问的磁盘时,所述代理模块通知所述第二存储阵列上报归属于所述主机的磁盘的磁盘标识,并为上报所述镜像磁盘的磁盘标识的路径设置虚拟路径信息,然后将所述虚拟路径信息上报至所述多路径模块。所述代理模块接收所述多路径模块通过虚拟路径发送的磁盘标识查询请求,所述虚拟路径根据所述虚拟路径信息确定,将所述待迁移磁盘的磁盘标识发送至所述多路径模块,以使所述多路径模块将所述虚拟路径作为所述待迁移磁盘的磁盘对象的路径。之后则将所述虚拟路径设置为所述待迁移磁盘的磁盘对象的优先访问路径。
结合本发明的第二方面的第一种可能的实现方式,在一种可能的实现中,在将所述I/O请求发送给所述镜像磁盘时,首先根据所述磁盘对象标识确定所述磁盘对象的优先访问路径,再将所述I/O请求通过所述优先访问路径发送至所述镜像磁盘。
在所述第一方面的一种可能的实现中,在获取所述第二存储阵列在构建所述镜像磁盘后发送的镜像磁盘的磁盘标识后,所述代理模块会建立所述镜像磁盘的磁盘标识与所述待迁移磁盘的磁盘标识的映射关系。这样,在接收到所述磁盘标识查询请求后,所述代理模块根据所述磁盘标识查询请求中的所述镜像磁盘的磁盘编码获取所述镜像磁盘的磁盘标识,根据所述映射关系获取所述镜像磁盘的磁盘标识对应的所述待迁移磁盘的磁盘标识,然后才将所述待迁移磁盘的磁盘标识发送至所述多路径软件。
通过建立待迁移磁盘的磁盘标识与镜像磁盘的磁盘标识的映射关系,所述代理模块在接收到镜像磁盘的磁盘标识时,可以快速的找到所述镜像磁盘的磁盘标识对应的待迁移磁盘的磁盘标识。
结合第一方面以上任一种可能的实现,在一种可能的实现中,所述代理模块通知所述第二存储阵列上报归属于主机的磁盘的磁盘标识时,首先触发主机操作系统发送磁盘上报命令至所述第二存储阵列,所述磁盘上报命令指示所述第二存储阵列根据所述上报命令生成上报信息,并上报所述上报信息;然后,在接收到所述上报信息后,获取所述上报信息中的路径信息,所述路径信息为上报所述上报信息的路径的路径信息,为在上报所述上报信息的过程中生成的;最后,通过由所述路径信息确定的路径发送磁盘标识查询命令至所述第二存储阵列,以通知所述第二存储阵列上报归属于所述主机的磁盘的磁盘标识。
通过这种可能的实现,所述代理模块在触发操作系统发送磁盘上报命令至第二存储阵列后,拦截第二存储阵列上报给所述多路径模块的上报信息,并通过代理模块获取第二存储阵列中的磁盘标识,从而使代理模块可以为上报镜像磁盘的磁盘标识的路径设置访问待迁移磁盘的虚拟路径。
结合第二方面以上任一种可能的实现,在一种可能的实现中,所述代理模块获取所述第二存储阵列在构建所述镜像磁盘后发送的镜像磁盘的磁盘标识;建立所述镜像磁盘的磁盘标识与所述待迁移磁盘的磁盘标识的映射关系;在接收到第二存储阵列上报的归属于所述主机的磁盘的磁盘标识后,若所上报的磁盘标识存在于所述映射关系中,则确定所上报的磁盘标识为镜像磁盘的磁盘标识,在确定所述镜像磁盘的磁盘标识后,即可为上报所述镜像磁盘的磁盘标识的路径设置虚拟路径信息。
结合第二方面以上任一种可能的实现,在一种可能的实现中,所述虚拟路径信息包括路径编号及路径指针,所述路径编号用于表示上报所述镜像磁盘标识的路径,所述路径指针指向上报所述镜像磁盘标识的路径。
通过设置所述路径指针,可以使所述多路径模块通过所述虚拟路径下发的或请求被下发至所述代理模块。
结合第二方面以上任一种可能的实现,在一种可能的实现中,所述第一存储阵列与所述第二存储阵列的厂商不同,所述待迁移磁盘的标识和所述镜像磁盘的磁盘标识中包括厂商信息。
本发明更有利于解决第一存储阵列和第二存储阵列为不同厂商的数据的在线迁移。
结合第二方面以上任一种可能的实现,在一种可能的实现中,所述代理模块通过所述主机与所述第二存储阵列之间的通讯协议中的私有命令将所述待迁移磁盘的磁盘标识发送至所述第二存储阵列。
结合第二方面以上任一种可能的实现,在一种可能的实现中,所述私有命令包括命令描述块及缓存,所述命令描述块指示所述第二存储阵列生成所述镜像磁盘,所述缓存包括发送信息部分和返回信息部分,所述发送信息部分用于写入所述待迁移磁盘的磁盘标识;所述返回信息部分用于在所述第二存储阵列构建所述镜像磁盘后,写入所述镜像磁盘的磁盘标识。
结合第二方面以上任一种可能的实现,在一种可能的实现中,所述迁移方法还包括在所述多路径模块将所述虚拟路径设置为所述待迁移磁盘的优先访问路径后,发送迁移命令至所述第二存储阵列,所述迁移命令指示所述第二存储阵列对所述待迁移磁盘的数据进行迁移,所述迁移命令中包括所述镜像磁盘的磁盘标识。
本发明第三方面提供一种I/O请求处理方法,用于将位于第一存储阵列的待迁移磁盘中的数据在线迁移至第二存储阵列。所述处理方法由主机执行。主机根据侦测到的数据迁移请求获取待迁移磁盘的磁盘标识及第二存储阵列的阵列标识,并将所述待迁移磁盘的磁盘标识发送至所述阵列标识对应的第二存储阵列,以使所述第二存储阵列根据所述待迁移磁盘的磁盘标识构建所述待迁移磁盘的镜像磁盘,其中,所述待迁移磁盘构建于所述第一存储阵列。然后将所述镜像磁盘设置为所述待迁移磁盘的磁盘对象的被优先访问的磁盘。在接收到访问待迁移磁盘的输入/输出I/O请求时,所述主机根据所述I/O请求中携带的待迁移磁盘的磁盘对象的名称将所述I/O请求发送给所述镜像磁盘。
本发明实施例第三方面提供一种由应用于主机的I/O请求处理方法,本发明实施例第二方面提供的迁移方法与第一方面提供的迁移方法不同点在于,在第二方面的实施例中,所述代理模块在获取迁移请求后,会生成一个综合命令。所述综合命令中包括两个命令,即镜像磁盘生成命令及迁移命令,所述镜像磁盘生成命令和迁移命令与第一方面面所提供实现方式相同,并且在该综合命令里定义了镜像磁盘生成命令及迁移命令的执行顺序及触发条件,例如,可定义先执行所述镜像磁盘生成命令,然后执行所述迁移命令,并定义所述迁移命令的执行条件为所述第二存储阵建立好所述虚拟路径之后,或者等待预设的时间之后。
通过第三方面提供的实现方式,所述代理模块只要发一次命令至所述第二存储阵列即可,可以减少主机与存储阵列之间的交互。
本发明第四方面提供一种应用于主机的I/O请求处理方法,用于将位于第一存储阵列的待迁移磁盘中的数据在线迁移至第二存储阵列。在本方面的实现方式中,在所述主机中安装了一个代理模块,由所述代理模块执行所述I/O请求处理方法。所述代理模块在侦测到发送至主机的数据迁移请求后,从所述数据迁移请求中获取待迁移磁盘的磁盘标识,然后将所述待迁移磁盘标识返回至客户端,以使所述客户端获取所述磁盘标识,并将所述待迁移磁盘的磁盘标识发送至所述阵列标识对应的第二存储阵列,已使所述第二存储阵列根据所述待迁移磁盘的磁盘标识构建所述待迁移磁盘的镜像磁盘。在收到所述第二存储阵列构建好所述镜像磁盘的反馈命令之后,所述代理模块接收所述客户端发送的建立虚拟路径的命令,根据所述命令通知所述第二存储阵列上报归属于所述主机的磁盘的磁盘标识,为上报所述镜像磁盘的磁盘标识的路径设置虚拟路径信息,然后将所述虚拟路径信息上报至所述主机的多路径模块,所述虚拟路径上报信息指示所述主机通过所述虚拟路径信息所指示的虚拟路径发送的磁盘标识查询命令至所述代理模块。所述代理模块在接收到所述磁盘标识查询命令后,将所述待迁移磁盘的磁盘标识发送至所述多路径模块,以使所述多路径模块将所述虚拟路径作为所述待迁移磁盘的路径,并将所述虚拟路径设置为所述待迁移磁盘的优先访问路径,访问所述待迁移磁盘的输入输出I/O请求优先通过所述虚拟路径下发。所述代理模块发送虚拟路径建立完成的反馈命令至客户端,客户端发送迁移命令至所述第二存储阵列,所述迁移命令指示所述第二存储阵列对所述待迁移磁盘的数据进行迁移。
通过在主机中安装代理模块,所述代理模块拦截第二存储阵列上报给多路径模块的镜像磁盘的磁盘标识,并为上报镜像磁盘的路径设置指向代理模块的虚拟路径。在多路径模块通过所述虚拟路径查询镜像磁盘的磁盘标识时,所述代理模块将待迁移磁盘的磁盘标识通过所述虚拟路径上报至多路径模块,以使所述多路径模块将所述虚拟路径作为待迁移磁盘的路径,并将所述虚拟路径作为优先访问路径。如此,主机即可将所接收到访问所述待迁移磁盘的IO通过所述虚拟路径下发至镜像磁盘所在的第二存储阵列,从而实现待迁移磁盘中的数据的在线迁移。
本发明第五方面提供一种处理输入/输出I/O请求方法。所述方法由目标存储阵列执行。所述目标存储阵列连接至主机,所述客户端连接至所述主机与所述目标存储阵列。在接收所述客户端发送的镜像磁盘生成命令时,所述目标存储阵列根据所述镜像磁盘生成命令中携带的待迁移磁盘的磁盘标识构建所述待迁移磁盘的镜像磁盘,其中,所述待迁移磁盘构建于所述源存储阵列。然后,接收所述主机发送的磁盘标识查询请求,将所述待迁移磁盘的磁盘标识通过所述镜像磁盘的访问路径上报至所述主机,以使所述主机将所述镜像磁盘的访问路径记录为所述待迁移磁盘的访问路径,使所述客户端将所述镜像磁盘的访问路径设置为所述待迁移磁盘的优先访问路径。
在目标存储阵列中为待迁移磁盘的建立镜像磁盘,主机通过镜像磁盘的访问路径查询镜像磁盘的磁盘标识时,将待迁移磁盘的磁盘标识发送至主机,从而使主机将所述镜像磁盘的访问路径记录为所述待迁移磁盘的访问路径,使所述客户端将所述镜像磁盘的访问路径设置为所述待迁移磁盘的优先访问路径,如此,主机即可将所接收到访问所述待迁移磁盘的IO通过所述镜像磁盘的访问路径下发至所述第二存储阵列,从而实现待迁移磁盘中的数据的在线迁移。
根据本发明第五方面,在一种可能的实现中,在所述待迁移磁盘的镜像磁盘构建完成之后,所述目标存储阵列建立所述镜像磁盘的磁盘标识与所述待迁移磁盘的磁盘标识的映射关系,在将所述待迁移磁盘的磁盘标识上报至所述主机之前,所述目标存储阵列在接收到所述磁盘标识查询请求后,根据所述磁盘标识查询请求中的所述镜像磁盘的磁盘编码获取所述镜像磁盘的磁盘标识,然后根据所述映射关系获取与所述镜像磁盘的磁盘标识对应的所述待迁移磁盘的磁盘标识。
根据本发明第五方面,在一种可能的实现方式中,在接收到所述磁盘标识查询请求之前,所述目标存储阵列在所述镜像磁盘构建完成之后,发送反馈命令至客户端,使所述客户端触发所述主机发送磁盘上报命令至所述目标存储阵列。在接收到所述磁盘上报命令后,所述目标存储阵列根据所述上报命令中的主机端口信息获取所述主机端口信息对应的磁盘编码,并将镜像磁盘的磁盘编码上报至所述主机,其中,上报所述镜像磁盘编码的路径为所述镜像磁盘的访问路径,以使所述主机通过所述镜像磁盘的访问路径发送所述磁盘标识查询请求。
根据本发明第五方面的任意一种可能的实现方式,所述目标存储阵列接收客户端发送的迁移命令,根据所述迁移命令将所述待迁移磁盘的数据迁移至所述镜像磁盘。
本发明实施例第六方面提供一种主机。所述主机包括镜像指示单元、路径上报单元、及磁盘标识上报单元。所述镜像指示单元用于根据侦测到的数据迁移请求获取待迁移磁盘的磁盘标识及第二存储阵列的阵列标识,并将所述待迁移磁盘的磁盘标识发送至所述阵列标识对应的第二存储阵列,以使所述第二存储阵列根据所述待迁移磁盘的磁盘标识构建所述待迁移磁盘的镜像磁盘,所述待迁移磁盘构建于所述第一存储阵列。所述路径上报单元用于通知所述第二存储阵列上报归属于所述主机的磁盘的磁盘标识,为上报所述镜像磁盘的磁盘标识的路径设置虚拟路径信息,并将所述虚拟路径信息上报至所述主机的多路径模块。所述磁盘标识上报单元用于接收主机的多路径模块通过虚拟路径发送的磁盘标识查询请求,所述虚拟路径根据所述虚拟路径信息确定,将所述待迁移磁盘的磁盘标识发送至所述多路径模块,以使所述多路径模块将所述虚拟路径作为所述待迁移磁盘的路径进行管理,并将所述虚拟路径设置为所述待迁移磁盘的优先访问路径,访问所述待迁移磁盘的输入输出I/O请求优先通过所述虚拟路径下发。
该第六方面提供迁移设备的其他可能的实现方式与第一方面提供的迁移方法的实现方式对应,在此不再赘述。
本发明实施例第七方面提供一种主机,所述主机连接第一存储阵列及第二存储阵列。所述主机包括镜像指示单元、设置单元、及I/O下发单元。所述镜像指示单元根据侦测到的数据迁移请求获取待迁移磁盘的磁盘标识及第二存储阵列的阵列标识,并将所述待迁移磁盘的磁盘标识发送至所述阵列标识对应的第二存储阵列,以使所述第二存储阵列根据所述待迁移磁盘的磁盘标识构建所述待迁移磁盘的镜像磁盘,其中,所述待迁移磁盘构建于所述第一存储阵列。所述设置单元用于将所述镜像磁盘设置为所述待迁移磁盘的磁盘对象的被优先访问的磁盘。所述I/O下发单元用于接收访问待迁移磁盘的输入/输出I/O请求,根据所述I/O请求中携带的待迁移磁盘的磁盘对象的名称将所述I/O请求发送给所述镜像磁盘。
该第七方面提供主机的其他可能的实现方式与第二方面提供的迁移方法的实现方式对应,在此不再赘述。
本发明实施例第八方面提供一种目标存储阵列,所述目标存储阵列连接至主机,客户端连接至所述主机与所述目标存储阵列。所述目标存储阵列包括镜像磁盘生成单元及上报单元。所述镜像磁盘生成单元用于接收所述客户端发送的镜像磁盘生成命令,根据所述镜像磁盘生成命令中携带的待迁移磁盘的磁盘标识构建所述待迁移磁盘的镜像磁盘,其中,所述待迁移磁盘构建于所述源存储阵列。所述上报单元,用于接收所述主机发送的磁盘标识查询请求,将所述待迁移磁盘的磁盘标识通过所述镜像磁盘的访问路径上报至所述主机。这样,可以使所述主机将所述镜像磁盘的访问路径记录为所述待迁移磁盘的访问路径,使所述客户端将所述镜像磁盘的访问路径设置为所述待迁移磁盘的优先访问路径。
该第八方面提供的目标存储设备其他可能的实现方式与第二方面提供的迁移方法的实现方式对应,在此不再赘述。
本发明实施例第九方面提供一种主机。所述主机包括处理器及存储器。所述存储器连接至所述处理器,用于存储程序指令。所述处理器运行所述程序指令以执行第一方面至第六方面所提供的任意一种可能的实现方式中的I/O请求处理方法。
本发明实施例第十方面提供一计算机可读介质,包括计算机执行指令,当计算机的处理器执行所述计算机执行指令时,所述计算机执行第一至第六方面任意一种可能的实现方式中的I/O请求处理方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例所应用的存储系统的架构图。
图2为图1中的主机中的多路径模块对访问图1中存储阵列中的磁盘的路径进行管理的方法的流程图。
图3为在需要迁移旧存储阵列中的数据时,将新的存储阵列连接至存储系统之后存储系统的示意图。
图4为本发明第一实施例中将图3中第一存储阵列的数据迁移至第二存储阵列的方法的流程图。
图5为本发明实施例中为客户端为用户提供的选择待迁移磁盘的界面的示意图。
图6为本发明实施例中通过SCSI协议中的私有命令定义的镜像磁盘生成命令的说明表。
图7为本发明实施例中建立虚拟路径的过程的示意图。
图8为本发明第三实施例中将第一存储阵列的数据迁移至第二存储阵列的方法的流程图。
图9为本发明实施例提供的主机的方块图。
图10为本发明实施例提供的主机的结构图。
图11为本发明第四实施例中的存储系统的示意图。
图12为本发明第四实施例中将第一存储阵列的数据迁移至第二存储阵列的方法的流程图。
图13为本发明第四实施例中第二存储阵列的方块图。
图14为本发明第四实施例中第二存储阵列的结构图。
具体实施方式
如图1所示,为本发明实施例所应用的存储系统100的架构图。在所述存储系统100中,多个主机101、102及103通过交换机120连接至存储阵列130。在本实施例中,各主机的结构基本相同,在下面的描述中,以主机101为例进行描述。主机101上运行有各种应用软件111,以为客户提供不同的应用业务。存储阵列130中存储有主机中的应用在运行时产生的业务数据。所述存储阵列130可以是使用非易失性存储器标准(Non-Volatile Memoryexpress,NVMe)接口的闪存阵列,也可以是使用小型计算机系统接口(Small ComputerSystem Interface,SCSI)的存储阵列。客户端300可通过网络200连接至各主机,以实现对主机的操作或控制。
存储阵列130可以被划分为至少一个磁盘,例如磁盘1~n,存储阵列130可以使用不同的接口与主机通信,比如NVMe接口、SCSI接口。在所述存储阵列130是使用NVMe接口的闪存阵列时,则所述主机100与所述存储阵列130通过NVMe协议通信,所述磁盘即可通过NVMe协议中定义的命名空间(Namespace)表示。在所述存储阵列130是使用SCSI接口的存储阵列时,则主机101与所述存储阵列130通过SCSI协议通信,所述磁盘即可通过SCSI协议中定义的逻辑单元号(Logic Unit Number,LUN)表示。在磁盘划分好后,存储阵列130会给每个磁盘分配一个磁盘标识(Identification,ID)和一个磁盘编码。其中,该磁盘标识可以唯一标识磁盘,例如,该磁盘标识包括应用于SCSI协议的全球唯一名字(World Wide Name,WWN)、厂商信息(vendor)、及产品信息(product);或者该磁盘标识包括应用于NVMe协议的全局唯一标识符(Globally Unique Identifier,GUID)、厂商信息及产品信息。该磁盘编码用于区别存储阵列中不同磁盘,例如SCSI协议下的LUN编号LUN1、LUN2……,NVMe协议下的Namespace编号,例如Namespace1、Namespace2……。在所述磁盘的磁盘标识及磁盘编码分配好后,所述存储阵列130会配置所述磁盘与主机的映射关系,具体为配置所述磁盘编码与主机端口信息(例如,HBA卡端口信息)的映射关系,根据所述映射关系即可确定所述磁盘所归属的主机。
所述主机101还包括多路径模块112,所述多路径模块112可以为一个软件程序,由所述主机101执行。主机101发现有新的设备接入后,会通过多路径模块112对新设备中的磁盘进行管理,建立访问磁盘的路径,具体方法如图2中的流程图所示。
步骤S201,当主机101的操作系统114监测到存储阵列130连接到主机101时,操作系统114通过主机101与存储阵列130之间的多条路径分别发送磁盘上报命令至存储阵列130,所述磁盘上报命令中包括传输所述磁盘上报命令的主机端口信息。
步骤S202,存储阵列130接收磁盘上报命令,获取所述磁盘上报命令中的主机端口信息,根据所述主机端口信息及磁盘编码与主机端口信息的映射关系获取所述主机端口对应的磁盘编码,为所述磁盘编码对应的磁盘生成上报信息,在上述上报信息中携带所述磁盘编码,并将所述上报信息上报至主机101。
根据存储阵列130与主机101之间的通讯协议的规定,在所述上报信息上报的过程中,当所述上报信息经过存储阵列端口(图未示)及主机端口(图未示)时,所述存储阵列端口及主机端口会分别将存储阵列端口的阵列端口ID及主机端口的主机端口ID加到所述上报信息中,则所述上报信息中包括上报所述上报信息的路径信息。例如,若主机101与存储阵列130之间的通信协议为SCSI协议,则所述上报命令为SCSI协议定义的Report LUN命令。
步骤S203,主机端口的驱动软件在收到所述上报信息后,根据所述上报信息中的路径信息为上报所述上报信息的路径设置逻辑路径信息,将逻辑路径信息加到所述上报信息中,并将加入了逻辑路径信息的上报信息上报至多路径模块112。
在为上报所述上报信息的路径设置逻辑路径信息时,所述主机端口的驱动软件首先会获取所收到的上报信息中的磁盘编码,并为上报所述上报信息的路径设置逻辑路径信息。所述逻辑路径信息包括路径编号、路径指针。所述路径编号可以根据收到包含所述磁盘编码的上报信息的次数确定,例如,第一次收到,则设置所述路径编号为路径1,第二次收到,则设置所述路径编号为路径2。所述路径指针指向上报所述上报信息的路径信息。所述路径信息包括所述上报信息中的阵列端口ID及主机端口ID。在所述路径编号设置好之后,可用所述路径编号标识上报所述上报信息的路径。
步骤S204,多路径模块112接收所述上报信息,并获取所述上报信息中的逻辑路径信息。
步骤S205,多路径模块112根据所述逻辑路径信息所确定的路径发送磁盘标识查询命令,所述查询命令中包括所述上报信息中的磁盘编码。
步骤S206,所述存储阵列130接收所述查询命令,根据所述查询命令中的磁盘编码获取所述磁盘编码对应的磁盘标识,并将所述磁盘编码对应的磁盘标识通过发送所述查询命令的路径上报。
由于存储阵列130在创建磁盘时,为每个磁盘分配了磁盘标识和磁盘编码,所以存储阵列130在接收到所述磁盘编码后,即可根据磁盘编码获取磁盘标识。
步骤S207,所述多路径模块112根据上报的磁盘标识确定访问所述磁盘标识对应的磁盘的路径,并对所确定的路径进行管理。
具体地,所述多路径模块112在第一次收到一个与其他磁盘标识不同的磁盘标识时,会根据这个磁盘标识创建磁盘对象,包括为所述磁盘对象分配磁盘对象名称,建立所述磁盘对象名称与所述磁盘标识的映射关系,并将上报所述磁盘标识的路径记录为所述磁盘对象的路径。进一步的,还可以在所述磁盘对象中记录所述磁盘的其他相关信息,如地址空间,容量大小等。后续如果收到相同的磁盘标识,则可将后续上报所述磁盘标识的路径记录为所述磁盘对象另一条路径。如此,所述多路径模块112即可通过所述磁盘对象对访问所述磁盘的多条路径进行管理,例如发现新的路径、删除断开的路径、根据预设策略选择下发IO请求的路径等。所述预设的策略可以是预设的路径优先级,或者各条路径的负载均衡等。
例如,如果所述多路径模块首先在路径1收到磁盘编码为LUN1的磁盘的磁盘标识,则为LUN1建立磁盘对象,并为磁盘对象分配磁盘对象名称sda,并建立sda与所述磁盘标识的映射关系,将所述路径1记录为所述磁盘对象的第一条路径。如果后续在路径2及路径3上还收到LUN1的磁盘标识,则将路径2及路径3也记录为所述磁盘对象的路径。
在所述多路径模块112对访问所述存储阵列130中的磁盘的路径进行管理之后,所述多路径模块即可将主机下发的IO通过所述路径下发至所述存储阵列130,由所述存储阵列对所述磁盘中的数据进行读写。
当需要用新的存储阵列替换原有的存储阵列时,需要将原有的存储阵列的数据迁移至新的存储阵列。现有技术中,当新的存储阵列与原有的存储阵列为同构存储阵列时,可以实现数据的在线迁移,具体实现方法为:在新的存储阵列上构建旧的存储阵列中的待迁移磁盘的镜像磁盘,主机的多路径模块会获取所述镜像磁盘的磁盘标识,所述磁盘标识中包括厂商编码。多路径模块根据所获取镜像磁盘的磁盘标识中的厂商编码确定是否可以对所述镜像磁盘进行管理。如果所述磁盘标识中的厂商编码为所述多路径模块中预设的厂商编码,则所述多路径模块即可识别所述镜像磁盘为与当前存储阵列同构的存储阵列上的磁盘。多路径模块即可管理所述镜像磁盘,将上报所述镜像磁盘的磁盘标识的路径设置为访问所述镜像磁盘的路径。为了将旧的存储阵列的IO请求转移到新的存储阵列,所述多路径模块会将所述待迁移磁盘与所述镜像磁盘聚合为一个聚合磁盘,并将访问待迁移磁盘的路径与访问镜像磁盘的路径都设置为所述聚合磁盘的访问路径,这样,所有访问待迁移磁盘的IO请求都会下发至所述聚合磁盘。另外,多路径模块会将访问所述镜像磁盘的路径设置为所述聚合磁盘的优先访问路径,这样,下发至所述聚合磁盘的IO请求会通过访问所述镜像磁盘的路径下发至所述镜像磁盘。
由于所述多路径模块一般为阵列厂商提供的,所述多路径模块中一般预设的通常也是该阵列厂商的厂商编码,因此,多路径模块通常只会识别该厂商的存储阵列。但是,如果新的存储阵列与旧的存储阵列为异构存储阵列,由于主机上安装的是旧的存储阵列的厂商提供的多路径模块,一般无法识别新的存储阵列上构建的镜像磁盘。因此,无法将IO请求转移至新的存储阵列,只能停止主机运行的客户业务,并在断开旧的存储阵列与主机之间的连接后将旧的存储阵列上的数据迁移至新的存储阵列。数据迁移完成后,再配置新的存储阵列,并基于新的存储阵列启动客户业务,即无法实现数据的在线迁移。
本发明实施例中将旧的存储阵列上的数据迁移至与所述旧的存储阵列异构的新的存储阵列时,无需停止主机的业务,而是将主机的业务下发至新的存储阵列,从而实现异构存储阵列的数据的在线迁移。图3所示为在需要迁移旧存储阵列中的数据时,将新的存储阵列连接至存储系统之后存储系统的示意图。其中,第一存储阵列140为旧的存储阵列,主机中安装的多路径模块112已经对访问第一存储阵列140的待迁移磁盘141的路径进行了管理。第二存储阵列150即为新的存储阵列,所述第一存储阵列140与所述第二存储阵列150之间通信连接,两者之间的通信协议可以是NVNe协议或者SCSI协议。在将所述第二存储阵列150接入所述主机101之前,会在所述主机101上安装代理模块113,所述代理模块113为所述主机执行的软件程序,位于所述多路径模块112的下层,即在主机101通过多路径模块112与第二存储阵列150交互时,先要经过所述代理模块113,主机101通过运行所述代理模块113,无需更改现有的多路径模块112即可实现异构存储阵列的在线数据迁移。具体方法请参阅图4的描述。
下面将结合图4所示流程图说明本发明第一实施例进行异构存储阵列数据迁移的方法。
首先,在步骤S301中,用户通过客户端300选择需要迁移的磁盘,即待迁移磁盘141及迁入所述待迁移磁盘的数据的目标存储阵列,并发送迁移请求至所述待迁移磁盘所归属的主机101。本实施例中,所述目标存储阵列即为所述第二存储阵列150。所述迁移请求中包括待迁移磁盘141的磁盘名称及所述第二存储阵列150的阵列标识,所述阵列标识用于唯一标识所述第二存储阵列150。
当客户端300通过网络200连接至所述主机101时,客户端300会获取并存储主机101及归属于所述主机101的磁盘的相关信息,所以用户可以通过客户端300提供的显示界面选择待迁移磁盘。
如图5所示示例,客户端300的显示界面40中显示了归属于每个主机101的磁盘的磁盘名称41,用户选择对应的磁盘名称41,即可选中该磁盘名称41所表示的待迁移磁盘141,点击系统提供的迁移按钮42,即可产生迁移请求,并将待迁移磁盘的名称41,例如Sdb携带在迁移请求中发送至所述待迁移磁盘所归属的主机101。图5所示的界面只是举例说明,在不同的系统中可采用不同的界面显示存储系统中各主机101及归属于各主机101的磁盘。
所述客户端300和所述第二存储阵列150也通过网络连接,所以所述客户端300可以从所述第二存储阵列150中获取所述第二存储阵列150的阵列标识。
步骤S302,所述代理模块113在侦测到所述主机101接收到所述迁移请求后从所述迁移请求中获取所述待迁移磁盘141的磁盘名称及第二存储阵列150的阵列标识。
步骤S303,所述代理模块113根据待迁移磁盘141的磁盘名称获取待迁移磁盘141的磁盘标识。
如图2中的步骤S206所描述的,在存储阵列上报磁盘的磁盘标识后,主机101会为磁盘生成磁盘名称,并建立磁盘名称与磁盘磁盘标识的映射关系。这样,在主机101获取待迁移磁盘141的磁盘名称后,即可获取待迁移磁盘141的磁盘标识。
步骤S304,所述代理模块113生成镜像磁盘生成命令,在所述镜像磁盘生成命令中携带所述待迁移磁盘的磁盘标识,并将所述镜像磁盘生成命令发送至根据所述第二存储阵列的阵列标识确定的第二存储阵列150。
一般主机与存储阵列之间的通讯协议包括SCSI协议及NVMe协议,这些协议中都包括私有命令,用户可以自定义所述私有命令,在本实施例中,用户即可将所述私有命令自定义为所述镜像磁盘生成命令,并在其中携带所述待迁移磁盘的磁盘标识。
如图6所示,为通过SCSI协议中的私有命令Inquiry VPD Page 0xC8定义的所述镜像磁盘生成命令的说明表。
所述说明表包括所述私有命令的名称、实现的功能、命令参数及缓存(Buffer)。例如,本实施例中使用的是SCSI协议中的名称为Inquiry VPD Page 0xC8的私有命令。可以在说明表中的功能列描述该私有命令的功能为实现通知目标阵列生成镜像磁盘的功能。参数部分为通过字节定义该私有命令实现的功能,这里的取值是通讯双方提前协商好的。即对端(例如第二存储阵列)在接收到这个私有命令后,可以根据参数部分的命令描述块(command descriptor block,CDB)的取值,识别该私有命令所指示执行的功能。例如,在本实施例中,用命令描述块CDB[0]的取值0x12表示这个私有命令为SCSI命令集中的查询(Inquiry)命令;用命令描述块CDB[2]的取值0xc8,来表示通知目标阵列生成镜像磁盘。缓存包括两个部分,第一部分是发送信息部分,用于填入该私有命令所携带的信息。在本实施例中,该私有命令携带的是待迁移磁盘的磁盘标识,所携带的待迁移磁盘的标识可填入缓存中的发送信息部分,例如,所述待迁移磁盘的磁盘标识包括待迁移磁盘厂商的ID,取值为AAA,占用0号字节;待迁移磁盘的产品名称,取值为BBB,占用1号字节;待迁移磁盘的WWN,XXXXXXXXX,占用3-66号字节。所述述返回信息部分用于在所述第二存储阵列建立好待迁移磁盘的镜像磁盘后,写入镜像磁盘的磁盘标识,具体请参考步骤S306的描述。
步骤S305,所述第二存储阵列150在接收到所述镜像磁盘生成命令后,获取所述镜像磁盘生成命令中携带的待迁移磁盘的磁盘标识,然后对所述待迁移磁盘141构建镜像磁盘151(根据待迁移磁盘的磁盘标识对所述待迁移磁盘141构建镜像磁盘的过程将在下文描述),并为所述镜像磁盘151分配磁盘标识、磁盘编码、及主机端口。
所述第一存储阵列140和所述第二存储阵列150之间也可以通过SCSI协议或者NVMe协议通讯。在所述第二存储阵列150构建所述待迁移磁盘141的镜像磁盘时,所述第二存储阵列150发送磁盘上报命令至所述第一存储阵列140。所述第一存储阵列140在接收到所述磁盘上报命令后,对第一存储阵列140上的每个磁盘生成一个上报信息,在每个上报信息中携带对应磁盘的磁盘编码,并将每个上报信息上报至所述第二存储阵列150。在所述上报信息上报的过程中,上报信息经过的第一阵列端口及第二阵列端口会将各自的端口ID加入所述上报信息,生成上报所述上报信息的路径的路径信息。所述第二存储阵列150通过所述路径信息所表示的路径发送磁盘标识查询命令至所述第一存储阵列140。所述查询命令中包括所述路径信息中的磁盘编码。所述第一存储阵列140根据所述查询命令中的磁盘编码获取所述磁盘编码对应的磁盘标识,并将所述磁盘标识通过所述路径信息所表示的路径发送至所述第二存储阵列150。若所述第一存储阵列140上报的磁盘标识与所述第二存储阵列150预存的待迁移磁盘的磁盘标识相同,则所述第二存储阵列150将上报所述待迁移磁盘的磁盘标识的路径作为访问所述待迁移磁盘的路径进行管理。在所述第二存储阵列150管理了访问所述待迁移磁盘的路径后,所述第二存储阵列150即可获取所述待迁移磁盘141的相关信息,例如,磁盘大小,地址空间等,然后根据这些信息在第二存储阵列150中构建所述待迁移磁盘的镜像磁盘151,所构建的镜像磁盘151的大小可以大于也可以等于所述待迁移磁盘。第二存储阵列150根据待迁移磁盘的磁盘信息构建镜像磁盘的方式与现有技术相同,在此不再赘述。
步骤S306,在所述镜像磁盘构建好之后,所述第二存储阵列150将所述镜像磁盘151的磁盘标识携带在所述镜像磁盘生成命令的反馈命令中,并发送所述反馈命令至所述主机101。
如图6所示,所述私有命令中的缓存中还包括在返回信息部分,在所述第二存储阵列建立好所述镜像磁盘后,即可将所述镜像磁盘的磁盘标识写入所述返回信息部分,例如,在第67号字节写入镜像磁盘的厂商信息CCC,在第68号字节写入镜像磁盘的产品信息DDD,在第69~132字节写入镜像磁盘的WWN。在将所述镜像磁盘的磁盘标识写入所述私有命令后,即形成所述私有命令的反馈命令,并将所述反馈命令发送至所述主机。
步骤S307,所述代理模块113在接收到所述反馈命令后,获取所述镜像磁盘151的磁盘标识,并建立所述待迁移磁盘141的磁盘标识与所述镜像磁盘151的磁盘标识的映射关系。为方便描述,下文中将此处的映射关系称为磁盘标识映射关系。
步骤S308,在所述磁盘标识映射关系建立之后,所述代理模块113触发操作系统114通过所述主机101与第二存储阵列150之间的一条或者多条路径发送磁盘上报命令,所述磁盘上报命令中包括传输所述磁盘上报命令的主机端口信息。
通常当有存储阵列连接至主机,或者连接至主机的存储阵列中插入硬盘或者拔出硬盘后,主机的操作系统114会向存储阵列发送磁盘上报命令,以更新归属于所述主机的磁盘的访问路径。而本实施例中,代理模块113在上述磁盘标识映射关系建立之后,也会触发操作系统114通过主机101与第二存储阵列150之间的一条或者多条路径向所述第二存储阵列发送磁盘上报命令。
步骤S309,所述第二存储阵列150在收到磁盘上报命令后,获取所述磁盘上报命令中的主机端口信息,查询磁盘编码与主机端口信息的映射关系获取所述主机端口对应的磁盘编码,为所述磁盘编码对应的磁盘生成上报信息,将所述磁盘编码携带在所述上报信息中,并将所生成的上报信息上报至主机101。在上报信息上报的过程中会生成上报所述上报信息的路径的路径信息,具体请参考图2中步骤S203及204的描述。
在所述主机101与所述第二存储阵列150之间存在多条路径时,所述主机101会通过多条路径向所述第二存储阵列150发送磁盘上报命令。所述第二存储阵列150每收到一个磁盘上报命令就会根据所收到的磁盘上报命令生成一个上报信息。
步骤S310,所述代理模块113接收所述上报信息,获取并记录所述上报信息中路径信息,然后通过由所述路径信息确定的路径发送磁盘标识查询命令至所述第二存储阵列150,所述磁盘标识查询命令中携带所述上报信息中的磁盘编码。
此处的路径信息即为图2中步骤203中描述的逻辑路径信息。
现有技术中,由于没有安装所述代理模块,所以所述上报信息会直接上报至多路径模块,多路径模块会根据上报信息发送磁盘标识查询命令至第二存储阵列。但是在本实施例中,由于所述代理模块安装在所述多路径模块的下层,所以所述上报信息会被所述代理模块拦截,在拦截所述上报信息后,由所述代理模块发送磁盘标识查询命令至所述第二存储阵列150。
步骤S311,所述第二存储阵列150接收到所述磁盘标识查询命令后,根据所述磁盘标识查询命令中携带的磁盘编码获取所述磁盘编码对应的磁盘标识,并将所述磁盘标识通过发送所述查询命令的路径上报至所述代理模块S113。
现有技术中,所述磁盘标识会直接报给所述多路径模块。但是在本实施例中,由于所述代理模块的存在,所以所述磁盘标识也会上报至所述代理模块。
步骤S312,所述代理模块113若确定所上报的磁盘标识存在于所述磁盘标识映射关系中,则认为所上报的磁盘标识为镜像磁盘的磁盘标识,并为上报所述镜像磁盘的磁盘标识的路径(即为图2中步骤S203中描述的逻辑路径信息对应的逻辑路径,以下简称“磁盘标识上报路径”)设置虚拟路径信息,并将所设置的虚拟路径信息上报至所述多路径模块112。
如步骤S308所描述,代理模块113在建立所述磁盘标识映射关系后,会触发操作系统114对第二存储阵列150发送磁盘上报命令,所以代理模块113接收到的磁盘标识都是所述第二存储阵列150中的磁盘的磁盘标识,只要所上报的磁盘标识存在于所述磁盘标识的映射关系中,即可认为所上报的磁盘标识为本次迁移的目标磁盘,即镜像磁盘的磁盘标识。
所述虚拟路径信息包括路径编号、路径指针、及磁盘编码,所述路径编号由所述代理模块113指定,可以与上报所述镜像磁盘的磁盘编码的路径的路径编号不同,也可以相同,所述路径指针指向所述代理模块113中记录的磁盘标识上报路径的路径信息,所述磁盘编码即为所述镜像磁盘的磁盘编码。
步骤S313,所述多路径模块112在收到所述虚拟路径信息后,通过由所述虚拟路径信息确定的虚拟路径下发镜像磁盘的磁盘标识查询命令至所述代理模块,所述磁盘标识查询命令包括所述镜像磁盘的磁盘编码。
由于所述虚拟路径信息中包含路径指针,所述路径指针指向所述代理模块中记录的磁盘标识上报路径的路径信息,所以所述多路径模块112会将所述磁盘标识查询命令发送至所述代理模块113。
在本实施例,多路径模块收到的是代理模块上报的信息,所上报的信息中包括的是虚拟路径信息,而所述虚拟路径信息的路径指针指向的是代理模块,所以,所述磁盘标识查询命令会被发送至所述代理模块,而不会像现有技术一样发送至第二存储阵列。
步骤S314,所述代理模块113在收到所述磁盘标识查询命令后,获取所述磁盘标识查询命令中携带的镜像磁盘的磁盘编码,根据所述镜像磁盘的磁盘编码获取所述镜像磁盘的磁盘标识,并根据在步骤307中建立的磁盘标识映射关系得到所述待迁移磁盘141的磁盘标识,然后将所述待迁移磁盘的磁盘标识上报至多路径模块112。
步骤S315,所述多路径模块112在获取所述待迁移磁盘的磁盘标识后,将所述虚拟路径信息所表示的路径设置为所述待迁移磁盘的访问路径。
需要说明的是,后续主机101通过所述虚拟路径信息所表示的虚拟路径查询所述镜像磁盘的标识时,返回的也是待迁移磁盘的磁盘标识。
步骤S316,所述多路径模块112将所述虚拟路径设置为优先访问路径。
一般多路径模块或者主机系统都具有设置路径优先级的功能,此处代理模块113在上报待迁移磁盘的标识时,也可以携带将虚拟路径设置为优先访问路径的指令,多路径模块112即可根据所述指令将所述虚拟路径设置为优先访问路径,通过所述优先访问路径访问的镜像磁盘即为优先访问磁盘。
再将所述虚拟路径设置为优先访问路径后,在主机101接收到IO请求时,多路径模块112会通过所述虚拟路径信息中的路径指针将所述IO请求下发至所述代理模块113。所述代理模块113根据所述路径指针找到所述虚拟路径指向的磁盘标识上报路径,然后通过所述实际路径将所述IO下发至所述第二存储阵列150。所述第二存储阵列150根据所述IO请求访问所述镜像磁盘151中的数据。这样,即保证了后续第二存储阵列150对待迁移磁盘141的数据迁移时,主机101业务的不中断。
需要说明的是,如果在通过虚拟路径下发IO请求的过程中,访问所述镜像磁盘的路径中断,则多路径模块112会将IO请求通过访问所述待迁移磁盘的路径下发。等到访问所述镜像磁盘的路径恢复之后,或者重新建立了所述虚拟路径之后,再将所述IO请求通过新建立的虚拟路径下发,并重新启动对待迁移磁盘中的数据的迁移。
虚拟路径的建立过程可进一步参考图7所示的示例。
例如,在对第一存储阵列中的待迁移磁盘的数据迁移之前,主机只与第一存储阵列连接,主机上也没有安装代理模块,所以按照图2所示的方法,由于所述多路径模块在路径1及路径2上收到了所述待迁移磁盘的磁盘标识(ID1),则多路径模块将路径1及路径2作为访问所述待迁移磁盘的路径。当需要将待迁移磁盘的数据迁移至第二存储阵列时,第二存储阵列被连接至主机,代理模块作为所述多路径模块的下层软间安装至主机。所述代理模块可以在所述第二存储阵列连接至主机之前安装至所述主机,也可以在所述第二存储阵列连接至主机之后再安装至主机。在所述第二存储阵列上根据图3中步骤302至305构建了所述待迁移磁盘的镜像磁盘后,所述第二存储阵列将所述镜像磁盘的磁盘标识返回至主机。主机的代理模块建立待迁移磁盘的磁盘标识与镜像磁盘的磁盘标识的映射关系。在所述映射关系建立好之后,所述代理模块触发主机的操作系统发送磁盘上报命令至所述第二存储阵列。
第二存储阵列将上报信息首先发送至所述端口驱动软件。所述端口驱动软件陆续收到第二存储阵列上报的上报信息,并根据收到的上报信息为每一个上报信息生成相应的逻辑路径信息。逻辑路径信息中包括为逻辑路径分配的路径编码,以及路径指针。为同一磁盘分配的路径编码不重复。本实施例中,如果所述端口驱动软件接收到两次包含镜像磁盘的磁盘编码的上报信息,则分别为上报包含镜像磁盘的磁盘编码的上报信息的路径分配路径编码路径3及路径4,并将这两条逻辑路径的路径信息上报至代理模块。代理模块在收到这两条逻辑路径信息后,根据这两条逻辑路径信息指示的路径3及路径4发送携带所述磁盘编码的磁盘标识查询命令至所述第二存储阵列。第二存储阵列根据所述磁盘查询命令中的磁盘编码获取磁盘标识,然后将磁盘标识(为了简便,图中仅WWN2表示)发送至代理模块。代理模块确定所述磁盘标识存在于之前设置的待迁移磁盘磁盘标识与镜像磁盘磁盘标识的映射关系中,则分别为所述路径3及路径4设置虚拟路径,即路径5及路径6。所述虚拟路径5和虚拟路径6的路径信息中包括路径指针,分别指向所述路径3及路径4,还包括所述待迁移磁盘的磁盘编码。所述代理模块将所述路径5及路径6的路径信息上报至所述多路径模块。所述多路径模块在接收到路径5及路径6的路径信息后,通过路径5及路径6发送携带所述镜像磁盘的磁盘编码的磁盘标识查询命令至代理模块。代理模块收到所述查询命令后,获取镜像磁盘的磁盘编码对应的磁盘标识,根据磁盘标识映射关系得到待迁移磁盘的磁盘标识,然后将所述待迁移磁盘的磁盘标识通过路径5及路径6上报至所述多路径模块。所述多路径模块收到所述待迁移磁盘的磁盘标识后,即可将所述路径5及路径6设置为所述待迁移磁盘的访问路径,并将所述路径5及路径6作为优先访问的路径。
步骤S317,所述代理模块113发送迁移命令至第二存储阵列150,并在迁移命令中携带镜像磁盘151的磁盘标识。
在其他实施例中,所述迁移命令中可以同时携带待迁移磁盘和镜像磁盘的标识,或者只携带待迁移磁盘的标识。
步骤S318,所述第二存储阵列150在接收到主机101的迁移命令后,根据镜像磁盘151的磁盘标识,获取镜像磁盘151对应的待迁移磁盘140的磁盘标识,由于第二存储阵列在为待迁移磁盘141建立镜像磁盘151时,已经建立了访问所述待迁移磁盘的访问路径,则第二存储阵列可以直接访问所述待迁移磁盘将其中的数据迁移至所述镜像磁盘151。
在此需要说明的是,主机发送迁移命令至第二存储阵列指示第二存储阵列进行数据迁移的操作也可以在所述虚拟路径建立好之前进行。如果所述数据迁移的操作在所述虚拟路径建立好之前进行,则需要在第一存储阵列中设置一个缓存,该缓存用于存储下发至第一存储阵列的IO请求,当所述虚拟路径建立好之后,再将缓存在所述缓存中的IO请求转发至所述第二存储阵列执行。
步骤S319,在待迁移磁盘141中的数据迁移完成后,所述第二存储阵列150反馈迁移完成的命令至主机101。
步骤S320,主机101将迁移完成的反馈命令返回给客户端300。在主机反馈迁移完成的命令时,可以携带待迁移磁盘的磁盘名称。
步骤S321,客户端接收所述迁移完成的命令,则所述待迁移磁盘的数据迁移流程结束。
在图4所描述的实施例中,通过在多路径模块的下层安装代理模块,现有技术中上报给多路径模块的用于上报第二存储阵列的磁盘编码的上报信息会被所述代理模块拦截,代理模块会进一步根据接收到上报信息查询第二存储阵列中的归属于主机的磁盘的磁盘标识,然后从所上报的磁盘标识中识别出镜像磁盘的磁盘标识,为上报所述镜像磁盘的路径设置虚拟路径信息,所述虚拟路径信息指向所述代理模块,并将镜像磁盘的磁盘编码及所述虚拟路径信息上报至所述多路径模块。现有技术中,多路径模块接收到的上报信息中的路径信息为所述第二存储阵列到所述多路径模块的路径信息,所以所述多路径模块会发送磁盘标识查询命令至第二存储阵列,但是在本实施例中,由于上报至多路径模块的为虚拟路径信息,所以,所述多路径模块会将磁盘标识查询命令通过所述虚拟路径信息所指示的虚拟路径将所述磁盘标识查询命令发送至所述代理模块。而代理模块会根据多路径模块所查询的镜像磁盘的磁盘标识获取待迁移磁盘的磁盘标识,并将待迁移磁盘的磁盘标识上报至多路径模块。这样,多路径模块即可将所述虚拟路径作为待迁移磁盘的路径进行管理,并在将所述虚拟路径设置为优先访问路径之后,主机接收的IO即可通过虚拟路径下发至所述镜像磁盘。如此,在将待迁移磁盘的数据迁移至镜像磁盘时,可以不用中断主机业务,从而实现数据的在线迁移。
在本发明的第二实施例中,所述代理模块在步骤S304中,生成一个综合命令,所述综合命令中包括两个命令,即镜像磁盘生成命令及迁移命令,所述镜像磁盘生成命令和迁移命令与第一实施例中的相同,并且在该综合命令里定义了镜像磁盘生成命令及迁移命令的执行顺序及触发条件,例如,可定义先执行所述镜像磁盘生成命令,然后执行所述迁移命令,并定义所述迁移命令的执行条件为所述第二存储阵150建立好所述虚拟路径之后,或者等待预设的时间之后。
在所述综合命令发送至所述第二存储阵列150之后,所述第二存储阵列150先执行所述镜像磁盘生成命令,即执行步骤S305及S306。如果所述综合命令中定义的所述迁移命令的执行条件为建立好所述虚拟路径后,则所述多路径模块在步骤S316建立好所述虚拟路径后,会发送通知命令至所述第二存储阵列,则所述第二存储阵列即可根据所述通知命令执行所述迁移命令,即对所述待迁移磁盘中的数据进行迁移。具体迁移过程请参考步骤S318的描述。如果所述综合命令中定义的所述迁移命令的执行条件为等待预设时间后,则所述第二存储阵列在收到所述综合命令之后开始计时,在计时达到预设时间,则开始执行所述迁移命令,对所述待迁移磁盘中的数据进行迁移。在执行所述迁移命令时,如果所述虚拟路径已建立,则将在数据迁移过程中接收到的IO直接通过所述虚拟路径下发至所述第二存储阵列,如果所述虚拟路径还没有建立,则将在数据迁移过程中接收到的IO缓存在所述第一存储阵列的缓存中,等所述虚拟路径建立好之后再转移至所述第二存储阵列。
图8为本发明第三实施例中进行异构存储阵列数据迁移的方法的流程图。
第三实施例与所述第一实施的主要的区别在于,在第三实施例中,主要由所述客户端300控制数据的迁移,具体方案如下:
步骤601至603与第一实施例的步骤S301至S303相同,由于本实施例中是由所述客户端控制数据迁移的过程,所以,主机在步骤S603获取待迁移磁盘的磁盘标识后,会在步骤S604将所述待迁移磁盘的磁盘标识返回给所述客户端。
在步骤S605,所述客户端在接收到所述待迁移磁盘的磁盘标识后,即生成镜像磁盘生成命令,并将所述镜像磁盘生成命令直接发送至所述第二存储阵列。
在步骤S606,所述第二存储阵列即根据所述镜像磁盘生成命令生成镜像磁盘,第二存储阵列生成镜像磁盘的方式与第一实施例的相同,具体请参考图4中步骤S305。
在步骤S607,所述第二存储阵列将携带所述镜像磁盘标识的反馈命令至客户端。
在步骤S608,所述客户端发送建立虚拟路径的命令值主机,所述建立虚拟路径的命令包括所述镜像磁盘的磁盘标识。
在步骤S609,代理模块建立所述待迁移磁盘的标识与所述镜像磁盘的标识的映射关系。
步骤S610至步骤S618与图4中步骤308及316分别对应,且所执行的功能相同,请参考图4中的相关描述,在此不再赘述。
在步骤S619中,所述代理模块发送反馈命令至客户端。
在步骤S620中,所述客户端在收到所述反馈命令后,即发送迁移命令至所述第二存储阵列,所述迁移命令中携带待迁移磁盘的磁盘标识。
在步骤S621中,所述第二存储阵列即可根据所述迁移命令对所述带待迁移磁盘中的数据进行迁移。具体迁移过程请参考图4中步骤S318的描述。
在步骤S622中,若所述第二存储阵列完成待迁移磁盘中数据的迁移,则发送迁移完成的反馈指令至所述客户端。
在步骤S623中,所述客户端接收到所述迁移完成的反馈指令,则结束数据迁移的流程。
需要说明的是,在进行数据迁移的过程中,所接收到写请求,则可以将写请求中的待写入数据通过建立的逻辑路径写入镜像磁盘,当接收到读请求时,也可以将读请求通过所述逻辑路径下发至第二存储阵列,第二存储阵列在接收到所述读请求时,在镜像磁盘中读取数据,若所读取的数据还没有从待迁移磁盘中迁移过来,则所述第二存储阵列从所述第一存储阵列中的待迁移磁盘中读取数据。
另外,在数据迁移的过程中,如果发现虚拟磁盘中已经写入了新的数据,则不用迁移数据覆盖已经写入的新数据。
图9所示为对应于本发明第一实施例主机110的功能方块图。
所述主机110包括镜像指示单元901、映射建立单元902、路径上报单元903、磁盘标识上报单元904、迁移指示单元905、及I/O下发单元906。所述镜像指示单元901用于在侦测到主机接收到迁移请求后从所述迁移请求中获取待迁移磁盘的磁盘名称及第二存储阵列的阵列标识,根据待迁移磁盘的磁盘名称获取待迁移磁盘的磁盘标识,然后生成镜像磁盘生成命令,并将所述镜像磁盘生成命令发送至根据所述第二存储阵列的阵列标识确定的第二存储阵列。所述镜像磁盘生成命令中携带所述待迁移磁盘的磁盘标识,用于指示所述第二存储阵列为所述待迁移磁盘建立镜像磁盘。具体请参考图4中步骤S301-S304的描述。
所述映射建立单元902用于在收到第二存储阵列在构建好镜像磁盘后(镜像磁盘的构建方式请参考图4中步骤S305及S306的描述)所上报的镜像磁盘的磁盘标识时,建立所述待迁移磁盘的磁盘标识与所述镜像磁盘的磁盘标识的映射关系。具体请参考步骤S307的描述。
所述路径上报单元903用于触发操作系统通过所述主机与第二存储阵列之间的一条或者多条路径发送磁盘上报命令。在接收到所述第二存储阵列根据所述上报命令生成并上报的上报信息后(第二存储阵列根据所述上报命令生成上报信息的过程请参考图4中步骤S309的描述),所述路径上报单元903会获取并记录所述上报信息中路径信息,然后通过由所述路径信息确定的路径发送磁盘标识查询命令至所述第二存储阵列150,所述磁盘标识查询命令中携带所述上报信息中的磁盘编码。在接收到所述第二存储阵列上报的磁盘标识(第二存储阵列上报磁盘标识的过程请参考图4中的步骤S311的描述)后,所述路径上报单元903若确定所上报的磁盘标识存在于所述磁盘标识映射关系中,则认为所上报的磁盘标识为镜像磁盘的磁盘标识,并为上报所述镜像磁盘的磁盘标识的路径(以下简称“磁盘标识上报路径”)设置虚拟路径信息,并将所设置的虚拟路径信息上报至所述多路径模块。具体请参考步骤S308、S310、S312的相关描述。所述多路径模块在收到所述路径上报单元903上报的虚拟路径信息后,会发送磁盘标识查询命令,具体请参考图4中的步骤S313的描述。
所述磁盘标识上报单元904用于在收到多路径模块发送的所述磁盘标识查询命令后,获取所述磁盘标识查询命令中携带的镜像磁盘的磁盘编码,根据所述镜像磁盘的磁盘编码获取所述镜像磁盘的磁盘标识,并根据所述磁盘标识映射关系将所述镜像磁盘的磁盘标识替换为所述待迁移磁盘的磁盘标识,然后将所述待迁移磁盘的磁盘标识上报至多路径模块。具体请参考图4中步骤S314的描述。
所述多路径模块在接收到所述待迁移磁盘的磁盘标识后,将所述虚拟路径信息所表示的路径设置为所述待迁移磁盘的访问路径,并将所述虚拟路径设置为优先访问路径。这样,所述I/O下发单元906在接收到主机下发的IO就可以通过所述虚拟路径下发至所述第二存储阵列,并由所述第二存储阵列执行所述IO对所述镜像磁盘中的数据进行访存。具体请参考图4中步骤S314和S315的描述。
所述迁移指示单元905用于发送迁移命令至第二存储阵列,所述迁移命令中携带镜像磁盘的磁盘标识,用于指示所述第二存储阵列将所述待迁移磁盘的数据迁移至所述镜像磁盘。具体请参考图4中的步骤S317的描述。
所述第二存储阵列在接收到所述迁移命令后,即可开始对待迁移磁盘中的数据进行迁移,数据迁移完成后,则反馈迁移完成的命令至主机,主机将迁移完成的命令继续反馈给客户端,如此,即可结束待迁移磁盘中的数据的迁移。具体请参考图4中的步骤S318至S321的描述。
需要说明的是所述路径上报单元903及磁盘标识上报单元904也可以包括在一个设置模块中。
图10为本发明实施例中主机110的硬件结构图。所述主机包括处理器20、内存30、系统总线40及主机端口50。所述处理器20、内存30和主机端口50之间通过系统总线40连接并完成相互间的通信。图3中主机中多路径模块112、代理模块113及操作系统114都以程序指令60的形式存储在所述内存30中。
当所述主机110运行时,所述处理器20运行内存30中的程序指令执行图4所示的方法流程。
本发明实施例还提供一种计算机可读介质,包括程序指令,当所述主机的处理器执行所述程序指令时,所述主机执行图4所述的方法流程。
在本发明第四实施例中提供一种存储系统400。如图11所示,存储系统400的架构与第一实施例中的存储系统100的区别仅在于在第四实施例中的主机410中不包括代理模块,而在第二存储阵列450中包括代理模块452。其他部分与第一实施例相同,在此不再赘述。
下面将结合图12所示的流程图说明第四实施例中对数据迁移的方法。
在步骤S1201,客户端300响应用户的数据迁移操作,首先发送镜像磁盘生成命令至所述第二存储阵列450。所述镜像磁盘生成命令中携带所述待迁移磁盘的磁盘标识。
与第一实施例中类似,第一存储阵列140为旧的存储阵列,第二存储阵列450为新的存储阵列,主机410已通过图2所示的方法对访问第一存储阵列150中挂载至所述主机的磁盘的路径进行了管理。在所述主机410中存储有第一存储阵列150中挂载至所述主机410的磁盘的相关信息,如挂载至所述主机410的磁盘的磁盘名称、磁盘编码、磁盘标识等。当用户需要对第一存储阵列140中的待迁移磁盘141中的数据进行迁移时,需要先通过客户端300从主机410中获取待迁移磁盘141的磁盘标识,然后将所述待迁移磁盘的磁盘标识携带在所述镜像磁盘生成命令中发送至所述第二磁盘阵列450。
步骤S1202,所述第二存储阵列450在接收到所述镜像磁盘生成命令后,获取所述镜像磁盘生成命令中携带的待迁移磁盘的磁盘标识,然后对所述待迁移磁盘141构建镜像磁盘151,并为所述镜像磁盘151分配磁盘标识、磁盘编码、及主机端口。
在所述第二存储阵列450中安装有代理模块452及镜像模块(图未示),所述代理模块452首先收到所述镜像磁盘生成命令,并在对所述镜像磁盘生成命令解析后,将解析后的镜像磁盘生成命令发送至所述镜像模块,所述镜像模块即可根据所述镜像磁盘生成命令生成所述待迁移磁盘的镜像磁盘151。
镜像磁盘的构建过程与第一实施例中的相同,具体请参考图4中步骤S305的描述,在此不再赘述。
步骤S1203,所述第二存储阵列450建立所述待迁移磁盘的磁盘标识与所述镜像磁盘的磁盘标识的映射关系。
在所述镜像模块构建好所述镜像磁盘之后,所述镜像模块452将所述镜像磁盘的磁盘标识传输至所述代理模块,并由所述代理模块建立所述镜像磁盘的磁盘标识与所述待迁移磁盘的磁盘标识的映射关系。
步骤S1204,所述第二存储阵列450发送镜像磁盘建立完成的反馈命令至所述客户端300,所述反馈命令中携带待迁移磁盘的磁盘标识及镜像磁盘的磁盘编码。
在所述代理模块452在建立好所述镜像磁盘的磁盘标识与所述待迁移磁盘的磁盘标识的映射关系后,将所述待迁移磁盘的磁盘标识及镜像磁盘的磁盘编码携带在反馈命令中发送至所述客户端300。
步骤S1205,所述客户端300在收到所述反馈命令后,根据所述待迁移磁盘的磁盘标识确认所述待迁移磁盘的镜像磁盘已经建立完成,并存储所述镜像磁盘的磁盘编码,然后登陆至主机410,并在所述主机上执行扫盘操作。。
在此需要说明的是,在客户端300接收到所述反馈命令后,可以自动登录至主机触发主机发送磁盘上报命令,也可以产生一通知告知用户所述待迁移磁盘的镜像磁盘已建立完成,用户即可通过客户端300登陆到主机410,并在主机410执行扫盘操作。所述通知可以为提示框,即客户端300弹出一个提示框,提示框的内容即为待迁移磁盘的镜像磁盘建立完成。
步骤S1206,所述主机410响应所述扫盘操作,发送磁盘上报命令至所述第二存储阵列450。
步骤S1207,所述第二存储阵列450接收所述磁盘上报命令,并根据磁盘上报命令生成上报信息,所述上报信息中包括所上报磁盘的磁盘编码。上报信息的生成请参考图2中步骤S202的相关描述,在此不再赘述。
步骤S1208,所述第二存储阵列450上报所述镜像磁盘的上报信息,在上报所述上报信息的过程中会生成上报所述上报信息的路径的路径信息。
在生成的上报信息经过代理模块452时,代理模块452会根据上报信息中的磁盘编码确定镜像磁盘的上报信息,并将镜像磁盘的上报信息上报至主机。由于在镜像磁盘构建之后,第二存储阵列即会为所述镜像磁盘分配磁盘编码和磁盘标识,所以所述代理模块根据上报信息中磁盘编码确定磁盘编码对应的磁盘标识,如果磁盘编码对应的磁盘标识存在所述镜像磁盘的磁盘标识与待迁移磁盘的磁盘标识的映射关系中,则包括所述磁盘编码的上报信息即为所述镜像磁盘的上报信息。
S1209,所述主机的多路径模块在接收到所述镜像磁盘的上报信息后,通过所述上报信息中的路径信息指示的路径发送磁盘标识查询命令至所述第二存储阵列。其中,所述上报信息中的路径信息指示的路径即为所述镜像磁盘的访问路径。
S1210,所述第二存储阵列在接收到所述磁盘标识查询命令后,根据镜像磁盘的磁盘编码及所述待迁移磁盘的磁盘标识与所述镜像磁盘的磁盘标识的映射关系获取待迁移磁盘的磁盘标识。
所述磁盘标识查询命令中携带所述镜像磁盘的磁盘编码,所述代理模块452根据述磁盘标识查询命令中的镜像磁盘的磁盘编码,确定镜像磁盘的磁盘标识,根据所述映射关系获取待迁移磁盘的磁盘标识。
S1211,将所述待迁移磁盘的磁盘标识通过所述镜像磁盘的访问路径上报至所述主机。
S1212,所述主机将所述镜像磁盘的访问路径作为访问所述待迁移磁盘的路径。
所述主机的多路径模块确定所接收到的磁盘标识为待迁移磁盘的磁盘标识时,会将上报所述待迁移磁盘的镜像磁盘的访问路径的路径信息记录在待迁移磁盘对应的磁盘对象(例如sda)对应的路径信息中,从而将所述镜像磁盘的访问路径作为访问所述待迁移磁盘的路径。
S1213,在步骤S1205之后,所述客户端就开始检测主机中待迁移磁盘的路径信息中是否有所述镜像磁盘的访问路径的路径信息。
所述客户端在发送所述磁盘标识上报命令后的预定时间后,例如10s后,或者周期性地在所述主机中查询所述待迁移磁盘对应的路径信息,若待迁移磁盘的路径信息包括的磁盘编码为与步骤S1204中第二存储阵列上报的镜像磁盘的磁盘编码一致,则认为所述路径信息表示的路径是所述镜像磁盘的访问路径。
S1211,如果所述待迁移磁盘的路径信息中存在所述镜像磁盘的访问路径的路径信息,所述客户端将所述镜像磁盘的访问路径设置为所述待迁移磁盘的优先访问路径。
S1211,所述客户端发送迁移命令至所述第二存储阵列。所述迁移命令可以携带镜像磁盘的磁盘标识也可以携带待迁移磁盘的磁盘标识。
S1212,所述第二存储阵列对所述待迁移磁盘中的数据进行迁移。
第二存储阵列对所述待迁移磁盘的中数据进行迁移的过程与第一实施例相同,具体请参照图4中的步骤S318的描述,在此不再赘述。
S1213,在所述待迁移磁盘中的数据迁移完成后,所述第二存储阵列发送迁移完成的命令至所述客户端。
S1214,所述客户端在收到所述迁移完成命令后,即可完成待迁移磁盘的数据迁移过程。
在数据迁移过程中,主机即可将I/O通过所述镜像磁盘的访问路径下发至所述第而存储阵列,由所述第二存储阵列对所述镜像磁盘中的数据进行存取。
如图13所示,为与第四实施例中的所述数据迁移方法对应的第二存储阵列的功能方块图。所述第二存储阵列包括镜像磁盘生成单元1301、上报单元1302、及迁移单元1303。所述镜像磁盘生成单元1301用于接收所述客户端发送的镜像磁盘生成命令,根据所述镜像磁盘生成命令中携带的待迁移磁盘的磁盘标识构建所述待迁移磁盘的镜像磁盘,其中,所述待迁移磁盘构建于所述第一存储阵列,在所述待迁移磁盘的镜像磁盘构建完成之后,建立所述镜像磁盘的磁盘标识与所述待迁移磁盘的磁盘标识的映射关系,并发送镜像磁盘建立完成的反馈命令至所述客户端300。镜像磁盘生成模块1301所执行的功能与图12中的步骤S1202及S1204对应。
所述上报单元1302用于接收主机发送的磁盘上报命令,并根据磁盘上报命令生成上报信息,所述上报信息中包括所上报磁盘的磁盘编码。主机在接收到所述镜像磁盘的上报信息后,通过所述上报信息中的路径信息指示的路径发送磁盘标识查询命令至所述第二存储阵列。则所述上报单元1302在接收到所述述磁盘标识查询命令后,根据镜像磁盘的磁盘编码及所述待迁移磁盘的磁盘标识与所述镜像磁盘的磁盘标识的映射关系获取待迁移磁盘的磁盘标识,并将所述待迁移磁盘的磁盘标识通过所述镜像磁盘的访问路径上报至所述主机。所述单元所执行的功能与图12中的1208、1210及1211对应。
如此,所述主机会将所述镜像磁盘的访问路径作为访问所述待迁移磁盘的路径。
所述主机的多路径模块确定所接收到的磁盘标识为待迁移磁盘的磁盘标识时,会将上报所述待迁移磁盘的镜像磁盘的访问路径的路径信息记录在待迁移磁盘对应的磁盘对象(例如sda)对应的路径信息中,从而将所述镜像磁盘的访问路径作为访问所述待迁移磁盘的路径。进一步的,所述客户端就开始检测主机中待迁移磁盘的路径信息中是否有所述镜像磁盘的访问路径的路径信息,如果所述待迁移磁盘的路径信息中存在所述镜像磁盘的访问路径的路径信息,所述客户端将所述镜像磁盘的访问路径设置为所述待迁移磁盘的优先访问路径,并发送迁移命令至所述第二存储阵列。
所述迁移单元1303用于在接收到所述客户端迁移命令后,列对所述待迁移磁盘中的数据进行迁移。
如图13所示,本发明第四实施例中的第二存储阵列450的结构图。所述第二存储阵列包括处理器1401、内存1402、系统总线1405及阵列端口1404。所述处理器1401、内存1402和阵列端口1404之间通过系统总线1405连接并完成相互间的通信。所述代理模块452以程序指令的形式存储在所述内存1402中。
当所述第二存储阵列450运行时,所述处理器1401运行内存1402中的程序指令执行图12所示的方法流程。
本发明第四实施例还提供一种计算机可读介质,包括程序指令,当所述第二存储阵列450的处理器1401执行所述程序指令时,所述第二存储阵列执行图12中所述第二存储阵列所执行的方法流程。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (21)

1.一种处理输入/输出I/O请求方法,由主机的代理模块执行,所述主机连接第一存储阵列及第二存储阵列,所述方法包括:
从所述第二存储阵列获取第一磁盘的磁盘标识,所述第一磁盘为所述第一存储阵列中的第二磁盘在所述第二存储阵列的镜像磁盘;
根据所述第一磁盘的磁盘标识设置虚拟路径,并将所述虚拟路径伪装为访问所述第二磁盘的路径以将访问所述第二磁盘的I/O请求传输至所述第一磁盘。
2.如权利要求1所述的方法,其特征在于,所述将所述虚拟路径伪装为所述第二磁盘的访问路径包括:
接收多路径模块通过所述虚拟路径发送的磁盘标识查询请求;
将所述第二磁盘的磁盘标识发送至所述多路径模块。
3.如权利要求1或2所述的方法,其特征在于,当确定需要将第一磁盘的数据迁移至第二存储阵列时,则通知所述第二存储阵列构建所述第一磁盘。
4.如权利要求3所述的方法,其特征在于,所述方法还包括:
接收所述第二存储阵列在构建所述第一磁盘后发送的第一磁盘的磁盘标识;
建立所述第一磁盘的磁盘标识与所述第二磁盘的磁盘标识的映射关系;
所述从所述第二存储阵列获取第一磁盘的磁盘标识包括:接收第二存储阵列上报的归属于所述主机的磁盘的磁盘标识,若所述磁盘标识存在于所述映射关系中,则确定所述磁盘标识为所述第一磁盘的磁盘标识。
5.如权利要求1至4任意一项所述的方法,其特征在于,所述虚拟路径信息包括路径编号及路径指针,所述路径编号为为所述虚拟路径设置的路径标号,所述路径指针指向访问所述第一磁盘的路径。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
通过所述虚拟路径接收输入/输出I/O请求;
通过所述虚拟路径的路径指针指向的访问所述第一磁盘的路径下发所述I/O请求。
7.一种输入/输出I/O请求处理设备,应用于主机,所述主机连接第一存储阵列及第二存储阵列,所述处理设备包括:
获取单元,用于从所述第二存储阵列获取第一磁盘的磁盘标识,所述第一磁盘为所述第一存储阵列中的第二磁盘在所述第二存储阵列的镜像磁盘;
伪装单元,用于根据所述第一磁盘的磁盘标识设置虚拟路径,并将所述虚拟路径伪装为访问所述第二磁盘的路径以将访问所述第二磁盘的I/O请求传输至所述第一磁盘。
8.如权利要求7所述的处理设备,其特征在于,所述伪装单元具体用于:接收多路径模块通过所述虚拟路径发送的磁盘标识查询请求;
将所述第二磁盘的磁盘标识发送至所述多路径模块。
9.如权利要求7或8所述的处理设备,其特征在于,还包括镜像指示单元,用于当确定需要将第一磁盘的数据迁移至第二存储阵列时,则指示所述第二存储阵列构建所述第一磁盘。
10.如权利要求9所述的处理设备,其特征在于,还包括:
映射建立单元,用于接收所述第二存储阵列在构建所述第一磁盘后发送的第一磁盘的磁盘标识;建立所述第一磁盘的磁盘标识与所述第二磁盘的磁盘标识的映射关系;
所述从所述第二存储阵列获取第一磁盘的磁盘标识包括:接收第二存储阵列上报的归属于所述主机的磁盘的磁盘标识,若所述磁盘标识存在于所述映射关系中,则确定所述磁盘标识为所述第一磁盘的磁盘标识。
11.如权利要求7至10任意一项所述的处理设备,其特征在于,所述虚拟路径信息包括路径编号及路径指针,所述路径编号为为所述虚拟路径设置的路径标号,所述路径指针指向访问所述第一磁盘的路径。
12.如权利要求11所述的处理设备,其特征在于,所述方法还包括:
通过所述虚拟路径接收输入/输出I/O请求;
通过所述虚拟路径的路径指针指向的访问所述第一磁盘的路径下发所述I/O请求。
13.一种主机,包括:
处理器,及
存储器,连接至所述处理器,用于存储程序指令,所述处理器运行所述程序指令以执行权利要求1-6任意一项所述的I/O请求处理方法。
14.一种计算机可读介质,包括计算机执行指令,当计算机的处理器执行所述计算机执行指令时,所述计算机执行权利要求1-6任意一项所述的I/O请求处理方法。
15.一种处理输入/输出I/O请求方法,由目标存储阵列执行,所述目标存储阵列连接至主机,所述方法包括:
创建第一磁盘,所述第一磁盘为源存储阵列中的第二磁盘的镜像磁盘;
根据主机查询第一磁盘的磁盘标识的请求,将第二磁盘的磁盘标识发送至所述主机,从而使访问所述第二磁盘的I/O请求传输至所述第一磁盘。
16.如权利要求15所述的方法,其特征在于,所述方法还包括:
在所述第一磁盘构建完成之后,建立所述第一磁盘的标识与所述第二磁盘的磁盘标识的映射关系;
所述根据主机查询第一磁盘的磁盘标识的请求,将第二磁盘的磁盘标识发送至所述主机包括:
根据所述映射关系获取所述第二磁盘的磁盘标识对应的所述第一磁盘的磁盘标识。
17.如权利要求15所述的方法,其特征在于,根据所述主机发送的迁移请求建立所述第一磁盘。
18.一种目标存储阵列,所述目标存储阵列连接至主机,所述方法包括:
创建模块,用于创建第一磁盘,所述第一磁盘为源存储阵列中的第二磁盘的镜像磁盘;
上报模块,根据主机查询第一磁盘的磁盘标识的请求,将第二磁盘的磁盘标识发送至所述主机,从而使访问所述第二磁盘的I/O请求传输至所述第一磁盘。
19.如权利要求18所述的目标存储阵列,其特征在于,还包括:
映射建立模块,用于在所述第一磁盘构建完成之后,建立所述第一磁盘的标识与所述第二磁盘的磁盘标识的映射关系;
所述上报模块用于根据主机查询第一磁盘的磁盘标识的请求,将第二磁盘的磁盘标识发送至所述主机时,具体用于:
根据所述映射关系获取所述第二磁盘的磁盘标识对应的所述第一磁盘的磁盘标识,将所述第二磁盘的磁盘标识发送至所述主机。
20.如权利要求18所述的目标存储阵列,其特征在于,所述创建模块用于根据所述主机发送的迁移请求建立所述第一磁盘。
21.一种存储系统,包括主机和目标存储阵列,其特征在于,
所述目标存储阵列用于创建第一磁盘,所述第一磁盘为源存储阵列中的第二磁盘的镜像磁盘;根据主机查询第一磁盘的磁盘标识的请求,将第二磁盘的磁盘标识发送至所述主机;
所述主机用于将接收到所述第二磁盘标识的路径作为访问所述第二磁盘的路径,并将访问所述第二磁盘的IO请求通过所述接收到所述第二磁盘标识的路径发送至所述第一磁盘。
CN202110171553.3A 2017-10-10 2017-11-13 处理i/o请求的方法、存储阵列及主机 Pending CN112965659A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CNPCT/CN2017/105538 2017-10-10
PCT/CN2017/105538 WO2019071431A1 (zh) 2017-10-10 2017-10-10 处理i/o请求的方法、设备及主机
CN201780049443.1A CN109906438B (zh) 2017-10-10 2017-11-13 处理i/o请求的方法、存储阵列及主机

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201780049443.1A Division CN109906438B (zh) 2017-10-10 2017-11-13 处理i/o请求的方法、存储阵列及主机

Publications (1)

Publication Number Publication Date
CN112965659A true CN112965659A (zh) 2021-06-15

Family

ID=66100251

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201780049443.1A Active CN109906438B (zh) 2017-10-10 2017-11-13 处理i/o请求的方法、存储阵列及主机
CN202110171553.3A Pending CN112965659A (zh) 2017-10-10 2017-11-13 处理i/o请求的方法、存储阵列及主机

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201780049443.1A Active CN109906438B (zh) 2017-10-10 2017-11-13 处理i/o请求的方法、存储阵列及主机

Country Status (4)

Country Link
US (2) US11209983B2 (zh)
EP (2) EP3674900B1 (zh)
CN (2) CN109906438B (zh)
WO (2) WO2019071431A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112650440B (zh) * 2019-10-10 2023-01-06 成都华为技术有限公司 路径替换方法及装置
US11449257B2 (en) * 2020-02-21 2022-09-20 EMC IP Holding Company LLC Host device with efficient automated seamless migration of logical storage devices across multiple access protocols
US11513731B2 (en) * 2020-06-29 2022-11-29 EMC IP Holding Company, LLC System and method for non-disruptive storage protocol conversion
CN113885799B (zh) * 2021-09-29 2024-03-15 济南浪潮数据技术有限公司 数据访问方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120278567A1 (en) * 2011-04-27 2012-11-01 International Business Machines Corporation Online volume migration using multi-path input / output masquerading
US8380674B1 (en) * 2008-01-09 2013-02-19 Netapp, Inc. System and method for migrating lun data between data containers
US9229656B1 (en) * 2012-06-28 2016-01-05 Emc Corporation Managing settings and queries in host-based data migration
US9460028B1 (en) * 2012-12-27 2016-10-04 Emc Corporation Non-disruptive and minimally disruptive data migration in active-active clusters
WO2017088342A1 (zh) * 2015-11-24 2017-06-01 华为技术有限公司 业务割接方法、存储控制装置及存储设备
US9696917B1 (en) * 2014-06-30 2017-07-04 EMC IP Holding Company LLC Method and apparatus for efficiently updating disk geometry with multipathing software

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060236149A1 (en) * 2005-04-14 2006-10-19 Dell Products L.P. System and method for rebuilding a storage disk
US9032164B2 (en) * 2006-02-17 2015-05-12 Emulex Corporation Apparatus for performing storage virtualization
CN100535846C (zh) * 2007-12-07 2009-09-02 华中科技大学 一种存储系统数据分布及互转换方法
US8060710B1 (en) * 2007-12-12 2011-11-15 Emc Corporation Non-disruptive migration using device identity spoofing and passive/active ORS pull sessions
CN102521058A (zh) * 2011-12-01 2012-06-27 北京威视数据系统有限公司 Raid组磁盘数据预迁移方法
US20140281306A1 (en) * 2013-03-14 2014-09-18 Hitachi, Ltd. Method and apparatus of non-disruptive storage migration
CN103257941B (zh) * 2013-04-17 2015-09-23 浪潮(北京)电子信息产业有限公司 多协议存储控制器和系统
CN103309625B (zh) * 2013-05-29 2016-06-08 华为技术有限公司 一种基于自适应存储热迁移的方法和系统
CN109558273B (zh) * 2014-11-21 2022-06-14 华为技术有限公司 一种磁盘阵列备份方法、电子设备及磁盘阵列
US9933957B1 (en) * 2015-12-30 2018-04-03 EMC IP Holding Company LLC Non-disruptively migrating virtual disks using virtualization appliance
CN106484327B (zh) * 2016-09-20 2019-07-23 华为技术有限公司 一种数据处理方法及相关存储设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8380674B1 (en) * 2008-01-09 2013-02-19 Netapp, Inc. System and method for migrating lun data between data containers
US20120278567A1 (en) * 2011-04-27 2012-11-01 International Business Machines Corporation Online volume migration using multi-path input / output masquerading
US9229656B1 (en) * 2012-06-28 2016-01-05 Emc Corporation Managing settings and queries in host-based data migration
US9460028B1 (en) * 2012-12-27 2016-10-04 Emc Corporation Non-disruptive and minimally disruptive data migration in active-active clusters
US9696917B1 (en) * 2014-06-30 2017-07-04 EMC IP Holding Company LLC Method and apparatus for efficiently updating disk geometry with multipathing software
WO2017088342A1 (zh) * 2015-11-24 2017-06-01 华为技术有限公司 业务割接方法、存储控制装置及存储设备

Also Published As

Publication number Publication date
CN109906438B (zh) 2021-02-09
WO2019071431A1 (zh) 2019-04-18
EP3674900B1 (en) 2022-01-05
CN109906438A (zh) 2019-06-18
WO2019071699A1 (zh) 2019-04-18
US20220100384A1 (en) 2022-03-31
US11762555B2 (en) 2023-09-19
EP3674900A4 (en) 2020-11-04
US11209983B2 (en) 2021-12-28
US20200233584A1 (en) 2020-07-23
EP3674900A1 (en) 2020-07-01
EP4030296A1 (en) 2022-07-20

Similar Documents

Publication Publication Date Title
US10713074B2 (en) Method, apparatus, and system for accessing storage device
US7587471B2 (en) System and method for virtualizing network storages into a single file system view
CN109906438B (zh) 处理i/o请求的方法、存储阵列及主机
JP5309043B2 (ja) ストレージシステム及びストレージシステムでの重複データ削除のための方法
JP5202884B2 (ja) 記憶ボリューム間でデータを移行する方法および装置
US20080184000A1 (en) Storage module and capacity pool free capacity adjustment method
JP2004220450A (ja) ストレージ装置、その導入方法、及びその導入プログラム
US20060236054A1 (en) Highly available external storage system
JP2003271429A (ja) 記憶装置資源管理方法、記憶資源管理プログラム、該プログラムを記録した記録媒体、及び記憶資源管理装置
JP2016512906A (ja) データを柔軟に配置するための多層記憶管理
JP2016512906A5 (zh)
JP2007102760A (ja) ストレージエリアネットワークにおけるボリュームの自動割り当て
JP6663478B2 (ja) データ移行方法及び計算機システム
JP2005228278A (ja) 記憶領域の管理方法、管理装置及び管理プログラム
JP2002358167A5 (zh)
US8090907B2 (en) Method for migration of synchronous remote copy service to a virtualization appliance
WO2018158808A1 (ja) 情報システム、管理プログラム及び情報システムのプログラム交換方法
CN115757207A (zh) 缓存状态管理方法、装置、通信设备及存储介质
JP5439435B2 (ja) 計算機システムおよびその計算機システムにおけるディスク共有方法
JP4643456B2 (ja) アクセスの設定方法
JP2010079624A (ja) 計算機システム及びストレージシステム
CN112650440B (zh) 路径替换方法及装置
CN112714910B (zh) 分布式存储系统及计算机程序产品
CN114706523A (zh) 数据处理方法、装置及主机
JP7113698B2 (ja) 情報システム

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