CN112000426A - 一种数据处理方法及装置 - Google Patents

一种数据处理方法及装置 Download PDF

Info

Publication number
CN112000426A
CN112000426A CN202010724547.1A CN202010724547A CN112000426A CN 112000426 A CN112000426 A CN 112000426A CN 202010724547 A CN202010724547 A CN 202010724547A CN 112000426 A CN112000426 A CN 112000426A
Authority
CN
China
Prior art keywords
data
data entry
virtual machine
target virtual
ssd
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
Application number
CN202010724547.1A
Other languages
English (en)
Other versions
CN112000426B (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.)
New H3C Big Data Technologies Co Ltd
Original Assignee
New H3C Big Data 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 New H3C Big Data Technologies Co Ltd filed Critical New H3C Big Data Technologies Co Ltd
Priority to CN202010724547.1A priority Critical patent/CN112000426B/zh
Publication of CN112000426A publication Critical patent/CN112000426A/zh
Application granted granted Critical
Publication of CN112000426B publication Critical patent/CN112000426B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本申请涉及数据存储技术领域,特别涉及一种数据处理方法及装置。该方法包括:接收目标虚拟机迁移指令;基于目标虚拟机对应的第一SSD缓存区中各数据条目的索引编号,以第一顺序将各数据条目对应的数据分别同步至目的主机;基于目标虚拟机对应的第二SSD缓存区中各数据条目的索引编号,以第二顺序将各数据条目对应的数据分别存储至后端存储,第一SSD缓存区为目标虚拟机的主本数据的缓存区/副本数据的缓存区,第二SSD缓存区为目标虚拟机的副本数据的缓存区/主本数据的缓存区,第一顺序和第二顺序为反向顺序;在确定各数据条目对应的数据均同步至目的主机,或存储至后端存储时,在源主机上关闭目标虚拟机,在目的主机上创建目标虚拟机。

Description

