CN113342593A - 用以进行全快闪存储器阵列伺服器的高可用性管理的方法与设备 - Google Patents

用以进行全快闪存储器阵列伺服器的高可用性管理的方法与设备 Download PDF

Info

Publication number
CN113342593A
CN113342593A CN202110052697.7A CN202110052697A CN113342593A CN 113342593 A CN113342593 A CN 113342593A CN 202110052697 A CN202110052697 A CN 202110052697A CN 113342593 A CN113342593 A CN 113342593A
Authority
CN
China
Prior art keywords
node
nodes
monitor
types
module
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
CN202110052697.7A
Other languages
English (en)
Other versions
CN113342593B (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.)
Silicon Motion Inc
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Publication of CN113342593A publication Critical patent/CN113342593A/zh
Application granted granted Critical
Publication of CN113342593B publication Critical patent/CN113342593B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0727Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • 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/2028Failover techniques eliminating a faulty processor or activating a spare
    • 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/2038Error 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 a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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/0653Monitoring storage devices or systems
    • 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/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • 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
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/2015Redundant power supplies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明涉及用以进行全快闪存储器阵列(AFA)伺服器的高可用性管理的方法及AFA伺服器。该方法包含:利用运行在AFA伺服器的多个节点中的任一节点上的多个程序模块中的一监控器和轮询器模块以监控AFA伺服器的多个类型的资源,其中,运行在任一节点上的多个程序模块包含一硬件管理器,该硬件管理器可用以管理任一节点的一硬件层中的多个硬件组件,以容许藉由该硬件管理器获得针对该多个类型的资源的相关监控结果的至少一部分;以及控制任一节点依据至少一预定表从分别对应于多个监控信息类型的多个候选操作中选择合适的候选操作,以进行该合适的候选操作。

Description

