CN104486128A - 一种实现双控制器节点间冗余心跳的系统及方法 - Google Patents
一种实现双控制器节点间冗余心跳的系统及方法 Download PDFInfo
- Publication number
- CN104486128A CN104486128A CN201410814432.6A CN201410814432A CN104486128A CN 104486128 A CN104486128 A CN 104486128A CN 201410814432 A CN201410814432 A CN 201410814432A CN 104486128 A CN104486128 A CN 104486128A
- Authority
- CN
- China
- Prior art keywords
- heartbeat
- node
- link
- heartbeat link
- section point
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Hardware Redundancy (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明披露了一种实现双控制器节点间冗余心跳的系统及方法,其中系统包括双控制器的第一节点和第二节点、一个心跳通讯专用交换机和一个数据传输交换机;在第一节点和第二节点之间,用非透明桥模拟的网卡通过PCI-E接口形成主心跳链路,链接一个心跳通讯专用交换机形成主备份心跳链路,链接一个数据传输交换机形成次备份心跳链路;当主心跳链路处于活动状态时,主备份心跳链路用于维护本链路状态正常,次备份心跳链路用于数据传输。本发明只需要额外添加一个专用的交换机设备便可以实现三重冗余的心跳链路,既节省了系统成本,又提升了系统高可用的安全可靠性。
Description
技术领域
本发明涉及计算机系统及通信、集群系统高可用技术,尤其涉及一种实现双控制器节点间冗余心跳的系统及方法。
背景技术
在现有的集群系统和高级存储设备中,高可用(HA,High Available)需求已经成为其中非常重要的一部份。高可用顾名思义,就是保障集群系统的高度连续可用性,即能够不间断地向用户提供稳定的服务,这是高可用的核心内容。
Linux HA项目在此方面的实施非常成功,心跳(Heartbeat)就是该项目的重要产出,它提供包括节点间的心跳通讯、服务控制流程等高可用项目的核心功能。节点间的心跳通讯是心跳实现的基本功能,也是HA实施所需的基本条件,所有的高可用后期操作都是基于节点间的心跳通讯这个基础来实现的。因此,如何保障节点间的心跳通讯的可靠性便是HA工作的重中之重。
现有的许多集群系统使用的大多是心跳推荐的双以太网链接,亦即使用两个交换机来设置两条不同的专用的心跳通讯线路,如图1所示,一条是由心跳通讯专用交换机1与两个节点之间形成的主心跳链路,另一条则是由心跳专用交换机2与两个节点之间形成的次心跳链路。这样,在一条链路发生故障的时候,会有另一条冗余的心跳链路来替代实现心跳通讯。这样做除了需要配置数据传输的交换机之外,还需要额外配置两个心跳专用交换机来实现,不仅增加了系统成本,而且设备间的线路的增加也增加了机房布线的难度。
因此,需要提供一种实现双控制器节点间冗余心跳的系统及方法,能够在降低成本的情况下实现节点间更加安全可靠的心跳通讯机制。
发明内容
本发明所要解决的技术问题是提供一种实现双控制器节点间冗余心跳的系统及方法,能够在降低成本的情况下实现节点间更加安全可靠的心跳通讯机制。
为了解决上述技术问题,本发明提供了一种实现双控制器节点间冗余心跳的系统,包括双控制器的第一节点和第二节点、一个心跳通讯专用交换机和一个数据传输交换机,其中:
在第一节点和第二节点之间,用非透明桥模拟的网卡通过PCI-E接口形成主心跳链路,链接一个心跳通讯专用交换机形成主备份心跳链路,链接一个数据传输交换机形成次备份心跳链路;其中,当主心跳链路处于活动状态时,主备份心跳链路用于维护本链路状态正常,次备份心跳链路用于数据传输。
进一步地,当主心跳链路出现故障时,启用主备份心跳链路接替第一节点和第二节点间的心跳通讯并发送提示主心跳链路失效的警报。
进一步地,当主心跳链路和主备份心跳链路均出现故障时,启用次备份心跳链路接替第一节点和第二节点间的心跳通讯并触发可用的数据传输方式发送提示主心跳链路与主备份心跳链路失效的警报,其中可用的数据传输方式包括简单网络管理协议、短讯以及简单邮件传输协议中的一种或多种方式。
进一步地,使用主心跳链路或主备份心跳链路或次备份心跳链路来保持心跳通讯时,第一节点与第二节点分别将本节点的IP地址传输到对端节点,且第一节点和第二节点分别接收并存储对端节点的IP地址信息到配置文件;和/或第一节点和第二节点分别将“本端活动”的信息传输到对端节点,且第一节点和第二节点分别接收并记录对端活动的信息。
进一步地,使用主心跳链路或主备份心跳链路或次备份心跳链路来保持心跳通讯时,第一节点与第二节点若未收到对端节点的IP地址或“本端活动”的信息,则向对端节点发送信息且确认对端节点无响应,则执行接管对端节点的资源和服务流程。
进一步地,当第一节点和第二节点中有任一节点的网络地址发生变化,则向对端节点重传新的IP地址,对端节点收到新的IP地址后更新配置文件中的IP地址信息。
为了解决上述技术问题,本发明提供了一种实现双控制器节点间冗余心跳的方法,包括:
在双控制器的第一节点和第二节点之间,用非透明桥模拟的网卡通过PCI-E接口形成主心跳链路,链接心跳通讯专用交换机形成主备份心跳链路,链接数据传输交换机形成次备份心跳链路;
当主心跳链路处于活动状态时,主备份心跳链路用于维护本链路状态正常,次备份心跳链路用于数据传输。
进一步地,该方法还包括:
当主心跳链路出现故障时,启用主备份心跳链路接替第一节点和第二节点间的心跳通讯并发送提示主心跳链路失效的警报;或者,
当主心跳链路和主备份心跳链路均出现故障时,启用次备份心跳链路接替第一节点和第二节点间的心跳通讯并触发可用的数据传输方式发送提示主心跳链路与主备份心跳链路失效的警报,该可用的数据传输方式包括简单网络管理协议、短讯以及简单邮件传输协议中的一种或多种方式。
进一步地,该方法还包括:
使用主心跳链路或主备份心跳链路或次备份心跳链路来保持心跳通讯时,第一节点和第二节点分别将本节点的IP地址传输到对端节点,且两节点分别接收并存储对端节点的IP地址信息到配置文件;和/或第一节点和第二节点分别将“本端活动”的信息传输到对端节点,且第一节点和第二节点分别接收并记录对端活动的信息到配置文件;若第一节点与第二节点未收到对端节点的IP地址或“本端活动”的信息,向对端节点发送信息且确认对端节点无响应,则判断对端节点不正常,并接管对端节点的资源和服务。
进一步地,该方法还包括:
当判断第一节点和第二节点中有任一节点的网络地址发生变化,则向对端节点重传新的IP地址,对端节点收到新的IP地址后更新配置文件中的IP地址信息。
本发明通过使用一个心跳专用交换机并结合原有的数据传输交换机构成三条冗余心跳链路来增强节点间心跳通讯的安全性和可靠性。这三条链路分别是使用非透明桥(NTB,Non-Transparent Bridging)模拟的虚拟网卡的主心跳链路、通过心跳专用交换机连接的主备份心跳链路和通过数据传输交换机连接的原有的数据链路替代的次备份心跳链路。这种链接方法和现有技术相比,只需要额外添加一个专用的交换机设备便可以实现三重冗余的心跳链路,既节省了系统成本,又提升了系统高可用的安全可靠性。
附图说明
图1为现有的实现双控制器节点间冗余心跳的系统的结构示意图;
图2为本发明的实现双控制器节点间冗余心跳的系统实施例的结构示意图;
图3为本发明的实现双控制器节点间冗余心跳的方法实施例1的流程图;
图4为本发明的实现双控制器节点间冗余心跳的方法在图3所示的实施例基础上的实施例2的流程图。
具体实施方式
以下结合附图和优选实施例对本发明的技术方案进行详细地阐述。应该理解,以下列举的实施例仅用于说明和解释本发明,而不构成对本发明技术方案的限制。
如图2所示,是本发明提供的实现双控制器节点间冗余心跳的系统实施例的结构,包括双控制器的节点A节点B、一个心跳通讯专用交换机和一个数据传输交换机,其中:
在节点A和节点B之间,用非透明桥(NTB)模拟的网卡通过PCI-E接口形成主心跳链路,链接一个心跳通讯专用交换机形成主备份心跳链路,链接一个数据传输交换机形成次备份心跳链路;其中,当主心跳链路处于活动状态时,主备份心跳链路用于维护本链路状态正常,次备份心跳链路用于数据传输。
在上述系统实施例中,
当主心跳链路出现故障时,启用主备份心跳链路接替两节点间的心跳通讯并发送提示主心跳链路失效的警报。
在上述系统实施例中,
当主心跳链路和主备份心跳链路均出现故障时,启用次备份心跳链路接替两节点间的心跳通讯并触发可用的数据传输方式发送提示主心跳链路与主备份心跳链路失效的警报。
在此,触发次备份心跳链路可用的数据传输方式包括简单网络管理协议(SNMP,Simple Network Management Protocol)、短讯、简单邮件传输协议(SMTP,Simple Message Transfer Protocol)中的一种或多种方式。
在上述系统实施例中,
使用主心跳链路或主备份心跳链路或次备份心跳链路来保持心跳通讯时,节点A与节点B分别将本节点的IP地址传输到对端节点,且两节点分别接收并存储对端节点的IP地址信息到配置文件;和/或两节点分别将“本端活动”的信息传输到对端节点,且两节点分别接收并记录对端活动的信息。
在上述系统实施例中,
使用主心跳链路或主备份心跳链路或次备份心跳链路来保持心跳通讯时,节点A与节点B若未收到对端的IP地址或“本端活动”的信息,则向对端节点发送信息且确认对端节点无响应,则执行接管对端节点的资源和服务流程。
在上述系统实施例中,
当两节点中有任一节点的网络地址发生变化,则向对端节点重传新的IP地址,对端节点收到新的IP地址后更新配置文件中的IP地址信息。
本发明针对上述系统实施例,相应地还提供了一种实现双控制器节点间冗余心跳的方法实施例,其流程如图3所示,包括:
110:在双控制器的节点A节点B之间,用非透明桥模拟的网卡通过PCI-E接口形成主心跳链路;链接心跳通讯专用交换机形成主备份心跳链路;链接数据传输交换机形成次备份心跳链路;
120:当主心跳链路处于活动状态时,主备份心跳链路用于维护本链路状态正常,次备份心跳链路用于数据传输。
上述方法实施例还包括:
130:当主心跳链路出现故障时,启用主备份心跳链路接替两节点间的心跳通讯并发送提示主心跳链路失效的警报。
140:当主心跳链路和主备份心跳链路均出现故障时,启用次备份心跳链路接替两节点间的心跳通讯并触发可用的数据传输方式发送提示主心跳链路与主备份心跳链路失效的警报。
在此,触发次备份心跳链路可用的数据传输方式包括简单网络管理协议(SNMP)、短讯、简单邮件传输协议(SMTP)中的一种或多种方式。
如图4所示,本发明的方法实施例还包括:
210:使用主心跳链路或主备份心跳链路或次备份心跳链路来保持心跳通讯时,两节点分别将本节点的IP地址传输到对端节点,且两节点分别接收并存储对端节点的IP地址信息到配置文件;和/或两节点分别将“本端活动”的信息传输到对端节点,且两节点分别接收并记录对端活动的信息到配置文件。
上述方法实施例还包括:
220:判断对端节点状态是否正常,若否执行步骤230;
使用主心跳链路或主备份心跳链路或次备份心跳链路来保持心跳通讯时,节点A与节点B若未收到对端的IP地址或“本端活动”的信息,向对端节点发送信息且确认对端节点无响应,则判断对端节点不正常。
230:接管对端节点的资源和服务,结束流程。
上述方法实施例还包括:
240,250:当判断两节点中有任一节点的网络地址发生变化,则向对端节点重传新的IP地址,对端节点收到新的IP地址后更新配置文件中的IP地址信息。
Claims (10)
1.一种实现双控制器节点间冗余心跳的系统,包括双控制器的第一节点和第二节点、一个心跳通讯专用交换机和一个数据传输交换机,其特征在于:
在第一节点和第二节点之间,用非透明桥模拟的网卡通过PCI-E接口形成主心跳链路,链接一个心跳通讯专用交换机形成主备份心跳链路,链接一个数据传输交换机形成次备份心跳链路;其中,当主心跳链路处于活动状态时,主备份心跳链路用于维护本链路状态正常,次备份心跳链路用于数据传输。
2.按照权利要求1所述的系统,其特征在于,
当所述主心跳链路出现故障时,启用所述主备份心跳链路接替第一节点和第二节点间的心跳通讯并发送提示所述主心跳链路失效的警报。
3.按照权利要求2所述的系统,其特征在于,
当所述主心跳链路和所述主备份心跳链路均出现故障时,启用所述次备份心跳链路接替第一节点和第二节点间的心跳通讯并触发可用的数据传输方式发送提示主心跳链路与主备份心跳链路失效的警报,所述可用的数据传输方式包括简单网络管理协议、短讯以及简单邮件传输协议中的一种或多种方式。
4.按照权利要求3所述的系统,其特征在于,
使用所述主心跳链路或所述主备份心跳链路或所述次备份心跳链路来保持心跳通讯时,第一节点与第二节点分别将本节点的IP地址传输到对端节点,且第一节点和第二节点分别接收并存储对端节点的IP地址信息到配置文件;和/或第一节点和第二节点分别将“本端活动”的信息传输到对端节点,且第一节点和第二节点分别接收并记录对端活动的信息。
5.按照权利要求4所述的系统,其特征在于,
使用所述主心跳链路或所述主备份心跳链路或所述次备份心跳链路来保持心跳通讯时,第一节点与第二节点若未收到对端节点的IP地址或“本端活动”的信息,则向对端节点发送信息且确认对端节点无响应,则执行接管对端节点的资源和服务流程。
6.按照权利要求4或5所述的系统,其特征在于,
当第一节点和第二节点中有任一节点的网络地址发生变化,则向所述对端节点重传新的IP地址,所述对端节点收到新的IP地址后更新所述配置文件中的所述IP地址信息。
7.一种实现双控制器节点间冗余心跳的方法,其特征在于,包括:
在双控制器的第一节点和第二节点之间,用非透明桥模拟的网卡通过PCI-E接口形成主心跳链路,链接心跳通讯专用交换机形成主备份心跳链路,链接数据传输交换机形成次备份心跳链路;
当主心跳链路处于活动状态时,主备份心跳链路用于维护本链路状态正常,次备份心跳链路用于数据传输。
8.按照权利要求7所述的方法,其特征在于,还包括:
当所述主心跳链路出现故障时,启用所述主备份心跳链路接替第一节点和第二节点间的心跳通讯并发送提示主心跳链路失效的警报;或者,
当所述主心跳链路和所述主备份心跳链路均出现故障时,启用所述次备份心跳链路接替第一节点和第二节点间的心跳通讯并触发可用的数据传输方式发送提示主心跳链路与主备份心跳链路失效的警报,所述可用的数据传输方式包括简单网络管理协议、短讯以及简单邮件传输协议中的一种或多种方式。
9.按照权利要求8所述的方法,其特征在于,还包括:
使用所述主心跳链路或所述主备份心跳链路或所述次备份心跳链路来保持心跳通讯时,第一节点和第二节点分别将本节点的IP地址传输到对端节点,且第一节点和第二节点分别接收并存储对端节点的IP地址信息到配置文件;和/或第一节点和第二节点分别将“本端活动”的信息传输到对端节点,且第一节点和第二节点分别接收并记录对端活动的信息到配置文件;若第一节点与第二节点未收到对端节点的IP地址或“本端活动”的信息,向对端节点发送信息且确认对端节点无响应,则判断对端节点不正常,并接管对端节点的资源和服务。
10.按照权利要求9所述的方法,其特征在于,还包括:
当判断第一节点和第二节点中有任一节点的网络地址发生变化,则向对端节点重传新的IP地址,所述对端节点收到新的IP地址后更新所述配置文件中的所述IP地址信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410814432.6A CN104486128B (zh) | 2014-12-23 | 2014-12-23 | 一种实现双控制器节点间冗余心跳的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410814432.6A CN104486128B (zh) | 2014-12-23 | 2014-12-23 | 一种实现双控制器节点间冗余心跳的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104486128A true CN104486128A (zh) | 2015-04-01 |
CN104486128B CN104486128B (zh) | 2018-07-17 |
Family
ID=52760636
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410814432.6A Active CN104486128B (zh) | 2014-12-23 | 2014-12-23 | 一种实现双控制器节点间冗余心跳的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104486128B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105072029A (zh) * | 2015-08-31 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 一种双活双控存储系统的冗余链路设计方法及系统 |
CN105426118A (zh) * | 2015-10-28 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种双控系统中利用串口备份心跳通道的方法 |
CN107766181A (zh) * | 2017-09-12 | 2018-03-06 | 中国电子科技集团公司第五十二研究所 | 一种基于PCIe非透明桥的双控制器存储高可用子系统 |
CN107995106A (zh) * | 2017-12-04 | 2018-05-04 | 山东超越数控电子股份有限公司 | 一种数据存储平台的交换机冗余系统 |
CN108234226A (zh) * | 2016-12-15 | 2018-06-29 | 南京南瑞继保电气有限公司 | 一种基于goose的工业过程控制器io群冗余组网方法 |
CN108418860A (zh) * | 2018-01-26 | 2018-08-17 | 郑州云海信息技术有限公司 | 一种基于ceph集群的osd心跳通讯方法 |
CN109117393A (zh) * | 2018-08-06 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种双路ntb通信方法、装置及系统 |
CN109218141A (zh) * | 2018-11-20 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种故障节点检测方法及相关装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546233A (zh) * | 2011-11-28 | 2012-07-04 | 中标软件有限公司 | 一种高可用集群中串口心跳的实现方法 |
CN103744743A (zh) * | 2014-01-17 | 2014-04-23 | 浪潮电子信息产业股份有限公司 | 一种基于数据库rac模式心跳信号的冗余配置的方法 |
CN103840961A (zh) * | 2012-11-23 | 2014-06-04 | 景幂机械(上海)有限公司 | 双机热备份系统 |
CN104102559A (zh) * | 2014-07-16 | 2014-10-15 | 浪潮电子信息产业股份有限公司 | 一种基于冗余心跳链路和对端重启链路的双控制器存储系统 |
-
2014
- 2014-12-23 CN CN201410814432.6A patent/CN104486128B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102546233A (zh) * | 2011-11-28 | 2012-07-04 | 中标软件有限公司 | 一种高可用集群中串口心跳的实现方法 |
CN103840961A (zh) * | 2012-11-23 | 2014-06-04 | 景幂机械(上海)有限公司 | 双机热备份系统 |
CN103744743A (zh) * | 2014-01-17 | 2014-04-23 | 浪潮电子信息产业股份有限公司 | 一种基于数据库rac模式心跳信号的冗余配置的方法 |
CN104102559A (zh) * | 2014-07-16 | 2014-10-15 | 浪潮电子信息产业股份有限公司 | 一种基于冗余心跳链路和对端重启链路的双控制器存储系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105072029A (zh) * | 2015-08-31 | 2015-11-18 | 浪潮(北京)电子信息产业有限公司 | 一种双活双控存储系统的冗余链路设计方法及系统 |
CN105072029B (zh) * | 2015-08-31 | 2018-05-04 | 浪潮(北京)电子信息产业有限公司 | 一种双活双控存储系统的冗余链路设计方法及系统 |
CN105426118A (zh) * | 2015-10-28 | 2016-03-23 | 浪潮(北京)电子信息产业有限公司 | 一种双控系统中利用串口备份心跳通道的方法 |
CN105426118B (zh) * | 2015-10-28 | 2018-06-05 | 浪潮(北京)电子信息产业有限公司 | 一种双控系统中利用串口备份心跳通道的方法 |
CN108234226A (zh) * | 2016-12-15 | 2018-06-29 | 南京南瑞继保电气有限公司 | 一种基于goose的工业过程控制器io群冗余组网方法 |
CN107766181A (zh) * | 2017-09-12 | 2018-03-06 | 中国电子科技集团公司第五十二研究所 | 一种基于PCIe非透明桥的双控制器存储高可用子系统 |
CN107995106A (zh) * | 2017-12-04 | 2018-05-04 | 山东超越数控电子股份有限公司 | 一种数据存储平台的交换机冗余系统 |
CN108418860A (zh) * | 2018-01-26 | 2018-08-17 | 郑州云海信息技术有限公司 | 一种基于ceph集群的osd心跳通讯方法 |
CN109117393A (zh) * | 2018-08-06 | 2019-01-01 | 郑州云海信息技术有限公司 | 一种双路ntb通信方法、装置及系统 |
CN109218141A (zh) * | 2018-11-20 | 2019-01-15 | 郑州云海信息技术有限公司 | 一种故障节点检测方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104486128B (zh) | 2018-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104486128A (zh) | 一种实现双控制器节点间冗余心跳的系统及方法 | |
CN101282276B (zh) | 一种以太网树业务的保护方法及设备 | |
CN102439903B (zh) | 实现容灾备份的方法、设备及系统 | |
CN102137017B (zh) | 用于虚拟网络单元的工作方法及装置 | |
CN105103475A (zh) | 一种链路切换方法、设备和系统 | |
CN102546222A (zh) | 备份系统及故障检测处理方法 | |
CN102467508A (zh) | 提供数据库服务的方法及数据库系统 | |
CN108337161B (zh) | 一种mlag接口故障三层数据流量平滑切换的方法 | |
CN106603359B (zh) | Plc系统的通讯控制方法及装置 | |
CN106533736A (zh) | 一种网络设备重启方法和装置 | |
CN103227736A (zh) | 一种以太网性能检测方法、系统及光网络终端 | |
CN103227725A (zh) | 一种防火墙双机备份的方法及装置 | |
CN101277269A (zh) | 实现可靠通信的终端、终端切换方法及系统和适用该系统的方法 | |
CN109391691A (zh) | 一种单节点故障下nas服务的恢复方法及相关装置 | |
CN102088415A (zh) | Mac地址撤销的方法及设备 | |
CN109151082A (zh) | 一种多连接建立方法、装置和系统 | |
CN104579750A (zh) | 基于vpn的配电网网络链路容灾系统 | |
CN104468831A (zh) | 一种基于网络拓扑结构的消息服务网络集群 | |
CN117501641A (zh) | 用于公用事业基础设施弹性的无源光网络 | |
CN105763442A (zh) | 主备倒换lacp聚合链路不中断的pon系统及方法 | |
CN114124667A (zh) | 一种双网口冗余备份方法及系统 | |
CN103634209A (zh) | 一种传输数据的方法及设备 | |
CN109104319B (zh) | 一种数据存储装置及方法 | |
CN106027313B (zh) | 网络链路容灾系统及方法 | |
CN102255741B (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 |