一种数据处理方法及装置
技术领域
本申请涉及数据存储技术领域,特别涉及一种数据处理方法及装置。
背景技术
随着互联网时代的进一步发展,计算机中需要存储的有效数据也成倍地增长。随着数据的基数增长使其存储和传输将会变得极其缓慢,存储和传输将成为负担。目前,通常采用SSD加速存储的方式进行数据处理,SSD加速存储通常有两种方式,SSD write back策略和SSD write through策略,其中,SSD write back策略可以对读写加速,而SSD writethrough策略只能对读加速。
目前,分布式存储系统中,为了提高虚拟磁盘的性能,通常采用SSD writeback加速策略对读写加速。然而,为了保障可靠性,防止SSD损坏引发数据不完整,采用网络raid配置DRBD同步复制卷对SSD cache作副本。
那么,当源主机中任一虚拟机(目标虚拟机)需要迁移至目的主机时,首先,需要在源主机上暂停目标虚拟机,然后,将目标虚拟机对应的SSD中缓存数据全部刷盘至后端存储中,最后,在目的主机上创建目标虚拟机,完成目标虚拟机的迁移。然而,当目标虚拟机对应的缓存数据较大和/或后端存储性能较低时,刷盘时间会很长,影响目标虚拟机迁移时间,从而影响业务恢复时间。
发明内容
本申请提供了一种数据处理方法及装置,用以解决现有技术中存在的虚拟机迁移时间长,从而导致业务恢复时间长的问题。
第一方面,本申请提供了一种数据处理方法,应用于分布式存储系统,所述分布式存储系统采用SSD固态硬盘缓存的方式进行读写加速,所述方法包括:
接收目标虚拟机迁移指令;
基于所述目标虚拟机对应的第一SSD缓存区中缓存的各数据条目的索引编号,以第一顺序将所述各数据条目对应的数据分别同步至目的主机;
基于所述目标虚拟机对应的第二SSD缓存区中缓存的各数据条目的索引编号,以第二顺序将所述各数据条目对应的数据分别存储至后端存储,其中,所述第一SSD缓存区为所述目标虚拟机的主本数据的缓存区/副本数据的缓存区,所述第二SSD缓存区为所述目标虚拟机的副本数据的缓存区/主本数据的缓存区,所述第一顺序和所述第二顺序为反向顺序;
在确定所述各数据条目对应的数据均同步至目的主机,或存储至后端存储时,在源主机上关闭所述目标虚拟机,并在所述目的主机上创建所述目标虚拟机。
可选地,所述各数据条目为所述目标虚拟机对应的SSD缓存区中的写数据条目。
可选地,所述第一SSD缓存区为所述目标虚拟机的主本数据的缓存区,所述第一顺序为从小到大的顺序;
所述基于所述目标虚拟机对应的第一SSD缓存区中缓存的各数据条目的索引编号,以第一顺序将所述各数据条目对应的数据分别同步至目的主机的步骤包括:
基于所述目标虚拟机的主本数据的缓存区中缓存的各写数据条目的索引编号,以从小到大的顺序遍历各写数据条目,针对每一写数据条目分别执行以下操作:
向目的主机发送第一写数据条目对应的第一数据的同步指令,以使得所述目的主机在第三SSD缓存区中缓存所述第一数据,创建所述第一数据对应的写数据条目,并将新创建的所述第一数据对应的写数据条目标记为本地可用,以及向源主机发送所述第一数据同步完成指令;
接收所述目的主机发送的第一数据同步完成指令,并将所述第一写数据条目标记为远端可用。
可选地,所述第二SSD缓存区为所述目标虚拟机的副本数据的缓存区,所述第二顺序为从大到小的顺序;
基于所述目标虚拟机对应的第二SSD缓存区中缓存的各数据条目的索引编号,以第二顺序将所述各数据条目对应的数据分别存储至后端存储的步骤包括:
向后端存储发送第二写数据条目对应的第二数据的存储指令,以使得所述后端存储将所述第二数据存储在本地,并向源主机发送所述第二数据存储完成指令;
接收所述后端存储发送的第二数据存储完成指令,并将所述第二写数据条目标记为无效。
可选地,所述方法还包括:
接收客户端发送的IO指令;
若确定所述第一SSD缓存区中存在与所述IO指令匹配的写数据条目,且该写数据条目被标记为远端可用,则从所述第三SSD缓存区中读取/写入该写数据条目对应的数据;
若确定所述第一SSD缓存区中存在与所述IO指令匹配的写数据条目,且该写数据条目被标记为本地可用,则从所述第一SSD缓存区中读取/写入该写数据条目对应的数据;
若确定所述第一SSD缓存区中不存在与所述IO指令匹配的写数据条目,则将所述IO指令携带的数据写入所述第三缓存区中,并创建对应的写数据条目。
第二方面,本申请提供了一种数据处理装置,应用于分布式存储系统,所述分布式存储系统采用SSD固态硬盘缓存的方式进行读写加速,所述装置包括:
接收单元,用于接收目标虚拟机迁移指令;
同步单元,用于基于所述目标虚拟机对应的第一SSD缓存区中缓存的各数据条目的索引编号,以第一顺序将所述各数据条目对应的数据分别同步至目的主机;
存储单元,用于基于所述目标虚拟机对应的第二SSD缓存区中缓存的各数据条目的索引编号,以第二顺序将所述各数据条目对应的数据分别存储至后端存储,其中,所述第一SSD缓存区为所述目标虚拟机的主本数据的缓存区/副本数据的缓存区,所述第二SSD缓存区为所述目标虚拟机的副本数据的缓存区/主本数据的缓存区,所述第一顺序和所述第二顺序为反向顺序;
确定单元,用于在确定所述各数据条目对应的数据均同步至目的主机,或存储至后端存储时,在源主机上关闭所述目标虚拟机,并在所述目的主机上创建所述目标虚拟机。
可选地,所述各数据条目为所述目标虚拟机对应的SSD缓存区中的写数据条目。
可选地,所述第一SSD缓存区为所述目标虚拟机的主本数据的缓存区,所述第一顺序为从小到大的顺序;
所述基于所述目标虚拟机对应的第一SSD缓存区中缓存的各数据条目的索引编号,以第一顺序将所述各数据条目对应的数据分别同步至目的主机时,所述同步单元具体用于:
基于所述目标虚拟机的主本数据的缓存区中缓存的各写数据条目的索引编号,以从小到大的顺序遍历各写数据条目,针对每一写数据条目分别执行以下操作:
向目的主机发送第一写数据条目对应的第一数据的同步指令,以使得所述目的主机在第三SSD缓存区中缓存所述第一数据,创建所述第一数据对应的写数据条目,并将新创建的所述第一数据对应的写数据条目标记为本地可用,以及向源主机发送所述第一数据同步完成指令;
接收所述目的主机发送的第一数据同步完成指令,并将所述第一写数据条目标记为远端可用。
可选地,所述第二SSD缓存区为所述目标虚拟机的副本数据的缓存区,所述第二顺序为从大到小的顺序;
基于所述目标虚拟机对应的第二SSD缓存区中缓存的各数据条目的索引编号,以第二顺序将所述各数据条目对应的数据分别存储至后端存储时,所述存储单元具体用于:
向后端存储发送第二写数据条目对应的第二数据的存储指令,以使得所述后端存储将所述第二数据存储在本地,并向源主机发送所述第二数据存储完成指令;
接收所述后端存储发送的第二数据存储完成指令,并将所述第二写数据条目标记为无效。
可选地,所述装置还包括处理单元,所述处理单元具体用于:
接收客户端发送的IO指令;
若确定所述第一SSD缓存区中存在与所述IO指令匹配的写数据条目,且该写数据条目被标记为远端可用,则从所述第三SSD缓存区中读取/写入该写数据条目对应的数据;
若确定所述第一SSD缓存区中存在与所述IO指令匹配的写数据条目,且该写数据条目被标记为本地可用,则从所述第一SSD缓存区中读取/写入该写数据条目对应的数据;
若确定所述第一SSD缓存区中不存在与所述IO指令匹配的写数据条目,则将所述IO指令携带的数据写入所述第三缓存区中,并创建对应的写数据条目。
第三方面,本申请实施例提供一种数据处理装置,该数据处理装置包括:
存储器,用于存储程序指令;
处理器,用于调用所述存储器中存储的程序指令,按照获得的程序指令执行如上述第一方面中任一项所述的方法的步骤。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使所述计算机执行如上述第一方面中任一项所述方法的步骤。
综上可知,本申请实施例提供的数据处理方法,应用于分布式存储系统,所述分布式存储系统采用SSD固态硬盘缓存的方式进行读写加速,所述方法包括:接收目标虚拟机迁移指令;基于所述目标虚拟机对应的第一SSD缓存区中缓存的各数据条目的索引编号,以第一顺序将所述各数据条目对应的数据分别同步至目的主机;基于所述目标虚拟机对应的第二SSD缓存区中缓存的各数据条目的索引编号,以第二顺序将所述各数据条目对应的数据分别存储至后端存储,其中,所述第一SSD缓存区为所述目标虚拟机的主本数据的缓存区/副本数据的缓存区,所述第二SSD缓存区为所述目标虚拟机的副本数据的缓存区/主本数据的缓存区,所述第一顺序和所述第二顺序为反向顺序;在确定所述各数据条目对应的数据均同步至目的主机,或存储至后端存储时,在源主机上关闭所述目标虚拟机,并在所述目的主机上创建所述目标虚拟机。
采用本申请实施例提供的数据处理方法,在进行虚拟机迁移的过程中,采用双向处理的方式,将SSD缓存的部分数据条目对应的数据同步至目的主机的同时,将SSD缓存的另一部分数据条目对应的数据下盘至后端存储。这样,降低了虚拟机迁移所需的时间,且在虚拟机迁移过程中,无需关闭源主机上的虚拟机,仍能够为客户提供业务服务。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1为本申请实施例提供的一种数据处理方法的详细流程图;
图2为本申请实施例提供的一种分布式存储系统的结构示意图;
图3为本申请实施例提供的一种数据处理装置的结构示意图;
图4为本申请实施例提供的另一种数据处理装置的结构示意图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
示例性的,参阅图1所示,本申请实施例提供的一种数据处理方法的详细流程图,该方法应用于分布式存储系统,该分布式存储系统采用SSD固态硬盘缓存的方式进行读写加速,该方法包括以下步骤:
步骤100:接收目标虚拟机迁移指令。
实际应用中,系统中各主机上安装部署有为用户提供业务服务的虚拟机,那么,在系统运行过程中,就可能存在在主机间执行虚拟机迁移的操作,例如,管理平台选择将主机1(源主机)上的虚拟机1(VM 1)迁移至主机3(目的主机)。
本申请实施例中,用户可以基于管理平台向分布式存储系统下发目标虚拟机迁移指令,用以指示分布式存储系统执行目标虚拟机的迁移操作,分布式存储系统在接收到目标虚拟机迁移指令时,执行后续目标虚拟机迁移操作,其中,目标虚拟机可以为分布式存储系统中任一主机上安装部署的任一虚拟机。
步骤110:基于上述目标虚拟机对应的第一SSD缓存区中缓存的各数据条目的索引编号,以第一顺序将上述各数据条目对应的数据分别同步至目的主机。
其中,上述第一SSD缓存区为上述目标虚拟机的主本数据的缓存区/副本数据的缓存区,上述第二SSD缓存区为上述目标虚拟机的副本数据的缓存区/主本数据的缓存区。
本申请实施例中,分布式存储系统采用SSD固态硬盘缓存的方式进行读写加速,且为了保障可靠性,防止SSD损坏引发数据不完整,采用网络raid配置DRBD同步复制卷对SSDcache作副本。那么,针对每一主机上的每一虚拟机,包括其对应的第一SSD缓存分区和第二SSD缓存分区,第一SSD缓存分区和第二SSD缓存分区采用raid配置DRBD同步复制卷,其中,一个虚拟机对应的第一SSD缓存分区可以为该一个虚拟机的主本数据的缓存区/副本数据的缓存区,一个虚拟机对应的第二SSD缓存分区可以为该一个虚拟机的副本数据的缓存区/主本数据的缓存区。
也就是说,若虚拟机1对应的第一SSD缓存分区为虚拟机1的主本数据的缓存区,那么,虚拟机1对应的第二SSD缓存分区则为虚拟机1的副本数据的缓存区;若虚拟机1对应的第一SSD缓存分区为虚拟机1的副本数据的缓存区,那么,虚拟机1对应的第二SSD缓存分区则为虚拟机1的主本数据的缓存区。
进一步地,本申请实施例中,SSD缓存分区中缓存的数据包括数据索引(或链表)和数据,其中,数据索引包括多个数据条目(包括读数据条目和写数据条目),数据索引格式如表1所示。
Figure BDA0002601177830000081
表1
由表1可知,数据索引表包括多个读数据条目和多个写数据条目,且各数据条目包括唯一的索引编号(如,0,1,2,……,N)。本申请实施例中,一种较佳地实现方式为,在虚拟机迁移时,需要执行数据处理(同步和刷盘)的数据条目为写数据条目。
那么,本申请实施例中,以第一SSD缓存区为上述目标虚拟机的主本数据的缓存区,上述第一顺序为从小到大的顺序为例进行说明,那么,在基于上述目标虚拟机对应的第一SSD缓存区中缓存的各数据条目的索引编号,以第一顺序将上述各数据条目对应的数据分别同步至目的主机时,一种较佳地实现方式为,基于上述目标虚拟机的主本数据的缓存区中缓存的各写数据条目的索引编号,以从小到大的顺序遍历各写数据条目,针对每一写数据条目分别执行以下操作:
向目的主机发送第一写数据条目对应的第一数据的同步指令,以使得上述目的主机在第三SSD缓存区中缓存上述第一数据,创建上述第一数据对应的写数据条目,并将新创建的上述第一数据对应的写数据条目标记为本地可用,以及向源主机发送上述第一数据同步完成指令;接收上述目的主机发送的第一数据同步完成指令,并将上述第一写数据条目标记为远端可用。
本申请实施例中,第三SSD缓存区是在目的主机上为目标虚拟机分配的用户缓存数据的SSD分区。
由表1可知,数据索引中设置有位置属性列,需要说明的是,本申请实施例中,该位置属性表示对应的数据条目本地是否可用。
也就是说,若一个数据条目的位置属性标识为local,则说明该条目数据本地可用,远端不可用,若一个数据条目的位置属性标识为remote,则说明远端可用,本地不可用,进一步地,若一个数据条目的位置属性标识为无效,则说明该数据条目对应的数据已存储至后端存储,无需再同步至目的主机。
例如,假设目标虚拟机对应的第一SSD缓存区为主本old cache,第二SSD缓存区为副本old cache,第三SSD缓存区为主本new cache,那么,主本old cache同步到主本newcache的过程可以包括:
1、主本old cache处理模块从索引0递增遍历每一写数据条目;
2、主本old cache处理模块向new cache处理模块送同步命令sync cache,其中,命令字为sync cache,命令参数包括:cache地址、cache data、物理地址;
3、主本new cache处理模块接收同步命令sync data及同步内容;
4、主本new cache处理模块生成新的写数据条目;
5、主本new cache处理模块将该新的写数据条目添加到cache条目;
6、主本new cache处理模块更新该新的写数据条目的cache属性为local(本地可用);
7、主本new cache处理模块回应主本old cache处理模块同步完成命令synccache finish,其中,命令字为sync cache finish,命令参数包括:cache地址,其中,该命令参数是用于唯一标识对应数据条目的标识。
8、主本old cache处理模块接收同步命令sync cache finish;
9、主本old cache处理模块根据同步完成命令包含的命令参数,更新主本oldcache中对应的写数据条目的状态为remote(远端可用)。
需要说明的是,组成DRBD的主本old cache和副本old cache中各数据条目的属性数据会同步复制,本申请实施例中,在此不再赘述。
步骤120:基于上述目标虚拟机对应的第二SSD缓存区中缓存的各数据条目的索引编号,以第二顺序将上述各数据条目对应的数据分别存储至后端存储。
本申请实施例中,上述第一顺序和上述第二顺序为反向顺序。下面,以第二SSD缓存区为上述目标虚拟机的副本数据的缓存区,上述第二顺序为从大到小的顺序为例进行说明,基于上述目标虚拟机对应的第二SSD缓存区中缓存的各数据条目的索引编号,以第二顺序将上述各数据条目对应的数据分别存储至后端存储时,一种较佳地实现方式为,向后端存储发送第二写数据条目对应的第二数据的存储指令,以使得上述后端存储将上述第二数据存储在本地,并向源主机发送上述第二数据存储完成指令;接收上述后端存储发送的第二数据存储完成指令,并将上述第二写数据条目标记为无效。
也就是说,在确定需要将目标虚拟机从源主机迁移至目的主机时,将目标虚拟机对应的用于缓存主本数据的第一SSD缓存区中的各写数据条目(各数据条目基于索引编号的大小,从上向下进行排列,其中,编号为0的数据条目排列在最上面,编号最大的数据条目排列在最下面),按照从上向下的顺序遍历每一写数据条目,将各写数据条目同步至目的主机上创建的,用于缓存目标虚拟机的数据的第三SSD缓存区中;同时,将目标虚拟机对应的用于缓存副本数据的第二SSD缓存区中的各写数据条目,按照从下向上的顺序遍历每一写数据条目,将各写数据条目下盘至后端存储。
需要说明的是,第一SSD缓存区中任一写数据条目在成功同步至目的主机后,即可将该任一写数据条目标识为远端可用,本地不可用;此时,若接收到针对该任一写数据条目的IO请求,则需要从第三SSD缓存区中读取该任一写数据条目对应的数据;第二SSD缓存区中任一写数据条目在成功存储至后端存储后,即可将该任一写数据条目标识为无效,说明无需再针对该任一写数据条目执行同步至目的主机的操作。
例如,假设目标虚拟机对应的第一SSD缓存区为主本old cache,第二SSD缓存区为副本old cache,第三SSD缓存区为主本new cache,那么,副本old cache中脏数据下盘至后端存储的过程可以包括:
1、副本old cache处理模块从索引尾部倒序遍历每一写数据条目;
2、副本old cache处理模块向后端存储发送同步命令flush cache,其中,命令字为flush cache,命令内容包括:cache地址、cache data、物理地址;
3、后端存储处理模块接收同步命令flush cache命令及数据;
4、后端存储处理模块按物理地址,写入cache data数据;
5、后端存储处理模块回应副本old cache处理模块当前写数据条目已下盘完成命令;
6、副本old cache处理模块接收下盘完成命令,其中,该下盘完成命令包含的命令参数是用于唯一标识对应数据条目的标识;
7、副本old cache处理模块根据下盘完成命令包含的命令参数,更新副本oldcache中对应的写数据条目的状态为无效。
显然,副本old cache中下盘至后端存储的,属性被标识为无效的写数据条目不会再做同步至主本new cache的操作。
步骤130:在确定上述各数据条目对应的数据均同步至目的主机,或存储至后端存储时,在源主机上关闭上述目标虚拟机,并在上述目的主机上创建上述目标虚拟机。
本申请实施例中,可以将目标虚拟机对应的SSD缓存区中的部分写数据条目对应的数据同步至目的主机上的SSD缓存区的同时,将另一部分写输入条目对应的数据下盘至后端存储,在确定各写数据条目对应的数据均同步至目的主机/下盘至后端存储时,确定目标虚拟机对应的数据已迁移完成,此时,就可以关闭源主机上的目标虚拟机,再在目的主机上创建目标虚拟机,从而完成目标虚拟机的迁移。
进一步地,本申请实施例中,上述数据处理方法还包括以下步骤:在进行目标虚拟机迁移的过程中,接收到客户端发送的IO指令;若确定上述第一SSD缓存区中存在与上述IO指令匹配的写数据条目,且该写数据条目被标记为远端可用,则从上述第三SSD缓存区中读取/写入该写数据条目对应的数据;若确定上述第一SSD缓存区中存在与上述IO指令匹配的写数据条目,且该写数据条目被标记为本地可用,则从上述第一SSD缓存区中读取/写入该写数据条目对应的数据;若确定上述第一SSD缓存区中不存在与上述IO指令匹配的写数据条目,则将上述IO指令携带的数据写入上述第三缓存区中,并创建对应的写数据条目。
示例性的,参阅图2所示,为本申请实施例提供的一种分布式存储系统的结构示意图,主机1上创建有VM 1(目标虚拟机),SSD 1和SSD 2组成DRBD,SSD 1为VM 1的主本数据缓存区,SSD 2为VM 1的副本数据缓存区,此时,需要将VM 1迁移至主机3上,那么,就需要双向处理的方式,将SSD 1中VM1对应的部分数据条目对应的数据同步至SSD 3,并将SSD 2中VM1对应的另一部分数据条目对应的数据下盘至后端存储。这样,缩短了总体数据处理时间。
基于与上述方法实施例同样的发明构思,示例性的,参阅图3所示,为本申请实施例提供的一种数据处理装置的结构示意图,该数据处理装置应用于分布式存储系统,该分布式存储系统采用SSD固态硬盘缓存的方式进行读写加速,该数据处理装置包括:
接收单元30,用于接收目标虚拟机迁移指令;
同步单元31,用于基于上述目标虚拟机对应的第一SSD缓存区中缓存的各数据条目的索引编号,以第一顺序将上述各数据条目对应的数据分别同步至目的主机;
存储单元32,用于基于上述目标虚拟机对应的第二SSD缓存区中缓存的各数据条目的索引编号,以第二顺序将上述各数据条目对应的数据分别存储至后端存储,其中,上述第一SSD缓存区为上述目标虚拟机的主本数据的缓存区/副本数据的缓存区,上述第二SSD缓存区为上述目标虚拟机的副本数据的缓存区/主本数据的缓存区,上述第一顺序和上述第二顺序为反向顺序;
确定单元33,用于在确定上述各数据条目对应的数据均同步至目的主机,或存储至后端存储时,在源主机上关闭上述目标虚拟机,并在上述目的主机上创建上述目标虚拟机。
可选地,上述各数据条目为上述目标虚拟机对应的SSD缓存区中的写数据条目。
可选地,上述第一SSD缓存区为上述目标虚拟机的主本数据的缓存区,上述第一顺序为从小到大的顺序;
上述基于上述目标虚拟机对应的第一SSD缓存区中缓存的各数据条目的索引编号,以第一顺序将上述各数据条目对应的数据分别同步至目的主机时,同步单元31具体用于:
基于上述目标虚拟机的主本数据的缓存区中缓存的各写数据条目的索引编号,以从小到大的顺序遍历各写数据条目,针对每一写数据条目分别执行以下操作:
向目的主机发送第一写数据条目对应的第一数据的同步指令,以使得上述目的主机在第三SSD缓存区中缓存上述第一数据,创建上述第一数据对应的写数据条目,并将新创建的上述第一数据对应的写数据条目标记为本地可用,以及向源主机发送上述第一数据同步完成指令;
接收上述目的主机发送的第一数据同步完成指令,并将上述第一写数据条目标记为远端可用。
可选地,上述第二SSD缓存区为上述目标虚拟机的副本数据的缓存区,上述第二顺序为从大到小的顺序;
基于上述目标虚拟机对应的第二SSD缓存区中缓存的各数据条目的索引编号,以第二顺序将上述各数据条目对应的数据分别存储至后端存储时,存储单元32具体用于:
向后端存储发送第二写数据条目对应的第二数据的存储指令,以使得上述后端存储将上述第二数据存储在本地,并向源主机发送上述第二数据存储完成指令;
接收上述后端存储发送的第二数据存储完成指令,并将上述第二写数据条目标记为无效。
可选地,上述装置还包括处理单元,上述处理单元具体用于:
接收客户端发送的IO指令;
若确定上述第一SSD缓存区中存在与上述IO指令匹配的写数据条目,且该写数据条目被标记为远端可用,则从上述第三SSD缓存区中读取/写入该写数据条目对应的数据;
若确定上述第一SSD缓存区中存在与上述IO指令匹配的写数据条目,且该写数据条目被标记为本地可用,则从上述第一SSD缓存区中读取/写入该写数据条目对应的数据;
若确定上述第一SSD缓存区中不存在与上述IO指令匹配的写数据条目,则将上述IO指令携带的数据写入上述第三缓存区中,并创建对应的写数据条目。
以上这些单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个单元通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
综上可知,本申请实施例提供的数据处理方法,应用于分布式存储系统,所述分布式存储系统采用SSD固态硬盘缓存的方式进行读写加速,所述方法包括:接收目标虚拟机迁移指令;基于所述目标虚拟机对应的第一SSD缓存区中缓存的各数据条目的索引编号,以第一顺序将所述各数据条目对应的数据分别同步至目的主机;基于所述目标虚拟机对应的第二SSD缓存区中缓存的各数据条目的索引编号,以第二顺序将所述各数据条目对应的数据分别存储至后端存储,其中,所述第一SSD缓存区为所述目标虚拟机的主本数据的缓存区/副本数据的缓存区,所述第二SSD缓存区为所述目标虚拟机的副本数据的缓存区/主本数据的缓存区,所述第一顺序和所述第二顺序为反向顺序;在确定所述各数据条目对应的数据均同步至目的主机,或存储至后端存储时,在源主机上关闭所述目标虚拟机,并在所述目的主机上创建所述目标虚拟机。
采用本申请实施例提供的数据处理方法,在进行虚拟机迁移的过程中,采用双向处理的方式,将SSD缓存的部分数据条目对应的数据同步至目的主机的同时,将SSD缓存的另一部分数据条目对应的数据下盘至后端存储。这样,降低了虚拟机迁移所需的时间,且在虚拟机迁移过程中,无需关闭源主机上的虚拟机,仍能够为客户提供业务服务。
进一步地,本申请实施例提供的数据处理装置,从硬件层面而言,所述数据处理装置的硬件架构示意图可以参见图4所示,所述数据处理装置可以包括:存储器40和处理器41,
存储器40用于存储程序指令;处理器41调用存储器40中存储的程序指令,按照获得的程序指令执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。
可选地,本申请还提供一种分布式通信设备,包括用于执行上述方法实施例的至少一个处理元件(或芯片)。
可选地,本申请还提供一种程序产品,例如计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使该计算机执行上述方法实施例。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (10)