用以进行全快闪存储器阵列伺服器的高可用性管理的方法与 设备
技术领域
本发明有关于存储器控制,尤指一种用以进行全快闪存储器阵列(All FlashArray,简称AFA)伺服器的高可用性(High Availability,HA)管理的方法以及相关设备(apparatus)诸如AFA伺服器及其控制电路等。
背景技术
数据储存伺服器可以被设置为储存一个或多个用户的用户数据,并且在现有技术中已经提出了针对数据储存伺服器的各种控制方法,以便给用户带来良好的用户体验。由于快闪存储器(Flash memory)已经被广泛应用于各种数据储存装置诸如固态硬碟(solidstate drive,SSD)等,现有技术中提出将数据储存伺服器用快闪存储器作为其储存介质的快闪存储器类型数据储存伺服器来实现,例如其中安装有多个SSD的AFA伺服器。但是,可能会出现某些问题。例如,存取该多个SSD中的任一SSD的快闪存储器的管理会很复杂。为了确保这个SSD中的快闪存储器的存取控制符合相关规范,这个SSD中的快闪存储器的控制器通常配备有某些管理机制以妥善地管理其内部操作。虽然SSD制造商可能试着使SSD看起来像是替代硬式磁碟机(HDD)的不错的解决方案,但是SSD的某些特性与HDD完全不同。如此一来,上述控制方法对于安装有多个SSD的AFA伺服器可能变得不适合或无效,进而导致AFA伺服器的整体效能下降。因此,需要以在没有副作用或较不会带来副作用的情况下提供一种新颖的方法和相关的架构来解决这些问题。
发明内容
本发明的一目的在于提供一种用以进行一全快闪存储器阵列(All Flash Array,简称AFA)伺服器的高可用性管理的方法与相关设备(例如AFA伺服器及其控制电路等),以解决上述的问题。
本发明的另一目的在于提供一种用以进行AFA伺服器的高可用性管理的方法与相关设备(例如AFA伺服器及其控制电路等),以保护AFA伺服器中的数据并且确保其高可用性。
本发明一实施例揭示了一种用以进行一AFA伺服器的高可用性管理的方法,该方法包含:利用运行在该AFA伺服器的多个节点中的任一节点上的多个程序模块中的一监控器和轮询器(monitor and poller)模块以监控该AFA伺服器的多个类型的资源(multipletypes of resources),其中,运行在该任一节点上的该多个程序模块包含一硬件管理器,该硬件管理器可用以管理该任一节点的一硬件层中的多个硬件组件(component),以容许该任一节点藉由该硬件管理器获得针对该多个类型的资源的相关监控结果的至少一部分;依据监控信息检查是否有任何错误发生,其中,该监控信息包含针对该多个类型的资源的所述相关监控结果;以及因应该任何错误的发生,在该监控信息已经被分类为多个监控信息类型的情况下,控制该任一节点依据至少一预定表从分别对应于该多个监控信息类型的多个候选操作中选择至少一合适的候选操作,以进行该至少一合适的候选操作;其中,针对该多个类型的资源的所述相关监控结果的该至少一部分包含一远端节点的远端节点信息,其中,该远端节点代表不同于该多个节点中的任一节点的另一节点。
本发明一实施例揭示了一种AFA伺服器,其可包含多个节点以及多个固态硬碟(solid state drive,SSD)。尤其,该多个节点的任一节点可包含:至少一处理器,用以在多个程序模块的控制下控制该任一节点的操作;以及多个硬件组件,在任一节点的一硬件层中。该多个SSD可包含:一第一固态硬碟群组,对应于该任一节点;以及一第二固态硬碟群组,对应于一远端节点,其中,该远端节点代表于该多个节点中的异于该任一节点的另一节点。例如:该任一节点利用运行在该AFA伺服器的该多个节点中的该任一节点上的该多个程序模块中的一监控器和轮询器模块以监控该AFA伺服器的多个类型的资源,其中,运行在该任一节点上的该多个程序模块包含一硬件管理器,且该硬件管理器可用以管理该任一节点的该硬件层中的该多个硬件组件,以容许该任一节点藉由该硬件管理器获得针对该多个类型的资源的相关监控结果的至少一部分;该任一节点依据监控信息检查是否有任何错误发生,其中,该监控信息包含该多个类型的资源的所述相关监控结果;以及因应该任何错误的发生,在该监控信息已经被分类为多个监控信息类型的情况下,该任一节点依据至少一预定表从分别对应于该多个监控信息类型的多个候选操作中选择至少一合适的候选操作,以进行该至少一合适的候选操作;其中,针对该多个类型的资源的所述相关监控结果的该至少一部分包含该远端节点的远端节点信息。
本发明的方法和相关设备(例如AFA伺服器及其控制电路等)可以提高整体效能,并依据该方法的多种控制方案保护数据,尤其是要保证AFA伺服器的高可用性。另外,本发明的方法和相关设备可以在没有副作用或较不会带来副作用的情况下解决现有技术所产生的问题。
附图说明
图1是依据本发明一实施例的一全快闪存储器阵列(All Flash Array,简称AFA)伺服器的示意图。
图2是依据本发明一实施例中如图1所示的该AFA伺服器的某些实施细节的示意图。
图3是依据本发明一实施例所绘示的如图1所示的该AFA伺服器的一双节点架构的示意图。
图4是依据本发明一实施例所绘示的如图1所示的多个节点的任一节点中的某些程序模块的示意图。
图5是依据本发明一实施例所绘示的一种用以进行一AFA伺服器诸如图1所示的AFA伺服器的高可用性管理的方法的一写入控制方案的示意图。
图6是依据本发明一实施例所绘示的用于进行AFA伺服器的高可用性管理的方法的一角色决定控制方案的示意图。
图7是依据本发明一实施例所绘示的用于进行AFA伺服器的高可用性管理的方法的一角色信息交换控制方案的示意图。
图8是依据本发明一实施例所绘示的用于进行AFA伺服器的高可用性管理的方法的一角色与状态转变控制方案的示意图。
图9是依据本发明一实施例所绘示的用于进行AFA伺服器的高可用性管理的方法的一监控器与轮询器控制方案的示意图。
图10是依据本发明一实施例所绘示的如图9所示的该监控器与轮询器控制方案的某些实施细节的示意图。
图11是依据本发明一实施例所绘示的用于进行AFA伺服器的高可用性管理的方法的一故障转移(failover)控制方案的示意图。
图12是依据本发明一实施例的用于进行该AFA伺服器的高可用性管理的方法的流程图。
【符号说明】
10A,10B:机架顶(TOR)交换机
12A,12B:固态硬碟(SSD)群组
100:全快闪存储器阵列(AFA)伺服器
100A,100B:节点
100S:固态硬碟(SSD)
100R:背板电路
110A,110B:处理器
112:程序模块
112A,112B:程序模块
120A,120B:动态随机存取存储器(DRAM)
122A,122B:复制到快闪存储器(C2F)固态硬碟(SSD)
130A,130B:网络接口(IF)模块
132A,132B,134A,134B:网络接口(IF)电路
140A,140B:非透明网桥(NTB)通信电路
150A,150B:主机板管理控制器(BMC)
152A,152B:暂存器电路
160A,160B:储存接口(IF)模块
162A,162B,164A,164B:储存接口(IF)电路
170A,170B:备用电源单元
S01~S11,S20~S36,S40~S46,S50~S52:步骤
具体实施方式
图1是依据本发明一实施例的一全快闪存储器阵列(All Flash Array,AFA)伺服器100的示意图。AFA伺服器100可以包含多个节点,诸如二节点,分别为节点100A和节点100B,其中该多个节点中的任一个(例如节点100A和节点100B的其中一个)可以具有与该多个节点中的另一个(例如节点100A和节点100B中的另一个)相同或相似的架构。例如,节点100A可包含可以被统称为处理器110A的至少一处理器(例如,一个或多个处理器诸如一个或多个中央处理单元(Central Processing Units.CPU)),并包含一动态随机存取存储器(Dynamic Random Access Memory,DRAM)120A、一复制到快闪存储器(Copy-to-Flash,简称C2F)固态硬碟(Solid State Drive,简称SSD)122A、包含有一个或多个网络接口(interface,IF)电路诸如网络接口电路132A和134A(分别标示为"网络IF CKT"以求简明)的一网络接口(IF)模块130A、一非透明网桥(Non-Transparent Bridge,简称NTB)模块(或NTB)诸如一NTB通信电路140A(标示为"NTB CKT"以求简明)、一主机板管理控制器(BoardManagement Controller,简称BMC)150A、一暂存器(register)电路152A(标示为"REG CKT"以求简明)其耦接至BMC 150A、一储存接口(IF)模块160A其包含一个或多个储存接口电路诸如储存接口电路162A和164A(分别标示为"储存IF CKT"以求简明)以及一备用电源诸如一备用电源单元170A(例如,电池),其中这些组件的至少一部分(例如,一部分或全部)可以藉由节点100A的总线彼此耦接,但本发明不限于此。依据某些实施例,节点100A的架构可以作不同变化。
相似地,节点100B可包含可以统称为处理器110B的至少一处理器(例如,一个或多个处理器诸如一个或多个CPU),并包含一DRAM 120B、一C2F SSD 122B、包含有一个或多个网络接口(IF)电路诸如网络接口电路132B和134B(分别标示为"Network IF CKT"以求简明)的一网络接口(IF)模块130B、一NTB模块(或NTB)诸如一NTB通信电路140B标示为"NTBCKT"以求简明)、一BMC 150B、一暂存器电路152B(标示为"Register CKT"以求简明)其耦接至BMC 150B、一储存接口(IF)模块160B其包含一个或多个储存接口电路诸如储存接口电路162B和164B(分别标示为"Storage IF CKT"以求简明)以及一备用电源诸如一备用电源单元170B(例如,电池),其中这些组件的至少一部分(例如,一部分或全部)可以藉由节点100B的总线彼此耦接,但本发明不限于此。依据某些实施例,节点100B的架构可以作不同变化。
如图1所示,AFA伺服器100可以更包含耦接到节点100A和100B的多个SSD,诸如一SSD群组12A和一SSD群组12B,SSD群组12A和12B可以耦接到节点100A和100B,且可以预设分别连接/连线(link)到节点100A和100B,其中节点100A和100B与SSD群组12B和12A之间的虚线可指出多个可选的(optional)连线。举例来说,节点100A可以利用储存接口模块160A以启动储存接口电路164A和SSD群组12A之间的连线,以存取SSD群组12A中的数据,且节点100B可以利用储存接口模块160B启动储存接口电路164B和SSD群组12B之间的连线,以进一步存取SSD群组12B中的数据。当需要时,节点100A和100B与SSD群组12A和12B之间的连线关系可以改变。例如节点100A可以利用储存接口模块160A来启动储存接口电路162A和SSD群组12B之间的连线,以存取SSD群组12B中的数据,且节点100B可以利用储存接口模块160B来启动储存接口电路162B和SSD群组12A之间的连线,以存取SSD群组12A中的数据。
运行着程序模块112A的处理器110A可用以控制节点100A的操作。DRAM 120A可用以缓冲数据(例如待写入SSD群组12A的数据),并且C2F SSD 122A可用以将DRAM 120A中的缓冲后数据(简称"缓冲数据")复制到C2F SSD 122A中的快闪存储器中,以在需要时防止缓冲数据的数据遗失(data loss)。举例来说,C2F SSD 122A可以藉由安装在节点100A内的主电路板(例如主机板或母板)上的一扩充卡诸如一M.2模块(例如具有符合M.2规范的连接器的电路板)来实现,其中C2F SSD 122A可以包含一储存控制器、一个或多个快闪存储器芯片等,但本发明不限于此。另外,包含有网络接口电路132A和134A的网络接口模块130A可用以将节点100A(例如该主电路板上的处理器110A、DRAM 120A等)藉由至少一网络交换机诸如机架顶(top-of-rack,可简称TOR)交换机10A和10B耦接到至少一网络(例如区域网络(Local Area Network,LAN)、广域网络(Wide Area Network,WAN)、互联网(Internet)等)。另外,包含储存接口电路162A和164A的储存接口模块160A可用以将节点100A(例如该主电路板上的处理器110A、DRAM 120A等)耦接到多个快闪储存装置(例如节点100A和100B共享的SSD群组12A和12B),用以存取(例如读取或写入)该多个快闪储存装置中的数据。如此一来,AFA伺服器100可用以藉由节点100A提供用户储存服务。
相似地,运行着程序模块112B的处理器110B可用以控制节点100B的操作。DRAM120B可用以缓冲数据(例如待写入SSD群组12B的数据),并且C2F SSD 122B可用以将DRAM120B中的缓冲后数据(简称"缓冲数据")复制到C2F SSD 122B中的快闪存储器中,以在需要时防止缓冲数据的数据遗失。举例来说,C2F SSD 122B可以藉由安装在节点100B内的主电路板(例如主机板或母板)上的一扩充卡诸如一M.2模块(例如具有符合M.2规范的连接器的电路板)来实现,其中C2F SSD 122B可以包含一储存控制器、一个或多个快闪存储器芯片等,但本发明不限于此。另外,包含有网络电路132B和134B的网络接口模块130B可用以将节点100B(例如该主电路板上的处理器110B、DRAM 120B等)藉由至少一网络交换机诸如TOR交换机10A和10B耦接到至少一网络(例如LAN、WAN、互联网等)。另外,包含储存接口电路162B和164B的储存接口模块160B可用以将节点100B(例如该主电路板上的处理器110B、DRAM120B等)耦接到多个快闪储存装置(例如节点100A和100B共享的SSD群组12A和12B),用以存取(例如读取或写入)该多个快闪储存装置中的数据。如此一来,AFA伺服器100可用以藉由节点100B提供用户储存服务。
关于节点100A及其对等(peer)节点(例如节点100B)之间的通信,该NTB模块(例如NTB通信电路140A)可用以藉由在节点100A和100B之间的一NTB路径(标示为"NTB"以求简明)与对应的NTB模块(例如NTB通信电路140B)通信,使节点100A和100B的数据和储存状态同步,并进一步使它们相同。相似地,关于节点100B及其对等节点(例如节点100A)之间的通信,该NTB模块(例如NTB通信电路140B)可用以藉由在节点100A和100B之间的该NTB路径(标示为"NTB"以求简明)与对应的NTB模块(例如NTB通信电路140A)通信,使节点100A和100B的数据和储存状态同步,并进一步使它们相同。尤其,诸如NTB通信电路140A和140B的NTB模块可以提供节点100A和100B之间一传输桥的功能以及分离节点100A和100B的各自的地址域以使节点100A和100B分别有彼此独立的地址域,以在没有任何地址冲突的情况下提供/加强节点100A和100B之间的通信。例如,节点100A和100B的各个总线可以符合快捷外设组件互联(Peripheral Component Interconnect Express,PCIe)标准,并且节点100A和100B中的每一节点的NTB模块可以被认为是该节点的一端点(endpoint),其中节点100A和100B可以透过该传输桥彼此通信和共享装置,但本发明不限于此。依据某些实施例,诸如NTB通信电路140A和140B的NTB模块可以透过客制化的网络接口电路来实现,以控制节点100A和100B彼此通信,使得它们就像正在透过网络接口电路进行通信一样。
在运行着程序模块112A的处理器110A和运行着程序模块112B的处理器110B的控制下,节点100A和100B可维持和监控NTB上的脉搏,以确定对等节点的可用性,以进行高可用性(High Availability,HA)控制。举例来说,节点100B可用以向节点100A发送脉搏信号,且节点100A可用以检测并监控来自节点100B的脉搏信号以确定节点100B的可用性,其中来自节点100B的脉搏信号是否存在可以指出节点100B是否可用(或健康程度)。对于另一个例子来说,节点100A可用以向节点100B发送脉搏信号,并且节点100B可用以检测并监控来自节点100A的脉搏信号以确定节点100A的可用性,其中来自节点100A的脉搏信号是否存在可以指出节点100A是否可用(或健康程度)。依据图1所示的架构,如图1所示,当节点100A和100B其中一个不可使用时,节点100A和100B其中的另一个可以继续为用户提供AFA伺服器100的储存服务。
需注意的是,AFA伺服器100配备了超过一个的节点间(inter-node)通信路径(例如节点之间的超过一个的相互通信路径)。除NTB路径外,AFA伺服器100还可配置为具有一个或多个其他通信路径,例如BMC 150A和150B之间的一BMC路径,其中BMC 150A可用以管理节点100A的硬件层的至少一部分(例如一部分或全部),而BMC 150B可用以管理节点100B的硬件层的至少一部分(例如一部分或全部)。关于节点100A及其对等节点(例如节点100B)之间的通信,BMC 150A可用以透过该BMC路径与BMC 150B通信以存取(例如读取或写入)暂存器电路152B中的一个或多个暂存器的一个或多个暂存器值,以在节点100B上进行状态检查操作等。相似地,关于节点100B及其对等节点(例如节点100A)之间的通信,BMC 150B可用以透过该BMC路径与BMC 150A通信以存取(例如读取或写入)暂存器电路152A中一个或多个暂存器的一个或多个暂存器值,以在节点100A上进行状态检查操作等。尤其,BMC 150A与BMC150B可独立地管理节点100A与100B的各自的硬件层,而不需要仰赖处理器110A与110B。举例来说,当处理器110A发生故障时,BMC 150A可以处理节点100A的未完成的工作,而当处理器110B发生故障时,BMC 150B可以处理节点100B的未完成的工作,但本发明不限于此。依据某些实施例,BMC 150A和150B可用以分别接管(take over)节点100A和100B,以进行紧急处理操作来减少数据遗失的机率。
依据本实施例,AFA伺服器100可以被配置为由多个类型的电源供电。节点100A和100B的每一节点可以包含至少一主电源(例如至少一电源供应器),用以于主电源处于正常电源状况下提供电力给该节点的其他组件。举例来说,节点100A的主电源可以供电给节点100A的主电路板,并且节点100B的主电源可以供电给节点100B的主电路板。当检测到一个或多个节点(例如节点100A及/或节点100B)的异常电源状况时,AFA伺服器100中的一个或多个相关的备用电源(例如备用电源单元170A及/或备用电源单元170B)可用以提供备用电力。举例来说,当节点100A的主电源发生电源故障时,备用电源单元170A可以供电给节点100A的主电路板(例如处理器110A、DRAM 120A、C2F SSD 122A、NTB通信电路140A、BMC150A、暂存器电路152A等),当节点100B的主电源发生电源故障时,备用电源单元170B可以供电给节点100B的主电路板(例如处理器110B、DRAM 120B、C2F SSD 122B、NTB通信电路140B、BMC 150B、暂存器电路152B等)。
依据某些实施例,节点100A和100B的每一节点(例如节点100A和100B的各自的主电路板中的每一节点)可以更包含多个感测器(sensor)/检测器(detector)用以至少对该节点的组件进行检测以产生检测结果(例如从这些传感器/检测器中的任一个所获得的状态信息)。举例来说,这些检测结果中的一功率检测结果可以表示该节点的主电源的功率状态,尤其,可以指出该节点是否发生异常电源状况,以供触发该节点启动备用电源(例如备用电源单元170A或备用电源单元170B)以提供备用电力。
图2依据本发明一实施例绘示图1所示的AFA伺服器100的某些实施细节,其中,可以将SSD 100S作为图1所示实施例中提到的多个SSD的例子。除了节点100A和100B以及SSD100S,AFA伺服器100可更包含一背板(backplane)电路100R。背板电路100R可用以将诸如SSD群组12A和12B的SSD 100S电气连接到节点100A和100B。举例来说,背板电路100R可以藉由具有相关连接器等的背板电路板来实现。另外,可以在背板电路100R内实现NTB通信电路140A和140B之间的该NTB路径的局部(partial)路径,以及BMC 150A和150B之间的该BMC路径的局部路径。由于该BMC路径和该NTB路径中的每一路径都不通过可能易于损坏的任何电缆,所以节点100A和100B之间的通信路径很稳健,且因此节点100A和100B可以保持有效的通信以及相关的控制,以确保AFA伺服器100的整体效能及正常运行。
依据某些实施例,SSD 100S中的每一SSD可以是一单埠(single port)SSD,尤其,可以是一单埠的基于装置的(device-based)SSD。另外,藉助于背板电路100R,AFA伺服器100可以支援SSD 100S中的每一SSD的热插拔。
依据某些实施例,两个节点100A和100B中的一个可以在AFA伺服器100的高可用性(High Availability简称HA)架构中用来作为一现用节点(active node),也就是扮演该现用节点的角色,并且两个节点100A和100B中的另一个可在AFA伺服器100的该HA架构中用来作为一待命节点(standby node),也就是扮演该待命节点的角色。诸如现用节点和待命节点的两个节点100A和100B可以彼此互动,尤其,可以藉由至少两条通信路径(诸如NTB通信电路140A和140B之间的NTB路径以及BMC 150A和150B之间的BMC路径)来交换节点信息,并且可以藉由NTB路径来同步数据,但本发明不限于此。依据某些实施例,AFA伺服器100可以配备有超过两个的节点间(inter-node)通信路径(例如节点之间的超过两个的相互通信路径)。
图3是依据本发明一实施例所绘示的如图1所示的AFA伺服器100的一双节点架构的示意图。依据本实施例,节点100A和100B可以被分别配置为该现用节点和该待命节点,但本发明不限于此。举例来说,节点100A和100B可以在需要时交换它们所扮演的角色。如图3所示,除了某些硬件(hardware,HW)组件诸如图1或图2所示的架构中的部分组件外,还可绘示某些软件(software,SW)程序/程序,例如HA框架程序、网络(Web)伺服器程序、数据库(database)程序、操作于一服务模式的储存控制模块程序以及操作于一待机模式的储存控制模块程序(分别标示为"HA框架"、"Web伺服器"、"数据库"、"于服务模式下的储存控制模块"以及"于待机模式下的储存控制模块"以求简明)以指出AFA伺服器100中的关联互动,其中,上述程序的名称分别代表其相关功能。
运行于节点100A上的软件程序(例如,HA框架程序,Web伺服器程序,数据库程序和操作于该服务模式的储存控制模块程序)可作为程序模块112A的例子,并且运行于节点100B上的软件程序(例如,HA框架程序,Web伺服器程序,数据库程序和操作于该待机模式的储存控制模块程序)可作为程序模块112B的例子,但本发明不限于此。另外,网络接口模块130A的该一个或多个网络接口电路可更包含网络接口电路136A,并且网络接口模块130B的该一个或多个网络接口电路可更包含网络接口电路136B。因此,AFA伺服器100可以配备有至少三个节点间(inter-node)通信路径(例如节点之间的至少三个相互通信路径),诸如NTB路径、BMC路径以及网络接口电路136A和136B之间的网络路径。举例来说,节点100A和100B可用以藉由NTB路径进行快取镜像(cache mirroring)操作,并透过BMC路径检查本地/远端控制器状态,以及藉由网络接口电路136A和136B之间的网络路径进行额外的通信操作。
图4是依据本发明一实施例所绘示的如图1所示的多个节点100A与100B的任一(例如每一)节点中的程序模块112的示意图。例如,程序模块112可以代表运行在节点100A的处理器110A上的程序模块112A或运行在节点100B的处理器110B上的程序模块112B。如图4所示,程序模块112可以包含某些主程序模块,例如储存协定及区块输入/输出(IO)接口模块、储存快取模块、储存池模块、储存服务连续HA模块、储存功能模块以及储存管理模块(分别标示为"储存协定及区块IO接口"、"储存快取"、"储存池"、"储存服务连续HA"、"储存功能"以及"储存管理"以求简明),其中这些主程序模块中的任一程序模块可以包含一个或多个子模块。另外,程序模块112中的某些程序模块之间的箭头指出这些程序模块可以彼此在各自所属的多个层的程序模块之间互动。举例来说,储存协定及区块IO接口模块可以被视为储存快取模块上方的一上层(例如一上层程序模块),储存池模块可以被视为储存快取模块下方一下层(例如一下层程序模块),储存功能模块和储存快取模块可被安排在一中间层以作为中间层程序模块,其中储存协定及区块IO接口模块以及储存池模块可用以与客户端装置和SSD群组互动,但本发明不限于此。当需要时,该节点可以触发其他程序模块与这些程序模块中的一个或多个进行互动。
储存协定及区块IO接口模块可以包含某些子模块诸如小型计算机系统接口(Small Computer System Interface,简称SCSI)模块、互联网SCSI(Internet SCSI,简称iSCSI)模块和区块装置(Block Device)模块(分别标示为"SCSI"、"iSCSI"和"区块装置"以求简明)。储存快取模块可以包含某些子模块诸如使用软件实现的永久存储器(PersistentMemory using SW implementation)模块和写入缓冲模块(Write Buffer module;也可称为"写入缓冲器模块"),于图中分别标示为"永久存储器(软件实现)"和"写入缓冲"以求简明。储存池模块可以包含一子模块诸如快闪存储器阵列(Flash Array)模块(为简便起见标示为"快闪存储器阵列")。储存服务连续HA模块可以包含一子模块诸如HA框架模块(标示为"HA框架"以求简明)。储存功能模块可以包含某些子模块诸如卷管理器(VolumeManager)模块和数据减少模块(分别标示为"卷管理器"和"数据减少"以求简明),其中数据减少模块可以包含某些子模块诸如压缩引擎(Compression Engine)模块和重复数据删除引擎(Deduplication Engine)模块,可以分别称为"压缩引擎"和"重复数据删除引擎"。储存管理模块可以包含某些子模块诸如网络(Web)用户界面(User Interface,UI)模块、应用程序编程接口(Application Programming Interface,API)伺服器模块、请求代理(Request Broker)模块和数据库模块(分别标示为"网络UI"、"API伺服器"、"请求代理"和"数据库"以求简明)。上列模块的名称分别指出其相关功能。为了便于理解,对某一模块诸如卷管理器模块、压缩引擎模块、重复数据删除引擎模块等而言,某些实施例中所提到的咨询(consult)该模块的操作可包含对这个模块进行呼叫、查询等操作以从它取得对应的处理结果,但本发明不限于此。
依据某些实施例,AFA伺服器100(例如,该现用节点,诸如节点100A和100B的其中之一)可用以从AFA伺服器100外部的客户端装置接收请求诸如写入请求、读取请求等,并分别因应这些请求来操作。
图5是依据本发明一实施例所绘示的一种用以进行一AFA伺服器诸如图1所示的AFA伺服器100的高可用性管理的方法的一写入控制方案的示意图。该方法可以应用于图1所示的AFA伺服器100。为了更好地理解,节点100A和100B可以分别用来作为该现用节点和该待命节点,尤其分别扮演该现用节点和该待命节点的角色,但本发明不限于此。因应写入请求,现用节点(例如节点100A和100B的其中之一,诸如在本实施例中的节点100A)可以利用写入缓冲模块来接收对应于写入请求的数据(例如4千位元组(kilobytes,KB)数据,可称为"4KB数据"以求简明),并在步骤S01中将该数据写入(例如缓冲)至其写入缓冲器(例如该节点的DRAM)中,且于步骤S02中藉由NTB路径将该数据诸如4KB数据镜像到待命节点(例如节点100A和100B中的另一个,诸如在本实施例中的节点100B),并且于步骤S03中对用户的客户端装置发送与写入请求相对应的一确认(acknowledgement,Ack)。由于数据已被镜像到远端侧(例如在本实施例中的DRAM 120B),所以镜像的数据由待命节点(例如其写入缓冲模块)所保护。
针对现用节点的后续操作,在步骤S04中,对于每一4KB数据查询(query),写入缓冲模块可以使用卷管理器模块来为该数据获取或分配(allocate)一储存池逻辑区块地址(storage pool logical block address,SLBA)。在步骤S05中,写入缓冲模块可以咨询重复数据删除引擎以对该数据进行重复数据删除功能。在步骤S06中,写入缓冲模块可以咨询压缩引擎以对数据进行压缩功能。在步骤S07中,当该DRAM(例如本实施例中的DRAM 120A)中的缓冲数据(例如待写入的数据)的数据量达到预定临界值时,例如,现用节点已经收集了N组压缩数据,并且该N组压缩数据的总数据量适合被储存为一全条带(full stripe),现用节点可以利用快闪记体阵列模块将该N组压缩数据(可以称为N个压缩数据以求简明)聚合(aggregate)成该全条带。举例来说,该全条带可以表示包含预定数量的组块(chunk)(例如十二个组块)的一条带,其中这些组块可以包含一第一预定数量的数据组块(例如十个数据组块)和一第二预定数量的奇偶校验组块(例如两个奇偶校验组块)。在步骤S08中,在收集一个或多个条带诸如一预定数量的条带(例如:一个条带、两个条带、三个条带、四个条带等例子中的任一者,可依据于该方法中的各种控制方案来决定)之后,现用节点可以利用写入缓冲模块将阵列信息诸如一SLBA阵列(SLBA所组成的阵列)、一压缩数据阵列(压缩数据所组成的阵列)等(例如该SLBA阵列与该压缩数据阵列所组成的一阵列:{SLBA阵列,压缩数据阵列})提交给快闪存储器阵列模块(或储存池模块),以供编写(尤其,写入)该一个或多个条带。在步骤S09中,快闪存储器阵列模块可以对各个碟(例如,现用节点的SSD群组,诸如本实施例中的SSD群组12A)进行条带写入操作。举例来说,由于该压缩引擎已在步骤S06中进行了压缩功能,因此4KB空间包含多个SLBA的各自的压缩数据。
在进行如图5所示的步骤S01至S09的操作之后,现用节点可以将相关的管理信息发送到待命节点以更新待命节点中的管理信息,以使待命节点在需要时能够替换现用节点以继续为用户提供AFA伺服器100的储存服务。举例来说,在步骤S10中,现用节点的卷管理器模块可以将卷管理器模块的重映射表同步(例如更新和发送)到待命节点存储器(例如待命节点的存储器),以控制(例如产生、更新等)由卷管理器模块所管理的某些映射关系。在步骤S11中,现用节点的快闪存储器阵列模块可以向待命节点快闪存储器阵列(例如待命节点的快闪存储器阵列模块)发出重映射表更新指令,以将快闪存储器阵列模块的重映射表更新至待命节点存储器(例如待命节点的存储器),以控制(例如产生、更新等)由快闪存储器阵列模块所管理的某些映射关系。如上所述,现用节点能够因应写入请求来进行这些操作;现用节点还能够因应读取请求来进行相关操作以复原(recover)该数据,举例来说,依据分别由卷管理器模块和快闪存储器阵列模块所管理的映射关系,其中,在后续的某些实施例中将描述针对管理这些映射关系的某些实施细节。
如图5的上半部所示,藉助于软件模拟,节点100A和100B中的任一节点(例如,每一节点)可以包含基于该多个节点中的另一个节点的一模拟永久存储器(emulatedpersistent memory;也可以称为PMem以求简明),其中PMem可以操作在NTB路径上,且因此可被视为基于NTB的PMem。举例来说,该任一节点诸如节点100A可以扮演现用节点的角色,而另一节点诸如节点100B可以扮演待命节点的角色。当现用节点的主电源的电源故障发生(例如节点100A和100B各自的主电源这两者的电源故障都发生)时,现用节点可以将其DRAM中的现有信息(例如:缓冲数据、管理表等)刷新到内部非挥发性存储器(Non-VolatileMemory简称NVM)储存装置(例如:现用节点的C2F SSD,诸如本实施例中的C2F SSD 122A)和PMem这两者。尤其,由于这些节点中的每一节点都配备有自己的内部NVM储存装置和PMem,待命节点可以将其DRAM中的刷新自现用节点的现有信息(例如,刷新自现用节点的缓冲数据、管理表等)刷新到内部NVM储存装置(例如:待命节点的C2F SSD,诸如本实施例中的C2FSSD 122B)中。
对于现用节点,虽然基于NTB的PMem中的DRAM 120A和120B是挥发性存储器,AFA伺服器100可以藉助于软件模拟将基于NTB的PMem利用作为永久存储器,这是因为在其写入缓冲模块控制下操作的待命节点可以保护刷新自现用节点的任何现有信息。当发生电源故障时,现用节点可以将其DRAM中的现有信息刷新到内部NVM储存装置诸如符合M.2规范的多个NVM储存装置的其中之一当中,且藉由将现有信息通过NTB路径发送到待命节点的DRAM,可以将其DRAM(现用节点本身的DRAM)中的现有信息刷新到PMem中。如此一来,待命节点可以将其DRAM中的现有信息刷新到其内部NVM储存装置(例如,符合M.2规范的多个NVM储存装置的其中之一)当中。
依据某些实施例,节点100A和100B可以从现用节点和待命节点的角色互相交换,并且可以进行如上所述的关于节点100B和100A的相对应的操作。为了简明起见,于这些实施例中类似的内容在此不重复赘述。
依据某些实施例,在用AFA伺服器100来实现的高可用性(HA)架构中,两个节点100A和100B诸如现用节点和待命节点可以彼此互动以藉由BMC路径和NTB路径交换节点信息。尤其,两个节点100A和100B中的任一节点(例如,每一节点)可以包含安装在主电路(例如,主电路板,具有某些硬件(HW)组件于其上,如图1所示的实施例和某些相关实施例中所述)上的一或多个储存装置,诸如包含NVM(例如快闪存储器)的一或多个非挥发性存储器(NVM)储存装置。在该一或多个NVM储存装置的NVM储存装置数量大于一的情况下,该一或多个NVM储存装置可以包含多个如上所述的NVM储存装置。例如,该一或多个NVM储存装置可以符合M.2规范,且可以被实现为这个节点的一或多个内部安装的扩充卡,但本发明不限于此。另外,当发生电源故障时,该节点的AFA中的一或多个下层诸如SSD可能无法使用,该节点的主电路以及这个主电路的硬件组件(例如,处理器、DRAM、BMC、暂存器等)可以使用该主电路的备用电源(例如电池)作为其电源,且该节点(例如,在处理器上运行的软件模块,例如程序模块112A或112B)可以进行一C2F操作以保存任何待保护的信息(或任何要保护的信息),诸如暂时储存在该节点中的DRAM的缓冲数据等以及暂时储存在该节点的暂存器电路的暂存器中的节点信息等,尤其将该任何待保护的信息存入该一或多个NVM储存装置中以防止数据丢失。例如,该节点的C2F SSD可以包含符合M.2规范的该一或多个NVM储存装置。
图6是依据本发明一实施例所绘示的用于进行该AFA伺服器的高可用性管理的方法的一角色决定控制方案的示意图。在软件层(例如,软件模块,诸如HA框架模块等)的控制下,两个节点100A和100B中的任一节点(例如每一节点)可用以依据该角色决定控制方案来决定该节点的角色。尤其,该节点的HA框架模块(例如HA框架程序)可以决定该节点的角色是现用节点还是待命节点,但本发明不限于此。举例来说,该节点的HA框架模块可以进一步控制该服务的启动和停止顺序,并监控组件状态,并且在发生任何故障时进行错误处置,其中该错误处置的操作可以包含进行故障转移控制、进行C2F操作以及产生/输出警告(例如,一或多个相关的警告消息)。
在步骤S20中,该节点可以检查(例如读取)一独立运转(standalone)旗标(flag)STANDALONE以产生一检查结果,其中这个检查结果可以指出该节点是否处于独立运转状态。
在步骤S21中,该节点可以依据步骤S20的检查结果来决定该节点是否处于独立运转状态。如果该节点处于独立运转状态(例如,STANDALONE=True,其中"True"表示旗标的逻辑值诸如1指出逻辑上的"真"),进入步骤S22;否则(例如STANDALONE=False,其中"False"表示旗标的逻辑值诸如0指出逻辑上的"伪"),进入步骤S23。
在步骤S22中,该节点可以决定节点的角色是现用节点(标示为"现用"以求简明)。
在步骤S23中,节点可以检查针对符合M.2规范的该一或多个NVM储存装置的至少一M.2状态(标示为"检查M.2"以求简明)以产生至少一检查结果(例如一或多个检查结果),其中该至少一检查结果可以指出至少一M.2槽(例如,用于安装该一或多个NVM储存装置的一或多个M.2配对连接器)是否为空的,尤其是对于M.2插槽不是空的情况,指出该一或多个NVM储存装置是处于一待命状态还是处于一现用状态。
在步骤S24中,依据步骤S23的上述至少一检查结果,该节点可以判断该M.2槽是否为空的(标示为"M.2为空"以求简明),尤其是对于该M.2槽不是空的的情况,决定该一或多个NVM储存装置是处于待命状态还是处于现用状态。如果该M.2槽是空的,进入步骤S33;否则,如果该一或多个NVM储存装置处于现用状态,进入步骤S29;否则(例如该一或多个NVM储存装置处于待命状态),进入步骤S25。
在步骤S25中,该节点可以检查(例如读取)一完成旗标COMPLETE_FLAG以产生一检查结果,其中这个检查结果可以指出该节点是否已经完成一C2F操作诸如先前实施例中提到的C2F操作。
在步骤S26中,该节点可以依据步骤S25的检查结果来判断该节点是否已经完成了C2F操作。如果该节点已经完成了C2F操作(例如,COMPLETE_FLAG=True),进入步骤S27;否则(例如COMPLETE_FLAG=False),进入步骤S28。
在步骤S27中,该节点可以确定该节点的角色是待命节点(标示为"待命"以求简明)。
在步骤S28中,该节点可以确定该节点的角色是待命节点(标示为"待命"以求简明)。
在步骤S29中,该节点可以检查(例如读取)完成旗标COMPLETE_FLAG以产生一检查结果,其中这个检查结果可以指出该节点是否已经完成一C2F操作诸如先前实施例中提到的C2F操作。
在步骤S30中,该节点可以依据步骤S29的检查结果来判断该节点是否已经完成了C2F操作。如果该节点已经完成了C2F操作(例如,COMPLETE_FLAG=True),进入步骤S31;否则(例如COMPLETE_FLAG=False),进入步骤S32。
在步骤S31中,该节点可以确定该节点的角色是现用节点(标示为"现用"以求简明)。
在步骤S32中,该节点可以确定该节点的角色是待命节点(标示为"待命"以求简明)。
在步骤S33中,该节点可以查询该节点的硬件层的硬件(HW)角色(标示为"查询硬件角色"以求简明),以产生一检查结果,其中这个检查结果可以指出该节点为一主节点(master node)或一从属节点(slave node)。为了更好地理解,假设两个节点100A和100B已被预先分别定义为主节点和从节点,例如,藉由两个节点100A和100B的各自的预定设定,但本发明不限于此。如此一来,当满足至少一预定条件(例如一或多个预定条件)时,两个节点100A和100B被预设为可分别扮演现用节点及待命节点的角色。
在步骤S34中,该节点可以依据步骤S33的该检查结果来决定该节点是主节点还是从属节点。如果该节点是主节点,进入步骤S35;否则(例如,该节点是从属节点),进入步骤S36。
在步骤S35中,该节点可以确定节点的角色是现用节点(标示为"现用"以求简明)。
在步骤S36中,该节点可以确定节点的角色是待命节点(标示为"待命"以求简明)。
为了更好的理解,该方法可以用图6所示的工作流程来说明,但本发明不限于此。依据某些实施例,一个或多个步骤可于图6所示的工作流程中增加、删除或修改。
依据某些实施例,两个节点100A和100B中的任一节点(例如,每一节点)的BMC可以在软件层(例如,软件模块诸如连接器、HW/主机板管理器等)的控制下操作,以在需要时存取上述暂存器中的任何暂存器(例如,读取或写入一节点信息)。
举例来说,可以用一变迁图来说明角色和状态的转变,其中状态可以藉由该BMC路径同步,且数据及状态可以藉由NTB路径同步。该节点信息可以包含监控信息(例如状态),且该节点可以将该监控信息分类为多个类型,以分别进行对应于该多个类型的操作(例如,针对类型A进行输出警告、针对类型B进行C2F操作、针对类型C进行触发故障转移、针对类型D进行设定独立运转等)。举例来说,该监控信息(例如状态)可以包含经由该节点中(例如主电路中)的感测器/检测器所检测到的状态。为了更好地理解,某些用语诸如UI、DB、SMIStor、PSU、Pmem、FA以及SDR可以分别代表用户界面(例如,UI软件/程序模块诸如图4右上方所示的Web UI模块)、数据库(Database,可简称DB)(例如DB软件/程序模块诸如图4右上方所示的数据库模块)、AFA系统(例如AFA软件/程序模块诸如图3所示节点100A和100B中的对应节点的储存控制模块),电源供应单元(Power Supply Unit)(例如图1所示实施例的上述至少一个主电源)、永久存储器(Persistent memory,可简称Pmem)(例如Pmem软件/程序模块诸如图4左侧的中间所示的永久存储器、图5的上半部所示的基于NTB的PMem等)、快闪存储器阵列(Flash Array,可简称FA)(例如,FA软件/程序模块诸如在图4的左下方所示的快闪存储器阵列模块)以及感测器数据记录(Sensor Data Record)(例如,从节点中的感测器/检测器所获得的感测器数据的一或多个记录)。举例来说,该DB可以记录可供该UI使用的用户动作信息(例如用户动作的历史信息)。另外,某些软件组件(诸如资源)可包含硬件(HW)管理器等。在这些资源的动作中,动作"降级"(demote)可释放或放弃现用节点的角色,而动作"升级"(promote)可将节点的角色从待命(例如待命节点)更改为现用(例如现用节点)。
图7是依据本发明一实施例所绘示的用于进行AFA伺服器的高可用性管理的方法的一角色信息交换控制方案的示意图。在软件层(例如软件模块诸如HA框架模块等)的控制下,两个节点100A和100B中的任一节点(例如每一节点)可以被配置为依据该角色信息交换控制方案来交换角色信息。举例来说,两个节点100A和100B可以藉由上述至少两个通信路径诸如在图1中所示的NTB通信电路140A和140B之间的NTB路径(在图1和图7中标示为“NTB”以求简明)以及在图1中所示的BMC 150A和150B之间的BMC路径来交换角色信息。在图7中未绘示某些硬件组件(诸如NTB通信电路140A和140B以及BMC 150A和150B)以求简明。
如图7所示,在节点100A的处理器110A上运行的程序模块112A可以包含一连接器模块(标示为"连接器"以求简明)用以控制针对两个节点100A和100B之间的连接的一部分操作,且在节点100B的处理器110B上运行的程序模块112B可以包含一连接器模块(标示为"连接器"以求简明)用以控制针对两个节点100A和100B之间的连接的另一部分操作,其中两个节点100A和100B的各自的连接器模块中的每一连接器模块可以包含多个子模块,例如一NTB通道模块、一BMC伺服器模块以及一BMC客户端模块(标示为"NTB通道"、"BMC伺服器"以及"BMC客户端"以求简明)。举例来说,节点100A的连接器模块可以控制NTB通信电路140A藉由NTB路径与NTB通信电路140B通信,且节点100B的连接器模块可以控制NTB通信电路140B藉由NTB路径与NTB通信电路140A进行通信,就如对应于该NTB路径的某些角色信息交换路径(例如,节点100A的NTB通道模块和NTB路径之间的角色信息交换路径以及节点100B的NTB通道模块和NTB路径之间的角色信息交换路径)所展示。如此一来,两个节点100A和100B可用以藉由NTB路径交换角色信息(例如,指出节点100A角色的信息和指出节点100B角色的信息)。
在节点100A的处理器110A上运行的程序模块112A可以进一步包含另一个程序模块,诸如其HW管理器模块(在图7中所示的节点100A中标示为"HW管理器"以求简明)用以控制某些HW组件诸如节点100A的BMC 150A、暂存器电路152A等,而在节点100B的处理器110B上运行的程序模块112B可以进一步包含另一个程序模块,诸如其HW管理器模块(在图7中所示的节点100B中标示为"HW管理器"以求简明)用以控制某些HW组件诸如节点100B的BMC150B、暂存器电路152B等。举例来说,节点100A的BMC伺服器模块可以藉由节点100A的HW管理器模块控制BMC 150A,以写入节点100B的暂存器电路152B的至少一暂存器(例如8位元暂存器),就如针对暂存器写入的某些角色信息交换路径(例如,节点100A的BMC伺服器模块和HW管理器模块之间的角色信息交换路径以及节点100A的HW管理器模块和节点100B的8位元暂存器之间的角色信息交换路径)所展示。相似地,节点100B的BMC伺服器模块可以藉由节点100B的HW管理器模块控制BMC 150B,以写入节点100A的暂存器电路152A的至少一暂存器(例如8位元暂存器),就如针对暂存器写入的某些角色信息交换路径(例如,节点100B的BMC伺服器模块和HW管理器模块之间的角色信息交换路径以及节点100B的HW管理器模块和节点100A的8位元暂存器之间的角色信息交换路径)所展示。另外,节点100A的BMC客户端模块可以藉由节点100A的HW管理器模块控制BMC 150A,以读取节点100A的暂存器电路152A的上述至少一暂存器(例如8位元暂存器),尤其是当需要时对其进行清除,就如针对暂存器读取和清除的某些角色信息交换路径(例如,节点100A的BMC客户端模块与HW管理器模块之间的角色信息交换路径以及节点100A的HW管理器模块与8位元暂存器之间的角色信息交换路径)所展示。相似地,节点100B的BMC客户端模块可以藉由节点100B的HW管理器模块控制BMC150B,以读取节点100B的暂存器电路152B的上述至少一暂存器(例如8位元暂存器),尤其是当需要时对其进行清除,就如针对暂存器读取和清除的某些角色信息交换路径(例如,节点100B的BMC客户端模块与HW管理器模块之间的角色信息交换路径以及节点100B的HW管理器模块与8位元暂存器之间的角色信息交换路径)所展示。
当决定了节点100A的角色时,节点100A可以藉由上述至少二通信路径(例如,NTB路径和BMC路径)中的任一条路径将指出节点100A的角色的信息发送到节点100B,例如使用对应于NTB路径的角色信息交换路径及/或使用针对暂存器写入的对应的角色信息交换路径以及针对暂存器读取和清除的对应的角色信息交换路径,以将节点100A的角色通知节点100B。相似地,当决定了节点100B的角色时,节点100B可以藉由上述至少二通信路径(例如,NTB路径和BMC路径)中的任一条路径将指出节点100B的角色的信息发送到节点100A,例如使用对应于NTB路径的角色信息交换路径及/或使用针对暂存器写入的对应的角色信息交换路径以及针对暂存器读取和清除的对应的角色信息交换路径,以将节点100B的角色通知节点100A。如此一来,两个节点100A和100B可以被配置成藉由BMC路径交换角色信息(例如,指出节点100A角色的信息和指出节点100B角色的信息)。
依据某些实施例,两个节点100A和100B的其中之一可用以决定两个节点100A和100B中的另一个节点的角色。在这种情况下,当决定节点100B的角色时,节点100A可以藉由上述至少二通信路径(例如,NTB路径和BMC路径)中的任何一条路径将指出节点100B角色的信息发送给节点100B,例如使用对应于NTB路径的角色信息交换路径及/或使用针对暂存器写入的对应的角色信息交换路径以及针对暂存器读取和清除的对应的角色信息交换路径,以将节点100B的角色通知节点100B。相似地,当决定节点100A的角色时,节点100B可以藉由上述至少二通信路径(例如,NTB路径和BMC路径)中的任何一条路径将指出节点100A角色的信息发送给节点100A,例如使用对应于NTB路径的角色信息交换路径及/或使用针对暂存器写入的对应的角色信息交换路径以及针对暂存器读取和清除的对应的角色信息交换路径,以将节点100A的角色通知节点100A。如此一来,两个节点100A和100B可被配置成藉由BMC路径交换角色信息(例如,指出节点100A角色的信息和指出节点100B角色的信息)。
依据某些实施例,如果发生角色冲突,则两个节点100A和100B中的至少一节点可以利用该UI来输出一或多个提示以引导用户手动设定两个节点100A和100B的各自的角色。
表1
Figure BDA0002899691410000201
Figure BDA0002899691410000211
表1展示针对两个节点100A和100B中的任一节点的角色和状态的某些例子以及有关的描述,其中现用和待命可以分别表示现用节点的角色和待命节点的角色。当该节点正在扮演现用节点的角色时,该节点的状态的例子可以包含(但不限于):运行状态,其中现用节点的系统正常且正确地运行;独立运转状态,其中仅现用节点服务(就是现用节点的服务)可用;停止状态,其中现用节点的服务正停止;降级状态,其中当现用节点发生故障时,现用节点开始进行故障转移以释放现用节点的角色;以及C2F状态,其中于现用节点正在进行一C2F操作诸如上述的C2F操作,以将存储器数据(例如现用节点的DRAM中的数据)复制到现用节点中的符合M.2规范的该一或多个NVM储存装置(例如快闪存储器)(标示为"快闪(M.2)"以更好理解)。当该节点正在扮演待命节点的角色时,该节点的状态的例子可以包含(但不限于):运行状态,其中待命节点的系统正常且正确地运行;不同步(Out of Sync)状态,其中待命节点仅保留现用节点的旧数据,并且需要从现用节点同步现用节点的最新数据(例如,最新版本的数据)以使储存在待命节点中的数据等于现用节点中储存的最新数据;异常状态,其中当待命节点发生故障时,该待命节点无法提供任何服务(例如,将最新数据从现用节点同步到待命节点的服务);升级状态,其中待命节点接管服务以改变其角色;以及C2F状态,其中于待命节点正在进行一C2F操作诸如上述的C2F操作,以将存储器数据(例如待命节点的DRAM中的数据)复制到待命节点中的符合M.2规范的该一或多个NVM储存装置(例如快闪存储器)(标示为"快闪(M.2)"以更好理解)。
图8是依据本发明一实施例所绘示的用于进行AFA伺服器的高可用性管理的方法的一角色与状态转变控制方案的示意图。在软件层(例如,软件模块,例如HA框架模块等)的控制下,两个节点100A和100B的任一节点(例如,每一节点)可用以依据该角色和状态转变控制方案以进行角色和状态转变控制。
在步骤S40,该节点可进行初始化(例如该节点的系统的初始化)。
在步骤S41A中,在该节点的角色已被定义为现用节点之后,该节点可以进行现用初始化(例如,有关现用节点的角色的初始化)。
在步骤S41B中,在该节点的角色已被定义为待命节点之后,该节点可以进行待命初始化(例如,有关待命节点的角色的初始化)。
在步骤S42A中,在该节点诸如现用节点已被初始化之后,该节点可以在现用节点的角色的独立运转状态下进行操作(标示为"现用独立运转"以求简明)。
在步骤S42B中,在该节点诸如待命节点已被初始化之后,该节点可以在待命节点的角色的不同步状态下进行操作(标示为"待命不同步"以求简明),这是由于此时待命节点可能与现用节点不同步(标示为"待命已不同步"以求简明)。
在步骤S43A中,当该节点诸如现用节点已将储存在现用节点中的最新数据同步到待命节点时,该节点诸如现用节点可以在现用节点的角色的运行状态下进行操作(标示为"现用运行"以求简明)。例如,当该节点诸如现用节点不能将储存在现用节点中的最新数据同步到待命节点时,进入步骤S42A。
在步骤S43B中,当该节点诸如待命节点已同步来自现用节点的最新数据以使储存在待命节点中的数据等于储存在现用节点中的最新数据时,该节点可以在待命节点的角色的运行状态下进行操作(标记为"待命运行"以求简明)。例如,当待命节点变得相对于现用节点不同步时(标示为"待命已不同步"以求简明),进入步骤S42B。
在步骤S44A中,当该节点诸如现用节点检测到其故障时,该节点可以在现用节点的角色的降级状态进行操作(标示为"现用降级"以求简明)。
在步骤S44B中,当检测到现用节点发生故障(标记为"现用故障"以求简明)时,该节点诸如待命节点可以在待命节点的角色的升级状态(标示为"待命升级"以求简明)进行操作。如图8所示,从步骤S44B指向步骤S43A的箭头指出,当该节点诸如待命节点将其角色更改为现用节点的角色时(标示为"角色更改为现用"以求简明),这个节点变为两个节点100A和100B中最新的现用节点。
在步骤S45A中,当该节点诸如现用节点停止工作时(例如,该节点可以停止其HA框架模块),该节点可以进入现用节点的角色的停止状态(标示为"现用停止"以求简明),其中该节点停止其服务。然后该节点可以自动重新启动。
在步骤S45B中,当该节点诸如待命节点停止工作时(例如,该节点可以停止其HA框架模块),该节点可以进入待命节点的角色的停止状态(标示为"待命停止"以求简明),其中该节点停止其服务。然后该节点可以自动重新启动。
在步骤S46中,当该节点诸如待命节点检测到其故障时,该节点可以在待命节点的角色的异常状态下进行操作(标示为"待命异常"以求简明)。举例来说,如果该节点诸如待命节点停止工作(例如,该节点可以停止其HA框架模块),进入步骤S45B;否则,进入步骤S42B。
依据某些实施例,两个节点100A和100B中的任一节点(例如每一节点)可被配置成依据图8所示的工作流程来监控该节点的状态,尤其,对该节点的多个类型的资源进行资源管理。为了便于理解,HA框架模块所管理的任何组件(例如软件组件)可被称为资源。可应用于资源的动作的例子包含(但不限于):开始(例如启用(enable))、停止(例如禁用(disable))、降级(例如使资源变为非现用状态;尤其,对于该节点的整体来说,释放或放弃现用节点的角色)、升级(例如使资源变为现用;尤其,对于该节点的整体来说,将其角色从待命更改为现用)、C2F(例如进行C2F操作)、设定独立运转(例如将该节点诸如现用节点设定为向用户提供服务,而不将储存在现用节点中的最新数据同步/复制到待命节点)以及取消独立运转(例如,将该节点诸如现用节点设定为向用户提供服务,且同时能够将现用节点中储存的最新数据同步/复制到待命节点)。
依据某些实施例,该多个类型的资源可以包含VIP、MGMT、SMIStor以及HW管理器。该VIP代表AFA伺服器100的虚拟(Virtual)互联网协定(Internet Protocol,简称IP)地址,其中用户的客户端装置可藉由该VIP存取AFA伺服器100,且现用节点可以将在该VIP的请求转换为在现用节点的真实IP地址的请求。该MGMT代表管理模块,并且可以操作以作为用户管理的前端,其中,该MGMT可以包含该UI(例如UI软件/程序模块,诸如图4所示的网络UI模块、图3所示的节点100A和100B的其中之一的网络伺服器程序等)、该DB(例如DB软件/程序模块诸如图4所示的数据库模块、图3所示的节点100A和100B的其中之一的数据库程序等)以及中介程序(Middleware)(例如,图4中所示的API伺服器模块、图3中所示的节点100A和100B的其中之一的API中介程序等),其中该UI可被配置成和AFA伺服器100的用户进行互动,例如,藉助于互动式面板、视窗、时序图等,该DB可被配置成储存和管理AFA伺服器100的历史信息,例如,关于AFA伺服器100的各种功能,且该中介程序可被配置成管理各种请求(例如,来自客户端装置、用户等的请求),但本发明不限于此。另外,该SMIStor代表SMI储存模块,且可以操作以作为内部管理的后端,该内部管理例如卷(volume)管理(例如建立卷)、快照(snapshot)管理(例如创建快照)等,其中该SMIStor可以包含AFA软件/程序模块诸如图3中所示的节点100A和100B的其中之一的储存控制模块。此外,硬件(hardware,HW)管理器代表上述的HW管理器诸如HW管理器模块,其中该硬件管理器可被设置以管理硬件(例如,硬件层中的各种组件,诸如在该节点的主电路板上的BMC、暂存器电路、感测器/检测器等)。举例来说,该节点可以利用该硬件管理器从感测器/检测器获得感测/检测结果,以监控该节点中的一或多个类型的状态。
图9是依据本发明一实施例所绘示的用于进行AFA伺服器的高可用性管理的方法的一监控器与轮询器控制方案的示意图,以及图10是依据本发明一实施例所绘示的如图9所示的该监控器与轮询器控制方案的某些实施细节的示意图。在软件层(例如,软件模块诸如HA框架模块等)的控制下,两个节点100A和100B中的任一节点(例如每一节点)可用以依据该监控器与轮询器控制方案来进行监控器与轮询器控制。如图9所示,该节点的一监控器和轮询器模块包含多个子模块,例如仲裁器(arbiter)、一组轮询器(poller)(例如A轮询器、B轮询器等)以及分别对应于该组轮询器的相关的监控器(例如A监控器、B监控器、C监控器、D监控器等),其中该监控器和轮询器模块(例如其多个子模块)属于在这个节点的处理器上运行的程序模块(例如,在节点100A的处理器110A上运行的程序模块112A,或是在节点100B的处理器110B上运行的程序模块112B,取决于这个节点是节点100A还是节点100B)。该节点的HA框架模块可以利用在该节点上运行的这些程序模块中的该监控器和轮询器模块来监控AFA伺服器100的该多个类型的资源,其中,在该节点上运行的这多个程序模块包含硬件(HW)管理器(例如图7所示的节点100A和100B的其中之一中的HW管理器模块),并且该硬件管理器可被配置成管理该任一节点的硬件层中的多个硬件组件,使该任一节点(例如,该监控器和轮询器模块)藉由硬件管理器可以获得针对该多个类型的资源的相关监控结果中的至少一部分,诸如至少一部分相关监控结果(例如,A状态、B状态程序、事件等)。另外,该节点的HA框架模块可以控制该节点将监控信息分类为多个监控信息类型,以进行分别对应于该多个监控信息类型的多个候选操作中的至少一操作,其中,该监控信息可以包含针对该多个类型的资源的所述相关监控结果,并且针对该多个类型的资源的所述相关监控结果的该至少一部分可以包含一远端节点的远端节点信息,其中该远端节点可以代表于两个节点100A和100B中的异于该任一节点的另一节点。举例来说,该节点的HA框架模块可利用仲裁器依据针对该多个类型的资源的所述相关监控结果(例如,A状态、B状态程序、事件等)来决定该节点的角色和状态,利用这些监控器对该多个类型的资源进行监控,并且利用该组轮询器对这些监控器进行轮询(polling)。
如图9所示的该监控器和轮询器模块的架构仅用于说明目的,并非作为本发明的限制。例如,对于该多个类型的资源中的每一资源,提供一或多个监控器以监控所述每一资源的资源健康(或健康度),并且提供对应于该一或多个监控器的一或多个轮询器以轮询该一或多个监控器的一或多个监控结果,并将对应于该一或多个监控结果的一或多个事件报告回传给该仲裁器。尤其,该多个类型的资源中的每一资源可配备一或多个监控器负责监控这个资源的资源健康,并且可配备自己的一或多个轮询器(例如对应于该一个或多个监控器的该一或多个轮询器)以供轮询(例如,依据某些要求周期性地或间歇地查询)该一或多个监控器的一或多个监控结果,并将对应于该一或多个监控结果的一个或多个事件报告回传给该仲裁器,并且该组轮询器中的任一轮询器可用以轮询该监控器和轮询器模块中的这些监控器中的至少一监控器,其中该仲裁器可用来为该HA框架模块决定该节点的最新角色和最新状态(诸如该节点的上述角色和上述状态的各自的最新版本),而这决定可依据针对该多个类型的资源的上述相关监控结果,尤其,依据包含该远端节点(例如,两个节点100A和100B中的另一节点)的角色和至少一状态以及该一或多个事件报告的相关监控结果,以使该HA框架模块控制该节点有效率地进行相关的候选操作诸如接管、故障转移、C2F、裂脑(split brain)管理等的其中的至少一操作,因此提高了AFA伺服器100的整体效能,但本发明不限于此。依据某些实施例,该HA框架模块可以利用其内的资源管理器来管理(例如,操作;尤其,启动、停止、重新启动等)该节点内的资源,并利用该节点的连接器模块,与该远端节点通信以获得该远端节点的状态。
如图10所示,某些虚线的箭头指出,该节点(例如目前节点)的上述监控器诸如至少一监控器用于监控UI/DB服务状态、至少一监控器用于监控数据埠链接(data portlink)、至少一监控器用于监控SMIStor程序、至少一监控器用于监控SMIStor数据镜像状态、至少一监控器用于监控FA碟状态、至少一监控器用于监控BMC SDR、至少一监控器用于监控PSU状态等可被配置成,为该HA框架模块,分别监控该多个类型的资源诸如UI/DB、数据网络、SMIStor(例如SMIStor程序)、对应于NTB路径的上述角色信息交换路径中的至少一角色信息交换路径(标示为"NTB"以求简明)、从SMIStor到安装在背板电路100R上的对应的SSD群组(例如,SSD群组12A或SSD群组12B)(标示为"背板NVMe碟"以更好地理解)的至少一条控制路径、BMC、PSU等,以及针对故障处置的一些例子指出HA框架模块可被配置成分别进行相关的故障处置操作诸如警告、故障转移、故障转移、设定独立运转、C2F、警告、C2F等,其中该监控信息可包含该多个类型的资源的各自的状态信息,诸如系统信息、状态、事件等。这些监控器所监控的组件的例子可进一步包含:BMC暂存器,诸如藉由BMC 150A和150B来存取的暂存器电路1152A和152B的暂存器。在该HA框架模块的控制下,该节点可被配置成将该监控信息分类为该多个监控信息类型诸如一第一监控信息类型(例如类型A)、一第二监控信息类型(例如类型B)、一第三监控信息类型(例如类型C)、一第四监控信息类型(例如类型D)等,以进行分别对应于该多个监控信息类型的该多个候选操作(例如故障处置操作)中的至少一操作。举例来说,该多个候选操作可包含:
(a)输出警告(标示为"警告"以求简明);
(b)进行C2F操作(标示为"C2F"以求简明);
(c)触发故障转移(标示为"故障转移"以求简明);以及
(d)设定独立运转;
其中分别对应于该多个监控信息类型的该多个候选操作(例如分别对应于类型A、B、C、D等的候选操作(a)、(b)、(c)、(d)等)彼此不同。
表2
Figure BDA0002899691410000261
Figure BDA0002899691410000271
表2展示该节点(例如目前节点)的上述监控器和对应的故障处置操作的某些例子,其中监控器#1,#2…以及#15可以被配置为分别监控相关资源,如表2的栏位"描述"所示。举例来说,监控器#1可以藉由查询API伺服器来监控两个1G乙太网络(Ethernet)电路各自的状态,其中该两个1G乙太网络电路可作为两个节点100A和100B(例如,BMC 150A和150B、NTB通信电路140A和140B等)的各自的接口电路的例子,尤其可作为两个节点100A和100B的各自的用以建立(在两个节点100A和100B之间的)上述至少二通信路径的其中之一的接口电路(例如,BMC 150A和150B的各自的用于建立BMC路径的接口电路、NTB通信电路140A和140B的各自的用于建立NTB路径的接口电路等)的例子;监控器#2可以藉由查询API伺服器来监控四个10G乙太网络电路的各自的速度,其中该四个10G乙太网络电路可以作为网络接口电路132A和134A以及网络接口电路132B和134B的例子;监控器#3,#4,#5和#6可以藉由指令"ps aux"分别监控网络伺服器程序、API伺服器程序(例如API中介程序)、数据库程序以及SMIStor程序是否存在;监控器#7可以藉由SMIStor RPC(例如SMIStor的RPC模块)来监控SMIStor Pmem状态(例如在SMIStor的控制下的Pmem的状态);监控器#8可以监控SMIStor FA碟(SMIStor FA Disk)自我监控分析和报告技术(Self-Monitoring,Analysisand Reporting Technology,简称SMART)信息,诸如在SMIStor的控制下的FA的各个碟的SMART信息;监控器#9可以监控该节点(例如目前节点)是否已被移除,其中对应的故障处置操作可予以变化,尤其,可以是某些候选处置操作诸如警告、C2F、故障转移、设定独立运转等的其中之一,取决于进一步检查;监控器#10可以监控NTB脉搏(例如通过NTB路径传输的脉搏),以藉由NTB存储器映射每秒一次地查询远端节点的状态,其中对应的故障处置操作可予以变化,尤其,可以是某些候选处置操作诸如警告、C2F、故障转移、设定独立运转等的其中之一,取决于进一步检查;监控器#11可以监控BMC暂存器(例如,藉由BMC 150A和150B存取的该远端节点的暂存器电路的一或多个暂存器),每秒一次地查询该远端节点的状态,其中对应的故障处置操作可予以变化,尤其,可以是某些候选处置操作诸如警告、C2F、故障转移、设定独立运转等的其中之一,取决于进一步检查;监控器#12可以监控某一碟(例如对应的SSD群组的每一SSD)诸如NVM快捷(NVM Express,NVMe)碟是否存在;监控器#13可以监控BMC硬件信息,例如,藉由BMC从感测器/检测器获得的某些硬件组件的硬件信息,其中感测器/检测器的总量可能很大,尤其,可以大于一百,用以收集各种监控信息;监控器#14可以监控C2F SSD诸如M.2模块,尤其,可以监控M.2模块的状态(例如健康);以及监控器#15可以监控目前节点的上述至少一主电源(例如上述至少一电源供应器)。针对监控器#9、#10和#11中的某个监控器,由于基于在监控器#1、#2…和#15中的二或多个监控器(例如这个监控器及至少一其他监控器)的二或多个检查操作可能是需要的,以确保从多个候选操作诸如(a)、(b)、(c)、(d)等中选择的一候选操作是适合的,所以可以依据该二或多个检查操作的一组合以正确地决定出这个候选操作,因此这个候选操作的选择取决于进一步检查。依据某些观点,对应于该二或多个检查操作的该组合的该进一步检查可以被视为对应于另一监控信息类型诸如类型E的一候选操作(e)。
为了更好地理解,用于监控如图10所示的UI/DB服务状态的上述的至少一监控器可包含如表2所示的分别用于监控网络伺服器程序,API伺服器程序(例如API中介程序)以及数据库程序的监控器#3,#4和#5,用于监控数据埠链接的上述至少一监控器可包含如表2所示的用于监控数据连接速度的监控器#2,用于监控SMIStor程序的上述至少一监控器可包含如表2所示的用于监控SMIStor程序的监控器#6,用于监控SMIStor数据镜像状态的上述至少一监控器可包含如表2所示的用于监控SMIStor Pmem状态(例如在SMIStor的控制下的Pmem的状态)的监控器#7,用于监控FA碟状态的上述至少一监控器可包含如表2所示的分别用于监控SMIStor FA碟SMART信息以及该碟是否存在的监控器#8以及#12,用于监控BMCSDR的上述至少一监控器可包含如表2所示的用于监控BMC HW信息(例如藉由BMC获取的HW信息)的监控器#13,并且用于监控PSU状态的上述至少一监控器可包含如表2中所示的用于监控上述至少一主电源诸如上述至少一电源供应器的监控器#15。
根据某些实施例,表2的内容可予以变化。举例来说,当需要时,可以改变表2的监控器的监控器计数(monitor count)及/或对应于表2的这些监控器中的任一监控器的故障处置操作。对于另一个例子来说,表2的栏位"描述"可以被省略,只要不妨碍本发明的实施即可。尤其,由于监控器#1、#2...以及#15的各自含义以及对应的故障处置操作相当清楚,因此表2可以进一步被简化。
表3
监控器 故障处置
(#1) (a)
(#2) (c)
(#3) (a)
(#4) (a)
(#5) (a)
(#6) (c)
(#7) (d)
(#8) (b)
(#9) (e)
(#10) (e)
(#11) (e)
(#12) (b)
(#13) (a)
(#14) (c)
(#15) (b)
表3展示表2的简化版本,但本发明不限于此。根据某些实施例,表3的内容可予以变化。举例来说,当需要时,可以改变表3的监控器的监控器计数及/或对应于表3的这些监控器中的任一监控器的故障处置操作。
图11是依据本发明一实施例所绘示的用于进行AFA伺服器的高可用性管理的方法的一故障转移控制方案的示意图。在软件层(例如软件模块诸如HA框架模块等)的控制下,两个节点100A和100B中的任一节点(例如每一节点)可被配置成依据该故障转移控制方案来进行故障转移控制。举例来说,在图8所示的步骤S44B中,当该节点要将其角色从待命角色(例如待命节点的角色)改变为现用角色(例如现用节点的角色)时,该节点可以升级该数据库且进行碟切换以得到对于一目标SSD群组(例如两个节点100A和100B中的该另一节点先前存取的SSD群组)的控制;如果有任何插入的碟诸如新SSD,则该节点可以开始处置这个插入的碟,其中该新SSD可以替换SSD群组中的一旧SSD(例如损坏的SSD);于升级该数据库的操作完成后,该节点可以在升级API之后建构一区块装置(block device可简称BDEV),然后升级该VIP,其中这些垂直线中的任一个可以指出两个接续执行的操作之间的依赖关系;在完成对插入的碟的处置操作(如果存在插入的碟诸如新碟)并且完成升级该VIP的操作之后,该节点可以升级该SMIStor;以及在完成升级该SMIStor的操作后,该节点可以升级该MGMT。
针对C2F操作的某些实施细节可以进一步描述如下。依据某些实施例,当进行C2F操作时,两个节点100A和100B中的任一节点(例如每一节点)可以先清除完成旗标COMPLETE_FLAG,尤其,将完成旗标COMPLETE_FLAG重设为一预设逻辑值诸如指出"伪"(False)的逻辑值(例如逻辑值0),就是COMPLETE_FLAG=False;在清除完成旗标COMPLETE_FLAG之后,该节点可以阻挡来自AFA伺服器100外部的任何输入/输出(input/output,简称I/O)操作(例如,客户端装置对AFA伺服器100进行的任何存取操作),举例来说,藉由关闭网络接口电路132A和134A以及网络接口电路132B和134B,以防止由于上述I/O操作所引起的任何错误,其中节点可以持续阻挡该任何I/O操作直到该节点重新启动;于阻挡该任何I/O操作后,该节点可以禁用(disable)任何iSCSI目标;在禁用该任何iSCSI目标之后,该节点可以利用该SMIStor将任何待保护的数据(或要保护的任何数据),诸如存储器数据(例如待命节点的DRAM中的数据)、暂存器电路的暂存器中的暂存器值等,刷新(flush)至符合M.2规范的该一或多个NVM储存装置(例如快闪存储器)(在表1中标示为"Flash(M.2)"以更好地理解);利用该SMIStor刷新该任何待保护的数据后,该节点可以停止该DB(例如,DB软件/程序模块诸如图4中所示的数据库模块、如图3中所示的节点100A和100B的其中之一的数据库程序等);在停止该DB之后,该节点可以将完成旗标COMPLETE_FLAG设定为另一个逻辑值诸如指出"真"(True)的逻辑值(例如逻辑值1),就是COMPLETE_FLAG=True;以及在将完成旗标COMPLETE_FLAG设为该另一逻辑值之后,该节点可以关掉(shut down)在该节点上运行的操作系统(Operating System,OS)。举例来说,当该节点将要进入任一停止状态诸如现用节点的角色的停止状态(于图8标示为"现用停止"以求简明)以及待命节点的角色的停止状态(于图8标示为"待命停止"以求简明)中的任一状态时,该节点可被配置成进行如上所述的C2F操作。为了简明起见,于这些实施例中类似的内容在此不重复赘述。
依据某些实施例,两个节点100A和100B中的任一节点(例如每一节点)可以依据至少一个复原政策(recovery policy)(例如一或多个复原政策)来进行复原。举例来说,在该节点原本扮演待命节点的角色的情况下,当现用节点发生故障时,该节点诸如待命节点可以进行接管以开始向用户提供服务,触发现用节点的电源关闭,并替换故障的现用节点,其中该节点诸如待命节点会变成最新的现用节点。又例如,在该节点扮演现用节点的情况下,当待命节点发生故障时,该节点诸如现用节点可以触发待命节点的电源关闭,并将其现用节点状态(例如,现用节点的角色的状态)改变为独立运转,以容许替换故障的待命节点。再例如,当发生C2F时(例如两个节点100A和100B于发生AFA伺服器100的电源故障时进行其各自的C2F操作),在两个节点100A和100B的各自的C2F操作完成后,AFA伺服器100可以保持在一电源关闭状态,直到再度获得正常电源为止,其中当获得正常电源时,AFA伺服器100可以同时自动地重新启动两个节点100A和100B。为了简明起见,于这些实施例中类似的内容在此不重复赘述。
依据某些实施例,图10左半部所示的表、表2和表3可被视为监控器故障处置表。举例来说,藉由借助于至少一监控器故障处置表(例如这三个监控器故障处置表中的至少一个)预先对该监控器和轮询器模块的这些监控器进行分类,两个节点100A和100B中的任一节点(例如,每一节点)可以将监控信息对应地分类为该多个类型的监控信息。为了简明起见,于这些实施例中类似的内容在此不重复赘述。
图12是依据本发明一实施例的用于进行该AFA伺服器的高可用性管理的方法的流程图。举例来说,两个节点100A和100B中的任一节点(例如每一节点)可以依据图12所示的工作流程进行操作。
在步骤S50中,该节点(例如其HA框架模块)可以利用在该节点上运行的多个程序模块中的该监控器和轮询器模块(例如其监控器,诸如图10左半部所示的表的这些监控器以及表2和3中的任何一个表的监控器#1,#2…和#15)来监控AFA伺服器100的该多个类型的资源。
在步骤S51中,该节点(例如其HA框架模块)可以利用该监控器和轮询器模块依据监控信息来检查是否发生了任何错误(例如,由该监控器和轮询器模块的这些监控器中的任一监控器所识别出的错误/故障)。如果是,进入步骤S52;如果否,进入步骤S50。该任何错误可以代表由该监控器和轮询器模块的这些监控器中的任一监控器所检测到的一不健康状态(例如异常状态),诸如AFA伺服器100的各种类型的资源中的对应于该任一监控器的资源的不健康状态。以表2的监控器#1、#2…和#15中的任一个作为该任一监控器的例子,如栏位"描述"中所描述的正在被监控的对象可指出对应于该任一监控器的资源。
在步骤S52中,因应步骤S51中提到的该任何错误的发生,在该监控信息已被分类为该多个监控信息类型(例如,第一、第二、第三以及第四监控信息类型等诸如类型A、B、C、D等)的情况下,该节点(例如其HA框架模块)可以依据至少一预定表(例如该至少一监控器故障处置表)从分别对应于该多个监控信息类型的该多个候选操作(例如故障处置操作)中选择至少一合适的候选操作,以进行该至少一合适的候选操作。举例来说,对于该三个监控故障处置表中的任何一个表的各个监控器中的每一个,由于可以在栏位"故障处置"中展示该多个候选操作诸如(a)、(b)、(c)、(d)的其中之一以指出对应于某一监控信息类型的候选操作(例如与类型A相对应的候选操作(a)、与类型B相对应的候选操作(b)、与类型C相对应的候选操作(c)、与类型D相对应的候选操作(d)等),基于该三个监控器故障处置表中的该任何一个表的监控器分类(例如这个表的各个监控器的分类)可以使监控信息被对应地分类为该多个监控信息类型。
依据本实施例,该节点可以多次进行步骤S50至S52的操作的一或多个操作,以动态地决定该节点的最新角色和最新状态,并且在需要时从该多个候选操作(例如故障处置操作)中选择该合适的候选操作以进行该合适的候选操作。如此一来,依据该方法来操作的该节点可以实现AFA伺服器100的最佳效能。为了简明起见,于本实施例中类似的内容在此不重复赘述。
为了更好的理解,可以利用图12所示的工作流程来说明该方法,但本发明不限于此。依据某些实施例,一个或多个步骤可于图12所示的工作流程中增加、删除或修改。
依据某些实施例,该远端节点的该远端节点信息可以包含分别藉由该任一节点与该远端节点之间的该至少二通信路径所获得的节点信息。举例来说,该任一节点的该硬件层中的该多个硬件组件可以包含NTB通信电路和BMC,而该至少二通信路径可以包含该任一节点的该NTB通信电路以及该远端节点的对应NTB通信电路(例如NTB通信电路140A和140B)之间的NTB路径,以及该任一节点的该BMC与该远端节点的对应BMC(例如BMC 150A和150B)之间的BMC路径。为了简明起见,于这些实施例中类似的内容在此不重复赘述。
依据某些实施例,针对候选操作(a)诸如输出该警告,该UI(例如在运行于该任一节点上的该多个程序模块中的UI程序模块)可被配置成输出该警告。针对候选操作(b)诸如进行该C2F操作,该任一节点的该一或多个NVM储存装置可被配置成进行该C2F操作,以在发生电源故障时保存任何待保护的信息,其中,所述任何待保护的信息可以包含暂时储存在该任一节点的DRAM中的缓冲数据,并且包含暂时储存在该任一节点的暂存器电路中的节点信息。针对候选操作(c)诸如触发故障转移,该任一节点可被配置为停止提供任何服务,并且该远端节点可被配置为从该待命节点的角色变更为该现用节点的角色。针对候选操作(d)诸如设定独立运转,该任一节点可被配置成向用户提供服务,而不将储存在该任一节点中的最新数据同步到该远端节点。为了简明起见,于这些实施例中类似的内容在此不重复赘述。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

Claims (11)

1.一种用以进行一全快闪存储器阵列(All Flash Array,AFA)伺服器的高可用性管理的方法,该方法包含:
利用运行在该全快闪存储器阵列伺服器的多个节点中的任一节点上的多个程序模块中的一监控器和轮询器(monitor and poller)模块以监控该全快闪存储器阵列伺服器的多个类型的资源(multiple types of resources),其中,运行在该任一节点上的该多个程序模块包含一硬件管理器,该硬件管理器用以管理该任一节点的一硬件层中的多个硬件组件,以容许该任一节点藉由该硬件管理器获得针对该多个类型的资源的相关监控结果的至少一部分;
依据监控信息检查是否有任何错误发生,其中,该监控信息包含针对该多个类型的资源的所述相关监控结果;以及
因应该任何错误的发生,在该监控信息已经被分类为多个监控信息类型的情况下,控制该任一节点依据至少一预定表从分别对应于该多个监控信息类型的多个候选操作中选择至少一合适的候选操作,以进行该至少一合适的候选操作;
其中,针对该多个类型的资源的所述相关监控结果的该至少一部分包含一远端节点的远端节点信息,其中,该远端节点代表于该多个节点中的异于该任一节点的另一节点。
2.如权利要求1所述的方法,其特征在于,该监控器和轮询器模块包含多个子模块,且该监控器和轮询器模块的该多个子模块包含:
一仲裁器,用以依据针对该多个类型的资源的所述相关监控结果以决定该任一节点的一角色及一状态;
多个监控器,用以对该多个类型的资源进行监控;以及
一组轮询器,用以于该多个监控器上进行轮询(polling),其中该组轮询器中的任一轮询器用以轮询该多个监控器中的至少一监控器。
3.如权利要求2所述的方法,其特征在于,对于该多个类型的资源中的每一资源,提供一或多个监控器,以监控所述每一资源的资源健康;以及对于所述每一资源,提供与该一或多个监控器相对应的一或多个轮询器,以轮询该一或多个监控器的一或多个监控结果并且将对应于该一或多个监控结果的一或多个事件报告回传给该仲裁器。
4.如权利要求3所述的方法,其特征在于,该仲裁器用以依据该远端节点的一角色和至少一状态以及该一或多个事件报告来决定该任一节点的一最新角色和一最新状态,以提高该全快闪存储器阵列伺服器的整体效能,其中,该任一节点的该最新角色和该最新状态分别代表该任一节点的所述角色和所述状态的各自的最新版本。
5.如权利要求1所述的方法,其特征在于,该远端节点的该远端节点信息包含分别藉由该任一节点与该远端节点之间的至少二通信路径所获得的节点信息。
6.如权利要求5所述的方法,其特征在于,该任一节点的该硬件层中的该多个硬件组件包含一非透明网桥(Non-Transparent Bridge,NTB)通信电路和一主机板管理控制器(Board Management Controller,BMC);以及该至少二通信路径包含该任一节点的该非透明网桥通信电路与该远端节点的一对应的非透明网桥通信电路之间的一非透明网桥路径,以及该任一节点的该主机板管理控制器与该远端节点的一对应的主机板管理控制器之间的一主机板管理控制器路径。
7.如权利要求1所述的方法,其特征在于,该多个监控信息类型包含一第一监控信息类型、一第二监控信息类型、一第三监控信息类型以及一第四监控信息类型;以及分别对应于该多个监控信息类型的该多个候选操作彼此不同。
8.如权利要求7所述的方法,其特征在于,分别与该多个监控信息类型对应的该多个候选操作包含一触发故障转移的候选操作,其中,针对触发所述故障转移,该任一节点被配置成停止提供任何服务,且该远端节点被配置成从一待命节点的角色转换到一现用节点的角色。
9.如权利要求8所述的方法,其特征在于,分别对应于该多个监控信息类型的该多个候选操作还包含输出警告、进行一复制到快闪存储器(Copy-to-Flash,C2F)操作以及设定独立运转,其中:
在运行于该任一节点上的该多个程序模块中的一用户界面(User Interface,UI)程序模块被配置成输出所述警告;
包含非挥发性存储器(non-volatile memory,NVM)的一或多个非挥发性存储器储存装置被配置成进行该复制到快闪存储器操作,以在发生电源故障时保存任何待保护的信息,其中所述任何待保护的信息包含暂时储存在该任一节点一动态随机存取存储器(DynamicRandom Access Memory,DRAM)中的缓冲数据(buffered data),且包含暂时储存在该任一节点的一暂存器电路中的节点信息;以及
针对设定独立运转,该任一节点被配置成向一用户提供服务,而不将储存在该任一节点中的最新数据同步到该远端节点。
10.一种全快闪存储器阵列(All Flash Array,AFA)伺服器,包含:
多个节点,其中该多个节点的任一节点包含:
至少一处理器,用以在多个程序模块的控制下控制该任一节点的操作;以及
多个硬件组件,在该任一节点的一硬件层中;以及
多个固态硬碟(solid state drive,SSD),包含:
一第一固态硬碟群组,对应于该任一节点;以及
一第二固态硬碟群组,对应于一远端节点,其中,该远端节点代表于该多个节点中的异于该任一节点的另一节点;
其中:
该任一节点利用运行在该全快闪存储器阵列伺服器的该多个节点中的该任一节点上的该多个程序模块中的一监控器和轮询器(monitor and poller)模块以监控该全快闪存储器阵列伺服器的多个类型的资源(multiple types of resources),其中,运行在该任一节点上的该多个程序模块包含一硬件管理器,且该硬件管理器用以管理该任一节点的该硬件层中的该多个硬件组件,以容许该任一节点藉由该硬件管理器获得针对该多个类型的资源的相关监控结果的至少一部分;
该任一节点依据监控信息检查是否有任何错误发生,其中,该监控信息包含该多个类型的资源的所述相关监控结果;以及
因应该任何错误的发生,在该监控信息已经被分类为多个监控信息类型的情况下,该任一节点依据至少一预定表从分别对应于该多个监控信息类型的多个候选操作中选择至少一合适的候选操作,以进行该至少一合适的候选操作;
其中,针对该多个类型的资源的所述相关监控结果的该至少一部分包含该远端节点的远端节点信息。
11.如权利要求10所述的全快闪存储器阵列伺服器,其特征在于,该监控器和轮询器模块包含多个子模块,且该监控器和轮询器模块的该多个子模块包含:
一仲裁器,用以依据针对该多个类型的资源的所述相关监控结果以决定该任一节点的一角色及一状态;
多个监控器,用以对该多个类型的资源进行监控;以及
一组轮询器,用以于该多个监控器上进行轮询(polling),其中该组轮询器中的任一轮询器用以轮询该多个监控器中的至少一监控器。
CN202110052697.7A 2020-03-02 2021-01-15 用以进行全快闪存储器阵列伺服器的高可用性管理的方法与设备 Active CN113342593B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202062983761P 2020-03-02 2020-03-02
US62/983,761 2020-03-02
US17/031,831 US11210034B2 (en) 2020-03-02 2020-09-24 Method and apparatus for performing high availability management of all flash array server
US17/031,831 2020-09-24

Publications (2)

Publication Number Publication Date
CN113342593A true CN113342593A (zh) 2021-09-03
CN113342593B CN113342593B (zh) 2024-03-26

Family

ID=77464346

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110052697.7A Active CN113342593B (zh) 2020-03-02 2021-01-15 用以进行全快闪存储器阵列伺服器的高可用性管理的方法与设备

Country Status (3)

Country Link
US (1) US11210034B2 (zh)
CN (1) CN113342593B (zh)
TW (1) TWI756007B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11403001B2 (en) * 2020-04-30 2022-08-02 EMC IP Holding Company, LLC System and method for storage system node fencing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093013B1 (en) * 2002-06-19 2006-08-15 Alcatel High availability system for network elements
CN105141456A (zh) * 2015-08-25 2015-12-09 山东超越数控电子有限公司 一种高可用集群资源监控方法
CN107291589A (zh) * 2017-05-04 2017-10-24 中国电子科技集团公司第三十二研究所 在机器人操作系统中提升系统可靠性的方法
CN109698775A (zh) * 2018-11-21 2019-04-30 中国航空工业集团公司洛阳电光设备研究所 一种基于实时状态检测的双机冗余备份系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7702966B2 (en) * 2005-09-07 2010-04-20 Intel Corporation Method and apparatus for managing software errors in a computer system
US20140047159A1 (en) * 2012-08-10 2014-02-13 Sandisk Technologies Inc. Enterprise server with flash storage modules
US10387239B2 (en) * 2017-04-10 2019-08-20 Western Digital Technologies, Inc. Detecting memory failures in the runtime environment
US10719474B2 (en) 2017-10-11 2020-07-21 Samsung Electronics Co., Ltd. System and method for providing in-storage acceleration (ISA) in data storage devices
US20190187909A1 (en) 2017-12-20 2019-06-20 Samsung Electronics Co., Ltd. Local management console for storage devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7093013B1 (en) * 2002-06-19 2006-08-15 Alcatel High availability system for network elements
CN105141456A (zh) * 2015-08-25 2015-12-09 山东超越数控电子有限公司 一种高可用集群资源监控方法
CN107291589A (zh) * 2017-05-04 2017-10-24 中国电子科技集团公司第三十二研究所 在机器人操作系统中提升系统可靠性的方法
CN109698775A (zh) * 2018-11-21 2019-04-30 中国航空工业集团公司洛阳电光设备研究所 一种基于实时状态检测的双机冗余备份系统

Also Published As

Publication number Publication date
TWI756007B (zh) 2022-02-21
US20210271428A1 (en) 2021-09-02
TW202134863A (zh) 2021-09-16
US11210034B2 (en) 2021-12-28
CN113342593B (zh) 2024-03-26

Similar Documents

Publication Publication Date Title
TWI773155B (zh) 用以進行全快閃記憶體陣列伺服器的碟管理的方法與設備
US8498967B1 (en) Two-node high availability cluster storage solution using an intelligent initiator to avoid split brain syndrome
US7111084B2 (en) Data storage network with host transparent failover controlled by host bus adapter
US20160188240A1 (en) Method for a source storage device sending data to a backup storage device for storage, and storage device
US7865767B2 (en) Storage system and method for copying data to plurality of sites
US20120215973A1 (en) Method Apparatus and System for a Redundant and Fault Tolerant Solid State Disk
TWI773152B (zh) 伺服器與應用於伺服器的控制方法
US8782465B1 (en) Managing drive problems in data storage systems by tracking overall retry time
CN113342593B (zh) 用以进行全快闪存储器阵列伺服器的高可用性管理的方法与设备
CN113342258A (zh) 用以进行全快闪存储器阵列伺服器的数据存取管理的方法与设备
TWI766593B (zh) 用以進行全快閃記憶體陣列伺服器的節點信息交換管理的方法與設備
US11531621B2 (en) Selective endpoint isolation for self-healing in a cache and memory coherent system
US11809293B2 (en) Storage node failure detection based on register values for an all flash array server
US11366618B2 (en) All flash array server and control method thereof
US11841734B1 (en) Synchronous block level replication across availability zones
CN113342257B (zh) 伺服器及相关的控制方法
US20230112764A1 (en) Cloud defined storage

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