CN114706523A - 数据处理方法、装置及主机 - Google Patents
数据处理方法、装置及主机 Download PDFInfo
- Publication number
- CN114706523A CN114706523A CN202011491134.XA CN202011491134A CN114706523A CN 114706523 A CN114706523 A CN 114706523A CN 202011491134 A CN202011491134 A CN 202011491134A CN 114706523 A CN114706523 A CN 114706523A
- Authority
- CN
- China
- Prior art keywords
- disk
- path
- storage array
- identifier
- migrated
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 7
- 238000003860 storage Methods 0.000 claims abstract description 420
- 238000004891 communication Methods 0.000 claims abstract description 126
- 238000013507 mapping Methods 0.000 claims description 82
- 238000000034 method Methods 0.000 claims description 74
- 238000012545 processing Methods 0.000 claims description 17
- 238000013508 migration Methods 0.000 abstract description 113
- 230000005012 migration Effects 0.000 abstract description 113
- 238000003491 array Methods 0.000 abstract description 10
- 239000003795 chemical substances by application Substances 0.000 description 73
- 230000006870 function Effects 0.000 description 24
- 230000008569 process Effects 0.000 description 22
- 238000013461 design Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 14
- 238000004590 computer program Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0662—Virtualisation aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/18—Multiprotocol handlers, e.g. single devices capable of handling multiple protocols
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
数据处理方法、装置及主机,本申请中,主机连接第一存储阵列及第二存储阵列,第一存储阵列支持第一通信协议,第二存储阵列支持第二通信协议,主机指示第二存储阵列创建待迁移磁盘对应的镜像磁盘,待迁移磁盘位于第一存储阵列,镜像磁盘为符合第二通信协议的磁盘;主机确定访问镜像磁盘的第一路径,该第一路径为符合第二通信协议的路径,主机设置指向该第一路径、且符合第一通信协议的虚拟路径,将该虚拟路径上报至多路径模块,这样多路径模块将该虚拟路径设置为访问待迁移磁盘的访问路径,这样在主机业务不中断的情况下,仍能够将需要存储至待迁移磁盘的数据存储至镜像磁盘,实现了支持不同协议的同构存储阵列间的数据在线迁移。
Description
技术领域
本申请涉及存储领域,尤其涉及数据处理方法、装置及主机。
背景技术
在IT运维中,经常需要用新的存储阵列替换旧的存储阵列,这就需要将旧的存储阵列中的数据迁移至新的存储阵列中。但在很多场景下,比如金融行业,通信运营商行业,用户希望在新旧存储阵列之间的I/O(Input/Output)请求处理是在线进行的,以避免产生业务中断或者数据丢失。
现有的I/O请求处理方法,可以在同构存储阵列(可以被同一多路径模块管理的存储阵列,所述多路径模块为由主机执行的软件)且存储阵列与主机的通信协议相同(例如都为SCSI协议)的情况下实现数据的在线迁移,但是当源存储阵列和目标存储阵列为异构存储阵列(不能被同一多路径模块管理的存储阵列)且源存储阵列和目标存储阵列与主机的通信协议不相同时,无法实现源存储阵列和目标存储阵列之间的数据的在线迁移。
发明内容
本申请实施例提供数据处理方法、装置及主机,用于实现支持不同协议的同构存储阵列间数据的在线迁移。
第一方面,本申请实施例提供了一种数据处理方法,该方法由主机执行,主机连接第一存储阵列及第二存储阵列,第一存储阵列通过第一通信协议与主机通信,第二存储阵列通过第二通信协议与主机通信,主机中的多路径模块基于第一通信协议设置,在该方法中,主机可以先指示第二存储阵列在第二存储阵列中创建待迁移磁盘对应的镜像磁盘,待迁移磁盘位于第一存储阵列,且符合第一通信协议,镜像磁盘为符合第二通信协议的磁盘;在第二存储阵列创建了镜像磁盘之后,主机可以确定访问镜像磁盘的第一路径,该第一路径为符合第二通信协议的路径,主机可以设置指向该第一路径、且符合第一通信协议的虚拟路径,将该虚拟路径上报至多路径模块,当多路径模块在接收到该虚拟路径后,可以将虚拟路径设置为访问待迁移磁盘的访问路径。
通过上述方法,在需要实现第一存储阵列和第二存储阵列的数据迁移时,主机能够指示第二存储阵列创建镜像磁盘,并为该镜像磁盘设置虚拟路径,将该虚拟路径发送给多路径模块,这样多路径模块可以利用该虚拟路径实现路径聚合,将该虚拟路径设置为访问待迁移磁盘的访问路径,这样在主机业务不中断的情况下,仍能够将需要存储至待迁移磁盘的数据存储至镜像磁盘,实现了支持不同协议的同构存储阵列间的数据在线迁移。
在一种可能的设计中,主机在指示第二存储阵列在第二存储阵列中创建待迁移磁盘对应的镜像磁盘时,可以先向第二存储阵列发送建立镜像磁盘的指令,该指令中包括待迁移磁盘的磁盘标识。在第二存储阵列创建了镜像磁盘后,主机可以从第二存储阵列接收到镜像磁盘的磁盘标识,并建立镜像磁盘的标识与待迁移磁盘的标识的映射关系。
通过上述方法,主机通过指示第二存储阵列创建镜像磁盘,可以保存镜像磁盘和待迁移磁盘之间磁盘标识映射关系,便于后续主机基于该映射关系能够确定第二存储阵列上报的磁盘标识为镜像磁盘的磁盘标识。
在一种可能的设计中,主机在确定访问镜像磁盘的第一路径时,可以先触发主机的操作系统发送符合第二通信协议的磁盘上报命令至第二存储阵列;以使得第二存储阵列上报磁盘编码。主机在接收到该第二存储阵列上报的磁盘编码后,还可以向第二存储阵列发送磁盘查询命令至第二存储阵列,用于查询磁盘标识。第二存储阵列接收到磁盘查询命令后,可以向主机上报磁盘标识,第二存储阵列在接收到第二存储阵列上报的磁盘标识后,该磁盘标识可以为镜像磁盘的磁盘标识,主机确定上报镜像磁盘的磁盘标识的路径为第一路径。
通过上述方法,主机基于第二通信协议与第二存储阵列交互可以获取镜像磁盘的磁盘标识,并确定第一路径,以便后续实现路径聚合。
在一种可能的设计中,主机在接收第二存储阵列上报的磁盘编码后,可以确定该上报的磁盘标识为镜像磁盘的磁盘标识,进而确定上报该镜像磁盘的磁盘标识为第一路径。本申请并不限定主机确定该上报的磁盘标识为镜像磁盘的磁盘标识的方式,例如,主机可以在确定该上报的磁盘标识在该镜像磁盘的磁盘标识与待迁移磁盘的磁盘标识的映射关系中的情况下,确定该上报的磁盘标识为镜像磁盘的磁盘标识。又例如,主机在接收到任意一个磁盘标识时,可以发送镜像磁盘查询命令至第二存储阵列,镜像磁盘查询命令用于查询该磁盘标识所标识的磁盘是否为镜像磁盘,该镜像磁盘查询命令可以为迁移标记查询命令,用于查询该上报的磁盘标识所标识的磁盘是否设置有迁移标识;主机在接收存储阵列的反馈指令后,若该反馈指令指示磁盘标识所标识的磁盘为镜像磁盘时(当该镜像磁盘查询命令为迁移标记查询命令时,该反馈指令可以指示该磁盘标识所标识的磁盘设置有迁移标记),确定上报镜像磁盘的磁盘标识的路径为第一路径。又例如,主机可以触发操作系统发送符合第二通信协议的磁盘上报命令至第二存储阵列;接收第二存储阵列上报的磁盘编码;主机可以发送镜像磁盘查询命令至第二存储阵列,第二存储阵列可以将设置有迁移标记的镜像磁盘的磁盘编码发送至主机,主机可以确定第二存储阵列上报的磁盘编码中镜像磁盘的编码;之后,主机可以发送镜像磁盘的磁盘标识查询命令至第二存储阵列;第二存储阵列可以上报该镜像磁盘的磁盘标识,主机在接收第二存储阵列上报的镜像磁盘的磁盘标识后,可以确定上报镜像磁盘的磁盘标识的路径为第一路径。
通过上述方法,主机可以通过多种不同的方式确定上报的磁盘标识为镜像磁盘的磁盘标识,适用于不同的应用场景。
在一种可能的设计中,主机在上报虚拟路径至多路径模块时,可以先为虚拟路径生成符合第一通信协议的路径标号;之后,在为虚拟路径生成虚拟磁盘编码,并建立虚拟磁盘编码与待迁移磁盘的磁盘标识的映射关系;并根据镜像磁盘的标识与待迁移磁盘的标识的映射关系,将虚拟路径指向第一路径;将该路径标号、虚拟磁盘编码、及路径指针作为虚拟路径信息上报至多路径模块。
通过上述方法,主机能够通过虚拟磁盘编码与待迁移磁盘的磁盘标识,建立虚拟路径与待迁移磁盘之间的映射关系,便于在后续多路径模块利用该虚拟磁盘编码查询磁盘标识时,主机可以将该待迁移磁盘的磁盘标识上报至多路径模块,使得该多路径模块将该虚拟路径聚合到待迁移磁盘上。
在一种可能的设计中,主机在上报虚拟路径至多路径模块时,还可以接收多路径模块通过虚拟路径下发的磁盘标识查询指令,磁盘标识查询指令中携带虚拟磁盘编码;主机在接收到磁盘标识查询指令之后,可以根据虚拟磁盘编码与待迁移磁盘的磁盘标识的映射关系,将待迁移磁盘的磁盘标识上报至多路径模块,这样多路径模块可以将虚拟路径设置为访问所迁移磁盘的访问路径。
通过上述方法,主机能够在多路径模块发起磁盘标识查询指令的情况下,向多路径模块上报待迁移磁盘的磁盘标识,使得多路径模块可以将该虚拟路径设置为该待迁移磁盘的访问路径,这样后续的I/O请求可以通过该虚拟路径下发至镜像磁盘,保证在主机业务不中断的情况下,实现数据的在线迁移。
第二方面,本申请实施例还提供的一种数据处理系统,有益效果可以参见第一方面的描述此处不再赘述。系统包括主机以及第二存储阵列,主机连接第一存储阵列及第二存储阵列,第一存储阵列通过第一通信协议与主机通信,第二存储阵列通过第二通信协议与主机通信,主机中的多路径模块基于第一通信协议设置;
主机,用于指示第二存储阵列在第二存储阵列中创建待迁移磁盘对应的镜像磁盘,其中待迁移磁盘位于第一存储阵列,且符合第一通信协议,镜像磁盘符合第二通信协议。
第二存储阵列,用于在主机的指示下在第二存储阵列中创建待迁移磁盘对应的镜像磁盘。
主机,还用于确定访问镜像磁盘的第一路径,第一路径符合第二通信协议;上报虚拟路径至多路径模块,以使多路径模块将虚拟路径设置为访问所迁移磁盘的访问路径,其中虚拟路径指向第一路径,且符合第一通信协议。
在一种可能的设计中,主机在指示第二存储阵列在第二存储阵列中创建待迁移磁盘对应的镜像磁盘时,主机可以先向第二存储阵列发送建立镜像磁盘的指令,指令中包括待迁移磁盘的磁盘标识;第二存储阵列在接收到建立镜像磁盘的指令后,可以创建待迁移磁盘对应的镜像磁盘,向主机发送镜像磁盘的磁盘标识;主机可以接收镜像磁盘的磁盘标识,并建立镜像磁盘的标识与待迁移磁盘的标识的映射关系。
在一种可能的设计中,主机在确定访问镜像磁盘的第一路径时,主机可以触发接收操作系统发送符合第二通信协议的磁盘上报命令至第二存储阵列;第二存储阵列在接收到磁盘上报命令后,可以向主机上报磁盘编码,主机在接收到磁盘编码后,可以发送磁盘查询命令至第二存储阵列,第二存储阵列在接收到磁盘查询命令后,可以向主机上报磁盘标识,主机在接收到第二存储阵列上报的磁盘标识后,可以确定上报镜像磁盘的磁盘标识的路径为第一路径。
在一种可能的设计中,主机在接收第二存储阵列上报的磁盘编码后,可以确定该上报的磁盘标识为镜像磁盘的磁盘标识,进而确定上报该镜像磁盘的磁盘标识为第一路径。本申请并不限定主机确定该上报的磁盘标识为镜像磁盘的磁盘标识的方式,例如,主机可以在确定该上报的磁盘标识在该镜像磁盘的磁盘标识与待迁移磁盘的磁盘标识的映射关系中的情况下,确定该上报的磁盘标识为镜像磁盘的磁盘标识。又例如,主机在接收到任意一个磁盘标识时,可以发送镜像磁盘查询命令至第二存储阵列,镜像磁盘查询命令用于查询该磁盘标识所标识的磁盘是否为镜像磁盘,该镜像磁盘查询命令可以为迁移标记查询命令,用于查询该上报的磁盘标识所标识的磁盘是否设置有迁移标识;主机在接收存储阵列的反馈指令后,若该反馈指令指示磁盘标识所标识的磁盘为镜像磁盘时(当该镜像磁盘查询命令为迁移标记查询命令时,该反馈指令可以指示该磁盘标识所标识的磁盘设置有迁移标记),确定上报镜像磁盘的磁盘标识的路径为第一路径。又例如,主机可以触发操作系统发送符合第二通信协议的磁盘上报命令至第二存储阵列;接收第二存储阵列上报的磁盘编码;主机可以发送镜像磁盘查询命令至第二存储阵列,第二存储阵列可以将设置有迁移标记的镜像磁盘的磁盘编码发送至主机,主机可以确定第二存储阵列上报的磁盘编码中镜像磁盘的编码;之后,主机可以发送镜像磁盘的磁盘标识查询命令至第二存储阵列;第二存储阵列可以上报该镜像磁盘的磁盘标识,主机在接收第二存储阵列上报的镜像磁盘的磁盘标识后,可以确定上报镜像磁盘的磁盘标识的路径为第一路径。
在一种可能的设计中,主机在上报虚拟路径至多路径模块时,可以为虚拟路径生成符合第一通信协议的路径标号;之后,为虚拟路径生成虚拟磁盘编码,并建立虚拟磁盘编码与待迁移磁盘的磁盘标识的映射关系;根据镜像磁盘的标识与待迁移磁盘的标识的映射关系,将虚拟路径指向第一路径;再将路径标号、虚拟磁盘编码、及路径指针上报至多路径模块。
在一种可能的设计中,主机在上报虚拟路径至多路径模块时,还可以接收多路径模块通过虚拟路径下发的磁盘标识查询指令,磁盘标识查询指令中携带虚拟磁盘编码;根据虚拟磁盘编码与待迁移磁盘的磁盘标识的映射关系,将待迁移磁盘的磁盘标识上报至多路径模块,以使多路径模块将虚拟路径设置为访问所迁移磁盘的访问路径。
第三方面,本申请实施例还提供了一种数据处理装置,该数据处理装置具有实现上述第一方面的方法实例中行为的功能,有益效果可以参见第一方面的描述此处不再赘述。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。在一个可能的设计中,所述装置的结构中包括指示单元、确定单元以及上报单元,这些单元可以执行上述第一方面方法示例中的相应功能,具体参见方法示例中的详细描述,此处不做赘述。
第四方面,本申请实施例还提供了一种主机,该装置具有实现上述第一方面的方法实例中行为的功能,有益效果可以参见第一方面的描述此处不再赘述。所述装置的结构中包括处理器和存储器,所述处理器被配置为支持所述主机执行上述第一方面方法中相应的功能。所述存储器与所述处理器耦合,其保存所述通信装置必要的程序指令和数据。所述通信装置的结构中还包括通信接口,用于与其他设备进行通信,如与第二存储阵列进行通信。
第五方面,本申请还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面的各个可能的设计中所述的方法。
第六方面,本申请还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面以及第一方面的各个可能的设计中所述的方法。
第七方面,本申请还提供一种计算机芯片,所述芯片与存储器相连,所述芯片用于读取并执行所述存储器中存储的软件程序,执行上述第一方面以及第一方面的各个可能的设计中所述的方法。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍;
图1为本发明实施例所应用的存储系统的架构图;
图2为图1中的主机中的多路径模块对访问图1中存储阵列中的磁盘的路径进行管理的方法的流程图;
图3为在需要迁移旧存储阵列中的数据时,将新的存储阵列连接至存储系统之后存储系统的示意图;
图4为本发明第一实施例中将第一存储阵列的数据迁移至第二存储阵列的方法的流程图;
图5为本发明实施例中为客户端为用户提供的选择待迁移磁盘的界面的示意图;
图6为本发明实施例中通过NVMe协议中的私有命令定义的镜像磁盘生成命令的说明表;
图7为本发明实施例中建立虚拟路径的过程的示意图;
图8为本发明第三实施例中将第一存储阵列的数据迁移至第二存储阵列的方法的流程图;
图9为本发明第四实施例中将第一存储阵列的数据迁移至第二存储阵列的方法的流程图;
图10为本发明第五实施例中将第一存储阵列的数据迁移至第二存储阵列的方法的流程图;
图11为本发明实施例中通过NVMe协议中的私有命令定义的迁移标记查询命令的说明表;
图12为本发明实施例提供的数据处理装置的结构示意图;
图13为本发明实施例提供的主机的结构示意图。
具体实施方式
如图1所示,为一种存储系统100的架构图。在存储系统100中,多个主机110通过交换机120连接至存储阵列130。在本实施例中,各主机的结构基本相同,在下面的描述中,以主机110为例进行描述。主机110上运行有各种应用软件111,以为客户提供不同的应用业务。存储阵列130中存储有主机中的应用在运行时产生的业务数据。存储阵列130可以是使用非易失性存储器标准(non-volatile memory express,NVMe)接口的闪存阵列,也可以是使用小型计算机系统接口(small computer system interface,SCSI)的存储阵列。客户端300可通过网络200连接至各主机,以实现对主机的操作或控制。
存储阵列130可以被划分为至少一个磁盘,例如磁盘1~n,存储阵列130可以使用不同的接口与主机通信,比如NVMe接口、SCSI接口。在存储阵列130是使用NVMe接口的闪存阵列时,则主机100与存储阵列130通过NVMe协议通信,磁盘即可通过NVMe协议中定义的命名空间(Namespace)表示。在存储阵列130是使用SCSI接口的存储阵列时,则主机110与存储阵列130通过SCSI协议通信,磁盘即可通过SCSI协议中定义的逻辑单元号(logic unitnumber,LUN)表示。在磁盘划分好后,存储阵列130会给每个磁盘分配一个磁盘标识(Identification,ID)和一个磁盘编码。其中,该磁盘标识可以唯一标识磁盘,例如,该磁盘标识包括应用于SCSI协议的全球唯一名字(world wide name,WWN)、厂商信息(vendor)、及产品信息(product);或者该磁盘标识包括应用于NVMe协议的全局唯一标识符(globallyunique identifier,GUID)、厂商信息及产品信息。该磁盘编码用于区别存储阵列中不同磁盘,例如SCSI协议下的LUN编号LUN1、LUN2……,NVMe协议下的namespace编号,例如namespace1、namespace2……。在磁盘的磁盘标识及磁盘编码分配好后,存储阵列130会配置磁盘与主机的映射关系,具体为配置磁盘编码与主机端口信息(例如,HBA卡端口信息)的映射关系,根据映射关系即可确定磁盘所归属的主机。
主机110还包括多路径模块112以及操作系统,多路径模块112可以为一个软件程序,由主机110执行。主机110发现有新的设备接入后,会通过多路径模块112对新设备中的磁盘进行管理,建立访问磁盘的路径,具体方法如图2中的流程图所示。
步骤S201,当主机110的操作系统监测到存储阵列130连接到主机110时,操作系统通过主机110与存储阵列130之间的多条路径分别发送磁盘上报命令至存储阵列130,磁盘上报命令中包括传输磁盘上报命令的主机端口信息。
步骤S202,存储阵列130接收磁盘上报命令,获取磁盘上报命令中的主机端口信息,根据主机端口信息及磁盘编码与主机端口信息的映射关系获取主机端口对应的磁盘编码,为磁盘编码对应的磁盘生成上报信息,在上述上报信息中携带磁盘编码,并将上报信息上报至主机110。
根据存储阵列130与主机110之间的通讯协议的规定,在上报信息上报的过程中,当上报信息经过存储阵列端口(图未示)及主机端口(图未示)时,存储阵列端口及主机端口会分别将存储阵列端口的阵列端口ID及主机端口的主机端口ID加到上报信息中,则上报信息中包括上报信息的路径信息。例如,若主机110与存储阵列130之间的通信协议为SCSI协议,则上报命令为SCSI协议定义的Report LUN命令。若主机110与存储阵列130之间的通信协议为NVMe协议,则上报命令为NVMe协议定义的identify的命令。
步骤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,由存储阵列对磁盘中的数据进行读写。
以上为构建一个存储系统,使存储系统能够正常运作,对存储阵列中的数据进行读写的过程。但是随着技术的更新换代,或者用户需求的改变,需要用新的存储阵列替换原有的存储阵列。当需要用新的存储阵列替换原有的存储阵列时,需要将原有的存储阵列的数据迁移至新的存储阵列,并在数据迁移的过程中,保证主机业务的不中断,即实现在线迁移。但目前仅能够在新的存储阵列与原有的存储阵列的支持的协议相同,且两边的存储阵列为同构的存储阵列时,在将原有的存储阵列的数据迁移至新的存储阵列时,实现在线迁移。也即当新的存储阵列与原有的存储阵列与主机之间的通信协议均为NVMe或均为SCSI协议时,才能实现在线迁移,但在原有存储阵列与主机之间的通信协议和新的存储阵列与主机之间的通信协议不相同时,各个不同协议所主机通信时所使用的命令的不同,导致无法进行在线迁移。例如,原有的存储阵列与主机通信用的是SCSI协议,新的存储阵列与主机之间的通信协议为NVMe协议时,则无法实现两个存储阵列之间数据的在线迁移。
本申请实施例中新的存储阵列与原有的存储阵列的支持的协议不同的情况下,主机中的代理模块可以指示新的存储阵列建立原有的存储阵列的待迁移磁盘的镜像磁盘,其中待迁移磁盘和该镜像磁盘符合不同的协议,如待迁移磁盘符合第一通信协议,镜像磁盘符合第二通信协议。主机在确定了访问该镜像磁盘的、符合第二通信协议的第一路径之后,可以为该第一路径建立指向该第一路径、且符合第一通信协议的虚拟路径,并该虚拟路径上报给多路径模块,以使得该多路径模块能够将该虚拟路径设置为访问该带迁移磁盘的访问路径,实现路径的聚合。在本申请实施例中,将原有的存储阵列上的数据迁移至与新的存储阵列时,无需停止主机的业务,而是将主机的业务下发至新的存储阵列,从而实现存储阵列的数据在线迁移。
图3所示为在需要将原有存储阵列中的数据迁移至新的存储阵列时,新的存储阵列连接至主机的示意图。其中,第一存储阵列140为原有的存储阵列,主机中安装的多路径模块112已经对访问第一存储阵列140的待迁移磁盘141的路径进行了管理。第二存储阵列150即为新的存储阵列。第一存储阵列140与主机110之间通过第一通信协议通信,第二存储阵列150与主机110之间通过第二通信协议通信。第一存储阵列140与第二存储阵列150之间通信连接,两者之间可以通过第一通信协议通信,第一通信协议例如为SCSI协议,第二通信协议例如为NVMe协议。在将第二存储阵列150接入主机110之前,会在主机110上安装代理模块113,代理模块113为主机执行的软件程序,位于多路径模块112的下层,即在主机110通过多路径模块112与第二存储阵列150交互时,来自第二存储阵列150的通信指令会先经过代理模块113,在由代理模块113将该通信指令发送给多路径模块112,代理模块113将来自第二存储阵列150、符合第一通信协议的通信指令转换为符合第一通信协议的通信指令,使多路径模块112通过该符合第一通信协议的通信指令能对第二存储阵列150的数据访问路径进行管理,从而实现数据的在线迁移。
下面将结合图4对本申请第一实施例中第一存储阵列与第二存储阵列之间进行数据在线迁移的方法进行说明,参见图4,该方法包括:
首先,在步骤S301中,用户通过客户端300选择需要迁移的磁盘,即待迁移磁盘141及迁入待迁移磁盘的数据的目标存储阵列,并发送迁移请求至待迁移磁盘所归属的主机110,其中所述待迁移磁盘为符合第一通信协议的磁盘。
本实施例中,目标存储阵列即为第二存储阵列150。迁移请求中包括待迁移磁盘141的磁盘名称及第二存储阵列150的阵列标识,阵列标识用于唯一标识第二存储阵列150。
当客户端300通过网络200连接至主机110时,客户端300会获取并存储主机110及归属于主机110的磁盘的相关信息,所以用户可以通过客户端300提供的显示界面选择待迁移磁盘。
如图5所示示例,客户端300的显示界面40中显示了归属于每个主机110的磁盘的磁盘名称41,用户选择对应的磁盘名称41,即可选中该磁盘名称41所表示的待迁移磁盘141,点击系统提供的迁移按钮42,即可产生迁移请求,并将待迁移磁盘的名称41,例如Sdb携带在迁移请求中发送至待迁移磁盘所归属的主机110。图5所示的界面只是举例说明,在不同的系统中可采用不同的界面显示存储系统中各主机110及归属于各主机110的磁盘。
客户端300和第二存储阵列150也通过网络连接,所以客户端300可以从第二存储阵列150中获取第二存储阵列150的阵列标识。
步骤S302,代理模块113在侦测到主机110接收到迁移请求后从迁移请求中获取待迁移磁盘141的磁盘名称及第二存储阵列150的阵列标识。
步骤S303,代理模块113根据待迁移磁盘141的磁盘名称获取待迁移磁盘141的磁盘标识。
如图2中的步骤S206所描述的,在存储阵列上报磁盘的磁盘标识后,主机110会为磁盘生成磁盘名称,并建立磁盘名称与磁盘标识的映射关系。这样,在主机110获取待迁移磁盘141的磁盘名称后,即可获取待迁移磁盘141的磁盘标识。
步骤S304,代理模块113根据第二通信协议生成符合第二通信协议的镜像磁盘生成命令,在镜像磁盘生成命令中携带待迁移磁盘141的磁盘标识,并将镜像磁盘生成命令发送至根据第二存储阵列的阵列标识确定的第二存储阵列150。
在本发明实施例中,所述代理模块113能够同时识别第一通信协议和第二通信协议,由于第二存储阵列150与主机110通过第二通信协议通信,所以,所述代理模块113会根据第二通信协议生成镜像磁盘生成命令。例如,在所述第二通信协议为NVMe协议时,则生成NVMe格式的镜像磁盘生成命令。
在NVMe协议中包括私有命令,用户可以自定义私有命令,在本实施例中,用户即可将私有命令自定义为镜像磁盘生成命令,并在其中携带待迁移磁盘的磁盘标识。
如图6所示,为通过NVMe协议中的私有命令identify定义的镜像磁盘生成命令的格式说明。
说明表包括私有命令的名称、实现的功能、命令参数及缓存(Buffer)。例如本实施例中利用NVMe协议中的identify中控制器或命名空间结构(controller or namespacestructure,CNS)预留字段(如0x5)设计该命令。参数部分为通过字节定义该私有命令实现的功能,这里的取值是通讯双方提前协商好的。即对端在接收到这个私有命令过后,可以根据参数部分的内容,识别该命令所指示的功能。例如,在本实施例中,用组合操作码(combined opcode)取值为0x6表示identify命令,用CNS为0x5表示通知目标阵列生成镜像磁盘。在DPTR数据段,携带待迁移磁盘的磁盘标识。例如,待迁移磁盘的磁盘标识包括待迁移磁盘厂商的ID,取值为AAA,占用0号字节,待迁移磁盘的产品名称,取值为BBB,占用1号字节;待迁移磁盘的WWN,XXXXXXX,占用3~66号字节。返回信息部分用于在第二存储阵列建立好待迁移磁盘的镜像磁盘后,写入镜像磁盘的磁盘标识。
步骤S305,第二存储阵列150在接收到镜像磁盘生成命令后,获取镜像磁盘生成命令中携带的待迁移磁盘的磁盘标识,为所述待迁移磁盘141建立符合第一通信协议的磁盘,即第一镜像磁盘151。
在本申请实施例中,所述第二存储阵列150支持两种通信协议,与第一存储阵列之间通过第一通信协议通信,与主机110之间通过第二通信协议通信。由于第一存储阵列140为使用SCSI的存储阵列,第一存储阵列140和第二存储阵列150之间也通过SCSI协议通讯。由于所述待迁移磁盘为符合第一通信协议的磁盘,所以,第二存储阵列首先会根据所支持的第一通信协议为所述待迁移磁盘建立符合第一通信协议的镜像磁盘,即第一镜像磁盘151。
在第二存储阵列150构建待迁移磁盘141的第一镜像磁盘151时,第二存储阵列150发送磁盘上报命令至第一存储阵列140。第一存储阵列140在接收到磁盘上报命令后,对第一存储阵列140上的每个磁盘生成一个上报信息,在每个上报信息中携带对应磁盘的磁盘编码,并将每个上报信息上报至第二存储阵列150。在上报信息上报的过程中,上报信息经过的第一阵列端口及第二阵列端口会将各自的端口ID加入上报信息,生成上报信息的路径的路径信息。第二存储阵列150通过路径信息所表示的路径发送磁盘标识查询命令至第一存储阵列140。查询命令中包括路径信息中的磁盘编码。第一存储阵列140根据查询命令中的磁盘编码获取磁盘编码对应的磁盘标识,并将磁盘标识通过路径信息所表示的路径发送至第二存储阵列150。若第一存储阵列140上报的磁盘标识与第二存储阵列150预存的待迁移磁盘的磁盘标识相同,则第二存储阵列150将上报待迁移磁盘的磁盘标识的路径作为访问待迁移磁盘的路径进行管理。在第二存储阵列150管理了访问待迁移磁盘的路径后,第二存储阵列150即可获取待迁移磁盘141的相关信息,例如,磁盘大小,地址空间等,然后根据这些信息在第二存储阵列150中构建待迁移磁盘的第一镜像磁盘151,所构建的第一镜像磁盘151的大小可以大于也可以等于待迁移磁盘。
步骤S306,第二存储阵列150将所述第一镜像磁盘151转换为第二镜像磁盘152,第二镜像磁盘152为符合第二通信协议的磁盘,并建立待迁移磁盘141与第二镜像磁盘152的映射关系。
具体地,在所述第二存储阵列150创建所述第一镜像磁盘151后,由于第二存储阵列150与主机110之间通过NVMe协议通信,而第一镜像磁盘151是符合SCSI协议的磁盘,所以需要将所述第一镜像磁盘151转换为符合NVMe协议的磁盘。例如,将LUN转换为namespace。在转换时,所述第二存储阵列150根据NVMe协议定义的namespace的属性,将所述LUN的属性修改为namespace的属性,例如把LUN中的磁盘标识WWN修改为namespace的磁盘标识GUID。
在第二存储阵列150建立了待迁移磁盘141的第二镜像磁盘152后,在第二存储阵列150中也可以保存待迁移磁盘141与第二镜像磁盘152的映射关系。具体的,待迁移磁盘141与第二镜像磁盘152的映射关系可以表示为待迁移磁盘141的磁盘标识(WWN)与镜像磁盘152的磁盘标识(GUID)的映射关系。
步骤S307,第二存储阵列150将第二镜像磁盘152的磁盘标识携带在镜像磁盘生成命令的反馈命令中,并发送反馈命令至主机110。
如图6所示,私有命令中的缓存中还包括在返回信息部分,在第二存储阵列建立好第二镜像磁盘152后,即可将第二镜像磁盘152的磁盘标识写入返回信息部分。例如,在第383号字节写入第二镜像磁盘152的厂商信息CCC,在第384号字节写入第二镜像磁盘152的产品信息DDD,在第385~448号字节写入第二镜像磁盘152的磁盘标识(GUID)。将第二镜像磁盘152的磁盘标识写入命令后,即形成私有命令的反馈命令,并将反馈命令发送至主机。
步骤S308,代理模块113在接收到反馈命令后,获取第二镜像磁盘152的磁盘标识,并建立待迁移磁盘141的磁盘标识与镜像磁盘152的磁盘标识的映射关系。例如,若待迁移磁盘141的磁盘标识为WWN1,而第二镜像磁盘152的标识为GUID1,则建立WWN1与GUID1之间的映射关系。为方便描述,下文中将此处的映射关系称为磁盘标识映射关系。
需要说明的是,磁盘标识映射关系中除了记录了待迁移磁盘141的磁盘标识与镜像磁盘152的磁盘标识之外,还可以记录待迁移磁盘141的磁盘编码与镜像磁盘152的磁盘编码。
步骤S309,在磁盘标识映射关系建立之后,代理模块113触发操作系统114通过主机110与第二存储阵列150之间的一条或者多条路径发送符合第二通信协议的磁盘上报命令,磁盘上报命令中包括传输磁盘上报命令的主机端口信息。
通常当有存储阵列连接至主机110,或者连接至主机110的存储阵列中插入硬盘或者拔出硬盘后,主机110的操作系统114会向存储阵列发送磁盘上报命令,以更新归属于主机110的磁盘的访问路径。而本实施例中,代理模块113在上述磁盘标识映射关系建立之后,也会触发操作系统114通过主机110与第二存储阵列150之间的一条或者多条路径向第二存储阵列150发送磁盘上报命令。
步骤S310,第二存储阵列150在收到磁盘上报命令后,获取磁盘上报命令中的主机端口信息,查询磁盘编码与主机端口信息的映射关系获取主机端口对应的磁盘编码,为磁盘编码对应的磁盘生成上报信息,将磁盘编码携带在上报信息中,并将所生成的上报信息上报至主机110。在上报信息上报的过程中会生成上报信息的路径的路径信息,具体请参考图2中步骤S203及204的描述。
在步骤S309中,由于已经在第二存储阵列150中创建了待迁移磁盘141的第二镜像磁盘152,第二镜像磁盘152的磁盘编码也会通过上报信息上报。
在主机110与第二存储阵列150之间存在多条路径时,主机110会通过多条路径向第二存储阵列150发送磁盘上报命令。第二存储阵列150每收到一个磁盘上报命令就会根据所收到的磁盘上报命令生成一个上报信息。
步骤S311,代理模块113接收上报信息,获取并记录上报信息中路径信息,然后通过由路径信息确定的路径发送符合第二通信协议的磁盘标识查询命令至第二存储阵列150,磁盘标识查询命令中携带上报信息中的磁盘编码。
此处的路径信息即为图2中步骤203中描述的逻辑路径信息。
如果没有安装代理模块113,上报信息会直接上报至多路径模块112,但由于多路径模块112是基于第一通信协议创建的,只能识别基于第一通信协议的上报命令,但是第二存储阵列150的上报信息是基于第二通信协议的,所述多路径模块112无法识别,则无法完成第一存储阵列140和第二存储阵列150之间的数据的在线迁移。但是在本申请实施例中,由于代理模块113安装在多路径模块112的下层,所以上报信息会被代理模块113拦截,在拦截上报信息后,由代理模块113基于第二通信协议发送符合第二通信协议的磁盘标识查询命令至第二存储阵列150。
步骤S312,第二存储阵列150接收到磁盘标识查询命令后,根据磁盘标识查询命令中携带的磁盘编码获取磁盘编码对应的磁盘标识,并将磁盘标识通过发送查询命令的路径上报至代理模块113。
在本步骤中,第二镜像磁盘152的磁盘标识也会被上报至代理模块113。
相关技术中,磁盘标识会直接报给多路径模块112。但是在本申请实施例中,由于代理模块113的存在,所以磁盘标识也会上报至代理模块113。
步骤S313,代理模块113若确定所上报的磁盘标识存在于磁盘标识映射关系中,则认为所上报的磁盘标识为第二镜像磁盘152的磁盘标识,并为上报第二镜像磁盘152的磁盘标识的路径(即为图2中步骤S203中描述的逻辑路径信息对应的逻辑路径,以下简称“磁盘标识上报路径”)设置符合第一通信协议的虚拟路径信息,并将所设置的虚拟路径信息上报至多路径模块112。
如步骤S308所描述,代理模块113在建立磁盘标识映射关系后,会触发操作系统114对第二存储阵列150发送磁盘上报命令,所以代理模块113接收到的磁盘标识都是第二存储阵列150中的磁盘的磁盘标识,只要所上报的磁盘标识存在于磁盘标识的映射关系中,即可认为所上报的磁盘标识为本次迁移的目标磁盘,即第二镜像磁盘152的磁盘标识。
由于多路径模块112为基于第一通信协议设置的,所以多路径模块112只能识别基于第一通信协议的路径,所以代理模块113会设置符合第一通信协议的虚拟路径。在设置所述虚拟路径时,会为虚拟路径设置基于第一通信协议的虚拟磁盘编码。并建立所述虚拟磁盘编码与所述待迁移磁盘141的磁盘标识的映射关系。在所述虚拟路径设置好之后,则将虚拟路径的信息上报至多路径模块112。另外,所述代理模块113还会为所述虚拟路径基于第一通信协议的路径编码规则为虚拟路径设置路径编号,并设置路径指针指向代理模块113中记录的上报所述第二镜像磁盘152的磁盘标识上报路径的路径信息,即符合第二通信协议的路径信息。如此所述虚拟路径信息包括路径编号、路径指针、及虚拟磁盘编码。
步骤S314,多路径模块112在收到虚拟路径信息后,通过由虚拟路径信息确定的虚拟路径下发第二镜像磁盘152的磁盘标识查询命令至代理模块113,磁盘标识查询命令包括虚拟磁盘编码。
由于虚拟路径信息中包含路径指针,路径指针指向代理模块113中记录的磁盘标识上报路径的路径信息,所以多路径模块112会将磁盘标识查询命令发送至代理模块113。
在本实施例,多路径模块112收到的是代理模块113上报的信息,所上报的信息中包括的是虚拟路径信息,而虚拟路径信息的路径指针指向的是代理模块113,所以,磁盘标识查询命令会被发送至代理模块113,而不会像相关技术一样发送至第二存储阵列150。
步骤S315,代理模块113在收到磁盘标识查询命令后,获取磁盘标识查询命令中携带的虚拟磁盘编码,根据虚拟磁盘编码与所述待迁移磁盘141的磁盘标识的映射关系确定待迁移磁盘141的磁盘标识,然后将待迁移磁盘141的磁盘标识上报至多路径模块112。
步骤S316,多路径模块112在获取待迁移磁盘141的磁盘标识后,将虚拟路径信息所表示的路径设置为待迁移磁盘141的访问路径。
需要说明的是,后续主机110通过虚拟路径信息所表示的虚拟路径查询镜像磁盘的标识时,返回的也是待迁移磁盘141的磁盘标识。
步骤S317,多路径模块112将虚拟路径设置为优先访问路径。
一般多路径模块112或者主机系统都具有设置路径优先级的功能,此处代理模块113在上报待迁移磁盘的标识时,也可以携带将虚拟路径设置为优先访问路径的指令,多路径模块112即可根据指令将虚拟路径设置为优先访问路径,通过优先访问路径访问的第二镜像磁盘152即为优先访问磁盘。
再将虚拟路径设置为优先访问路径后,在主机110接收到IO请求时,多路径模块112会通过虚拟路径信息中的路径指针将IO请求下发至代理模块113。代理模块113根据路径指针找到虚拟路径指向的磁盘标识上报路径,然后通过实际路径将IO下发至第二存储阵列150。在下发的IO经过NVMe的驱动模块时,NVMe的驱动模块将SCSI协议的IO转换为NVMe协议的IO,然后下发至第二存储阵列150,第二存储阵列150根据IO请求访问第二镜像磁盘152中的数据。这样,即保证了后续第二存储阵列150对待迁移磁盘141的数据迁移时,主机110业务的不中断,即实现了在线迁移。
需要说明的是,如果在通过虚拟路径下发IO请求的过程中,访问第二镜像磁盘152的路径中断,则多路径模块112会将IO请求通过访问待迁移磁盘141的路径下发。等到访问第二镜像磁盘152的路径恢复之后,或者重新建立了虚拟路径之后,再将IO请求通过新建立的虚拟路径下发,并重新启动对待迁移磁盘141中的数据的迁移。
虚拟路径的建立过程可进一步参考图7所示的示例。
例如,在对第一存储阵列140中的待迁移磁盘141的数据迁移之前,主机110只与第一存储阵列140连接,主机110上也没有安装代理模块113,所以按照图2所示的方法,由于多路径模块在路径1及路径2上收到了待迁移磁盘141的磁盘标识,则多路径模块112将路径1及路径2作为访问待迁移磁盘141的路径。当需要将待迁移磁盘141的数据迁移至第二存储阵列150时,第二存储阵列150被连接至主机,代理模块113作为多路径模块112的下层软件安装至主机110。代理模块113可以在第二存储阵列150连接至主机110之前安装至主机110,也可以在第二存储阵列150连接至主机110之后再安装至主机110。在第二存储阵列150上根据图3中步骤302至305构建了待迁移磁盘141对应的第二镜像磁盘152后,第二存储阵列150将第二镜像磁盘152的磁盘标识返回至主机110。主机110的代理模块113建立待迁移磁盘141的磁盘标识与镜像磁盘152的磁盘标识的映射关系。在映射关系建立好之后,代理模块113触发主机110的操作系统114发送磁盘上报命令至第二存储阵列150。
第二存储阵列150将上报信息首先发送至端口驱动软件。端口驱动软件陆续收到第二存储阵列150上报的上报信息,并根据收到的上报信息为每一个上报信息生成符合第二通信协议的逻辑路径信息。逻辑路径信息中包括为逻辑路径分配的路径编码,以及路径指针。为同一磁盘分配的路径编码不重复。本实施例中,如果端口驱动软件接收到两次包含第二镜像磁盘152的磁盘编码的上报信息,则分别为上报包含第二镜像磁盘152的磁盘编码的上报信息的路径分配路径编码路径3及路径4,并将这两条逻辑路径的路径信息上报至代理模块113。代理模块113在收到这两条逻辑路径信息后,根据这两条逻辑路径信息指示的路径3及路径4发送携带第二镜像磁盘152的磁盘编码的、且符合第二通信协议的磁盘标识查询命令至第二存储阵列150。第二存储阵列150根据磁盘查询命令中的磁盘编码获取磁盘标识,然后将第二镜像磁盘152的磁盘标识(为了简便,图中仅GUID表示)发送至代理模块113。代理模块113确定磁盘标识存在于之前设置的待迁移磁盘141的磁盘标识与第二镜像磁盘152的磁盘标识的映射关系中,则分别为路径3及路径4设置符合第一通信协议的虚拟路径,即虚拟路径5及虚拟路径6。虚拟路径5和虚拟路径6的路径信息中包括路径指针,分别指向路径3及路径4,还包括第二镜像磁盘152的磁盘编码。代理模块113将虚拟路径5及虚拟路径6的路径信息上报至多路径模块112。多路径模块112在接收到虚拟路径5及虚拟路径6的路径信息后,通过虚拟路径5及虚拟路径6发送携带第二镜像磁盘152的磁盘编码的磁盘标识查询命令至代理模块113。代理模块113收到查询命令后,获取第二镜像磁盘152的磁盘编码对应的磁盘标识,根据磁盘标识映射关系得到待迁移磁盘141的磁盘标识,然后将待迁移磁盘141的磁盘标识通过路径5及路径6上报至多路径模块112。多路径模块112收到待迁移磁盘141的磁盘标识后,即可将路径5及路径6设置为待迁移磁盘141的访问路径,并将路径5及路径6作为优先访问的路径。
步骤S318,代理模块113发送迁移命令至第二存储阵列150,并在迁移命令中携带第二镜像磁盘152的磁盘标识。
在其他实施例中,迁移命令中可以同时携带待迁移磁盘和镜像磁盘的标识,或者只携带待迁移磁盘的标识。
步骤S319,第二存储阵列150在接收到主机110的迁移命令后,根据镜像磁盘152的磁盘标识,获取镜像磁盘152对应的待迁移磁盘140的磁盘标识,由于第二存储阵列150在为待迁移磁盘141建立镜像磁盘152时,已经建立了访问待迁移磁盘141的访问路径,则第二存储阵列150可以直接访问待迁移磁盘141将其中的数据迁移至镜像磁盘152。
在此需要说明的是,主机110发送迁移命令至第二存储阵列150指示第二存储阵列150进行数据迁移的操作也可以在虚拟路径建立好之前进行。如果数据迁移的操作在虚拟路径建立好之前进行,则需要在第一存储阵列140中设置一个缓存,该缓存用于存储下发至第一存储阵列140的IO请求,当虚拟路径建立好之后,再将缓存在缓存中的IO请求转发至第二存储阵列150执行。
步骤S320,在待迁移磁盘141中的数据迁移完成后,第二存储阵列150反馈迁移完成的命令至主机110。
步骤S321,主机110将迁移完成的反馈命令返回给客户端300。在主机反馈迁移完成的命令时,可以携带待迁移磁盘的磁盘名称。
步骤S322,客户端300接收迁移完成的命令,则待迁移磁盘141的数据迁移流程结束。
在图4所描述的实施例中,在第一存储阵列与主机的通信协议与第二存储阵列与主机的通信协议不同时,通过在多路径模块112的下层安装代理模块113,相关技术中上报给多路径模块112的用于上报第二存储阵列150的磁盘编码的上报信息会被代理模块113拦截,代理模块113会进一步根据第二通信协议获取第二镜像磁盘152的磁盘标识,并根据第一通信协议为上报第二镜像磁盘152的路径设置符合第一通信协议虚拟路径信息,并将虚拟路径信息上报至多路径模块后,多路径模块113将虚拟路径作为所述待迁移磁盘的路径进行管理,并将发送至待迁移磁盘114的IO通过虚拟路径发送至所述第二存储阵列150,从而实现第一存储阵列与第二存储阵列数据的在线迁移。
在本发明的第二实施例中,代理模块113在步骤S304中,可以生成一个综合命令,综合命令中包括两个命令,即镜像磁盘生成命令及迁移命令,镜像磁盘生成命令和迁移命令与第一实施例中的相同,并且在该综合命令里定义了镜像磁盘生成命令及迁移命令的执行顺序及触发条件,例如,可定义先执行镜像磁盘生成命令,然后执行迁移命令,并定义迁移命令的执行条件为第二存储阵列150建立好虚拟路径之后,或者等待预设的时间之后。
在综合命令发送至第二存储阵列150之后,第二存储阵列150先执行镜像磁盘生成命令,即执行步骤S305及S306。如果综合命令中定义的迁移命令的执行条件为建立好虚拟路径后,则多路径模块112在步骤S317建立好虚拟路径后,会发送通知命令至第二存储阵列150,则第二存储阵列150即可根据通知命令执行迁移命令,即对待迁移磁盘141中的数据进行迁移。具体迁移过程请参考步骤S319的描述。如果综合命令中定义的迁移命令的执行条件为等待预设时间后,则第二存储阵列150在收到综合命令之后开始计时,在计时达到预设时间,则开始执行迁移命令,对待迁移磁盘141中的数据进行迁移。在执行迁移命令时,如果虚拟路径已建立,则将在数据迁移过程中接收到的IO直接通过虚拟路径下发至第二存储阵列150,如果虚拟路径还没有建立,则将在数据迁移过程中接收到的IO缓存在第一存储阵列140的缓存中,等虚拟路径建立好之后再转移至第二存储阵列150。
图8为本发明第三实施例中进行存储阵列数据迁移的方法的流程图。
第三实施例与第一实施例的主要的区别在于,在第三实施例中,主要由客户端300控制数据的迁移,具体方案如下:
步骤601至603与第一实施例的步骤S301至S303相同,由于本实施例中是由客户端300控制数据迁移的过程,所以,主机在步骤S603获取待迁移磁盘141的磁盘标识后,会在步骤S604将待迁移磁盘141的磁盘标识返回给客户端300。
在步骤S605,客户端300在接收到待迁移磁盘141的磁盘标识后,生成符合第二通信协议的镜像磁盘生成命令,并将该镜像磁盘生成命令直接发送至第二存储阵列150。
在步骤S606,第二存储阵列150根据镜像磁盘生成命令生成第二镜像磁盘152,第二存储阵列150生成第二镜像磁盘152的方式与第一实施例的相同,具体请参考图4中步骤S305。
在步骤S607,第二存储阵列150将携带第二镜像磁盘152的磁盘标识的反馈命令至客户端300。
在步骤S608,客户端300发送建立虚拟路径的命令至主机,建立虚拟路径的命令包括第二镜像磁盘152的磁盘标识。
在步骤S609,代理模块113建立待迁移磁盘141的标识与第二镜像磁盘152的标识的映射关系。
步骤S610至步骤S618与图4中步骤309及317分别对应,且所执行的功能相同,请参考图4中的相关描述,在此不再赘述。
在步骤S619中,代理模块113发送反馈命令至客户端300,该反馈命令指示虚拟路径建立成功。
在步骤S620中,客户端300在收到反馈命令后,即发送迁移命令至第二存储阵列150,迁移命令中携带待迁移磁盘141的磁盘标识。
在步骤S621中,第二存储阵列150即可根据迁移命令对待迁移磁盘141中的数据进行迁移。具体迁移过程请参考图4中步骤S319的描述。
在步骤S622中,若第二存储阵列150完成待迁移磁盘141中数据的迁移,则发送迁移完成的反馈指令至客户端300。
在步骤S623中,客户端300接收到迁移完成的反馈指令,则结束数据迁移的流程。
需要说明的是,在进行数据迁移的过程中,所接收到写请求,则可以将写请求中的待写入数据通过建立的逻辑路径写入第一镜像磁盘151,当接收到读请求时,也可以将读请求通过逻辑路径下发至第二存储阵列150,第二存储阵列150在接收到读请求时,在第一镜像磁盘151中读取数据,若所读取的数据还没有从待迁移磁盘141中迁移过来,则第二存储阵列150从第一存储阵列140中的待迁移磁盘141中读取数据。
另外,在数据迁移的过程中,如果发现虚拟磁盘中已经写入了新的数据,则不用迁移数据覆盖已经写入的新数据。
图9为本发明第四实施例中进行存储阵列数据迁移的方法的流程图。
第四实施例与前述实施例的主要的区别在于,在第四实施例中,主要由客户端300控制第二存储阵列150创建第二镜像磁盘152,之后由在第二存储阵列150连接到主机110,代理模块113获取该第二镜像磁盘152的磁盘标识,具体方案如下:
步骤S701至S703与第一实施例的步骤S301至S303相同,由于本实施例中是由客户端300控制第二存储阵列150创建第二镜像磁盘的过程,所以,主机在步骤S703获取待迁移磁盘141的磁盘标识后,会在步骤S704将待迁移磁盘141的磁盘标识返回给客户端300。
步骤S705,客户端300在接收到待迁移磁盘141的磁盘标识后,生成符合第二通信协议的镜像磁盘生成命令,并将镜像磁盘生成命令直接发送至第二存储阵列150。
步骤S706,第二存储阵列150即根据镜像磁盘生成命令生成第二镜像磁盘152,第二存储阵列150生成第二镜像磁盘152的方式与第一实施例的相同,具体请参考图4中步骤S305以及步骤306。
第二存储阵列150建立了该待迁移磁盘141的第二镜像磁盘152后,在第二存储阵列150中也可以保存该待迁移磁盘141与第二镜像磁盘152的映射关系。具体的,待迁移磁盘141与第二镜像磁盘152的映射关系可以表现为待迁移磁盘141的磁盘标识(WWN)与第二镜像磁盘152的磁盘标识(GUID)的映射关系,也即磁盘标识映射关系,该磁盘标识的映射关系中还可以记录待迁移磁盘141的磁盘编码与第二镜像磁盘152的磁盘编码。在一种可能的场景中,待迁移磁盘141与第二镜像磁盘152的映射关系可以表现为待迁移磁盘141的磁盘编码(LUN)与第二镜像磁盘152的磁盘编码(namespace)的映射关系。
步骤S707,第二存储阵列450发送镜像磁盘建立完成的反馈命令至客户端300,反馈命令中携带第二镜像磁盘152的磁盘标识。
步骤S708,当第二存储阵列150连接至主机110后,主机110的操作系统114会向第二存储阵列151发送磁盘上报命令。
步骤S709,第二存储阵列150在收到磁盘上报命令后,获取磁盘上报命令中的主机端口信息,查询磁盘编码与主机端口信息的映射关系获取主机端口对应的磁盘编码,为磁盘编码对应的磁盘生成上报信息,将磁盘编码携带在上报信息中,并将所生成的上报信息上报至主机110,具体可参见步骤S310的相关说明,此处不再赘述。
步骤S710,代理模块113接收上报信息,获取并记录上报信息中路径信息,然后通过由路径信息确定的路径发送符合第二通信协议的磁盘标识查询命令至第二存储阵列150,磁盘标识查询命令中携带上报信息中的磁盘编码。具体可参见步骤S311的相关说明,此处不再赘述。
步骤S711,第二存储阵列150接收到磁盘标识查询命令后,根据磁盘标识查询命令中携带的磁盘编码获取磁盘编码对应的磁盘标识,并将磁盘标识通过发送查询命令的路径上报至代理模块113。具体可参见步骤S312的相关说明,此处不再赘述。
步骤S712,代理模块113可以从第二存储阵列150获取该磁盘标识映射关系。
本申请实施例并不限定代理模块113从第二存储阵列150获取该磁盘标识映射关系的方式,代理模块113可以在第二存储阵列150连接到主机110后,向映射关系获取命令,该命令可以是用户自定义的私有命令,具体的,该命令通过NVMe协议中的identify中预留字段定义的。
代理模块113向第二存储阵列150发送映射关系获取命令,该命令可以是用户自定义的私有命令,具体的,该命令通过NVMe协议中的私有命令identify定义的。
第二存储阵列150在接收到该映射关系获取命令后,可以获取本地保存的磁盘标识映射关系,将该磁盘标识映射关系携带在针对该映射关系获取命令的反馈命令中,发送给代理模块113。
需要说明的是,本申请实施例并不限定代理模块113发送该映射关系获取命令的时机,凡是能够保证在执行步骤713之前代理装置113获取磁盘标识映射关系的时机均适用于本申请实施例。
步骤S712至S721与第一实施例的步骤S313至S322类似,具体可以参见前述内容,此处不再赘述。
图10为本发明第五实施例中进行存储阵列数据迁移的方法的流程图。
第五实施例与前述实施例的主要的区别在于,在第五实施例中,主要由客户端300控制第二存储阵列150创建第二镜像磁盘152,第二存储阵列150在建立该第二镜像磁盘152时,还会为该第二镜像磁盘设置迁移标记,之后由在第二存储阵列150连接到主机110,代理模块113根据通过查询迁移标记确定待迁移磁盘141的得让镜像磁盘,进而获取该第二镜像磁盘152的磁盘标识,具体方案如下:
步骤S801至S803与第一实施例的步骤S301至S303相同,由于本实施例中是由客户端300控制第二存储阵列150创建第二镜像磁盘的过程,所以,主机在步骤S803获取待迁移磁盘141的磁盘标识后,会在步骤S804将待迁移磁盘141的磁盘标识返回给客户端300。
步骤S805,客户端300在接收到待迁移磁盘141的磁盘标识后,生成符合第二通信协议的镜像磁盘生成命令,并将镜像磁盘生成命令直接发送至第二存储阵列150。
步骤S806,第二存储阵列150即根据镜像磁盘生成命令生成第二镜像磁盘152,为第二镜像磁盘152设置迁移标记,以标识第二镜像磁盘152是待迁移磁盘141的第二镜像磁盘152。第二存储阵列150生成第二镜像磁盘152的方式与第一实施例的相同,具体请参考图4中步骤S305以及步骤306。
这里并不限定为第二镜像磁盘152设置迁移标记的方式,例如第二存储阵列150可以在用于描述第二镜像磁盘152的元数据中设置标识,标识可以作为迁移标记。
第二存储阵列150建立了该待迁移磁盘141的第二镜像磁盘152后,在第二存储阵列150中也可以保存该待迁移磁盘141与第二镜像磁盘152的映射关系。具体的,待迁移磁盘141与第二镜像磁盘152的映射关系可以表现为待迁移磁盘141的磁盘标识(WWN)与第二镜像磁盘152的磁盘标识(GUID)的映射关系,也即磁盘标识映射关系,该磁盘标识的映射关系中还可以记录待迁移磁盘141的磁盘编码与第二镜像磁盘152的磁盘编码。在一种可能的场景中,待迁移磁盘141与第二镜像磁盘152的映射关系可以表现为待迁移磁盘141的磁盘编码(LUN)与第二镜像磁盘152的磁盘编码(namespace)的映射关系。
步骤S807,第二存储阵列450发送镜像磁盘建立完成的反馈命令至客户端300,反馈命令中携带第二镜像磁盘152的磁盘标识。
步骤S808,当第二存储阵列150连接至主机110后,主机110的操作系统114会向第二存储阵列151发送磁盘上报命令。
步骤S809,第二存储阵列150在收到磁盘上报命令后,获取磁盘上报命令中的主机端口信息,查询磁盘编码与主机端口信息的映射关系获取主机端口对应的磁盘编码,为磁盘编码对应的磁盘生成上报信息,将磁盘编码携带在上报信息中,并将所生成的上报信息上报至主机110,具体可参见步骤S310的相关说明,此处不再赘述。
步骤S810,代理模块113接收上报信息,获取并记录上报信息中路径信息,然后通过由路径信息确定的路径发送符合第二通信协议的磁盘标识查询命令至第二存储阵列150,磁盘标识查询命令中携带上报信息中的磁盘编码。具体可参见步骤S311的相关说明,此处不再赘述。
步骤S811,第二存储阵列150接收到磁盘标识查询命令后,根据磁盘标识查询命令中携带的磁盘编码获取磁盘编码对应的磁盘标识,并将磁盘标识通过发送查询命令的路径上报至代理模块113。具体可参见步骤S312的相关说明,此处不再赘述。
步骤S812,代理模块113在接收到磁盘标识后,向第二存储阵列150发送迁移标记查询命令,迁移标记查询请求用于请求该磁盘标识所标识的磁盘是否设置有迁移标记。
迁移标记查询命令可以为通过NVMe协议中的私有命令identify定义的迁移标记查询命令,如图11所示,为通过NVMe协议中的私有命令identify定义的迁移标记查询命令的说明表。
说明表包括私有命令的名称、实现的功能、命令参数及缓存(buffer)。例如本实施例中使用的是NVMe协议中的identify CNS为0x6的私有命令。参数部分为通过字节定义该私有命令实现的功能,这里的取值是通讯双方提前协商好的。即对端在接收到这个私有命令过后,可以根据参数部分的内容,识别该命令所指示的功能。例如,在本实施例中,用组合操作码(combined opcode)取值为0x6表示identify命令,用CNS为0x6表示该命令为迁移标记查询命令。在数据指针(data pointer,DPTR)数据段,携带磁盘的磁盘标识(GUID)。返回信息部分用于指示该磁盘是否有迁移标记。
步骤S813,第二存储阵列150在接收到迁移标记查询命令后,确定磁盘是否设置有迁移标记,如查询磁盘的元数据是否设置有迁移标记。第二存储阵列150在确定磁盘设置有迁移标记后,可以向代理模块113发送针对迁移标记查询命令的反馈命令,反馈命令指示磁盘设置有迁移标记。如图11所示,私有命令中的缓存中还包括在返回信息部分,第二存储阵列150可以将指示将该磁盘的是否有迁移标记的信息写入返回信息部分。例如,在第383号字节写入指示将该磁盘的是否有迁移标记的信息。将信息写入,即形成私有命令的反馈命令,并将反馈命令发送至主机110。
步骤S814,代理模块113在接收到针对迁移标记查询命令的反馈命令后,确定该磁盘标识所标识的磁盘为本次需要迁移的磁盘,也即为第二镜像磁盘152,该磁盘标识为第二镜像磁盘152的标识。
步骤S815,代理模块113从第二存储阵列150获取该磁盘标识映射关系。具体可以参见步骤S712,此处不再赘述。
需要说明的是,在实际应用中,第二存储阵列150在发送上报信息时,上报信息中也可以携带指示信息,用于指示上报的磁盘编码所标识的磁盘设置有迁移标记。代理模块113通过解析上报信息,获取指示信息,确定磁盘设置有迁移标记,进而,可以确定所上报的磁盘为本次迁移的磁盘,为待迁移磁盘141的第二镜像磁盘152。在另一种可能的场景中,代理模块113也可以接收到磁盘编码后,通过向第二存储阵列150发送携带有磁盘编码的迁移标记查询命令的方式确定磁盘标识所标识的磁盘是否为本次迁移的磁盘。之后再向第二存储阵列150发送磁盘标识查询命令获取磁盘标识。
步骤S816至S825与第一实施例的步骤S313至S322类似,具体可以参见前述内容,此处不再赘述。
应需注意的是,代理模块112在获取第二存储阵列150上报的磁盘编码后,代理模块112可以发送镜像磁盘查询命令至第二存储阵列150,第二存储阵列150可以将设置有迁移标记的第二镜像磁盘152的磁盘编码发送至代理模块112,代理模块112可以确定第二存储阵列150上报的磁盘编码中第二镜像磁盘152的编码;之后,代理模块112可以发送第二镜像磁盘152的磁盘标识查询命令至第二存储阵列150;第二存储阵列150可以上报该第二镜像磁盘152的磁盘标识。
基于与方法实施例同一发明构思,本申请实施例还提供了一种数据处理装置,用于执行上述如图4、8、9、10所示的方法实施例中所述代理模块执行的方法,相关特征可参见上述方法实施例,此处不再赘述。如图12所示,为本申请实施例提供的一种数据处理装置1200,数据处理装置包括指示单元1201、确定单元1202以及上报单元1203。
指示单元1201,用于指示第二存储阵列在第二存储阵列中创建待迁移磁盘对应的镜像磁盘,其中待迁移磁盘位于第一存储阵列,且符合第一通信协议,镜像磁盘符合第二通信协议。如执行图4所示的实施例中的步骤304。
确定单元1202,用于确定访问镜像磁盘的第一路径,第一路径符合第二通信协议。如执行图4所示的实施例中的步骤313中确定第一路径的方法、执行图8所示的实施例中的步骤614中确定第一路径的方法、执行图9所示的实施例中的步骤714中确定第一路径的方法、执行图10所示的实施例中的步骤816中确定第一路径的方法。
上报单元1203,用于上报虚拟路径至多路径模块,以使多路径模块将虚拟路径设置为访问待迁移磁盘的访问路径,其中虚拟路径指向第一路径,且符合第一通信协议。如执行图4、8、9、10所示的实施例中的步骤313~315、614~616、714~716、816~818中上报虚拟路径的方法。
作为一种可能的实施方式,指示单元1201在指示第二存储阵列在第二存储阵列中创建待迁移磁盘对应的镜像磁盘时,可以发送建立镜像磁盘的指令至第二存储阵列,指令中包括待迁移磁盘的磁盘标识;之后,指示单元1201可以接收第二存储阵列发送的镜像磁盘的磁盘标识,并建立镜像磁盘的标识与待迁移磁盘的标识的映射关系。
作为一种可能的实施方式,确定单元1202在确定访问镜像磁盘的第一路径时,可以触发操作系统发送符合第二通信协议的磁盘上报命令至第二存储阵列;之后,该确定单元1202在接收第二存储阵列上报的磁盘编码后,可以发送磁盘查询命令至第二存储阵列;在接收到第二存储阵列上报的磁盘标识,可以确定上报镜像磁盘的磁盘标识的路径为第一路径。
作为一种可能的实施方式,确定单元1202在接收第二存储阵列上报的磁盘编码后,可以确定该上报的磁盘标识为镜像磁盘的磁盘标识,进而确定上报该镜像磁盘的磁盘标识为第一路径。本申请并不限定确定单元1202确定该上报的磁盘标识为镜像磁盘的磁盘标识的方式,例如,确定单元1202可以在确定该上报的磁盘标识在该镜像磁盘的磁盘标识与待迁移磁盘的磁盘标识的映射关系中的情况下,确定该上报的磁盘标识为镜像磁盘的磁盘标识。又例如,确定单元1202在接收到任意一个磁盘标识时,可以发送镜像磁盘查询命令至第二存储阵列,镜像磁盘查询命令用于查询该磁盘标识所标识的磁盘是否为镜像磁盘,该镜像磁盘查询命令可以为迁移标记查询命令,用于查询该上报的磁盘标识所标识的磁盘是否设置有迁移标识;确定单元1202在接收存储阵列的反馈指令后,若该反馈指令指示磁盘标识所标识的磁盘为镜像磁盘时(当该镜像磁盘查询命令为迁移标记查询命令时,该反馈指令可以指示该磁盘标识所标识的磁盘设置有迁移标记),确定上报镜像磁盘的磁盘标识的路径为第一路径。又例如,确定单元1202可以触发操作系统发送符合第二通信协议的磁盘上报命令至第二存储阵列;接收第二存储阵列上报的磁盘编码;确定单元1202可以发送镜像磁盘查询命令至第二存储阵列,第二存储正能量可以将设置有迁移标记的镜像磁盘的磁盘编码发送至确定单元1202,确定单元1202可以确定第二存储阵列上报的磁盘编码中镜像磁盘的编码;之后,确定单元1202可以发送镜像磁盘的磁盘标识查询命令至第二存储阵列;第二存储阵列可以上班该镜像磁盘的磁盘标识,确定单元1202在接收第二存储阵列上报的镜像磁盘的磁盘标识后,可以确定上报镜像磁盘的磁盘标识的路径为第一路径。
作为一种可能的实施方式,上报单元1203在上报虚拟路径至多路径模块时,可以为虚拟路径生成符合第一通信协议的路径标号;之后为虚拟路径生成虚拟磁盘编码,并建立虚拟磁盘编码与待迁移磁盘的磁盘标识的映射关系;根据镜像磁盘的标识与待迁移磁盘的标识的映射关系,将虚拟路径指向第一路径;将路径标号、虚拟磁盘编码、及路径指针上报至多路径模块。
作为一种可能的实施方式,上报单元1203在上报虚拟路径至多路径模块时,可以接收多路径通模块过虚拟路径下发的磁盘标识查询指令,磁盘标识查询指令中携带虚拟磁盘编码;该上报单元1203可以根据虚拟磁盘编码与待迁移磁盘的磁盘标识的映射关系,将待迁移磁盘的磁盘标识上报至多路径模块,以使多路径模块将虚拟路径设置为访问所迁移磁盘的访问路径。
需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
在一个简单的实施例中,本领域的技术人员可以想到如图4、8、9、10所示的实施例中主机可采用图13所示的形式。
如图13所示的主机1300,包括至少一个处理器1301、存储器1302,可选的,还可以包括通信接口1303。
存储器1302可以是易失性存储器,例如随机存取存储器;存储器也可以是非易失性存储器,例如只读存储器,快闪存储器,硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD)、或者存储器1302是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1302可以是上述存储器的组合。
本申请实施例中不限定上述处理器1301以及存储器1302之间的具体连接介质。
处理器1301可以为中央处理器,该处理器1301还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件、人工智能芯片、片上芯片等。通用处理器可以是微处理器或者是任何常规的处理器等。处理器1201在与其他设备进行通信时,可以通过通信接口1303进行数据传输,如从接收第一检测指令或第二检测指令。
当所述主机采用图13所示的形式时,图13中的处理器1301可以通过调用存储器1302中存储的计算机执行指令,使得所述检测装置可以执行上述任一方法实施例中的所述检测装置执行的方法。
具体的,图12的指示单元、确定单元以及上报单元的功能/实现过程均可以通过图13中的处理器1301调用存储器1302中存储的计算机执行指令来实现。或者,图12中的指示单元、确定单元以及上报单元除信息传输之外的功能/实现过程可以通过图13中的处理器1301调用存储器1302中存储的计算机执行指令来实现,图12的指示单元、确定单元中信息传输的功能/实现过程可以通过图13中的通信接口1303来实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (14)
1.一种数据处理方法,其特征在于,所述方法由主机执行,所述主机连接第一存储阵列及第二存储阵列,所述第一存储阵列通过第一通信协议与所述主机通信,所述第二存储阵列通过第二通信协议与所述主机通信,所述主机中的多路径模块基于所述第一通信协议设置,所述方法包括:
指示所述第二存储阵列在所述第二存储阵列中创建待迁移磁盘对应的镜像磁盘,其中所述待迁移磁盘位于所述第一存储阵列,且符合第一通信协议,所述镜像磁盘符合第二通信协议;
确定访问所述镜像磁盘的第一路径,所述第一路径符合所述第二通信协议;
上报虚拟路径至所述多路径模块,以使所述多路径模块将所述虚拟路径设置为访问所述待迁移磁盘的访问路径,其中所述虚拟路径指向所述第一路径,且符合所述第一通信协议。
2.如权利要求1所述的方法,其特征在于,所述指示所述第二存储阵列在所述第二存储阵列中创建待迁移磁盘对应的镜像磁盘包括:
发送建立镜像磁盘的指令至所述第二存储阵列,所述指令中包括所述待迁移磁盘的磁盘标识;
接收所述第二存储阵列发送的所述镜像磁盘的磁盘标识,并建立所述镜像磁盘的标识与待迁移磁盘的标识的映射关系。
3.如权利要求2所述的方法,其特征在于,所述确定访问所述镜像磁盘的第一路径包括:
触发操作系统发送符合第二通信协议的磁盘上报命令至所述第二存储阵列;
接收所述第二存储阵列上报的磁盘编码;
发送磁盘查询命令至所述第二存储阵列;
接收所述第二存储阵列上报的磁盘标识,并确定上报所述镜像磁盘的磁盘标识的路径为所述第一路径。
4.如权利要求3所述的方法,其特征在于,所述接收所述第二存储阵列上报的磁盘标识,并确定上报所述镜像磁盘的磁盘标识的路径为所述第一路径包括:
在接收到任意一个磁盘标识时,发送镜像磁盘查询命令至所述第二存储阵列;
接收所述存储阵列的反馈指令,指示所述磁盘标识对应的磁盘为所述镜像磁盘时,确定上报所述镜像磁盘的磁盘标识的路径为所述第一路径。
5.如权利要求2所述的方法,其特征在于,所述上报虚拟路径至所述多路径模块包括:
为所述虚拟路径生成符合第一通信协议的路径标号;
为所述虚拟路径生成虚拟磁盘编码,并建立所述虚拟磁盘编码与所述待迁移磁盘的磁盘标识的映射关系;
根据镜像磁盘的标识与待迁移磁盘的标识的映射关系,将所述虚拟路径指向所述第一路径;
将所述路径标号、虚拟磁盘编码、及路径指针上报至所述多路径模块。
6.如权利要求5所述的方法,其特征在于,所述上报所述虚拟路径至所述多路径模块还包括:
接收所述多路径模块通过所述虚拟路径下发的磁盘标识查询指令,所述磁盘标识查询指令中携带所述虚拟磁盘编码;
根据所述虚拟磁盘编码与待迁移磁盘的磁盘标识的映射关系,将所述待迁移磁盘的磁盘标识上报至所述多路径模块,以使所述多路径模块将所述虚拟路径设置为访问所迁移磁盘的访问路径。
7.一种数据处理装置,其特征在于,所述数据处理装置位于主机中,所述主机连接第一存储阵列及第二存储阵列,所述第一存储阵列通过第一通信协议与所述主机通信,所述第二存储阵列通过第二通信协议与所述主机通信,所述主机中的多路径模块基于所述第一通信协议设置,所述数据处理装置包括指示单元、确定单元以及上报单元:
所述指示单元,用于指示所述第二存储阵列在所述第二存储阵列中创建待迁移磁盘对应的镜像磁盘,其中所述待迁移磁盘位于所述第一存储阵列,且符合第一通信协议,所述镜像磁盘符合第二通信协议;
所述确定单元,用于确定访问所述镜像磁盘的第一路径,所述第一路径符合所述第二通信协议;
所述上报单元,用于上报虚拟路径至所述多路径模块,以使所述多路径模块将所述虚拟路径设置为访问所述待迁移磁盘的访问路径,其中所述虚拟路径指向所述第一路径,且符合所述第一通信协议。
8.如权利要求7所述的装置,其特征在于,所述指示单元在指示所述第二存储阵列在所述第二存储阵列中创建待迁移磁盘对应的镜像磁盘,具体用于:
发送建立镜像磁盘的指令至所述第二存储阵列,所述指令中包括所述待迁移磁盘的磁盘标识;
接收所述第二存储阵列发送的所述镜像磁盘的磁盘标识,并建立所述镜像磁盘的标识与待迁移磁盘的标识的映射关系。
9.如权利要求8所述的装置,其特征在于,所述确定单元在确定访问所述镜像磁盘的第一路径时,具体用于:
触发操作系统发送符合第二通信协议的磁盘上报命令至所述第二存储阵列;
接收所述第二存储阵列上报的磁盘编码;
发送磁盘查询命令至所述第二存储阵列;
接收所述第二存储阵列上报的磁盘标识,并确定上报所述镜像磁盘的磁盘标识的路径为所述第一路径。
10.如权利要求9所述的装置,其特征在于,所述确定单元在接收所述第二存储阵列上报的磁盘标识,并确定上报所述镜像磁盘的磁盘标识的路径为所述第一路径时,具体用于:
在接收到任意一个磁盘标识时,发送镜像磁盘查询命令至所述第二存储阵列;
接收所述存储阵列的反馈指令,指示所述磁盘标识对应的磁盘为所述镜像磁盘时,确定上报所述镜像磁盘的磁盘标识的路径为所述第一路径。
11.如权利要求7所述的装置,其特征在于,所述上报单元在上报虚拟路径至所述多路径模块时,具体用于:
为所述虚拟路径生成符合第一通信协议的路径标号;
为所述虚拟路径生成虚拟磁盘编码,并建立所述虚拟磁盘编码与所述待迁移磁盘的磁盘标识的映射关系;
根据镜像磁盘的标识与待迁移磁盘的标识的映射关系,将所述虚拟路径指向所述第一路径;
将所述路径标号、虚拟磁盘编码、及路径指针上报至所述多路径模块。
12.如权利要求11所述的装置,其特征在于,所述上报单元在上报所述虚拟路径至所述多路径模块时,还用于:
接收所述多路径通模块过所述虚拟路径下发的磁盘标识查询指令,所述磁盘标识查询指令中携带所述虚拟磁盘编码;
根据所述虚拟磁盘编码与待迁移磁盘的磁盘标识的映射关系,将所述待迁移磁盘的磁盘标识上报至所述多路径模块,以使所述多路径模块将所述虚拟路径设置为访问所迁移磁盘的访问路径。
13.一种主机,其特征在于,包括存储器和处理器;所述存储器存储有程序指令,所述处理器运行所述程序指令以执行权利要求1~6任一所述的方法。
14.一种计算机可读存储介质,其特征在于,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如权利要求1~6任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011491134.XA CN114706523A (zh) | 2020-12-17 | 2020-12-17 | 数据处理方法、装置及主机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011491134.XA CN114706523A (zh) | 2020-12-17 | 2020-12-17 | 数据处理方法、装置及主机 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114706523A true CN114706523A (zh) | 2022-07-05 |
Family
ID=82167477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011491134.XA Pending CN114706523A (zh) | 2020-12-17 | 2020-12-17 | 数据处理方法、装置及主机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114706523A (zh) |
-
2020
- 2020-12-17 CN CN202011491134.XA patent/CN114706523A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5309043B2 (ja) | ストレージシステム及びストレージシステムでの重複データ削除のための方法 | |
US7587471B2 (en) | System and method for virtualizing network storages into a single file system view | |
US7209986B2 (en) | Method for controlling storage system, and storage control apparatus | |
US7617306B2 (en) | Operation management system, management apparatus, management method and management program | |
JP5461216B2 (ja) | 論理ボリューム管理の為の方法と装置 | |
US11249788B2 (en) | Cloud management platform, and virtual machine management method and system | |
US11579777B2 (en) | Data writing method, client server, and system | |
JP2003271429A (ja) | 記憶装置資源管理方法、記憶資源管理プログラム、該プログラムを記録した記録媒体、及び記憶資源管理装置 | |
JP2016512906A (ja) | データを柔軟に配置するための多層記憶管理 | |
JP2016512906A5 (zh) | ||
US11762555B2 (en) | I/O request processing method, storage array, and host | |
JP2003241903A (ja) | 記憶制御装置、ストレージシステム、及びその制御方法 | |
WO2019047026A1 (zh) | 数据迁移的方法、系统及智能网卡 | |
JPWO2017145272A1 (ja) | データ移行方法及び計算機システム | |
JP5272185B2 (ja) | 計算機システム及びストレージシステム | |
JP4433372B2 (ja) | データアクセスシステム及び方法 | |
US8738816B2 (en) | Management of detected devices coupled to a host machine | |
US7146484B2 (en) | Method and apparatus for caching storage system | |
US6745347B1 (en) | System, method and program for determining the availability of interfaces to a device from information provided by the device | |
CN114706523A (zh) | 数据处理方法、装置及主机 | |
CN112650440B (zh) | 路径替换方法及装置 | |
JP2015056021A (ja) | ホストバスドライバ検証装置、ホストバス検証システム、およびプログラム | |
EP4160422A1 (en) | Method for using intermediate device to process data, computer system, and intermediate device | |
CN110737396B (zh) | 数据复制的方法、设备和计算机存储介质 | |
US20200050388A1 (en) | Information system |
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 |