1.一种数据处理方法,其特征在于,应用于分布式存储系统,所述分布式存储系统采用SSD固态硬盘缓存的方式进行读写加速,所述方法包括:
接收目标虚拟机迁移指令;
基于所述目标虚拟机对应的第一SSD缓存区中缓存的各数据条目的索引编号,以第一顺序将所述各数据条目对应的数据分别同步至目的主机;
基于所述目标虚拟机对应的第二SSD缓存区中缓存的各数据条目的索引编号,以第二顺序将所述各数据条目对应的数据分别存储至后端存储,其中,所述第一SSD缓存区为所述目标虚拟机的主本数据的缓存区/副本数据的缓存区,所述第二SSD缓存区为所述目标虚拟机的副本数据的缓存区/主本数据的缓存区,所述第一顺序和所述第二顺序为反向顺序;
在确定所述各数据条目对应的数据均同步至目的主机,或存储至后端存储时,在源主机上关闭所述目标虚拟机,并在所述目的主机上创建所述目标虚拟机。
2.如权利要求1所述的方法,其特征在于,所述各数据条目为所述目标虚拟机对应的SSD缓存区中的写数据条目。
3.如权利要求1或2所述的方法,其特征在于,所述第一SSD缓存区为所述目标虚拟机的主本数据的缓存区,所述第一顺序为从小到大的顺序;
所述基于所述目标虚拟机对应的第一SSD缓存区中缓存的各数据条目的索引编号,以第一顺序将所述各数据条目对应的数据分别同步至目的主机的步骤包括:
基于所述目标虚拟机的主本数据的缓存区中缓存的各写数据条目的索引编号,以从小到大的顺序遍历各写数据条目,针对每一写数据条目分别执行以下操作:
向目的主机发送第一写数据条目对应的第一数据的同步指令,以使得所述目的主机在第三SSD缓存区中缓存所述第一数据,创建所述第一数据对应的写数据条目,并将新创建的所述第一数据对应的写数据条目标记为本地可用,以及向源主机发送所述第一数据同步完成指令;
接收所述目的主机发送的第一数据同步完成指令,并将所述第一写数据条目标记为远端可用。
4.如权利要求3所述的方法,其特征在于,所述第二SSD缓存区为所述目标虚拟机的副本数据的缓存区,所述第二顺序为从大到小的顺序;
基于所述目标虚拟机对应的第二SSD缓存区中缓存的各数据条目的索引编号,以第二顺序将所述各数据条目对应的数据分别存储至后端存储的步骤包括:
向后端存储发送第二写数据条目对应的第二数据的存储指令,以使得所述后端存储将所述第二数据存储在本地,并向源主机发送所述第二数据存储完成指令;
接收所述后端存储发送的第二数据存储完成指令,并将所述第二写数据条目标记为无效。
5.如权利要求3所述的方法,其特征在于,所述方法还包括:
接收客户端发送的IO指令;
若确定所述第一SSD缓存区中存在与所述IO指令匹配的写数据条目,且该写数据条目被标记为远端可用,则从所述第三SSD缓存区中读取/写入该写数据条目对应的数据;
若确定所述第一SSD缓存区中存在与所述IO指令匹配的写数据条目,且该写数据条目被标记为本地可用,则从所述第一SSD缓存区中读取/写入该写数据条目对应的数据;
若确定所述第一SSD缓存区中不存在与所述IO指令匹配的写数据条目,则将所述IO指令携带的数据写入所述第三缓存区中,并创建对应的写数据条目。
6.一种数据处理装置,其特征在于,应用于分布式存储系统,所述分布式存储系统采用SSD固态硬盘缓存的方式进行读写加速,所述装置包括:
接收单元,用于接收目标虚拟机迁移指令;
同步单元,用于基于所述目标虚拟机对应的第一SSD缓存区中缓存的各数据条目的索引编号,以第一顺序将所述各数据条目对应的数据分别同步至目的主机;
存储单元,用于基于所述目标虚拟机对应的第二SSD缓存区中缓存的各数据条目的索引编号,以第二顺序将所述各数据条目对应的数据分别存储至后端存储,其中,所述第一SSD缓存区为所述目标虚拟机的主本数据的缓存区/副本数据的缓存区,所述第二SSD缓存区为所述目标虚拟机的副本数据的缓存区/主本数据的缓存区,所述第一顺序和所述第二顺序为反向顺序;
确定单元,用于在确定所述各数据条目对应的数据均同步至目的主机,或存储至后端存储时,在源主机上关闭所述目标虚拟机,并在所述目的主机上创建所述目标虚拟机。
7.如权利要求6所述的装置,其特征在于,所述各数据条目为所述目标虚拟机对应的SSD缓存区中的写数据条目。
8.如权利要求6或7所述的装置,其特征在于,所述第一SSD缓存区为所述目标虚拟机的主本数据的缓存区,所述第一顺序为从小到大的顺序;
所述基于所述目标虚拟机对应的第一SSD缓存区中缓存的各数据条目的索引编号,以第一顺序将所述各数据条目对应的数据分别同步至目的主机时,所述同步单元具体用于:
基于所述目标虚拟机的主本数据的缓存区中缓存的各写数据条目的索引编号,以从小到大的顺序遍历各写数据条目,针对每一写数据条目分别执行以下操作:
向目的主机发送第一写数据条目对应的第一数据的同步指令,以使得所述目的主机在第三SSD缓存区中缓存所述第一数据,创建所述第一数据对应的写数据条目,并将新创建的所述第一数据对应的写数据条目标记为本地可用,以及向源主机发送所述第一数据同步完成指令;
接收所述目的主机发送的第一数据同步完成指令,并将所述第一写数据条目标记为远端可用。
9.如权利要求8所述的装置,其特征在于,所述第二SSD缓存区为所述目标虚拟机的副本数据的缓存区,所述第二顺序为从大到小的顺序;
基于所述目标虚拟机对应的第二SSD缓存区中缓存的各数据条目的索引编号,以第二顺序将所述各数据条目对应的数据分别存储至后端存储时,所述存储单元具体用于:
向后端存储发送第二写数据条目对应的第二数据的存储指令,以使得所述后端存储将所述第二数据存储在本地,并向源主机发送所述第二数据存储完成指令;
接收所述后端存储发送的第二数据存储完成指令,并将所述第二写数据条目标记为无效。
10.如权利要求8所述的装置,其特征在于,所述装置还包括处理单元,所述处理单元具体用于:
接收客户端发送的IO指令;
若确定所述第一SSD缓存区中存在与所述IO指令匹配的写数据条目,且该写数据条目被标记为远端可用,则从所述第三SSD缓存区中读取/写入该写数据条目对应的数据;
若确定所述第一SSD缓存区中存在与所述IO指令匹配的写数据条目,且该写数据条目被标记为本地可用,则从所述第一SSD缓存区中读取/写入该写数据条目对应的数据;
若确定所述第一SSD缓存区中不存在与所述IO指令匹配的写数据条目,则将所述IO指令携带的数据写入所述第三缓存区中,并创建对应的写数据条目。
CN202010724547.1A 2020-07-24 2020-07-24 一种数据处理方法及装置 Active CN112000426B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010724547.1A CN112000426B (zh) 2020-07-24 2020-07-24 一种数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010724547.1A CN112000426B (zh) 2020-07-24 2020-07-24 一种数据处理方法及装置

