CN106605217B - 用于将应用从一个站点移动到另一站点的方法和*** - Google Patents

用于将应用从一个站点移动到另一站点的方法和*** Download PDF

Info

Publication number
CN106605217B
CN106605217B CN201580048056.7A CN201580048056A CN106605217B CN 106605217 B CN106605217 B CN 106605217B CN 201580048056 A CN201580048056 A CN 201580048056A CN 106605217 B CN106605217 B CN 106605217B
Authority
CN
China
Prior art keywords
resource group
cluster resource
duplication
group
new
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
CN201580048056.7A
Other languages
English (en)
Other versions
CN106605217A (zh
Inventor
G·普拉萨德
R·巴特帕蒂
V·库兹内索维
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106605217A publication Critical patent/CN106605217A/zh
Application granted granted Critical
Publication of CN106605217B publication Critical patent/CN106605217B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2033Failover techniques switching over of hardware resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2041Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with more than one idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2048Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant where the redundant components share neither address space nor persistent storage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

本文公开了一种用于在灾难的情况下将应用从一个站点自动移动到另一站点的***和方法。在重新联机之前,应用被配置有信息,以允许其在新站点上运行,而不必在应用已经联机后执行配置动作。这使得能够向应用的用户提供无缝体验,同时还减少了针对应用的相关联的停机时间。

Description

用于将应用从一个站点移动到另一站点的方法和***
背景技术
应用和站点由于各种原因发生故障。当它们发生故障时,将应用移动到新位置以维持应用的可用性变得必要。故障转移集群环境中的同步块复制要求应用停机时间和手动存储资源依赖性改变作为灾难恢复工作流的一部分。这是因为应用从已发生故障的位置移动到能够支持该应用的另一位置。为了实现这一点,物理盘资源到物理数据存储库映射需要被改变以允许相关联的应用在新位置上操作。这些改变是在相关联的应用已经被带回到新位置上之后做出的。这导致针对用户的应用停机时间的延长期。
发明内容
下面呈现本公开的简要发明内容,以便向读者提供基本理解。该发明内容不是本公开的广泛综述,并且其不标识本发明的关键/重要元素或描绘本发明的范围。其唯一目的是以简化形式呈现本文公开的一些概念,作为稍后呈现的更详细描述的前序。
本公开提供了一种用于在灾难的情况下将应用从一个站点自动移动到另一站点的***和方法。在重新联机之前,应用被配置有信息,以允许其在新站点上运行,而不必在应用已经联机后执行配置动作。这使得能够向应用的用户提供无缝体验,同时还减少了针对应用的相关联的停机时间。
当用于应用的主站点由于灾难或其它原因而操作失灵并且应用资源组(其还包含任何复制的盘)移动到保持同步目标副本的辅助站点时,在应用资源联机前集群物理盘资源到物理数据存储的映射被修改为使用目标副本,从而导致自动角色切换。该机制通过各个站点中的数据的多个同步副本虚拟化应用依赖的集群物理盘资源,从而允许无缝的故障转移和故障恢复能力。
本公开还允许集群复制资源来维持所有目标副本的集群范围的复制状态,这允许其在灾难的情况下决定目标是否有资格作为复制的源。在不使用公知的端点的情况下,目标副本连接到源副本。当源副本故障切换到主站点内的其它节点时,辅助站点中的目标副本发现要连接的新端点并恢复复制。
基于复制状态、复制服务可用性、存储连接性、归因于成员关系改变的集群中节点的到达或离开,集群复制资源自动调整源副本和目标副本的可能的所有者节点。这允许应用资源组仅故障转移到由于所有要求的资源的可用性而导致成功的高机会的那些节点。
通过参考结合附图而考虑的以下详细描述,许多伴随的特征将更容易理解,同样变得更好理解。
附图说明
从鉴于附图来解读的以下详细描述将更好地理解本说明书,其中:
图1是示出根据示例性实施例的用于使用跨越故障转移集群中的数据存储库的同步复制来提供应用透明连续可用性的***100的框图。
图2是示出根据一个示例性实施例的用于选择辅助复制组并自动执行角色切换的过程的流程图。
图3是示出根据一个实施例的用于切换角色的过程的流程图。
图4是示出根据一个实施例的可以实现增强的索引***的计算设备的框图。
在附图中相同的附图标记用于表示相同的部件。
具体实施方式
以下结合附图提供的详细描述旨在作为对本示例的描述,并且不旨在表示可以构造或利用本示例的仅有的形式。该描述阐述了示例的功能以及用于构造和操作示例的步骤的序列。然而,相同或等效的功能和序列可以由不同的示例来实现。
当元件被称为“连接”或“耦合”时,元件可以直接连接或耦合在一起,或者也可以存在一个或多个中间元件。相反,当元件被称为“直接连接”或“直接耦合”时,不存在中间元件。
主题可以体现为设备、***、方法和/或计算机程序产品。因此,主题的一些或全部可以以硬件和/或软件(包括固件、驻留软件、微代码、状态机、门阵列等)来体现。此外,主题可以采取在计算机可用或计算机可读存储介质上的计算机程序产品的形式,计算机可用或计算机可读存储介质具有计算机可用或计算机可读程序代码,该计算机可用或计算机可读程序代码体现在介质中以供指令执行***使用或与其结合使用。在本文档的上下文中,计算机可用或计算机可读介质可以是任何介质,其可以包含、存储、通信、传播或传输以供指令执行***、装置或设备使用或与其结合使用的程序。
计算机可用或计算机可读介质可以是,例如但不限于,电子、磁、光、电磁、红外或半导体***、装置、设备或传播介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可拆卸和不可拆卸介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储设备、磁带盒、磁带、盘存储设备或其它磁存储设备、或可用于存储期望的信息并可以由指令执行***访问的任何其它介质。注意,计算机可用或计算机可读介质可以是打印有程序的纸张或其它合适的介质,因为程序可以经由例如纸张或其它合适介质的光学扫描被电子地捕获,然后在必要时被编译、解释、或以其它合适方式处理,并且然后被存储在计算机存储器中。
通信介质通常在诸如载波或其它传输机制的经调制的数据信号中体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。术语“经调制的数据信号”可以被定义为具有以在信号中编码信息的方式设置或改变其特性中的一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、RF、红外和其它无线介质的无线介质。任何上述的组合也应当包括在计算机可读介质的范围内。
当主题被体现在计算机可执行指令的通用上下文中时,实施例可以包括由一个或多个***、计算机、或其它设备执行的程序模块。通常地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常地,在各种实施例中,可以根据需要组合或分布程序模块的功能。
图1是示出根据示例性实施例的用于使用跨越故障转移集群中的数据存储库的同步复制来提供应用透明连续可用性的***100的框图。***100包括第一站点110和第二站点160。尽管在图1中仅示出两个站点,但是在***100中可以存在任何数量的站点。
第一站点或主站点110包括应用集群资源组111。应用资源集群组111包括应用资源115、数据盘120、日志盘125、存储复制单元128。这些组件与使用集群组的底层应用相关联。由该应用生成的数据被存储在这些组件中。第一站点可以是托管与应用资源115相关联的应用的数据中心,或者可以是在数据中心或其它位置内托管相关联的应用的服务器(物理的或虚拟的)。
站点110还包括多个节点130和135。仅为了简化的目的在图1中示出两个节点。应当注意,在站点110上可以存在任何数量的节点。节点中的每个节点与应用资源集群组111相关联,并且更具体地与应用资源115相关联。站点110的每个节点130和135可以托管不同的应用资源。然而,在一些实施例中,相同的应用资源组111可以被托管在节点130和135两者上。在其它实施例中,节点135充当用于站点110上的应用资源组111的故障转移节点。当应用发生故障时,该应用可以故障转移到节点135。这可以发生在故障与节点相关而不是与站点相关的情况下。站点110还包括复制服务140和物理数据存储库150。
第二站点或辅助站点160包括复制集群资源组161。复制集群资源组还包括第二数据盘170、第二日志盘175和第二存储复制单元178。第二站点160还包括多个节点180和185。如以上关于站点110所讨论的,仅为了简化的目的在图1中仅示出了两个节点。仍然,任何数量的节点可以与站点160相关联。此外,站点160包括第二复制服务190和第二物理数据存储库195。第二站点160的组件在功能上与第一站点110的组件相似,并且不必单独来描述。
本公开允许当托管应用的主站点110由于灾难而操作失灵或以其它方式发生故障,并且应用资源组(其还包含用于应用的复制盘)移动到保持同步目标副本的辅助站点160时,在应用资源在辅助站点160上联机之前,集群物理盘资源到物理数据存储映射被修改为使用目标副本(即,在数据存储库195中的辅助站点160上的副本),从而导致自动角色切换。该过程由复制服务140和190管理。该过程通过各个站点中的数据的多个同步副本虚拟化应用依赖的集群物理盘资源,从而允许无缝的故障转移和故障恢复能力。实施例允许集群复制资源来维持所有目标副本的集群范围的复制状态,这允许其在灾难的情况下决定目标是否有资格作为复制的源。
在不使用公知的端点的情况下,目标副本连接到源副本。当源副本故障转移到主站点内的其它节点时,辅助站点中的目标副本发现要连接的新端点并恢复复制。基于复制状态、复制服务可用性、存储连接性、归因于成员关系改变的集群中的节点的到达或离开,集群复制资源自动调整源副本和目标副本的可能的所有者节点。这允许应用资源组仅故障转移到由于所有要求的资源的可用性而导致成功的高机会的那些节点。
为了该讨论的目的,将使用以下术语来描述图1所示的组件的功能。
与站点110相关联的节点中的每个节点可以形成诸如组111和组161的复制组。应当注意,任何数量的节点可以形成复制组。在一个实施例中,复制组是***上的复制实例的集合,由使用物理数据存储设备150的数据分区的应用共同地依赖于复制实例。复制服务140在复制多个设备时跟踪设备间写顺序依赖性。复制组是复制单元。
集群资源组:在集群中被分组在一起并且是故障转移集群中的故障转移单元的集群资源的集合。由示例集群组111和161示出这些集群资源组。
集群物理盘资源(PDR):管理物理盘使得其可由应用(诸如与应用资源115相关联的应用)访问的集群资源。应用通常依赖于集群物理盘资源,使得数据在其可以被应用访问之前联机。
存储副本资源:管理复制组中所有副本的复制的集群资源。存储复制资源由图1中的元件128和178表示。应当注意,在图1中,“p”表示当前主站点上的特征,以及“s”表示当前辅助站点上的特征。
不对称存储集群:不对称存储集群是故障转移集群部署,其中诸如物理盘的数据存储库不被连接到集群的每个节点。当集群跨越多个地理站点时通常发现这种部署,其中物理存储器仅能够由给定站点中的节点访问。
为了有效地实现图1所示的结构,必须首先创建复制组。属于组的副本被一起分组到集群复制组(例如,组111和161)中。集群物理盘资源是表示副本的复制组的部分。复制组取决于集群物理盘资源,而集群物理盘资源转而取决于存储复制集群资源。
在一个示例性实施例中,消耗来自物理盘的数据的应用集群资源115取决于物理盘集群资源。此依赖性链确保按以下顺序完成资源的启动,该顺序确保在应用可以开始消耗盘上的数据之前依赖的资源可用。
在一个实施例中,物理数据存储库150是实现用于集群资源组(111)的各个节点(例如,节点130和135)的共享存储的物理盘集群资源。物理盘集群资源通常具有指示其管理的物理数据存储库150的私有属性。集群中的物理数据存储库150被连接到多个节点(例如,节点130和135),当应用和物理盘集群资源故障转移到其它节点时,其允许数据在多个节点上可用。物理盘集群资源在物理存储设备150上采用永久保留,使得仅在集群节点中的一个节点上可访问,以避免对来自多个节点的数据进行同时编辑。当物理盘集群资源在节点上联机时,其还装载卷/文件***。这些共同地由框150示出。
在一个实施例中,复制服务140是复制集群资源,其被配置为确定主存储设备(作为源副本的部分的物理盘150)是否被连接到其中资源组将联机(例如,资源组111在站点110上联机)的节点。如果存储设备未被连接,则复制服务140启动自动角色切换过程。角色切换是其中复制的源和目标被切换的过程,从而反转数据复制的方向。例如,在当前主站点(例如,站点110)操作失灵或当前主站点需要被拆除用于维护时,角色切换通常被执行,例如作为灾难恢复的一部分。当复制服务检测到当前主物理存储设备或节点不再可用时,自动角色切换自动反转复制的方向从而向应用提供数据的连续可用性,而无需管理员在故障转移期间直接与***交互。
在一个实施例中,复制服务140通过实现相关联的过程来确定存储设备150当前是否未被连接。如果确定存储设备150未被连接,则复制服务140开始过程以角色切换到辅助复制组之一。该过程开始于确定是否存在基于它们的复制状态能够接管作为新的主复制组的其它复制组(例如,组161)。如果复制组处于与旧主复制组的同步状态,则其也是要被选择作为新主复制组的候选者。接下来,该过程确定复制组是否被连接到其中资源组将联机的集群节点。
一旦候选复制组被选择,角色切换将被执行。该角色切换导致当前主复制组(例如,组111)将被改变为复制的目标(辅助)。所选择的辅助复制组(例如,组161)将被改变为复制的源(主)。
为了实现角色切换,该过程开始于将物理盘集群资源交换到主物理集群盘资源和辅物理集群盘资源的物理数据存储绑定。接下来,该过程交换与复制集群资源相关联的复制组私有属性。接下来,辅助集群资源组被移动到主站点。
该过程通过更新主资源组和辅助资源组的可能所有者以仅包括那些站点内的那些集群节点来继续。集群资源的可能所有者是其中集群可以尝试使资源联机的一组节点。复制组可以仅被托管在其中复制服务可用并且物理数据存储库可用的节点上。再次,节点可以位于不同的站点上。此外,当主复制组具有同步伙伴时,主集群资源组也可以被故障转移到其中当前同步辅助数据存储库可用的那些节点。再次,在图1中,“p”指示主站点并且“s”指示辅助站点。
继续角色切换的过程,复制服务尝试将辅助复制组(例如,组111和组161)联机。该过程包括确保来自主站点的数据流145能够到达辅助站点160的复制服务190。一旦主复制资源联机,***将与主资源组相关联的日志和数据(例如,元素120和125)联机。
复制服务140维护集群内所有复制组的复制状态的集群范围的视图。复制状态指示哪个复制组处于同步状态以及哪个复制组不处于同步状态。如果同步辅助复制组失去与其主节点的复制连接,或者如果存在将某些数据复制到辅助复制组的故障,则在主复制组偏离或允许任何新的输入/输出在主复制组处进行到辅助复制组之前,辅助复制组的复制状态被改变为不处于同步状态(NOT IN SYNC)。
复制组可以在集群内故障转移。当这种情况发生时,到辅助复制组的复制应当在故障转移完成后恢复。在不存在众所周知的复制服务端点(例如,集群网络名称资源是公知端点的示例)的情况下,故障转移意味着复制服务端点中的改变,因为托管复制服务的节点针对复制的源或目标改变。辅助复制组被连接到的较旧节点不再有效。辅助复制组应重新发现源复制服务端点并恢复复制。在一个示例性实现中,当主集群资源组故障转移到不同的节点时,在联机序列期间,其重新启动辅助复制组。然后,辅助复制组在其联机序列期间查询集群服务以确定主资源组的所有者节点,并且将该节点名称用作主复制服务端点。主复制组还向辅助复制组发送集群资源通知以指示新的复制端点。
图2是示出根据一个示例性实施例的用于选择辅助复制组并自动实现角色切换的过程的流程图。由于复制集群资源在资源依赖性链的底部,所以该过程开始于确定主存储设备120是否被连接到节点。这在步骤210示出。该确定可以通过向主存储设备120发送命令并等待来自主存储设备120的返回来进行。备选地,该过程可以寻找来自主存储设备120的心跳。也可以使用确定主存储设备120是否被连接到节点的其它方法。在正常操作期间,当相关联的资源组第一次联机时,该检查发生。然而,该检查也可以在资源组正在操作时发生。当在资源组正在操作时该检查发生时,该检查可以以周期性间隔发生或者可以是连续检查。
如果主存储设备120被确定为联机并被连接到资源组,则***的操作照常继续。该正常操作在步骤212处示出。
然而,如果确定存储器未被连接,则该过程移动到步骤220以开始角色切换存储设备的过程。在步骤220处,该过程确定是否存在能够接管作为主复制组128的任何复制组178。每个候选者被添加到候选列表。这在步骤225处示出。本文一起讨论步骤220和225。为了成为接管作为主复制组128的候选者,该过程查看或分析候选复制组中的每个候选复制组的复制状态。复制服务140、190维护集群内所有复制组的复制状态的群集范围的视图。复制状态指示哪些复制组处于同步状态,以及哪些复制组不处于同步状态。如果同步主复制组178失去与其主复制组的复制连接,或者如果存在将某些数据复制到辅助复制组的故障,则在主复制组偏离或允许任何新的输入或输出在主复制组处进行之前,辅助复制组的复制状态被改变为不处于同步状态(NOT IN SYNC)。如果候选复制组161的复制状态被确定为与旧主站点同步,则该候选复制组被视为是用于选择作为新的主复制组的有效候选复制组。如果其不与旧的主复制组128同步,则从潜在候选者的列表中移除该候选者。
一旦已经确定了潜在候选复制组的列表,则该过程继续确定候选复制组中的那个候选复制组被连接到其中资源组将联机的集群节点。这在步骤230处示出。如果复制组被连接到群集节点,则该复制组保留在候选列表中。此时,***可以收集关于该复制组以及复制组与节点或资源组之间的相关联的连接的信息。该信息可以包括如下特征,诸如复制组的大小或容量、复制组的位置、连接速度、连接质量等。在步骤240处收集该信息。
如果复制组未被连接到节点,则过程移动到步骤235。在该235处,***可以从资源组的候选列表中移除该复制组。然而,在一些实施例中,***可以尝试具有针对资源组而生成的连接以连接到节点。这由可选步骤233示出。步骤233通常将发生在步骤235之前。如果能够创建连接,则***使得将导致资源组连接到节点的命令被生成。如果连接成功,则分析移动到步骤240。否则,从候选复制组的列表中移除该复制组。
一旦生成复制组的最终列表,该过程进行至选择候选复制组之一作为新的主复制组。这在步骤250处示出。该过程可以基于候选复制组列表中的候选者中的每个候选者的所收集的特性来选择作为新的主复制组128。在一些方法中,该选择基于针对资源组的现有规则集。例如,复制组的位置可以基于位置来被约束。这可以针对某些应用而发生,其中数据不能离开特定国家。在该示例中,不满足该位置要求的候选复制组现在被移除或不被进一步考虑。***可以在选择要选择哪个候选复制组中查看性能或其它质量特性。***可以从候选者中选择性能最佳的复制组。然而,***可以简单地从候选者的列表中选择随机候选者。
一旦从列表中选择候选者,则该过程在步骤250处通过交换或改变两个复制组的角色来继续。这由步骤260示出。在该步骤处,当前主复制组128被改变成为复制的目标。即,旧的主复制组128现在是辅助复制组。这在步骤262处示出。同样,所选择的复制组将被改变为新的主复制组。这在步骤264处示出。步骤262和264的过程基本上相同,除了向对应复制组做出的改变之外。
参考图3描述在复制组中的每个复制组上发生以发起角色切换的过程。图3的过程紧密对应于步骤260,并且包括图2的步骤262和264。该过程的第一步骤是将物理盘集群资源交换到主物理盘集群资源和辅助物理集群盘资源的物理数据存储绑定。这在步骤310处示出。在该步骤处,主物理盘集群资源的特性被改变为模拟辅助物理盘特性,并且辅助物理盘的特性被改变为反映主物理盘集群资源的那些特性。
接下来,交换复制集群资源中的每个复制集群资源的复制组私有属性。这在步骤320处示出。如以上所讨论的,每个物理盘集群资源具有指示其管理的物理数据存储库的私有属性。集群中的物理数据存储库被连接到多个节点(例如,节点130、135和节点180、185),其允许数据在多个节点上可用使得应用和物理盘集群资源可以故障切换到其它节点。物理盘集群资源在物理存储器上采用永久保留,使得仅在集群节点中的一个节点上可访问,以避免对来自多个节点的数据进行同时编辑。因此,集群资源的私有属性被改变为接受来自集群的该节点的编辑。
在私有属性的交换和资源的绑定之后,辅助集群资源组被移动到主站点。这在步骤330处示出。接下来,更新主资源组和辅助资源组的可能的所有者。这在步骤340处示出。可能的所有者被更新以仅包括那些站点内的那些集群节点。集群资源的可能所有者是其中集群能够尝试将资源联机的一组节点。复制组可以被仅被托管在其中复制服务140、190可用并且物理数据存储库可用的节点上。另外,当主复制组128具有同步伙伴时,主集群资源组(例如,111)也可以被故障转移到其中当前同步辅助数据存储库可用的那些节点。
接下来,辅助复制组尝试联机。这在步骤350处示出。在这一点上,辅助复制组可能必须发现复制端点。如果辅助资源组知道复制端点(诸如集群网络名称资源),则资源组能够快速地或以最小延迟联机。然而,在故障转移期间,复制服务端点中的改变可能发生,因为托管复制服务140、190的节点针对复制的源和/或目标而改变。这是因为辅助资源组之一被连接到的较旧节点可能不再有效而发生。在某些情况下,新的端点是已知的。然而,如果复制端点未知,则辅助资源组需要发现复制端点。这在可选步骤360处示出。在这种情况下,主复制组178重新发现源复制端点并恢复复制过程。然后作为联机序列的一部分,主复制组178查询集群服务以确定主资源组的所有者节点,并且使用该节点的名称作为主复制服务端点。此时,主复制组128还可以向辅助复制组发送集群资源通知以指示新的复制端点。一旦端点已经被发现并且主复制组178已经联机,则故障转移过程完成。然后操作针对应用返回到正常状态。
图4示出了根据一个实施例的计算设备的组件图。计算设备400可以被用于实现本文描述的一个或多个计算设备、计算机过程或软件模块。在一个示例中,计算设备400可以被用于处理计算、执行指令、接收和发送数字信号。在另一示例中,如本实施例的***所要求的,计算设备400可以被用于处理计算、执行指令、接收和发送数字信号、接收和发送搜索查询和超文本、编译计算机代码。此外,计算设备400可以是分布式计算设备,其中计算设备400的组件位于通过网络或其它形式的连接彼此连接的不同计算设备上。附加地,计算设备400可以是基于云的计算设备。
计算设备400可以是现在已知的或将变得已知的任何通用或专用计算机,其能够在软件、硬件、固件或其组合中执行本文描述的步骤和/或执行本文描述的功能。
在其最基本的配置中,计算设备400通常包括至少一个中央处理单元(CPU)或处理器402和存储器404。根据计算设备的确切配置和类型,存储器404可以是易失性的(诸如RAM)、非易失性(诸如ROM、闪存等)或两者的某种组合。另外,计算设备400还可以具有附加的特征/功能。例如,计算设备400可以包括多个CPU。所描述的方法可以由计算设备400中的任何处理单元以任何方式执行。例如,所描述的过程可以由多个CPU并行地执行。
计算设备400还可以包括附加存储设备(可拆卸和/或不可拆卸的),包括但不限于磁盘或光盘或磁带。这样的附加存储设备在图4中由存储设备406示出。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据的信息的任何方法或技术实现的易失性和非易失性、可拆卸和不可拆卸介质。存储器404和存储设备406都是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储设备、磁带盒、磁带、盘存储或其它磁存储设备、或能够用于存储所期望的信息并且能够由计算设备400访问的任何其它介质。任何这样的计算机存储介质可以是计算设备400的一部分。
计算设备400还可以包含允许设备与其它设备通信的通信设备412。通信设备412是通信介质的示例。通信介质通常在诸如载波或其它传输机制的经调制的数据信号中体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。术语“经调制的数据信号”意指具有以在信号中编码信息的方式设置或改变其特性中的一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、RF、红外和其它无线介质的无线介质。如本文所使用的术语计算机可读介质包括计算机存储介质和通信介质。所描述的方法可以以任何形式(诸如数据、计算机可执行指令等)被编码在任何计算机可读介质中。
计算设备400还可以具有一个或多个输入设备410,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等的。还可以包括一个或多个输出设备408,诸如显示器、扬声器、打印机等。所有这些设备在本领域中是公知的,并且不需要详细讨论。
本领域技术人员将认识到,用于存储程序指令的存储设备可以被分布在网络上。例如,远程计算机可以存储被描述为软件的过程的示例。本地或终端计算机可以访问远程计算机并下载软件的一部分或全部来运行程序。备选地,本地计算机可以在需要时下载软件的片段,或者通过在本地终端处执行一些软件指令并在远程计算机(或计算机网络)处执行一些软件指令来分布式处理。本领域技术人员还将认识到,通过利用本领域技术人员已知的常规技术,软件指令的全部或部分可以由专用电路(诸如DSP、可编程逻辑阵列等)来执行。

Claims (14)

1.一种用于将来自发生故障的主站点的一个或多个节点的应用故障转移至复制站点的一个或多个节点的方法,所述主站点至少包括应用集群资源组和一个或多个主节点,所述复制站点包括复制集群资源组和连接到所述复制集群资源组的一个或多个复制节点,所述方法包括:
确定所述主站点已经发生故障,其中至少当所述主站点的所述主节点中没有主节点被连接到所述应用集群资源组时,主站点故障发生;
至少基于所述主站点已经发生故障的所述确定:
转换所述复制站点以成为新的主站点,包括:
将选择的所述复制站点的所述复制集群资源组转换成新的应用集群资源组;
将连接到选择的所述复制集群资源组的所述一个或多个复制节点转换成所述新的应用集群资源组的新的主节点;以及
至少基于转换所述复制集群资源组和连接到所述复制集群资源组的所述一个或多个复制节点,自动地将辅助复制站点指定为所述新的主站点;以及
在使所述应用重新联机之前,至少通过配置集群物理盘资源到物理数据存储库的映射,来将所述应用配置为在所述新的主站点的所述新的主节点和所述新的应用集群资源组上执行。
2.根据权利要求1所述的方法,还包括:
建立候选复制站点的列表,其中所述候选复制站点中的每一个包括能够成为所述新的应用集群资源组的复制集群资源组。
3.根据权利要求2所述的方法,其中选择的所述复制站点选自一组候选复制站点。
4.一种用于利用辅助复制集群资源组来替换发生故障的主应用集群资源组的方法,所述方法包括:
将仍然可访问的资源从发生故障的所述主应用集群资源组重定位至所述辅助复制集群资源组;
配置所述辅助复制集群资源组以包括来自发生故障的所述主应用集群资源组的一个或多个私有属性,包括至少修改物理数据存储库的映射,所述映射控制发生故障的所述主应用集群资源组的物理盘集群;
将所述辅助复制集群资源组指定为新的主应用集群资源组;
将所述辅助复制集群资源组联机作为新的主应用集群资源组,包括至少根据所述一个或多个私有属性的所述映射将所述新的应用集群资源组的所述物理盘集群连接到所述物理数据存储库;以及
在使应用在所述新的主应用集群资源组处联机之前,至少通过配置集群物理盘资源到物理数据存储库的所述映射,来将所述应用配置为在新的主站点的所述新的应用集群资源组上执行。
5.根据权利要求4所述的方法,其中联机还包括:
确定所述辅助复制集群资源组是否知道复制端点。
6.根据权利要求5所述的方法,其中当所述辅助复制集群资源组不知道所述复制端点时,确定所述复制端点。
7.根据权利要求6所述的方法,其中确定所述复制端点还包括:
查询集群服务以确定所述主应用集群资源的所有者节点;以及
应用与所述节点相关联的名称作为所述复制端点。
8.根据权利要求6所述的方法,还包括:
向所述辅助复制集群资源组发送指示新的复制端点的通知。
9.根据权利要求4所述的方法,还包括:
更新所述主应用集群资源组和所述辅助复制集群资源组的可能所有者。
10.根据权利要求4所述的方法,其中利用所述主应用集群资源组的所述私有属性来配置所述辅助复制集群资源组允许所述辅助复制集群资源组接受来自特定节点的编辑。
11.根据权利要求4所述的方法,其中将可用资源从发生故障的所述主应用集群资源组重定位至所述辅助复制集群资源组还包括:
在所述辅助复制集群资源组上模仿发生故障的所述主应用集群资源组的物理特性。
12.一种用于自动将来自发生故障的主站点的应用故障转移至特定复制站点的***,所述***包括:
托管应用的主站点,所述应用在应用集群资源组上操作,所述应用集群资源组至少包括一个或多个主节点和物理盘集群,其中所述物理盘集群被连接到物理数据存储库;以及
设置在所述主站点上的复制服务,所述复制服务被配置为
通过所述一个或多个主节点中的特定节点监视所述物理盘集群和所述物理数据存储库之间的所述连接;
至少通过确定所述物理数据存储库未被连接到所述应用集群资源组的所述物理盘集群,来确定所述主站点和相关联的应用集群资源组已经发生故障;
从一组候选复制站点选择特定复制站点,所述特定复制站点包括复制集群资源组内的一个或多个复制节点,所述一个或多个复制节点是发生故障的所述应用集群资源组的所述一个或多个主节点中的至少一个主节点的副本;
作为所述复制服务确定所述主站点已经发生故障的结果,自动地将所述特定复制站点指定为新的主站点并且将所述特定复制站点的所述复制集群资源组指定为新的应用集群资源组;
将可用资源从发生故障的所述主站点的发生故障的所述应用集群资源组重定位至所述新的应用集群资源组;
配置所述新的应用集群资源组以包括来自发生故障的所述应用集群资源组的一个或多个私有属性,至少包括以导致发生故障的所述应用集群资源组和所述新的应用集群资源组之间的自动角色切换的方式来将所述物理数据存储库映射到所述新的应用集群资源组的所述物理盘集群;
至少基于所述自动角色切换,自动地使所述新的主站点处的所述新的应用集群资源组联机;以及
在使应用在所述新的应用集群资源组处联机之前,至少通过配置所述新的应用集群资源组的集群物理盘资源到所述物理数据存储库的所述映射,来将所述应用配置为在所述新的主站点的所述新的应用集群资源组上执行。
13.根据权利要求12所述的***,其中所述复制服务还被配置为确定针对辅助复制集群资源组的复制端点并且向所述辅助复制集群资源组通知与所述复制端点相关联的节点的名称。
14.根据权利要求13所述的***,其中所述辅助复制集群资源组位于不同于所述主站点的第二站点上。
CN201580048056.7A 2014-09-08 2015-09-08 用于将应用从一个站点移动到另一站点的方法和*** Active CN106605217B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201462047634P 2014-09-08 2014-09-08
US62/047,634 2014-09-08
PCT/US2015/049042 WO2016040393A1 (en) 2014-09-08 2015-09-08 Application transparent continuous availability using synchronous replication across data stores in a failover cluster

Publications (2)

Publication Number Publication Date
CN106605217A CN106605217A (zh) 2017-04-26
CN106605217B true CN106605217B (zh) 2019-08-27

Family

ID=54207728

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580048056.7A Active CN106605217B (zh) 2014-09-08 2015-09-08 用于将应用从一个站点移动到另一站点的方法和***

Country Status (4)

Country Link
US (2) US9804802B2 (zh)
EP (1) EP3191958A1 (zh)
CN (1) CN106605217B (zh)
WO (1) WO2016040393A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10713131B2 (en) * 2017-07-31 2020-07-14 Wmware, Inc. Automatic selection of networks when recovering a virtual machine
US10721296B2 (en) * 2017-12-04 2020-07-21 International Business Machines Corporation Optimized rolling restart of stateful services to minimize disruption
US10379985B1 (en) * 2018-02-01 2019-08-13 EMC IP Holding Company LLC Automating and monitoring rolling cluster reboots
CN111459416B (zh) * 2020-04-24 2021-02-23 杭州网银互联科技股份有限公司 一种基于分布式存储的热迁移***及其迁移方法
US11762743B2 (en) * 2021-06-28 2023-09-19 International Business Machines Corporation Transferring task data between edge devices in edge computing
CN116610499B (zh) * 2023-07-19 2023-11-03 联想凌拓科技有限公司 文件***中的集群角色切换方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173420B1 (en) * 1997-10-31 2001-01-09 Oracle Corporation Method and apparatus for fail safe configuration
US7392421B1 (en) * 2002-03-18 2008-06-24 Symantec Operating Corporation Framework for managing clustering and replication
CN101379763A (zh) * 2005-10-03 2009-03-04 桑德拉***公司 用于分布式电信***中的资源迁移的***、方法和计算机可读介质
CN101640688A (zh) * 2009-08-20 2010-02-03 中兴通讯股份有限公司 基于cdn的节点主备用控制器切换方法及cdn网络
CN103534955A (zh) * 2011-05-02 2014-01-22 国际商业机器公司 协调的灾难恢复生产接管操作
CN103560906A (zh) * 2013-10-22 2014-02-05 珠海多玩信息技术有限公司 数据复制的方法及装置

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5870537A (en) * 1996-03-13 1999-02-09 International Business Machines Corporation Concurrent switch to shadowed device for storage controller and device errors
US7007042B2 (en) * 2002-03-28 2006-02-28 Hewlett-Packard Development Company, L.P. System and method for automatic site failover in a storage area network
US7814050B2 (en) 2002-10-22 2010-10-12 Brocade Communications Systems, Inc. Disaster recovery
JP4290975B2 (ja) 2002-12-19 2009-07-08 株式会社日立製作所 データベース処理方法及び装置並びにその処理プログラム及びディザスタリカバリ方法及びシステム
US20040181707A1 (en) * 2003-03-11 2004-09-16 Hitachi, Ltd. Method and apparatus for seamless management for disaster recovery
US20060047776A1 (en) * 2004-08-31 2006-03-02 Chieng Stephen S Automated failover in a cluster of geographically dispersed server nodes using data replication over a long distance communication link
US7475204B2 (en) * 2004-11-24 2009-01-06 International Business Machines Corporation Automatically managing the state of replicated data of a computing environment
US7480817B2 (en) 2006-03-31 2009-01-20 International Business Machines Corporation Method for replicating data based on probability of concurrent failure
GB0616375D0 (en) 2006-08-17 2006-09-27 Ibm An apparatus for facilitating disaster recovery
US7594072B2 (en) * 2006-09-15 2009-09-22 Hitachi, Ltd. Method and apparatus incorporating virtualization for data storage and protection
JP5508798B2 (ja) * 2009-09-29 2014-06-04 株式会社日立製作所 クラスタを考慮してレプリケーションを管理する管理方法及びシステム
US8335765B2 (en) 2009-10-26 2012-12-18 Amazon Technologies, Inc. Provisioning and managing replicated data instances
US8756329B2 (en) 2010-09-15 2014-06-17 Oracle International Corporation System and method for parallel multiplexing between servers in a cluster
US8572031B2 (en) 2010-12-23 2013-10-29 Mongodb, Inc. Method and apparatus for maintaining replica sets
US8566635B2 (en) * 2011-01-21 2013-10-22 Lsi Corporation Methods and systems for improved storage replication management and service continuance in a computing enterprise
US9009196B2 (en) 2011-03-16 2015-04-14 Microsoft Technology Licensing, Llc Discovery and client routing to database nodes
US8782358B2 (en) * 2011-04-27 2014-07-15 International Business Machines Corporation Transparent input / output switching between synchronously mirrored storage volumes
US10585766B2 (en) 2011-06-06 2020-03-10 Microsoft Technology Licensing, Llc Automatic configuration of a recovery service
US9176829B2 (en) * 2011-07-01 2015-11-03 Microsoft Technology Licensing, Llc Managing recovery virtual machines in clustered environment
US8600945B1 (en) 2012-03-29 2013-12-03 Emc Corporation Continuous data replication
US9110717B2 (en) * 2012-07-05 2015-08-18 International Business Machines Corporation Managing use of lease resources allocated on fallover in a high availability computing environment
US8904231B2 (en) * 2012-08-08 2014-12-02 Netapp, Inc. Synchronous local and cross-site failover in clustered storage systems
US10049022B2 (en) * 2013-06-24 2018-08-14 Oracle International Corporation Systems and methods to retain and reclaim resource locks and client states after server failures
US9400718B2 (en) * 2013-08-02 2016-07-26 Sanovi Technologies Pvt. Ltd. Multi-tenant disaster recovery management system and method for intelligently and optimally allocating computing resources between multiple subscribers
US9965363B2 (en) * 2013-12-14 2018-05-08 Netapp, Inc. Techniques for LIF placement in SAN storage cluster synchronous disaster recovery
US10693955B2 (en) * 2013-12-14 2020-06-23 Netapp, Inc. Techniques for SAN storage cluster synchronous disaster recovery
US9632887B2 (en) * 2014-09-19 2017-04-25 International Business Machines Corporation Automatic client side seamless failover
US9684562B2 (en) * 2015-07-21 2017-06-20 International Business Machines Corporation Automatic serial starting of resource groups on failover based on the prediction of aggregate resource usage

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173420B1 (en) * 1997-10-31 2001-01-09 Oracle Corporation Method and apparatus for fail safe configuration
US7392421B1 (en) * 2002-03-18 2008-06-24 Symantec Operating Corporation Framework for managing clustering and replication
CN101379763A (zh) * 2005-10-03 2009-03-04 桑德拉***公司 用于分布式电信***中的资源迁移的***、方法和计算机可读介质
CN101640688A (zh) * 2009-08-20 2010-02-03 中兴通讯股份有限公司 基于cdn的节点主备用控制器切换方法及cdn网络
CN103534955A (zh) * 2011-05-02 2014-01-22 国际商业机器公司 协调的灾难恢复生产接管操作
CN103560906A (zh) * 2013-10-22 2014-02-05 珠海多玩信息技术有限公司 数据复制的方法及装置

Also Published As

Publication number Publication date
US9804802B2 (en) 2017-10-31
US10592172B2 (en) 2020-03-17
EP3191958A1 (en) 2017-07-19
CN106605217A (zh) 2017-04-26
US20160070624A1 (en) 2016-03-10
WO2016040393A1 (en) 2016-03-17
US20180067698A1 (en) 2018-03-08

Similar Documents

Publication Publication Date Title
CN106605217B (zh) 用于将应用从一个站点移动到另一站点的方法和***
CN110392876B (zh) 用于将数据集和其他受管理对象同步地复制到基于云的存储***的方法
US9934242B2 (en) Replication of data between mirrored data sites
JP2018041506A (ja) データ送信方法、データ受信方法、及びストレージデバイス
JP5548829B2 (ja) 計算機システム、データ管理方法及びデータ管理プログラム
JP2019526106A (ja) データ処理方法及びデバイス
CN111104069B (zh) 分布式存储***的多区域数据处理方法、装置及电子设备
CN107430603A (zh) 大规模并行处理数据库的***和方法
WO2014087287A1 (en) Replication control using eventually consistent meta-data
EP3830709B1 (en) Distributed recovery of server information
TW201638799A (zh) 計算系統中之軟體影像的分佈式存儲
JP2011522337A (ja) サーバクラスタに配信されるコンピュータシステムのソフトウェアモジュールの同期化方法、同期化システムおよびデータストレージへの適用
US10079883B2 (en) Primary device selection at operating system initialization
US20230126173A1 (en) Methods, devices and systems for writer pre-selection in distributed data systems
US9569461B2 (en) Distributed data authority system
KR101750601B1 (ko) 장애 내구성을 지닌 클러스터의 상태 감시 및 클러스터의 형상 변경을 위한 클러스터 관리 방법 및 데이터 저장 시스템
KR101748913B1 (ko) 분산 저장 환경에서 게이트웨이를 선택하기 위한 클러스터 관리 방법 및 데이터 저장 시스템
CN114564854A (zh) 支持fmea双向关系树的数据节点的操作方法及设备
JP6291977B2 (ja) 分散ファイルシステム、バックアップファイル取得方法、制御装置及び管理装置
JP2009289089A (ja) クラスタ型ストレージシステム、そのノード装置、データ制御方法およびそのプログラム
US10691370B2 (en) Assignment of a data identifier to first and second volumes
JP7131363B2 (ja) ライセンス管理装置、ライセンス管理システム、ライセンス管理方法、プログラム
US10956399B1 (en) Transaction pipelining in a journaled database
JP5432959B2 (ja) データ保持システム、データ保持装置及びデータ保持方法
CN115297129A (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