CN104583930A - 数据迁移的方法、控制器和数据迁移装置 - Google Patents
数据迁移的方法、控制器和数据迁移装置 Download PDFInfo
- Publication number
- CN104583930A CN104583930A CN201480002086.XA CN201480002086A CN104583930A CN 104583930 A CN104583930 A CN 104583930A CN 201480002086 A CN201480002086 A CN 201480002086A CN 104583930 A CN104583930 A CN 104583930A
- Authority
- CN
- China
- Prior art keywords
- failure domain
- level
- level failure
- data block
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明实施例提供了一种数据迁移的方法、控制器和数据迁移装置,所述方法包括:控制器统计第一层级故障域中的数据块的访问频率,所述数据块包括第i份目标数据,其中i为大于或等于零的整数,并且,i<N;当所述数据块的访问频率达到预设阈值时,所述控制器在所述第二层级磁盘集合中确定待存储所述数据块的第二层级故障域,所述确定出的第二层级故障域没有保存所述目标数据;所述控制器将所述数据块迁移到所述确定出的第二层级故障域中。避免了在执行分级存储操作时将多份目标数据迁移至同一个故障域中,保证了数据的可靠性。
Description
技术领域
本发明涉及存储技术,尤其涉及一种数据迁移的方法、控制器和数据迁移装置。
背景技术
存储设备在存储数据时,对于重要性较高的数据,通常通过同时存储多份数据副本的方式来保证数据的可靠性。举例来说,可以将多份数据副本分别存储在不同的故障域中,当一份数据副本的所在的存储空间损坏时,其他数据副本仍然可用。故障域是指某一设定范围的存储区域,该区域的数据损坏不会影响到其他区域的数据。
同时,分层存储技术已广泛应用于存储设备中。分层存储技术是指,在存储设备中的存储介质存在着较大的速度和价格差异时,将当前访问频繁的数据(又称热数据)存储在高速高价格的存储介质上,将当前访问不够频繁的数据(又称冷数据)存储在低速低价格的存储介质上。
当以上两种技术应用于同一个存储设备时,可能会出现这种情况,例如:存储设备中保存了两份数据副本,其中,一份数据副本保存在至低速低价格的存储介质的一个故障域中,另一份数据副本保存在至低速低价格的存储介质的一个故障域中,当其中一份数据副本所在的数据块变成热数据块时,为了提高其访问效率需要将该数据块迁移至高速高价格的存储介质上,就有可能将该数据副本和另一份数据副本存储在同一个故障域中,那么当该故障域的存储空间发生损坏时,数据将发生丢失,可靠性不能得到保障。
发明内容
本发明实施例提供了一种数据迁移的方法、控制器和数据迁移装置。避免了在执行分级存储操作时将多份目标数据迁移至同一个故障域中,保证了数据的可靠性。
第一方面,本发明实施例提供了一种数据迁移的方法,所述方法由存储设备执行,所述存储设备至少包括控制器、第一层级磁盘集合和第二层级磁盘集合,所述第一层级磁盘集合包括第一层级故障域,所述第二层级磁盘集合包括至少两个第二层级故障域;所述存储设备中保存有N份目标数据,N为大于1的正整数,所述N小于第一层级故障域的个数,并且所述N小于第二层级故障域的个数;所述方法包括:
所述控制器统计所述第一层级故障域中的数据块的访问频率,所述数据块包括第i份目标数据,其中i为大于或等于零的整数,并且,i<N;
当所述数据块的访问频率达到预设阈值时,所述控制器在所述第二层级磁盘集合中确定待存储所述数据块的第二层级故障域,所述确定出的第二层级故障域没有保存所述目标数据;
所述控制器将所述数据块迁移到所述确定出的第二层级故障域中。
结合第一方面,在第一种可能的实现方式中,所述控制器在所述第二层级磁盘集合中确定待存储所述数据块的第二层级故障域包括:
所述控制器根据所述i和N,以及预先设定的关联关系,确定所述第二层级故障域的编号,所述关联关系是指所述第二层级故障域的编号等于所述N与随机数的乘积再加上所述i,从而获得的和,其中,所述随机数是大于或等于1的正整数,并且所述随机数不超过所述存储设备所包含的第二层级故障域的个数除以所述N从而获得的商。
结合第一方面或者第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述方法还包括:
所述控制器保存所述第一层级故障域和所述确定出的第二层级故障域之间的对应关系;
当所述数据块的访问频率低于所述预设阈值时,所述控制器根据所述对应关系将所述数据块从所述确定出的第二层级故障域迁移到所述第一层级故障域中。
结合第一方面或者第一方面的第一种至第二种任意一种可能的实现方式,在第三种可能的实现方式中,所述方法还包括:
所述控制器接收所述目标数据,根据预设的规则确定所述目标数据在所述存储设备中保存的份数为N;
所述控制器对所述目标数据进行复制,生成N份所述目标数据。
第二方面,本发明实施例提供了一种控制器,所述控制器包括处理器和通信接口;
所述通信接口,用于与磁盘阵列进行通信,所述磁盘阵列包括第一层级磁盘集合和第二层级磁盘集合,所述第一层级磁盘集合包括第一层级故障域,所述第二层级磁盘集合包括至少两个第二层级故障域;所述磁盘阵列中保存有N份目标数据,N为大于1的正整数,所述N小于第一层级故障域的个数,并且所述N小于第二层级故障域的个数;
所述处理器,用于统计所述第一层级故障域中的数据块的访问频率,所述数据块包括第i份目标数据,其中i为大于或等于零的整数,并且,i<N;
当所述数据块的访问频率达到预设阈值时,所述处理器在所述第二层级磁盘集合中确定待存储所述数据块的第二层级故障域,所述确定出的第二层级故障域没有保存所述目标数据;
所述处理器将所述数据块迁移到所述确定出的第二层级故障域中。
结合第二方面,在第一种可能的实现方式中,所述处理器具体用于根据所述i和N,以及预先设定的关联关系,确定所述第二层级故障域的编号,所述关联关系是指所述第二层级故障域的编号等于所述N与随机数的乘积再加上所述i,从而获得的和,其中,所述随机数是大于或等于1的正整数,并且所述随机数不超过所述存储设备所包含的第二层级故障域的个数除以所述N从而获得的商。
结合第二方面或者第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述处理器还用于保存所述第一层级故障域和所述确定出的第二层级故障域之间的对应关系;
当所述数据块的访问频率低于所述预设阈值时,所述处理器还用于根据所述对应关系将所述数据块从所述确定出的第二层级故障域迁移到所述第一层级故障域中。
结合第二方面或者第二方面的第一种至第二种任意一种可能的实现方式,在第三种可能的实现方式中,所述处理器还用于接收所述目标数据,根据预设的规则确定所述目标数据在所述存储设备中保存的份数为N;所述控制器对所述目标数据进行复制,生成N份所述目标数据。
第三方面,本发明实施例提供了一种数据迁移装置,所述数据迁移装置位于存储设备的控制器中,所述存储设备至少包括所述控制器、第一层级磁盘集合和第二层级磁盘集合,所述第一层级磁盘集合包括第一层级故障域,所述第二层级磁盘集合包括至少两个第二层级故障域;所述存储设备中保存有N份目标数据,N为大于1的正整数,所述N小于第一层级故障域的个数,并且所述N小于第二层级故障域的个数;所述数据迁移装置包括:
统计模块,用于统计所述第一层级故障域中的数据块的访问频率,所述数据块包括第i份目标数据,其中i为大于或等于零的整数,并且,i<N;
确定模块,用于当所述数据块的访问频率达到预设阈值时,在所述第二层级磁盘集合中确定待存储所述数据块的第二层级故障域,所述确定出的第二层级故障域没有保存所述目标数据;
迁移模块,用于将所述数据块迁移到所述确定出的第二层级故障域中。
结合第三方面,在第一种可能的实现方式中,所述确定模块具体用于根据所述i和N,以及预先设定的关联关系,确定所述第二层级故障域的编号,所述关联关系是指所述第二层级故障域的编号等于所述N与随机数的乘积再加上所述i,从而获得的和,其中,所述随机数是大于或等于1的正整数,并且所述随机数不超过所述存储设备所包含的第二层级故障域的个数除以所述N从而获得的商。
结合第三方面或者第三方面的第一种可能的实现方式,在第二种可能的实现方式中,还包括:
保存模块,用于保存所述第一层级故障域和所述确定出的第二层级故障域之间的对应关系;
所述迁移模块,还用于根据所述对应关系将所述数据块从所述确定出的第二层级故障域迁移到所述第一层级故障域中。
结合第三方面或者第三方面的第一种至第二种任意一种可能的实现方式,在第三种可能的实现方式中,还包括:接收模块,用于接收所述目标数据,根据预设的规则确定所述目标数据在所述存储设备中保存的份数为N;
复制模块,用于对所述目标数据进行复制,生成N份所述目标数据。
本发明实施例提供了一种数据迁移的方法、控制器和数据迁移装置,统计所述第一层级故障域中的数据块的访问频率,所述数据块包括多份目标数据中的其中一份,当第一层级故障域中的数据块的访问频率达到预设阈值时,将所述数据块迁移至第二层级故障域,并且所述第二层级故障域没有保存所述目标数据,这就避免了在执行分级存储操作时将多份目标数据迁移至同一个故障域中,保证了数据的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例提供的应用场景图;
图2是根据本发明实施例提供的存储设备的结构示意图;
图3是根据本发明实施例提供的磁盘阵列的示例图;
图4是根据本发明实施例提供的磁盘阵列中的故障域分布示意图;
图5是根据本发明实施例提供的数据迁移的方法的流程示意图;
图6是根据本发明实施例提供的数据迁移装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的系统架构
如图1所示,图1为本发明实施例的一种应用场景图,在图1所述的一种应用场景中,该存储系统包括主机100、连接设备105和存储设备110。
主机100可以包括当前技术已知的任何计算设备,如服务器、台式计算机、应用服务器等等,在主机100中安装有操作系统以及其他应用程序,主机100可以有多个。
连接设备105可以包括当前技术已知的存储设备和主机之间的任何接口,如光纤交换机,或者其他现有的交换机。
存储设备110可以包括当前技术已知的存储设备,如磁盘阵列、磁盘簇(Just a Bunch Of Disks,JBOD)、直接存取存储器(Direct Access StorageDevice,DASD)的一个或多个互连的磁盘驱动器,其中,直接存取存储器可以包括诸如磁带库、一个或多个存储单元的磁带存储设备。
图2为本发明实施例提供的一种存储设备110的结构示意图,图2所示的存储设备为一种磁盘阵列。如图2所示,存储设备110可以包括控制器115以及磁盘阵列125,其中,这里的磁盘阵列指的是独立磁盘冗余阵列(Redundant Arrays of Independent Disks,RAID),磁盘阵列125可以有多个,磁盘阵列125由多个磁盘130构成。磁盘阵列125与控制器115之间可以通过小型计算机系统接口(Small Computer System Interface,SCSI)协议等通信协议进行通信连接,在此不进行限定。
控制器115是存储设备110的“大脑”,主要包括处理器(processor)118、缓存(cache)120、存储器(memory)122、通信总线(简称总线)126以及通信接口(Communication Interface)128。处理器118、缓存120、存储器122以及通信接口128通过通信总线126完成相互间的通信。
通信接口128,用于与主机100或者磁盘阵列125通信。
存储器122,用于存放程序124,存储器124可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可以理解的是,存储器124可以为随机存储器(Random-AccessMemory,RAM)、磁碟、硬盘、光盘、固态硬盘(Solid State Disk,SSD)或者非易失性存储器等各种可以存储程序代码的非短暂性的(non-transitory)机器可读介质。
程序124可以包括程序代码,所述程序代码包括计算机操作指令。
缓存120(Cache)用于缓存从主机100接收的数据或者从磁盘阵列125读取的数据,以提高阵列的性能和可靠性。缓存120可以是RAM、ROM、闪存(Flash memory)或固态硬盘(Solid State Disk,SSD)等各种可以存储数据的非短暂性的(non-transitory)机器可读介质,在此不做限定。
处理器118可能是一个中央处理器CPU,或者是特定集成电路ASIC(Application Specific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。在处理器118中安装有操作系统和其他软件程序,不同的软件程序可以视作一个处理模块,具有不同的功能。例如,处理对磁盘130的输入/输出(Input/Output,I/O)请求,对磁盘中的数据进行其他处理等等。从而使控制器115可以实现IO操作、数据副本复制以及分层存储等各种数据管理功能。在本发明实施例中,处理器118用于执行程序124,具体可以执行下述方法实施例中的相关步骤。
磁盘阵列125用于存储数据,在本发明实施例中,磁盘阵列125可以包含多种类型的磁盘130,例如,固态硬盘(Solid State Drive,SSD)或者串行连接SCSI(Serial Attached SCSI,SAS)或光纤通道(Fiber Channel,FC)硬盘驱动器(Hard Disk Drive,HDD),其中,SCSI(Small Computer SystemInterface)为小型机系统接口的英文缩写或者串行高级技术附件(SerialAdvanced Technology Attachment,SATA)或近线(Near Line,NL)串行连接SCSI(Serial Attached SCSI,SAS)HDD,在此不做限定。为了描述方便,后续将固态硬盘简称为SSD,将SAS HDD、FC HDD、SATA HDD统一简称为HDD。
图3是磁盘阵列125的示例图,如图3所示,磁盘阵列125可以包含多个磁盘130,其中,多个磁盘130可以划分为高速设备层和低速设备层,高速设备层可以包含多个高速高价格的磁盘130,例如SSD;低速设备层可以包含多个低速低价格的磁盘130,例如HDD。可以理解的是,本发明实施例还可以按照磁盘的类型将多个磁盘130划分为其他层级,这里仅以高速设备层、低速设备层两个层级来举例说明。
另外,还可以将磁盘阵列125的存储空间划分为多个故障域。故障域是指一段故障隔离的逻辑存储区域,该区域的数据损坏不会影响到其他区域的数据。在本发明实施例中,故障域是由存储设备110自行设定的,一个故障域可以是一个RAID,也可以是一个磁盘,还可以是按照其他方式划分的存储区域,本发明实施例不做限定。为了描述方便,本发明实施例以一个故障域是一个磁盘为例来进行说明,如图4所示:
磁盘阵列125包括高速设备层和低速设备层,高速设备层可以包含多个SSD(图中以一个SSD为例,但不限于一个SSD),低速设备层可以包含多个HDD(图中以两个HDD为例,但不限于两个HDD)。一个SSD可以是一个故障域,两个HDD各为一个故障域。
本发明实施例中,需要对故障域进行编号,具体的编号规则可以是,在每个设备层内部对其包含的故障域进行编号,例如,假设高速设备层包含三个故障域,那么,对于高速设备层,每个故障域的编号分别是故障域0、故障域1、故障域2;假设低速设备层包含四个故障域,那么,对于低速设备层,每个故障域的编号分别是故障域0、故障域1、故障域2、故障域3。在本发明实施例中,将故障域的编号简称为故障域编号,故障域编号是指用于区分各个故障域的编号,例如0、1等。可以理解的是,故障域编号还可以采用字母等其他表现形式,本发明实施例不做限定。
存储设备110在存储数据时,对于重要性较高的数据,例如元数据,通常通过同时存储多份数据副本的方式来保证数据的可靠性。例如,如图4所示,在低速设备层中保存了两份数据副本,分别是副本0和副本1。其中,副本0保存在故障域0中,副本1保存在故障域1中。假设故障域0发生磁盘损坏等故障,还可以从故障域1中获得数据副本,不至于发生数据丢失。本领域技术人员可以理解的是,无论是故障域0还是故障域1除了保存上面描述的数据副本之外,还可以保存其他数据。在本发明实施例中,副本编号是指用于区分各个数据副本的编号,例如0、1。可以理解的是,副本编号还可以采用字母等其他表现形式,本发明实施例不做限定。
结合图1,任意一个存储设备110均可以通过连接设备105接收一个或多个主机100发送的数据写入请求,根据预先设定的分层存储策略确定所述数据写入请求携带的数据将被写入的设备层(例如,低速设备层),同时根据预先设定的数据重要性判断规则确定该数据需要备份并且存储的数据副本份数。然后将每个数据副本写入低速设备层的不同的故障域中。任意一个存储设备110也可以通过连接设备105接收一个或多个主机100发送的数据读取请求,从所述数据读取请求携带的地址中读取数据。
此外,本发明实施例中的任意一个存储设备110还可以支持分层存储技术。下面结合图4来对此进行说明。图4是根据本发明实施例提供的磁盘阵列中的故障域分布示意图。
磁盘阵列125的存储空间可以被划分为若干个数据块(图4中未示出),数据块是指可以作为一个整体监控其中数据的访问频率,并且作为一个整体迁移的数据单元。一个数据块可能位于一个磁盘中,也可能位于多个磁盘中,然而,在本发明实施例中,一个数据块必须位于一个故障域中。可以理解的是,当一个数据块位于多个磁盘中时,所述数据块所在的故障域就是指一个RAID。存储设备110监控磁盘阵列125中各个数据块的访问频率,举例来说,当发现副本0所在的数据块的访问频率高于预设阈值时,可以确定该数据块中的数据变成热数据,因此可以将根据预先设定的关联关系将该数据块迁移至高速设备层的故障域,例如高速设备层的故障域0中。需要说明的是,访问频率的统计是以一个数据块为单位的,数据块的容量通常大于一个数据副本的大小,该数据块除了包含副本0之外还可以包含其他数据。因此,副本0所在的数据块变热可能是副本0被频繁访问引起的,也可能是该数据块中除副本0之外的其他数据被频繁访问引起的。当副本0所在的数据块变热是由副本0被频繁访问引起时,那么副本1所在的数据块也会变热,需要被迁移到高速设备层的故障域中;当副本0所在的数据块变热是由该数据块中除副本0之外的其他数据被频繁访问引起时,那么副本1所在的数据块可能不会变热,不需要被迁移到高速设备层中。这里暂时只讨论副本0被迁移至高速设备层的故障域0的情况。
存储设备110继续对磁盘阵列125中各个数据块的访问频率进行监控,当发现已迁移至高速设备层的故障域0的数据块又变冷时,需要将副本0所在的数据块又迁回至低速设备层中。为了防止副本0和副本1存储在同一个故障域,可以根据预设的关联关系确定副本0所在的数据块将迁回的低速设备层的故障域。
数据迁移的方法
下面介绍本发明实施例提供的数据迁移的方法,如图5所示,为本发明实施例提供的数据迁移的方法的流程图,所述方法可以应用于图1所示的存储系统以及图2所示的存储设备中;所述存储设备至少包括第一层级磁盘集合和第二层级磁盘集合,所述第一层级磁盘集合包括第一层级故障域,所述第二层级磁盘集合包括至少两个第二层级故障域,其中,所述第一层级故障域是指所述第一层级磁盘集合中的一段故障隔离的逻辑存储区域,所述第二层级故障域是指所述第二层级磁盘集合中的一段故障隔离的逻辑存储区域;所述存储设备中保存有N份目标数据,N为大于1的正整数,所述N小于第一层级故障域的个数,并且所述N小于第二层级故障域的个数。需要说明的是,本实施例中的第一层级磁盘集合也是图3所示的低速设备层,本实施例中的第二层级磁盘集合也是图3所示的高速设备层。那么,第一层级故障域是低速设备层包含的故障域,可能是一个HDD,也可能是一个RAID,或者其他故障隔离的逻辑存储区域;第二层级故障域是高速设备层包含的故障域,可能是一个SSD,也可能是一个RAID,或者其他故障隔离的逻辑存储区域。
所述方法包括如下步骤:
步骤S201:处理器118统计所述第一层级故障域中的数据块的访问频率,所述数据块包括第i份目标数据,其中i为大于或等于零的整数,并且,i<N。
在本实施例中,存储设备中共保存了N份目标数据,也就是前面描述的数据副本。并且需要对N份目标数据进行编号,例如第0份目标数据(副本0)、第1份目标数据(副本1)、第2份目标数据(副本2)……第N-1份目标数据(副本N-1)。其中,第i份目标数据保存在第一层级故障域中的一个数据块中。
处理器118可以定时统计第一层级故障域中各个数据块的访问频率,当发现所述第i份目标数据所在的数据块的访问频率达到预设阈值时,执行步骤S202。需要说明的是,对于统计各个数据块的访问频率,可以是由定时器触发,也可以是人工触发,或者其他方式触发,本实施例不对此做限定。
步骤S202:当所述数据块的访问频率达到预设阈值时,处理器118在所述第二层级磁盘集合中确定待存储所述数据块的第二层级故障域,所述确定出的第二层级故障域没有保存所述N份目标数据的其中一份。
当步骤S201中处理器118统计出的所述数据块的访问频率达到预设阈值时,说明该数据块中包含的数据成为热数据,为了提高访问效率,可以将其迁移至第二层级磁盘集合(例如,多个SSD)中。
进一步地,由于第二层级磁盘集合中包含多个第二层级故障域,处理器118需要确定将所述数据块迁移至多个第二层级故障域中的哪个故障域中。
一种实施方式是,依次判断第二层级磁盘集合中的各个第二层级故障域是否保存有目标数据,若没有,则可以将该第二层级故障域确定为待存储所述数据块的第二层级故障域;若有,则继续判断下一个第二层级故障域是否保存有目标数据,直至找到没有保存所述目标数据的第二层级故障域。需要说明的是,对于这种实施方式,确定出待存储所述数据块的第二层级故障域之后,可以保存所述第二层级故障域与所述数据块迁出的第一层级故障域之间的对应关系。当所述数据块的访问频率低于预设阈值时,说明所述数据块变冷,可以根据保存的对应关系将所述数据块迁回至原来的第一层级故障域。
另一种实施方式是,利用设定的关联关系确定待存储所述数据块的第二层级故障域。所述设定的关联关系是指所述目标数据保存在存储设备110中的份数“N”、所述数据块中保存的目标数据的编号“i”与第二层级故障域的编号之间的关系。具体来说,所述第二层级故障域的编号等于所述N与一个随机数的乘积再加上所述i,从而获得的和,其中,所述随机数不超过所述存储设备所包含的第二层级故障域的个数除以所述N从而获得的商。下面将举例说明所述关联关系:
假设N=3,i=0,也就是说,所述目标数据保存在存储设备110中保存了3份,每份目标数据的编号分别是0、1、2。其中,所述数据块中保存的目标数据是第0份目标数据。那么,待存储所述数据块的第二层级故障域的编号就等于3与随机数的乘积再加上0,从而获得的和。当随机数取0时,待存储所述数据块的第二层级故障域的编号为0;当随机数取1时,待存储所述数据块的第二层级故障域的编号为3;当随机数取2时,待存储所述数据块的第二层级故障域的编号为6…然而,随机数不能超过第二层级故障域的个数除以所述N从而获得的商。假设第二层级故障域的个数为7,那么7除以3所得的商为2,因此随机数须小于或等于2。
因此,对于第0份目标数据,可以迁移至编号为0或者3或者6的第二层级故障域中。
可选的,对于这种实施方式,在确定出待存储所述数据块的第二层级故障域之后,可以不保存所述第二层级故障域与所述数据块迁出的第一层级故障域之间的对应关系。当所述数据块的访问频率低于预设阈值(所述数据块变冷)时,可以根据与前面类似的关联关系将所述数据块迁回至第一层级磁盘集合的一个第一层级故障域中。此时,第一层级故障域的编号等于所述N与一个随机数的乘积再加上所述i,从而获得的和,其中,所述随机数不超过所述存储设备所包含的第一层级故障域的个数除以所述N从而获得的商。例如,所述目标数据的编号不变,仍然是第0份目标数据,所述目标数据保存在存储设备110中的份数仍然是3,即i=0,N=3,那么根据所述关联关系获得的第一层级故障域的编号可以是0或者3或者6(假设第一层级磁盘集合中也包含7个第一个层级故障域)。也就是说,当所述数据块需要迁回第一层级磁盘集合时,可以迁移至编号为0的第一层级故障域或者编号为3的第一层级故障域或者编号为0的第一层级故障域。
可选的,对于上述实施方式也可以在所述确定出待存储所述数据块的第二层级故障域之后,保存所述第二层级故障域与所述数据块迁出的第一层级故障域之间的对应关系。当所述数据块的访问频率低于预设阈值时,可以根据保存的对应关系将所述数据块迁回至原来的第一层级故障域。可以理解的是,根据保存的对应关系只能将所述数据块迁回至原来的第一层级故障域,与利用关联关系重新确定的第一层级故障域相比,其范围更窄。
步骤S203:处理器118将所述数据块迁移到所述确定出的第二层级故障域中。
根据步骤S202的示例,处理器118可以将所述数据块迁移至编号为0或者3或者6的第二层级故障域中。
当故障域是一个磁盘时,编号为0或者3或者6的第二层级故障域可以分别是编号为0或者3或者6的磁盘;当故障域是一个RAID时,编号为0或者3或者6的第二层级故障域可以分别是编号为0或者3或者6的RAID,此时,将所述数据块迁移到所述确定出的第二层级故障域中具体可以是将所述数据块条带化写入所述RAID中。
本发明实施例统计所述第一层级故障域中的数据块的访问频率,所述数据块包括多份目标数据中的其中一份,当第一层级故障域中的数据块的访问频率达到预设阈值时,将所述数据块迁移至第二层级故障域,并且所述第二层级故障域没有保存所述目标数据,这就避免了在执行分级存储操作时将多份目标数据迁移至同一个故障域中,保证了数据的可靠性。
在上述实施例中,还可以包括:
步骤204:处理器118接收所述目标数据,根据预设的规则确定所述目标数据在所述存储设备中保存的份数为N;对所述目标数据进行复制,生成N份所述目标数据。
处理器118可以接收主机100发送的数据写入请求,所述数据写入请求中携带所述目标数据。这里的预设的规则是指所述目标数据的重要性与所述目标数据需要保存的份数之间的对应关系。例如,如果所述目标数据是业务数据,那么其重要性不高,可以在存储设备110中保存2份;如果所述目标数据是业务数据的元数据,那么其重要性较高,可以在存储设备110中保存3份,等等。
在确定所述目标数据在所述存储设备中保存的份数N之后,存储设备110可以对所述目标数据进行复制,生成N份目标数据。
本发明实施例的装置
本发明实施例提供一种数据迁移装置,所述数据迁移装置位于存储设备的控制器中,所述存储设备至少包括所述控制器、第一层级磁盘集合和第二层级磁盘集合,所述第一层级磁盘集合包括第一层级故障域,所述第二层级磁盘集合包括至少两个第二层级故障域;所述存储设备中保存有N份目标数据,N为大于1的正整数,所述N小于第一层级故障域的个数,并且所述N小于第二层级故障域的个数;如图6所示,所述数据迁移装置包括:
统计模块401,用于统计所述第一层级故障域中的数据块的访问频率,所述数据块包括第i份目标数据,其中i为大于或等于零的整数,并且,i<N;
确定模块402,用于当所述数据块的访问频率达到预设阈值时,在所述第二层级磁盘集合中确定待存储所述数据块的第二层级故障域,所述确定出的第二层级故障域没有保存所述目标数据;
迁移模块403,用于将所述数据块迁移到所述确定出的第二层级故障域中。
可选的,所述确定模块402具体用于:
根据所述i和N,以及预先设定的关联关系,确定所述第二层级故障域的编号,所述关联关系是指所述第二层级故障域的编号等于所述N与随机数的乘积再加上所述i,从而获得的和,其中,所述随机数是大于或等于1的正整数,并且所述随机数不超过所述存储设备所包含的第二层级故障域的个数除以所述N从而获得的商。
可选的,所述数据迁移装置还包括:
保存模块404,用于保存所述第一层级故障域和所述确定出的第二层级故障域之间的对应关系;
相应的,所述迁移模块403,还用于根据所述对应关系将所述数据块从所述确定出的第二层级故障域迁移到所述第一层级故障域中。
可选的,所述数据迁移装置还包括:
接收模块405,用于接收所述目标数据,根据预设的规则确定所述目标数据在所述存储设备中保存的份数为N;
复制模块406,用于对所述目标数据进行复制,生成N份所述目标数据。
本发明实施例所提供的装置,可以设置于前面实施例所描述的控制器中,用于执行前面实施例所描述的数据存储方法,各个模块功能的详细描述可参见方法实施例中的描述,在此不再赘述。
本领域普通技术人员将会理解,本发明的各个方面、或各个方面的可能实现方式可以被具体实施为系统、方法或者计算机程序产品。因此,本发明的各方面、或各个方面的可能实现方式可以采用完全硬件实施例、完全软件实施例(包括固件、驻留软件等等),或者组合软件和硬件方面的实施例的形式,在这里都统称为“电路”、“模块”或者“系统”。此外,本发明的各方面、或各个方面的可能实现方式可以采用计算机程序产品的形式,计算机程序产品是指存储在计算机可读介质中的计算机可读程序代码。
计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包含但不限于电子、磁性、光学、电磁、红外或半导体系统、设备或者装置,或者前述的任意适当组合,如随机存取存储器
(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者快闪存储器)、光纤、便携式只读存储器(CD-ROM)。
计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在流程图中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。
计算机可读程序代码可以完全在用户的计算机上执行、部分在用户的计算机上执行、作为单独的软件包、部分在用户的计算机上并且部分在远程计算机上,或者完全在远程计算机或者服务器上执行。也应该注意,在某些替代实施方案中,在流程图中各步骤、或框图中各块所注明的功能可能不按图中注明的顺序发生。例如,依赖于所涉及的功能,接连示出的两个步骤、或两个块实际上可能被大致同时执行,或者这些块有时候可能被以相反顺序执行。
Claims (12)
1.一种数据迁移的方法,其特征在于,所述方法由存储设备执行,所述存储设备至少包括控制器、第一层级磁盘集合和第二层级磁盘集合,所述第一层级磁盘集合包括第一层级故障域,所述第二层级磁盘集合包括至少两个第二层级故障域;所述存储设备中保存有N份目标数据,N为大于1的正整数,所述N小于第一层级故障域的个数,并且所述N小于第二层级故障域的个数;所述方法包括:
所述控制器统计所述第一层级故障域中的数据块的访问频率,所述数据块包括第i份目标数据,其中i为大于或等于零的整数,并且,i<N;
当所述数据块的访问频率达到预设阈值时,所述控制器在所述第二层级磁盘集合中确定待存储所述数据块的第二层级故障域,所述确定出的第二层级故障域没有保存所述目标数据;
所述控制器将所述数据块迁移到所述确定出的第二层级故障域中。
2.根据权利要求1所述的方法,其特征在于,所述控制器在所述第二层级磁盘集合中确定待存储所述数据块的第二层级故障域包括:
所述控制器根据所述i和N,以及预先设定的关联关系,确定所述第二层级故障域的编号,所述关联关系是指所述第二层级故障域的编号等于所述N与随机数的乘积再加上所述i,从而获得的和,其中,所述随机数是大于或等于1的正整数,并且所述随机数不超过所述存储设备所包含的第二层级故障域的个数除以所述N从而获得的商。
3.根据权利要求1或2所述的方法,其特征在于,还包括:
所述控制器保存所述第一层级故障域和所述确定出的第二层级故障域之间的对应关系;
当所述数据块的访问频率低于所述预设阈值时,所述控制器根据所述对应关系将所述数据块从所述确定出的第二层级故障域迁移到所述第一层级故障域中。
4.根据权利要求1-3任一权利要求所述的方法,其特征在于,还包括:
所述控制器接收所述目标数据,根据预设的规则确定所述目标数据在所述存储设备中保存的份数为N;
所述控制器对所述目标数据进行复制,生成N份所述目标数据。
5.一种控制器,其特征在于,所述控制器包括处理器和通信接口;
所述通信接口,用于与磁盘阵列进行通信,所述磁盘阵列包括第一层级磁盘集合和第二层级磁盘集合,所述第一层级磁盘集合包括第一层级故障域,所述第二层级磁盘集合包括至少两个第二层级故障域;所述磁盘阵列中保存有N份目标数据,N为大于1的正整数,所述N小于第一层级故障域的个数,并且所述N小于第二层级故障域的个数;
所述处理器,用于统计所述第一层级故障域中的数据块的访问频率,所述数据块包括第i份目标数据,其中i为大于或等于零的整数,并且,i<N;
当所述数据块的访问频率达到预设阈值时,所述处理器在所述第二层级磁盘集合中确定待存储所述数据块的第二层级故障域,所述确定出的第二层级故障域没有保存所述目标数据;
所述处理器将所述数据块迁移到所述确定出的第二层级故障域中。
6.根据权利要求5所述的控制器,其特征在于,所述处理器具体用于根据所述i和N,以及预先设定的关联关系,确定所述第二层级故障域的编号,所述关联关系是指所述第二层级故障域的编号等于所述N与随机数的乘积再加上所述i,从而获得的和,其中,所述随机数是大于或等于1的正整数,并且所述随机数不超过所述存储设备所包含的第二层级故障域的个数除以所述N从而获得的商。
7.根据权利要求5或6所述的控制器,其特征在于,
所述处理器还用于保存所述第一层级故障域和所述确定出的第二层级故障域之间的对应关系;
当所述数据块的访问频率低于所述预设阈值时,所述处理器还用于根据所述对应关系将所述数据块从所述确定出的第二层级故障域迁移到所述第一层级故障域中。
8.根据权利要求5-7任一权利要求所述的控制器,其特征在于,
所述处理器还用于接收所述目标数据,根据预设的规则确定所述目标数据在所述存储设备中保存的份数为N;所述控制器对所述目标数据进行复制,生成N份所述目标数据。
9.一种数据迁移装置,其特征在于,所述数据迁移装置位于存储设备的控制器中,所述存储设备至少包括所述控制器、第一层级磁盘集合和第二层级磁盘集合,所述第一层级磁盘集合包括第一层级故障域,所述第二层级磁盘集合包括至少两个第二层级故障域;所述存储设备中保存有N份目标数据,N为大于1的正整数,所述N小于第一层级故障域的个数,并且所述N小于第二层级故障域的个数;所述数据迁移装置包括:
统计模块,用于统计所述第一层级故障域中的数据块的访问频率,所述数据块包括第i份目标数据,其中i为大于或等于零的整数,并且,i<N;
确定模块,用于当所述数据块的访问频率达到预设阈值时,在所述第二层级磁盘集合中确定待存储所述数据块的第二层级故障域,所述确定出的第二层级故障域没有保存所述目标数据;
迁移模块,用于将所述数据块迁移到所述确定出的第二层级故障域中。
10.根据权利要求9所述的装置,其特征在于,所述确定模块具体用于根据所述i和N,以及预先设定的关联关系,确定所述第二层级故障域的编号,所述关联关系是指所述第二层级故障域的编号等于所述N与随机数的乘积再加上所述i,从而获得的和,其中,所述随机数是大于或等于1的正整数,并且所述随机数不超过所述存储设备所包含的第二层级故障域的个数除以所述N从而获得的商。
11.根据权利要求9所述的装置,其特征在于,还包括:
保存模块,用于保存所述第一层级故障域和所述确定出的第二层级故障域之间的对应关系;
所述迁移模块,还用于根据所述对应关系将所述数据块从所述确定出的第二层级故障域迁移到所述第一层级故障域中。
12.根据权利要求9-11任一权利要求所述的装置,其特征在于,还包括:
接收模块,用于接收所述目标数据,根据预设的规则确定所述目标数据在所述存储设备中保存的份数为N;
复制模块,用于对所述目标数据进行复制,生成N份所述目标数据。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2014/084526 WO2016023230A1 (zh) | 2014-08-15 | 2014-08-15 | 数据迁移的方法、控制器和数据迁移装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104583930A true CN104583930A (zh) | 2015-04-29 |
CN104583930B CN104583930B (zh) | 2017-09-08 |
Family
ID=53097339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480002086.XA Active CN104583930B (zh) | 2014-08-15 | 2014-08-15 | 数据迁移的方法、控制器和数据迁移装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104583930B (zh) |
WO (1) | WO2016023230A1 (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107085546A (zh) * | 2016-02-16 | 2017-08-22 | 深圳市深信服电子科技有限公司 | 基于故障域技术的数据管理方法和装置 |
CN107704212A (zh) * | 2017-10-31 | 2018-02-16 | 紫光华山信息技术有限公司 | 一种数据处理方法及装置 |
CN108255413A (zh) * | 2016-12-29 | 2018-07-06 | 华为技术有限公司 | 一种存储系统扩容后数据迁移的方法、存储系统 |
CN108306748A (zh) * | 2017-01-12 | 2018-07-20 | 阿里巴巴集团控股有限公司 | 网络故障定位方法、装置及交互装置 |
CN110321067A (zh) * | 2018-03-30 | 2019-10-11 | 卡巴斯基实验室股份制公司 | 估计和管理存储设备退化的系统和方法 |
CN110737924A (zh) * | 2018-07-20 | 2020-01-31 | 中移(苏州)软件技术有限公司 | 一种数据保护的方法和设备 |
CN111104056A (zh) * | 2018-10-25 | 2020-05-05 | 华为技术有限公司 | 存储系统中数据恢复方法、系统及装置 |
CN112068976A (zh) * | 2019-06-10 | 2020-12-11 | 北京京东尚科信息技术有限公司 | 数据备份存储方法及装置、电子设备和存储介质 |
CN114466030A (zh) * | 2021-12-27 | 2022-05-10 | 天翼云科技有限公司 | 数据分布存储策略的管理方法、装置及分布式存储系统 |
CN114675791A (zh) * | 2022-05-27 | 2022-06-28 | 苏州浪潮智能科技有限公司 | 一种磁盘处理方法、系统及电子设备 |
CN116027990A (zh) * | 2023-03-29 | 2023-04-28 | 苏州浪潮智能科技有限公司 | 一种raid卡及其数据访问方法、系统及存储介质 |
CN116910016A (zh) * | 2023-09-14 | 2023-10-20 | 交通运输部北海航海保障中心天津通信中心 | 一种ais数据处理方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070208788A1 (en) * | 2006-03-01 | 2007-09-06 | Quantum Corporation | Data storage system including unique block pool manager and applications in tiered storage |
CN101223498A (zh) * | 2005-07-15 | 2008-07-16 | 国际商业机器公司 | 用于管理数据存储的方法、系统和计算机程序产品以及虚拟化引擎 |
CN103106151A (zh) * | 2011-11-15 | 2013-05-15 | Lsi公司 | 管理层之间有效数据迁移的设备 |
CN103914516A (zh) * | 2014-02-25 | 2014-07-09 | 深圳市中博科创信息技术有限公司 | 一种存储系统分层管理的方法与系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102156738B (zh) * | 2011-04-13 | 2012-12-19 | 成都市华为赛门铁克科技有限公司 | 数据块处理方法、数据块存储设备及系统 |
-
2014
- 2014-08-15 CN CN201480002086.XA patent/CN104583930B/zh active Active
- 2014-08-15 WO PCT/CN2014/084526 patent/WO2016023230A1/zh active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101223498A (zh) * | 2005-07-15 | 2008-07-16 | 国际商业机器公司 | 用于管理数据存储的方法、系统和计算机程序产品以及虚拟化引擎 |
US20070208788A1 (en) * | 2006-03-01 | 2007-09-06 | Quantum Corporation | Data storage system including unique block pool manager and applications in tiered storage |
CN103106151A (zh) * | 2011-11-15 | 2013-05-15 | Lsi公司 | 管理层之间有效数据迁移的设备 |
CN103914516A (zh) * | 2014-02-25 | 2014-07-09 | 深圳市中博科创信息技术有限公司 | 一种存储系统分层管理的方法与系统 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107085546A (zh) * | 2016-02-16 | 2017-08-22 | 深圳市深信服电子科技有限公司 | 基于故障域技术的数据管理方法和装置 |
CN107085546B (zh) * | 2016-02-16 | 2020-05-01 | 深信服科技股份有限公司 | 基于故障域技术的数据管理方法和装置 |
US10908833B2 (en) | 2016-12-29 | 2021-02-02 | Huawei Technologies Co., Ltd. | Data migration method for a storage system after expansion and storage system |
CN108255413A (zh) * | 2016-12-29 | 2018-07-06 | 华为技术有限公司 | 一种存储系统扩容后数据迁移的方法、存储系统 |
CN108306748A (zh) * | 2017-01-12 | 2018-07-20 | 阿里巴巴集团控股有限公司 | 网络故障定位方法、装置及交互装置 |
CN108306748B (zh) * | 2017-01-12 | 2021-03-30 | 阿里巴巴集团控股有限公司 | 网络故障定位方法、装置及交互装置 |
CN107704212A (zh) * | 2017-10-31 | 2018-02-16 | 紫光华山信息技术有限公司 | 一种数据处理方法及装置 |
CN110321067A (zh) * | 2018-03-30 | 2019-10-11 | 卡巴斯基实验室股份制公司 | 估计和管理存储设备退化的系统和方法 |
CN110321067B (zh) * | 2018-03-30 | 2023-04-14 | 卡巴斯基实验室股份制公司 | 估计和管理存储设备退化的系统和方法 |
CN110737924A (zh) * | 2018-07-20 | 2020-01-31 | 中移(苏州)软件技术有限公司 | 一种数据保护的方法和设备 |
CN110737924B (zh) * | 2018-07-20 | 2021-07-27 | 中移(苏州)软件技术有限公司 | 一种数据保护的方法和设备 |
CN111552435A (zh) * | 2018-10-25 | 2020-08-18 | 华为技术有限公司 | 存储系统中数据恢复方法、系统及装置 |
CN111104056B (zh) * | 2018-10-25 | 2021-12-31 | 华为技术有限公司 | 存储系统中数据恢复方法、系统及装置 |
CN111104056A (zh) * | 2018-10-25 | 2020-05-05 | 华为技术有限公司 | 存储系统中数据恢复方法、系统及装置 |
CN112068976A (zh) * | 2019-06-10 | 2020-12-11 | 北京京东尚科信息技术有限公司 | 数据备份存储方法及装置、电子设备和存储介质 |
CN114466030A (zh) * | 2021-12-27 | 2022-05-10 | 天翼云科技有限公司 | 数据分布存储策略的管理方法、装置及分布式存储系统 |
CN114466030B (zh) * | 2021-12-27 | 2024-03-12 | 天翼云科技有限公司 | 数据分布存储策略的管理方法、装置及分布式存储系统 |
CN114675791A (zh) * | 2022-05-27 | 2022-06-28 | 苏州浪潮智能科技有限公司 | 一种磁盘处理方法、系统及电子设备 |
CN114675791B (zh) * | 2022-05-27 | 2022-10-28 | 苏州浪潮智能科技有限公司 | 一种磁盘处理方法、系统及电子设备 |
CN116027990A (zh) * | 2023-03-29 | 2023-04-28 | 苏州浪潮智能科技有限公司 | 一种raid卡及其数据访问方法、系统及存储介质 |
CN116910016A (zh) * | 2023-09-14 | 2023-10-20 | 交通运输部北海航海保障中心天津通信中心 | 一种ais数据处理方法 |
CN116910016B (zh) * | 2023-09-14 | 2024-06-11 | 交通运输部北海航海保障中心天津通信中心 | 一种ais数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104583930B (zh) | 2017-09-08 |
WO2016023230A1 (zh) | 2016-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104583930A (zh) | 数据迁移的方法、控制器和数据迁移装置 | |
US10001947B1 (en) | Systems, methods and devices for performing efficient patrol read operations in a storage system | |
US9996435B2 (en) | Reliability scheme using hybrid SSD/HDD replication with log structured management | |
US20190220344A1 (en) | Preemptive relocation of failing data | |
US7975168B2 (en) | Storage system executing parallel correction write | |
US10019362B1 (en) | Systems, devices and methods using solid state devices as a caching medium with adaptive striping and mirroring regions | |
US10168945B2 (en) | Storage apparatus and storage system | |
US9529674B2 (en) | Storage device management of unrecoverable logical block addresses for RAID data regeneration | |
US20130103902A1 (en) | Method and apparatus for implementing protection of redundant array of independent disks in file system | |
US20170123699A1 (en) | Storage control device | |
US9836223B2 (en) | Changing storage volume ownership using cache memory | |
US9563524B2 (en) | Multi level data recovery in storage disk arrays | |
US10365845B1 (en) | Mapped raid restripe for improved drive utilization | |
US10095585B1 (en) | Rebuilding data on flash memory in response to a storage device failure regardless of the type of storage device that fails | |
CN103534688A (zh) | 数据恢复方法、存储设备和存储系统 | |
US20170139605A1 (en) | Control device and control method | |
US10324794B2 (en) | Method for storage management and storage device | |
US10579540B2 (en) | Raid data migration through stripe swapping | |
US9378092B2 (en) | Storage control apparatus and storage control method | |
US10621059B2 (en) | Site recovery solution in a multi-tier storage environment | |
KR20210076834A (ko) | 개선된 ssd 신뢰성 | |
US20140297988A1 (en) | Storage device, allocation release control method | |
US9323630B2 (en) | Enhanced data recovery from data storage devices | |
US20150067285A1 (en) | Storage control apparatus, control method, and computer-readable storage medium | |
US20130179634A1 (en) | Systems and methods for idle time backup of storage system volumes |
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 |