Publications (2)

Publication Number Publication Date
CN112000426A true CN112000426A (zh) 2020-11-27
CN112000426B CN112000426B (zh) 2022-08-30

Family

ID=73466567

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010724547.1A Active CN112000426B (zh) 2020-07-24 2020-07-24 一种数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN112000426B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113190507A (zh) * 2021-05-14 2021-07-30 杭州海康威视数字技术股份有限公司 一种索引信息同步方法、装置及电子设备
CN113778338A (zh) * 2021-09-13 2021-12-10 北京东方金信科技股份有限公司 分布式存储数据读取效率优化方法、系统、设备和介质
CN114089923A (zh) * 2021-11-29 2022-02-25 新华三大数据技术有限公司 一种双活存储系统及其数据处理方法
WO2022188184A1 (zh) * 2021-03-12 2022-09-15 华为技术有限公司 数据存储方法及相关设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150229717A1 (en) * 2014-02-10 2015-08-13 International Business Machines Corporation Migrating local cache state with a virtual machine
US20160197986A1 (en) * 2015-01-07 2016-07-07 International Business Machines Corporation Host-side cache migration
CN107436795A (zh) * 2017-08-03 2017-12-05 山东师范大学 一种保障虚拟机在线迁移服务质量的方法
CN108932150A (zh) * 2017-05-24 2018-12-04 中兴通讯股份有限公司 基于ssd和磁盘混合存储的缓存方法、装置及介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150229717A1 (en) * 2014-02-10 2015-08-13 International Business Machines Corporation Migrating local cache state with a virtual machine
US20160197986A1 (en) * 2015-01-07 2016-07-07 International Business Machines Corporation Host-side cache migration
CN108932150A (zh) * 2017-05-24 2018-12-04 中兴通讯股份有限公司 基于ssd和磁盘混合存储的缓存方法、装置及介质
CN107436795A (zh) * 2017-08-03 2017-12-05 山东师范大学 一种保障虚拟机在线迁移服务质量的方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHENGYU YANG等: ""AutoReplica: Automatic data replica manager in distributed caching and data processing systems"", 《2016 IEEE 35TH INTERNATIONAL PERFORMANCE COMPUTING AND COMMUNICATIONS CONFERENCE (IPCCC)》 *
汪小林等: "基于SSD高速缓存的桌面虚拟机交互性能优化方法", 《计算机应用与软件》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022188184A1 (zh) * 2021-03-12 2022-09-15 华为技术有限公司 数据存储方法及相关设备
CN113190507A (zh) * 2021-05-14 2021-07-30 杭州海康威视数字技术股份有限公司 一种索引信息同步方法、装置及电子设备
CN113190507B (zh) * 2021-05-14 2022-06-03 杭州海康威视数字技术股份有限公司 一种索引信息同步方法、装置及电子设备
CN113778338A (zh) * 2021-09-13 2021-12-10 北京东方金信科技股份有限公司 分布式存储数据读取效率优化方法、系统、设备和介质
CN114089923A (zh) * 2021-11-29 2022-02-25 新华三大数据技术有限公司 一种双活存储系统及其数据处理方法

