CN104360959B - 数据存储的方法及控制器 - Google Patents

数据存储的方法及控制器 Download PDF

Info

Publication number
CN104360959B
CN104360959B CN201410587018.6A CN201410587018A CN104360959B CN 104360959 B CN104360959 B CN 104360959B CN 201410587018 A CN201410587018 A CN 201410587018A CN 104360959 B CN104360959 B CN 104360959B
Authority
CN
China
Prior art keywords
sub
virtual
mark
controller
metadata
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
CN201410587018.6A
Other languages
English (en)
Other versions
CN104360959A (zh
Inventor
唐萍峰
杨彬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
XFusion Digital 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
Priority to CN201410587018.6A priority Critical patent/CN104360959B/zh
Publication of CN104360959A publication Critical patent/CN104360959A/zh
Application granted granted Critical
Publication of CN104360959B publication Critical patent/CN104360959B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据存储的方法及控制器,涉及信息技术领域,可以提高可靠性。所述方法包括:控制器存储虚拟LU的元数据,虚拟LU的元数据包括虚拟LU的标识与N个子LU的标识之间的对应关系,控制器接收主机发送的写请求,该写请求携带有虚拟LU的标识,根据虚拟LU的标识,查询虚拟LU的元数据,确定N个子LU的标识,最后向N个子LU分别执行写请求。本发明适用于对LU存储的数据进行备份。

Description

数据存储的方法及控制器
技术领域
本发明涉及信息技术领域,特别涉及一种数据存储的方法及控制器。
背景技术
随着企业业务的多元发展以及集中存储的应用需求,用户对数据保护的要求越来越高,一种典型的数据保护方式为对待保护数据进行备份。一般地,数据的载体可以为LU(逻辑单元,Logical Unit),即对LU进行备份,得到对应的多个副本。
目前,一种对LU进行数据存储的方法,将提供原数据的LU作为主LU,并对该主LU进行备份,生成对应的多个从LU,这些从LU即为主LU对应的多个副本。
然而,当通过对主LU进行备份生成多个从LU时,仅主LU能够执行主机发送的写请求,而从LU无法执行主机发送的写请求,导致当主LU发生不可恢复的故障时,例如,当主LU所在硬盘故障或加载原数据失败时,主机业务中断,从而导致可靠性较低。
发明内容
本发明提供一种数据存储的方法及控制器,可以提高可靠性。
本发明采用的技术方案为:
第一方面,本发明提供一种数据存储的方法,应用于存储系统,所述存储系统包括控制器、虚拟逻辑单元LU及N个子LU,所述N个子LU用于为所述虚拟LU提供存储空间;所述控制器存储所述虚拟LU的元数据,所述虚拟LU的元数据包括所述虚拟LU的标识与所述N个子LU的标识之间的对应关系;其中,N为不小于2的自然数,所述方法包括:
所述控制器接收主机发送的写请求,所述写请求携带有所述虚拟LU的标识;
所述控制器根据所述虚拟LU的标识,查询所述虚拟LU的元数据,确定所述N个子LU的标识;
所述控制器向所述N个子LU分别执行所述写请求。
结合第一方面,在第一方面的第一种可能的实现方式中,所述方法还包括:
所述控制器接收所述主机发送的读请求,所述读请求中携带有所述虚拟LU的标识;
所述控制器根据所述虚拟LU的标识,查询所述虚拟LU的元数据,从所述N个子LU的标识中确定目标子LU的标识;
所述控制器向所述目标子LU执行所述读请求。
结合第一方面,在第一方面的第二种可能的实现方式中,所述N个子LU包含变化位图,所述方法还包括:
所述控制器将第m个子LU的标识从所述元数据中移除;其中,所述第m个子LU为所述N个子LU中的任意一个;
所述控制器在所述第m个子LU的变化位图中记录所述第m个子LU发生变化的数据。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述方法还包括:
所述控制器根据所述第m个子LU的变化位图中L位指示变化的数据,将所述N-1个子LU中的任一个子LU的变化位图中与所述L位对应的存储地址中的数据,写入到所述第m个子LU的变化位图中所述L位对应的存储地址中;
所述控制器将所述第m个子LU的变化位图中所述L位恢复为数据未变化状态。
结合第一方面,在第一方面的第四种可能的实现方式中,所述方法还包括:
所述控制器将第N+1个子LU的标识添加到所述元数据中,则N+1个子LU用于为所述虚拟LU提供存储空间,所述元数据更新为包括所述虚拟LU的标识与所述N+1个子LU的标识之间的对应关系;
所述控制器根据所述元数据,将所述N个子LU中的任一个子LU中的数据写入到所述第N+1个子LU。
第二方面,本发明提供一种控制器,所述控制器位于存储系统,所述存储系统还包括虚拟逻辑单元LU及N个子LU,所述N个子LU用于为所述虚拟LU提供存储空间;其中,N为不小于2的自然数,所述控制器包括:
存储单元,用于存储所述虚拟LU的元数据,所述虚拟LU的元数据包括所述虚拟LU的标识与所述N个子LU的标识之间的对应关系;
接收单元,用于接收主机发送的写请求,所述写请求携带有所述虚拟LU的标识;
确定单元,用于根据所述接收单元接收的所述虚拟LU的标识,查询所述存储单元存储的所述虚拟LU的元数据,确定所述N个子LU的标识;
执行单元,用于向所述确定单元确定的所述N个子LU分别执行所述写请求。
结合第二方面,在第二方面的第一种可能的实现方式中,
所述接收单元,还用于接收所述主机发送的读请求,所述读请求中携带有所述虚拟LU的标识;
所述确定单元,还用于根据所述接收单元接收的所述虚拟LU的标识,查询所述存储单元存储的所述虚拟LU的元数据,从所述N个子LU的标识中确定目标子LU的标识;
所述执行单元,还用于向所述确定单元确定的所述目标子LU执行所述读请求。
结合第二方面,在第二方面的第二种可能的实现方式中,
所述确定单元确定的所述N个子LU包含变化位图;
所述控制器还包括:移除单元、记录单元;
所述移除单元,用于将第m个子LU的标识从所述存储单元存储的所述元数据中移除;其中,所述第m个子LU为所述N个子LU中的任意一个;
所述记录单元,用于在所述移除单元将所述第m个子LU的标识移除后,在所述第m个子LU的变化位图中记录所述第m个子LU发生变化的数据。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述控制器还包括:写入单元;
所述写入单元,用于根据所述记录单元记录的所述第m个子LU的变化位图中L位指示变化的数据,将所述N-1个子LU中的任一个子LU的变化位图中与所述L位对应的存储地址中的数据,写入到所述第m个子LU的变化位图中所述L位对应的存储地址中;
所述记录单元,还用于将所述第m个子LU的变化位图中所述L位恢复为数据未变化状态。
结合第二方面,在第二方面的第四种可能的实现方式中,所述控制器还包括:添加单元;
所述添加单元,用于将第N+1个子LU的标识添加到所述存储单元存储的所述元数据中,则N+1个子LU用于为所述虚拟LU提供存储空间,所述元数据更新为包括所述虚拟LU的标识与所述N+1个子LU的标识之间的对应关系;
所述写入单元,还用于根据所述元数据,将所述N个子LU中的任一个子LU中的数据写入到所述第N+1个子LU。
第三方面,本发明提供一种控制器,所述控制器位于存储系统,所述存储系统还包括虚拟逻辑单元LU及N个子LU,所述N个子LU用于为所述虚拟LU提供存储空间;其中,N为不小于2的自然数,所述控制器包括:
存储器,用于存储所述虚拟LU的元数据,所述虚拟LU的元数据包括所述虚拟LU的标识与所述N个子LU的标识之间的对应关系;
接收器,用于接收主机发送的写请求,所述写请求携带有所述虚拟LU的标识;
处理器,用于根据所述接收器接收的所述虚拟LU的标识,查询所述存储器存储的所述虚拟LU的元数据,确定所述N个子LU的标识,并向所述N个子LU分别执行所述写请求。
结合第三方面,在第三方面的第一种可能的实现方式中,
所述接收器,还用于接收所述主机发送的读请求,所述读请求中携带有所述虚拟LU的标识;
所述处理器,还用于根据所述接收器接收的所述虚拟LU的标识,查询所述存储器存储的所述虚拟LU的元数据,从所述N个子LU的标识中确定目标子LU的标识,并向所述目标子LU执行所述读请求。
结合第三方面,在第三方面的第二种可能的实现方式中,
所述处理器确定的所述N个子LU包含变化位图;
所述处理器,还用于将第m个子LU的标识从所述存储器存储的所述元数据中移除;其中,所述第m个子LU为所述N个子LU中的任意一个;
所述处理器,还用于在所述第m个子LU的变化位图中记录所述第m个子LU发生变化的数据。
结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,
所述处理器,还用于根据所述第m个子LU的变化位图中L位指示变化的数据,将所述N-1个子LU中的任一个子LU的变化位图中与所述L位对应的存储地址中的数据,写入到所述第m个子LU的变化位图中所述L位对应的存储地址中;
所述处理器,还用于将所述第m个子LU的变化位图中所述L位恢复为数据未变化状态。
结合第三方面,在第三方面的第四种可能的实现方式中,
所述处理器,还用于将第N+1个子LU的标识添加到所述存储器存储的所述元数据中,则N+1个子LU用于为所述虚拟LU提供存储空间,所述元数据更新为包括所述虚拟LU的标识与所述N+1个子LU的标识之间的对应关系;
所述处理器,还用于根据所述元数据,将所述N个子LU中的任一个子LU中的数据写入到所述第N+1个子LU。
本发明提供的数据存储的方法及控制器,应用于存储系统,存储系统包括控制器、虚拟LU及N个子LU,N个子LU用于为虚拟LU提供存储空间,控制器存储虚拟LU的元数据,虚拟LU的元数据包括虚拟LU的标识与N个子LU的标识之间的对应关系,其中,N为不小于2的自然数,控制器首先接收主机发送的写请求,该写请求携带有虚拟LU的标识,然后根据虚拟LU的标识,查询虚拟LU的元数据,确定N个子LU的标识,最后向N个子LU分别执行写请求。与目前通过对主LU进行备份生成多个从LU相比,本发明通过为虚拟LU添加多个对应的子LU,即建立虚拟LU与多个实际的子LU之间的对应关系,能够实现各个子LU均执行主机发送的同一个写请求,从而实现当某个子LU发生不可恢复的故障时,其他子LU能够执行主机发送的写请求,即避免主机业务中断,从而可以提高可靠性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对本发明描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例中存储系统的结构示意图;
图2为本发明实施例中数据存储的方法流程图;
图3为本发明实施例中另一种数据存储的方法流程图;
图4为本发明实施例中镜像LU的示意图;
图5为本发明实施例中添加子LU的过程示意图;
图6为本发明实施例中添加子LU的另一过程示意图;
图7为本发明实施例中添加子LU的又一过程示意图;
图8为本发明实施例中子LU分裂的过程示意图;
图9为本发明实施例中已分裂子LU反向同步的过程示意图;
图10为本发明实施例中又一种数据存储的方法流程图;
图11为本发明实施例中又一种添加子LU的过程示意图;
图12为本发明实施例中控制器的结构示意图;
图13为本发明实施例中另一种控制器的结构示意图;
图14为本发明实施例中又一种控制器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供的技术方案可以应用于存储系统中,存储系统包括控制器、虚拟LU及N个子LU,如图1所示。其中,N个子LU用于为虚拟LU提供存储空间,控制器存储虚拟LU的元数据,虚拟LU的元数据包括虚拟LU的标识与N个子LU的标识之间的对应关系,N为不小于2的自然数。
本发明实施例提供一种数据存储的方法,能够提高可靠性,如图2所示,所述方法包括:
201、控制器接收主机发送的写请求。
其中,写请求携带有虚拟LU的标识。
对于本发明实施例,虚拟LU不占用实际的存储空间,仅占用对应的虚拟LU的标识(ID,Identity),虚拟LU的标识用于对虚拟LU进行唯一标识。
202、控制器根据虚拟LU的标识,查询虚拟LU的元数据,确定N个子LU的标识。
对于本发明实施例,控制器存储有虚拟LU的元数据,虚拟LU的元数据包括虚拟LU的标识与N个子LU的标识之间的对应关系。其中,N个子LU中存储的数据相同。
对于本发明实施例,虚拟LU对应有N个子LU的实现方式具体可以为:首先为虚拟LU添加第一个子LU,该子LU中存储的数据为待备份数据,然后为虚拟LU添加N-1个其他子LU,最后将待备份数据写入N-1个其他子LU中。也可以同时为虚拟LU添加N个子LU,然后N个子LU同时执行相同的写请求。
203、控制器向N个子LU分别执行写请求。
对于本发明实施例,控制器对N个子LU执行相同的写请求,执行该写请求之后,该N个子LU中存储的数据仍然相同。如控制器对N个子LU执行并行的相同的写请求,N个子LU中写入相同的数据,则N个子LU形成互为镜像关系。
本发明实施例提供的数据存储的方法,应用于存储系统,存储系统包括控制器、虚拟LU及N个子LU,N个子LU用于为虚拟LU提供存储空间,控制器存储虚拟LU的元数据,虚拟LU的元数据包括虚拟LU的标识与N个子LU的标识之间的对应关系,其中,N为不小于2的自然数,控制器首先接收主机发送的写请求,该写请求携带有虚拟LU的标识,然后根据虚拟LU的标识,查询虚拟LU的元数据,确定N个子LU的标识,最后向N个子LU分别执行写请求。与目前通过对主LU进行备份生成多个从LU相比,本发明实施例通过为虚拟LU添加多个对应的子LU,即建立虚拟LU与多个实际的子LU之间的对应关系,能够实现各个子LU均执行主机发送的同一个写请求,从而实现当某个子LU发生不可恢复的故障时,其他子LU能够执行主机发送的写请求,即避免主机业务中断,从而可以提高可靠性。
作为对图2所示方法的具体说明,当需要移除虚拟LU对应的某个子LU时,本发明实施例提供另一种数据存储的方法,如图3所示,所述方法包括:
301、控制器接收主机发送的写请求。
其中,写请求携带有虚拟LU的标识。
对于本发明实施例,虚拟LU不占用实际的存储空间,仅占用对应的虚拟LU的标识,虚拟LU的标识用于对虚拟LU进行唯一标识。
302、控制器根据虚拟LU的标识,查询虚拟LU的元数据,确定N个子LU的标识。
对于本发明实施例,控制器存储有虚拟LU的元数据,虚拟LU的元数据包括虚拟LU的标识与N个子LU的标识之间的对应关系。其中,N个子LU中存储的数据相同。
对于本发明实施例,控制器存储有虚拟LU的元数据的实现方式具体可以为:在主机与虚拟LU之间添加镜像LU,如图4所示,镜像LU包括缓存(cache)和元卷(volume),缓存用于存储虚拟LU的元数据,元卷用于将主机需要进行的读操作或写操作传输至虚拟LU,以使得主机对虚拟LU进行读操作或写操作。
对于本发明实施例,若在主机与虚拟LU之间添加镜像LU,则控制器可以根据镜像LU中元卷的标识,生成虚拟LU的标识。在本发明实施例中,由于在存储系统中,可以通过各个元卷的标识对各个元卷进行唯一标识,并且每个虚拟LU均对应唯一的一个元卷,因此根据元卷的标识生成的虚拟LU的标识,能够对虚拟LU进行唯一标识。
对于本发明实施例,控制器具体可以通过将元卷的标识的高位置1,生成虚拟LU的标识;还可以通过将元卷的标识与镜像LU的标识进行与运算,即将元卷的标识作为高位,并将镜像LU的标识作为低位,或将镜像LU的标识作为高位,并将元卷的标识作为低位,生成虚拟LU的标识。
需要说明的是,本发明实施例中控制器存储虚拟LU的元数据的实现方式不限于上述在主机与虚拟LU之间添加镜像LU的方式,其他任何可以实现控制器存储虚拟LU的元数据的方式,均适用本发明实施例。
对于本发明实施例,虚拟LU对应有N个子LU的实现方式具体可以为:首先为虚拟LU添加第一个子LU,该子LU中存储的数据为待备份数据,并在元数据中添加虚拟LU与该子LU之间的对应关系,如图5所示;然后为虚拟LU添加N-1个其他子LU,如图6所示;最后将待备份数据写入N-1个其他子LU中,并在元数据中添加虚拟LU与该N-1个其他子LU之间的对应关系,如图7所示。
303、控制器向N个子LU分别执行写请求。
对于本发明实施例,控制器对N个子LU执行相同的写请求,执行该写请求之后,该N个子LU中存储的数据仍然相同。如控制器对N个子LU执行并行的相同的写请求,N个子LU中写入相同的数据,则N个子LU形成互为镜像关系。
对于本发明实施例,子LU还可以执行主机发送的读请求。作为步骤301的替换:控制器接收主机发送的读请求,该读请求中携带有虚拟LU的标识。作为步骤302的替换:控制器根据虚拟LU的标识,查询虚拟LU的元数据,从N个子LU的标识中确定目标子LU的标识。作为步骤303的替换:控制器向目标子LU执行读请求。
需要说明的是,本发明实施例中,控制器可以向虚拟LU对应的任意一个子LU执行读请求,也可以向虚拟LU对应的任意多个子LU执行并发读请求。
对于本发明实施例,与现有技术中仅可以向唯一的主LU执行读请求相比,本发明实施例通过向虚LU对应的任意多个子LU执行并发读请求,即同时通过多个子LU读取所需的不同数据,从而可以降低执行读请求的时间。
304、控制器将第m个子LU的标识从元数据中移除。
其中,第m个子LU为N个子LU中的任意一个。在本发明实施例中,N个子LU包含变化位图。
对于本发明实施例,当需要对虚拟LU对应的第m个子LU进行分裂操作时,控制器将该第m个子LU的标识从元数据中移除。
305、控制器在第m个子LU的变化位图中记录第m个子LU发生变化的数据。
对于本发明实施例,当移除后的子LU存储的数据发生改变时,或者当移除子LU后,其他未移除子LU存储的数据发生改变时,控制器记录移除后的子LU的变化位图中发生变化的数据。
例如图8所示,若虚拟LU对应的子LU 2已分裂,并且分裂后虚拟LU的数据发生改变,即子LU 0和子LU 1的数据发生改变,此时,已分裂的子LU 2的数据未发生同步改变,或者,分裂后的子LU 2的数据发生改变,则子LU 2对应的变化位图中发生变化的数据状态由“0”变更为“1”。其中,“0”表示数据未发生变化,“1”表示数据发生变化。
306、控制器根据第m个子LU的变化位图中L位指示变化的数据,将N-1个子LU中的任一个子LU的变化位图中与L位对应的存储地址中的数据,写入到第m个子LU的变化位图中L位对应的存储地址中。
对于本发明实施例,控制器可以将N-1个子LU中的任一个子LU中的数据写入第m个子LUN中,控制器还可以将N-1个子LU中的任意多个子LU中的数据写入第m个子LUN中。
对于本发明实施例,若移除后的子LU需要进行数据恢复,则已移除的子LU可以通过虚拟LU对应的其他子LU进行数据恢复。在本发明实施例中,由于虚拟LU对应的其他子LU之间均为对等的子LU,并且这些子LU存储的数据完全相同,因此已移除的子LU可以通过这些子LU恢复数据,从而实现当这些子LU中的某个子LU故障时,已移除子LU可以通过其他未故障的子LU完成数据恢复,即可以避免某个子LU故障而导致已移除子LU数据恢复中断的情况;同时,与现有技术中已移除子LU仅可通过存储待备份数据的主LU进行数据恢复相比,本发明实施例中已移除子LU通过这些子LU进行数据恢复,能够实现已移除子LU同时通过多个子LU进行数据恢复,即已移除的子LU可以通过不同的子LU恢复不同的数据,以实现对全部需要恢复的数据进行恢复,从而可以降低已移除子LU进行恢复的时间。
307、控制器将第m个子LU的变化位图中L位恢复为数据未变化状态。
例如图8所示,分裂后的子LU 2可以根据未分裂的子LU 0和子LU 1同时进行数据恢复,并且子LU 2的变化位图中L位恢复为数据未变化状态,数据恢复完成后,如图7所示。
对于本发明实施例,若移除后的子LU需要进行反向同步,即需要将已移除的子LU的数据作为虚拟LU对应的数据,则通过修改元数据包括的对应关系即可实现反向同步。在本发明实施例中,与现有技术中将已移除LU的发生改变的数据写入主LU以实现进行反向同步相比,本发明实施例通过修改虚拟LU与子LU之间的对应关系即可实现反向同步,即将元数据包括的对应关系,由虚拟LU的标识与未移除子LU的标识之间的对应关系,修改为虚拟LU的标识与已移除子LU的标识之间的对应关系,从而可以避免对LU进行写入数据的过程,进而可以降低进行反向同步的时间。
例如图9所示,若移除后的子LU 2需要进行反向同步,则将元数据包括的虚拟LU与子LU 0和子LU 1之间的对应关系,修改为虚拟LU与子LU 2之间的对应关系。
本发明实施例提供的数据存储的方法,应用于存储系统,存储系统包括控制器、虚拟LU及N个子LU,N个子LU用于为虚拟LU提供存储空间,控制器存储虚拟LU的元数据,虚拟LU的元数据包括虚拟LU的标识与N个子LU的标识之间的对应关系,其中,N为不小于2的自然数,控制器首先接收主机发送的写请求,该写请求携带有虚拟LU的标识,然后根据虚拟LU的标识,查询虚拟LU的元数据,确定N个子LU的标识,最后向N个子LU分别执行写请求。与目前通过对主LU进行备份生成多个从LU相比,本发明实施例通过为虚拟LU添加多个对应的子LU,即建立虚拟LU与多个实际的子LU之间的对应关系,能够实现各个子LU均执行主机发送的同一个写请求,从而实现当某个子LU发生不可恢复的故障时,其他子LU能够执行主机发送的写请求,即避免主机业务中断,从而可以提高可靠性。
作为对图2所示方法的具体说明,当需要为虚拟LU添加子LU时,本发明实施例提供又一种数据存储的方法,如图10所示,所述方法包括:
1001、控制器接收主机发送的写请求。
其中,写请求携带有虚拟LU的标识。
对于本发明实施例,虚拟LU不占用实际的存储空间,仅占用对应的虚拟LU的标识,虚拟LU的标识用于对虚拟LU进行唯一标识。
1002、控制器根据虚拟LU的标识,查询虚拟LU的元数据,确定N个子LU的标识。
对于本发明实施例,控制器存储有虚拟LU的元数据,虚拟LU的元数据包括虚拟LU的标识与N个子LU的标识之间的对应关系。其中,N个子LU中存储的数据相同。
对于本发明实施例,控制器存储有虚拟LU的元数据的实现方式具体可以为:在主机与虚拟LU之间添加镜像LU,如图4所示,镜像LU包括缓存(cache)和元卷(volume),缓存用于存储虚拟LU的元数据,元卷用于将主机需要进行的读操作或写操作传输至虚拟LU,以使得主机对虚拟LU进行读操作或写操作。
对于本发明实施例,若在主机与虚拟LU之间添加镜像LU,则控制器可以根据镜像LU中元卷的标识,生成虚拟LU的标识。在本发明实施例中,由于在存储系统中,可以通过各个元卷的标识对各个元卷进行唯一标识,并且每个虚拟LU均对应唯一的一个元卷,因此根据元卷的标识生成的虚拟LU的标识,能够对虚拟LU进行唯一标识。
对于本发明实施例,控制器具体可以通过将元卷的标识的高位置1,生成虚拟LU的标识;还可以通过将元卷的标识与镜像LU的标识进行与运算,即将元卷的标识作为高位,并将镜像LU的标识作为低位,或将镜像LU的标识作为高位,并将元卷的标识作为低位,生成虚拟LU的标识。
需要说明的是,本发明实施例中控制器存储虚拟LU的元数据的实现方式不限于上述在主机与虚拟LU之间添加镜像LU的方式,其他任何可以实现控制器存储虚拟LU的元数据的方式,均适用本发明实施例。
对于本发明实施例,虚拟LU对应有N个子LU的实现方式具体可以为:首先为虚拟LU添加第一个子LU,该子LU中存储的数据为待备份数据,并在元数据中添加虚拟LU与该子LU之间的对应关系,如图5所示;然后为虚拟LU添加N-1个其他子LU,如图6所示;最后将待备份数据写入N-1个其他子LU中,并在元数据中添加虚拟LU与该N-1个其他子LU之间的对应关系,如图7所示。
1003、控制器向N个子LU分别执行写请求。
对于本发明实施例,控制器对N个子LU执行相同的写请求,执行该写请求之后,该N个子LU中存储的数据仍然相同。如控制器对N个子LU执行并行的相同的写请求,N个子LU中写入相同的数据,则N个子LU形成互为镜像关系。
对于本发明实施例,子LU还可以执行主机发送的读请求。作为步骤1001的替换:控制器接收主机发送的读请求,该读请求中携带有虚拟LU的标识。作为步骤1002的替换:控制器根据虚拟LU的标识,查询虚拟LU的元数据,从N个子LU的标识中确定目标子LU的标识。作为步骤1003的替换:控制器向目标子LU执行读请求。
需要说明的是,本发明实施例中,控制器可以向虚拟LU对应的任意一个子LU执行读请求,也可以向虚拟LU对应的任意多个子LU执行并发读请求。
对于本发明实施例,与现有技术中仅可以向唯一的主LU执行读请求相比,本发明实施例通过向虚LU对应的任意多个子LU执行并发读请求,即同时通过多个子LU读取所需的不同数据,从而可以降低执行读请求的时间。
1004、控制器将第N+1个子LU的标识添加到元数据中。
进一步地,通过控制器将第N+1个子LU的标识添加到元数据中,则N+1个子LU用于为虚拟LU提供存储空间,元数据更新为包括虚拟LU的标识与N+1个子LU的标识之间的对应关系。其中,N+1个子LU包括N个子LU及第N+1个子LU。
1005、控制器根据元数据,将N个子LU中的任一个子LU中的数据写入到第N+1个子LU。
对于本发明实施例,控制器可以将N个子LU中的任一个子LU中的数据写入到第N+1个子LU,也可以将N个子LU中的任意多个子LU中的数据写入到第N+1个子LU。
例如图11所示,控制器可以将虚拟LU对应的子LU 0、子LU 1及子LU 2中的任一个子LU的数据写入子LU 3,以实现为虚拟LU添加对应的子LU 3。
对于本发明实施例,控制器为虚拟LU添加第N+1个子LU后,该第N+1个子LU与N个子LU之间为对等的子LU,并且存储有相同的数据。
本发明实施例提供的数据存储的方法,应用于存储系统,存储系统包括控制器、虚拟LU及N个子LU,N个子LU用于为虚拟LU提供存储空间,控制器存储虚拟LU的元数据,虚拟LU的元数据包括虚拟LU的标识与N个子LU的标识之间的对应关系,其中,N为不小于2的自然数,控制器首先接收主机发送的写请求,该写请求携带有虚拟LU的标识,然后根据虚拟LU的标识,查询虚拟LU的元数据,确定N个子LU的标识,最后向N个子LU分别执行写请求。与目前通过对主LU进行备份生成多个从LU相比,本发明实施例通过为虚拟LU添加多个对应的子LU,即建立虚拟LU与多个实际的子LU之间的对应关系,能够实现各个子LU均执行主机发送的同一个写请求,从而实现当某个子LU发生不可恢复的故障时,其他子LU能够执行主机发送的写请求,即避免主机业务中断,从而可以提高可靠性。
进一步地,作为对图2、图3及图4所示方法的实现,本发明实施例还提供了一种控制器,控制器位于存储系统,存储系统还包括虚拟逻辑单元LU及N个子LU,N个子LU用于为虚拟LU提供存储空间,N为不小于2的自然数,如图12所示,所述控制器包括:存储单元121、接收单元122、确定单元123、执行单元124。
存储单元121,用于存储虚拟LU的元数据。
其中,虚拟LU的元数据包括虚拟LU的标识与N个子LU的标识之间的对应关系。
接收单元122,用于接收主机发送的写请求。
其中,写请求携带有虚拟LU的标识。
确定单元123,用于根据接收单元122接收的虚拟LU的标识,查询存储单元121存储的虚拟LU的元数据,确定N个子LU的标识。
执行单元124,用于向确定单元123确定的N个子LU分别执行写请求。如控制器对N个子LU执行并行的相同的写请求,N个子LU中写入相同的数据,则N个子LU形成互为镜像关系。
接收单元122,还用于接收主机发送的读请求,读请求中携带有虚拟LU的标识。
确定单元123,还用于根据接收单元122接收的虚拟LU的标识,查询存储单元121存储的虚拟LU的元数据,从N个子LU的标识中确定目标子LU的标识。
执行单元124,还用于向确定单元123确定的目标子LU执行读请求。
确定单元123确定的N个子LU包含变化位图。
进一步地,如图13所示,所述控制器还包括:移除单元131、记录单元132。
移除单元131,用于将第m个子LU的标识从存储单元121存储的元数据中移除。
其中,第m个子LU为N个子LU中的任意一个。
记录单元132,用于在移除单元131将第m个子LU的标识移除后,在第m个子LU的变化位图中记录第m个子LU发生变化的数据。
可选地,所述控制器还包括:写入单元133。
写入单元133,用于根据记录单元132记录的第m个子LU的变化位图中L位指示变化的数据,将N-1个子LU中的任一个子LU的变化位图中与L位对应的存储地址中的数据,写入到第m个子LU的变化位图中L位对应的存储地址中。
记录单元132,还用于将第m个子LU的变化位图中L位恢复为数据未变化状态。
可选地,所述控制器还包括:添加单元134。
添加单元134,用于将第N+1个子LU的标识添加到存储单元121存储的元数据中。
进一步地,通过将第N+1个子LU的标识添加到存储单元121存储的元数据中,则N+1个子LU用于为虚拟LU提供存储空间,元数据更新为包括虚拟LU的标识与N+1个子LU的标识之间的对应关系。其中,N+1个子LU包括N个子LU及第N+1个子LU。
写入单元133,还用于根据元数据,将N个子LU中的任一个子LU中的数据写入到第N+1个子LU。
本发明实施例提供的控制器,该控制器位于存储系统,存储系统还包括虚拟LU及N个子LU,N个子LU用于为虚拟LU提供存储空间,控制器存储虚拟LU的元数据,虚拟LU的元数据包括虚拟LU的标识与N个子LU的标识之间的对应关系,其中,N为不小于2的自然数,控制器首先接收主机发送的写请求,该写请求携带有虚拟LU的标识,然后根据虚拟LU的标识,查询虚拟LU的元数据,确定N个子LU的标识,最后向N个子LU分别执行写请求。与目前通过对主LU进行备份生成多个从LU相比,本发明实施例通过为虚拟LU添加多个对应的子LU,即建立虚拟LU与多个实际的子LU之间的对应关系,能够实现各个子LU均执行主机发送的同一个写请求,从而实现当某个子LU发生不可恢复的故障时,其他子LU能够执行主机发送的写请求,即避免主机业务中断,从而可以提高可靠性。
需要说明的是,本发明实施例中提供的控制器中各单元所对应的其他相应描述,可以参考图2、图3及图4中的对应描述,在此不再赘述。
再进一步地,本发明实施例还提供了一种控制器,控制器位于存储系统,存储系统还包括虚拟逻辑单元LU及N个子LU,N个子LU用于为虚拟LU提供存储空间,N为不小于2的自然数,如图14所示,所述控制器包括:存储器141、接收器142、处理器143、发送器144,所述发送器144与所述处理器143相连接。
存储器141,用于存储虚拟LU的元数据。
其中,虚拟LU的元数据包括虚拟LU的标识与N个子LU的标识之间的对应关系。
接收器142,用于接收主机发送的写请求。
其中,写请求携带有虚拟LU的标识。
处理器143,用于根据接收器142接收的虚拟LU的标识,查询存储器141存储的虚拟LU的元数据,确定N个子LU的标识,并向N个子LU分别执行写请求。如控制器对N个子LU执行并行的相同的写请求,N个子LU中写入相同的数据,则N个子LU形成互为镜像关系。
接收器142,还用于接收主机发送的读请求。
其中,读请求中携带有虚拟LU的标识。
处理器143,还用于根据接收器142接收的虚拟LU的标识,查询存储器141存储的虚拟LU的元数据,从N个子LU的标识中确定目标子LU的标识,并向目标子LU执行读请求。
处理器143确定的N个子LU包含变化位图。
处理器143,还用于将第m个子LU的标识从存储器141存储的元数据中移除。其中,第m个子LU为N个子LU中的任意一个。
处理器143,还用于在第m个子LU的变化位图中记录第m个子LU发生变化的数据。
处理器143,还用于根据第m个子LU的变化位图中L位指示变化的数据,将N-1个子LU中的任一个子LU的变化位图中与L位对应的存储地址中的数据,写入到第m个子LU的变化位图中L位对应的存储地址中。
处理器143,还用于将第m个子LU的变化位图中L位恢复为数据未变化状态。
处理器143,还用于将第N+1个子LU的标识添加到存储器141存储的元数据中。
进一步地,通过将第N+1个子LU的标识添加到存储器141存储的元数据中,则N+1个子LU用于为虚拟LU提供存储空间,元数据更新为包括虚拟LU的标识与N+1个子LU的标识之间的对应关系。其中,N+1个子LU包括N个子LU及第N+1个子LU。
处理器143,还用于根据元数据,将N个子LU中的任一个子LU中的数据写入到第N+1个子LU。
本发明实施例提供的控制器,位于存储系统,存储系统还包括虚拟LU及N个子LU,N个子LU用于为虚拟LU提供存储空间,控制器存储虚拟LU的元数据,虚拟LU的元数据包括虚拟LU的标识与N个子LU的标识之间的对应关系,其中,N为不小于2的自然数,控制器首先接收主机发送的写请求,该写请求携带有虚拟LU的标识,然后根据虚拟LU的标识,查询虚拟LU的元数据,确定N个子LU的标识,最后向N个子LU分别执行写请求。与目前通过对主LU进行备份生成多个从LU相比,本发明实施例通过为虚拟LU添加多个对应的子LU,即建立虚拟LU与多个实际的子LU之间的对应关系,能够实现各个子LU均执行主机发送的同一个写请求,从而实现当某个子LU发生不可恢复的故障时,其他子LU能够执行主机发送的写请求,即避免主机业务中断,从而可以提高可靠性。
需要说明的是,本发明实施例中提供的控制器中各设备所对应的其他相应描述,可以参考图2、图3及图4中的对应描述,在此不再赘述。
本发明实施例提供的控制器可以实现上述提供的方法实施例,具体功能实现请参见方法实施例中的说明,在此不再赘述。本发明实施例提供的数据存储的方法及控制器可以适用于对LU存储的数据进行备份,但不仅限于此。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (9)

1.一种数据存储的方法,应用于存储系统,其特征在于,所述存储系统包括控制器、虚拟逻辑单元LU及N个子LU,所述N个子LU包含变化位图,所述N个子LU用于为所述虚拟LU提供存储空间;所述控制器存储所述虚拟LU的元数据,所述虚拟LU的元数据包括所述虚拟LU的标识与所述N个子LU的标识之间的对应关系;其中,N为不小于2的自然数,所述方法包括:
所述控制器接收主机发送的写请求,所述写请求携带有所述虚拟LU的标识;
所述控制器根据所述虚拟LU的标识,查询所述虚拟LU的元数据,确定所述N个子LU的标识;
所述控制器向所述N个子LU分别执行所述写请求;
所述控制器将第m个子LU的标识从所述元数据中移除;其中,所述第m个子LU为所述N个子LU中的任意一个;
所述控制器在所述第m个子LU的变化位图中记录所述第m个子LU发生变化的数据;
所述控制器根据所述第m个子LU的变化位图中L位指示变化的数据,将所述N-1个子LU中的任一个子LU的变化位图中与所述L位对应的存储地址中的数据,写入到所述第m个子LU的变化位图中所述L位对应的存储地址中;
所述控制器将所述第m个子LU的变化位图中所述L位恢复为数据未变化状态。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述控制器接收所述主机发送的读请求,所述读请求中携带有所述虚拟LU的标识;
所述控制器根据所述虚拟LU的标识,查询所述虚拟LU的元数据,从所述N个子LU的标识中确定目标子LU的标识;
所述控制器向所述目标子LU执行所述读请求。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述控制器将第N+1个子LU的标识添加到所述元数据中,则N+1个子LU用于为所述虚拟LU提供存储空间,所述元数据更新为包括所述虚拟LU的标识与所述N+1个子LU的标识之间的对应关系;
所述控制器根据所述元数据,将所述N个子LU中的任一个子LU中的数据写入到所述第N+1个子LU。
4.一种控制器,所述控制器位于存储系统,其特征在于,所述存储系统还包括虚拟逻辑单元LU及N个子LU,所述N个子LU包含变化位图,所述N个子LU用于为所述虚拟LU提供存储空间;其中,N为不小于2的自然数,所述控制器包括:
存储单元,用于存储所述虚拟LU的元数据,所述虚拟LU的元数据包括所述虚拟LU的标识与所述N个子LU的标识之间的对应关系;
接收单元,用于接收主机发送的写请求,所述写请求携带有所述虚拟LU的标识;
确定单元,用于根据所述接收单元接收的所述虚拟LU的标识,查询所述存储单元存储的所述虚拟LU的元数据,确定所述N个子LU的标识;
执行单元,用于向所述确定单元确定的所述N个子LU分别执行所述写请求;
所述控制器还包括:移除单元、记录单元和写入单元;
所述移除单元,用于将第m个子LU的标识从所述存储单元存储的所述元数据中移除;其中,所述第m个子LU为所述N个子LU中的任意一个;
所述记录单元,用于在所述移除单元将所述第m个子LU的标识移除后,在所述第m个子LU的变化位图中记录所述第m个子LU发生变化的数据;
所述写入单元,用于根据所述记录单元记录的所述第m个子LU的变化位图中L位指示变化的数据,将所述N-1个子LU中的任一个子LU的变化位图中与所述L位对应的存储地址中的数据,写入到所述第m个子LU的变化位图中所述L位对应的存储地址中;
所述记录单元,还用于将所述第m个子LU的变化位图中所述L位恢复为数据未变化状态。
5.根据权利要求4所述的控制器,其特征在于,
所述接收单元,还用于接收所述主机发送的读请求,所述读请求中携带有所述虚拟LU的标识;
所述确定单元,还用于根据所述接收单元接收的所述虚拟LU的标识,查询所述存储单元存储的所述虚拟LU的元数据,从所述N个子LU的标识中确定目标子LU的标识;
所述执行单元,还用于向所述确定单元确定的所述目标子LU执行所述读请求。
6.根据权利要求4所述的控制器,其特征在于,所述控制器还包括:添加单元;
所述添加单元,用于将第N+1个子LU的标识添加到所述存储单元存储的所述元数据中,则N+1个子LU用于为所述虚拟LU提供存储空间,所述元数据更新为包括所述虚拟LU的标识与所述N+1个子LU的标识之间的对应关系;
所述写入单元,还用于根据所述元数据,将所述N个子LU中的任一个子LU中的数据写入到所述第N+1个子LU。
7.一种控制器,所述控制器位于存储系统,其特征在于,所述存储系统还包括虚拟逻辑单元LU及N个子LU,所述N个子LU包含变化位图,所述N个子LU用于为所述虚拟LU提供存储空间;其中,N为不小于2的自然数,所述控制器包括:
存储器,用于存储所述虚拟LU的元数据,所述虚拟LU的元数据包括所述虚拟LU的标识与所述N个子LU的标识之间的对应关系;
接收器,用于接收主机发送的写请求,所述写请求携带有所述虚拟LU的标识;
处理器,用于根据所述接收器接收的所述虚拟LU的标识,查询所述存储器存储的所述虚拟LU的元数据,确定所述N个子LU的标识,并向所述N个子LU分别执行所述写请求;
所述处理器,还用于将第m个子LU的标识从所述存储器存储的所述元数据中移除;其中,所述第m个子LU为所述N个子LU中的任意一个;
所述处理器,还用于在所述第m个子LU的变化位图中记录所述第m个子LU发生变化的数据;
所述处理器,还用于根据所述第m个子LU的变化位图中L位指示变化的数据,将所述N-1个子LU中的任一个子LU的变化位图中与所述L位对应的存储地址中的数据,写入到所述第m个子LU的变化位图中所述L位对应的存储地址中;
所述处理器,还用于将所述第m个子LU的变化位图中所述L位恢复为数据未变化状态。
8.根据权利要求7所述的控制器,其特征在于,
所述接收器,还用于接收所述主机发送的读请求,所述读请求中携带有所述虚拟LU的标识;
所述处理器,还用于根据所述接收器接收的所述虚拟LU的标识,查询所述存储器存储的所述虚拟LU的元数据,从所述N个子LU的标识中确定目标子LU的标识,并向所述目标子LU执行所述读请求。
9.根据权利要求7所述的控制器,其特征在于,
所述处理器,还用于将第N+1个子LU的标识添加到所述存储器存储的所述元数据中,则N+1个子LU用于为所述虚拟LU提供存储空间,所述元数据更新为包括所述虚拟LU的标识与所述N+1个子LU的标识之间的对应关系;
所述处理器,还用于根据所述元数据,将所述N个子LU中的任一个子LU中的数据写入到所述第N+1个子LU。
CN201410587018.6A 2014-10-28 2014-10-28 数据存储的方法及控制器 Active CN104360959B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410587018.6A CN104360959B (zh) 2014-10-28 2014-10-28 数据存储的方法及控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410587018.6A CN104360959B (zh) 2014-10-28 2014-10-28 数据存储的方法及控制器

Publications (2)

Publication Number Publication Date
CN104360959A CN104360959A (zh) 2015-02-18
CN104360959B true CN104360959B (zh) 2018-02-09

Family

ID=52528223

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410587018.6A Active CN104360959B (zh) 2014-10-28 2014-10-28 数据存储的方法及控制器

Country Status (1)

Country Link
CN (1) CN104360959B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106325762B (zh) * 2015-06-30 2019-08-20 华为技术有限公司 输入输出控制方法和装置
KR20180058327A (ko) * 2016-11-24 2018-06-01 에스케이하이닉스 주식회사 컨트롤러, 메모리 시스템 및 그의 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101061476A (zh) * 2004-04-30 2007-10-24 伊姆西公司 在线初始镜像同步及存储区域网络中的镜像同步验证
CN101784990A (zh) * 2007-08-14 2010-07-21 思科技术公司 向卷管理器中的镜像卷的快速写入操作
US7843866B1 (en) * 2007-12-31 2010-11-30 Emc Corporation System and method for mirroring data
CN102760212A (zh) * 2012-05-31 2012-10-31 北京朋创天地科技有限公司 一种基于存储镜像克隆机制虚拟桌面恶意代码检测方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101061476A (zh) * 2004-04-30 2007-10-24 伊姆西公司 在线初始镜像同步及存储区域网络中的镜像同步验证
CN101784990A (zh) * 2007-08-14 2010-07-21 思科技术公司 向卷管理器中的镜像卷的快速写入操作
US7843866B1 (en) * 2007-12-31 2010-11-30 Emc Corporation System and method for mirroring data
CN102760212A (zh) * 2012-05-31 2012-10-31 北京朋创天地科技有限公司 一种基于存储镜像克隆机制虚拟桌面恶意代码检测方法

Also Published As

Publication number Publication date
CN104360959A (zh) 2015-02-18

Similar Documents

Publication Publication Date Title
CN104407933B (zh) 一种数据的备份方法及装置
CN103136074B (zh) 多个磁盘阵列系统的数据储存方法及数据储存系统
CN103034566B (zh) 虚拟机还原的方法和装置
CN105550062B (zh) 基于持续数据保护与时间点浏览恢复的数据回流方法
CN102999564B (zh) 写入数据的方法、装置和设备
CN106547641B (zh) 一种基于卷的cdp备份方法
CN102945201A (zh) 已验证数据集合的非易失性介质日志记录
CN106716395B (zh) 事务处理的方法、装置及计算机系统
CN104142872A (zh) 一种raid磁盘阵列的快速重建方法
CN107111531A (zh) 使用分配图的数据恢复
CN102929748A (zh) 数据备份方法及装置
CN103049220A (zh) 存储控制方法、存储控制装置和固态存储系统
CN107544869A (zh) 一种数据恢复方法和装置
WO2023207492A1 (zh) 一种数据处理方法、装置、设备及可读存储介质
CN101937378B (zh) 一种对存储设备的数据进行备份保护的方法及计算机系统
CN104408126B (zh) 一种数据库的持久化写入方法、装置和系统
CN108874574A (zh) 一种垃圾回收处理方法及相关装置
CN103744751B (zh) 存储设备配置信息连续优化备份系统及其使用方法
CN104360959B (zh) 数据存储的方法及控制器
CN103631682B (zh) 数据备份的实现方法和装置
CN104484354B (zh) 保证数据一致性的快照方法和存储设备
CN105068760B (zh) 数据存储方法、数据存储装置和存储设备
CN104461784A (zh) 一种基于单进度位图的克隆拷贝方法和系统
CN113051428B (zh) 一种摄像机前端存储备份的方法及装置
CN104281545A (zh) 一种数据读取方法及设备

Legal Events

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

Effective date of registration: 20211224

Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province

Patentee after: xFusion Digital Technologies Co., Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right