Also Published As

Publication number Publication date
CN112000426B (zh) 2022-08-30

Similar Documents

Publication Publication Date Title
CN112000426B (zh) 一种数据处理方法及装置
US20230117542A1 (en) Remote Data Replication Method and System
US10983955B2 (en) Data unit cloning in memory-based file systems
JP6553822B2 (ja) 分散システムにおける範囲の分割および移動
US9235524B1 (en) System and method for improving cache performance
US8627012B1 (en) System and method for improving cache performance
US9104529B1 (en) System and method for copying a cache system
US8930947B1 (en) System and method for live migration of a virtual machine with dedicated cache
US9134914B1 (en) Deduplication
EP2840495B1 (en) Container-based processing method and apparatus
CN112035410B (zh) 日志存储方法、装置、节点设备及存储介质
US9069682B1 (en) Accelerating file system recovery by storing file system metadata on fast persistent storage during file system recovery
EP1837783A1 (en) Managing data in a file system
US10884926B2 (en) Method and system for distributed storage using client-side global persistent cache
CN109902034B (zh) 快照创建方法、装置、电子设备及机器可读存储介质
JP2006268139A (ja) データ複製装置、方法及びプログラム並びに記憶システム
CN108604201B (zh) 一种快照回滚方法、装置、存储控制器和系统
CN111158858A (zh) 一种虚拟机的克隆方法和装置,及计算机可读存储介质
US9053033B1 (en) System and method for cache content sharing
US9009416B1 (en) System and method for managing cache system content directories
CN104360953A (zh) 数据拷贝方法及装置
CN110018987B (zh) 快照创建方法、装置及系统
US9235349B2 (en) Data duplication system, data duplication method, and program thereof
US20190332685A1 (en) Set-based mutual exclusion using object metadata tags in a storage appliance
CN110287064B (zh) 一种磁盘数据的还原方法、装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant