一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

伺服器及相关的控制方法与流程

2021-09-03 23:16:00 来源:中国专利 TAG:伺服器 存储器 阵列 存取 用以


1.本发明有关于存储器控制,尤指一种用以进行全快闪存储器阵列(all flash array,简称afa)伺服器的数据存取管理的方法以及相关设备(apparatus)诸如afa伺服器及其控制电路等。


背景技术:

2.数据储存伺服器可以被设置为储存一个或多个用户的用户数据,并且在现有技术中已经提出了针对数据储存伺服器的各种控制方法,以便给用户带来良好的用户体验。由于非挥发性(non

volatile,nv)存储器诸如快闪存储器已经被广泛应用于各种数据储存装置诸如固态硬碟(solid state drive,ssd)等,现有技术中提出将数据储存伺服器用nv存储器作为其储存介质的非挥发性(nv)存储器类型数据储存伺服器来实现,例如其中安装有多个ssd的afa伺服器。但是,可能会出现某些问题。例如,存取该多个ssd中的任一ssd的快闪存储器的管理会很复杂。为了确保这个ssd中的快闪存储器的存取控制符合相关规范,这个ssd中的快闪存储器的控制器通常配备有某些管理机制以妥善地管理其内部操作。虽然ssd制造商可能试着使ssd看起来像是替代硬式磁碟机(hdd)的不错的解决方案,但是ssd的某些特性与hdd完全不同。如此一来,上述控制方法对于安装有多个ssd的afa伺服器可能变得不适合或无效,进而导致afa伺服器的整体效能下降。因此,需要以在没有副作用或较不会带来副作用的情况下提供一种新颖的方法和相关的架构来解决这些问题。


技术实现要素:

3.因此,本发明的目的之一在于提出一种伺服器的控制方法,以解决上述的问题。
4.在本发明的一实施例中,揭露了一伺服器,其包含有一固态硬碟、一第一节点与一第二节点。该第一节点包含有一第一存储器、一第一处理器及一第一通信电路,其中该第一存储器包含了一第一暂存器及一第二暂存器;该第一处理器用来控制该第一暂存器与该第二暂存器分别具有一第一数值与一第二数值;以及该第一通信电路耦接于该第一处理器与该第一存储器。该第二节点包含有一第二存储器、一第二存储器以及一第二通信电路,其中该第二存储器包含了一第三暂存器及一第四暂存器;该第二存储器用来控制该第三暂存器与该第四暂存器分别具有一第三数值与一第四数值;以及该第二通信电路耦接于该第二处理器、该第二存储器与该第一通信电路。在伺服器的操作中,该第一暂存器与该第四暂存器彼此同步,该第二暂存器与该第三暂存器彼此同步,由该第一处理器控制的该第一数值不同于由该第二处理器控制的该第四数值,以及由该第一处理器控制的该第二数值不同于由该第二处理器控制的该第三数值;以及该第二处理器周期性地检查该第三暂存器是否具有该第三数值,该第四暂存器是否具有该第四数值,以判断该第一节点是否无法工作。
5.在本发明的另一实施例中,揭露了一种伺服器的控制方法,其包含有以下步骤:设定该伺服器的一第一节点作为一主装置;周期性地控制该第一节点的一第一暂存器与一第二暂存器分别具有一第一数值与一第二数值;设定该伺服器的一第二节点作为一从装置;
周期性地控制该第二节点的一第三暂存器与一第四暂存器分别具有一第三数值与一第四数值;控制该第一暂存器与该第四暂存器彼此同步,其中由该第一节点控制的该第一数值与由该第二节点控制的该第四数值不同;控制该第二暂存器与该第三暂存器彼此同步,其中由该第一节点控制的该第二数值与由该第二节点控制的该第三数值不同;以及周期性地检查该第三暂存器是否具有该第三数值以及该第四暂存器是否具有该第四数值,以判断该第一节点是否无法工作。
附图说明
6.图1是依据本发明一实施例的一全快闪存储器阵列(all flash array,简称afa)伺服器的示意图。
7.图2是依据本发明一实施例中如图1所示的该afa伺服器的某些实施细节的示意图。
8.图3是依据本发明一实施例所绘示的如图1所示的该afa伺服器的一双节点架构的示意图。
9.图4是依据本发明一实施例所绘示的如图1所示的多个节点的任一节点中的某些程序模块的示意图。
10.图5为根据本发明一实施例之afa伺服器的写入控制方法的示意图。
11.图6为根据本发明一实施例之快取同步镜像操作的示意图。
12.图7为本发明一个实施例之故障检测机制的示意图。
13.图8为本发明一实施例之当节点100a和节点100b都正常工作时数值v1_a、v2_a、v1_b与v2_b的变化示意图。
14.图9为本发明一实施例之当节点100a无法正常工作时数值v1_a、v2_a、v1_b与v2_b的变化示意图。
15.【符号说明】
16.10a,10b:机架顶(tor)交换机
17.12a,12b:固态硬碟(ssd)群组
18.100:全快闪存储器阵列(afa)伺服器
19.100a,100b:节点
20.110a,110b:处理器
21.112a,112b:程序模块
22.120a,120b:动态随机存取存储器(dram)
23.122a,122b:复制到快闪存储器(c2f)固态硬碟(ssd)
24.130a,130b:网络接口(if)模块
25.132a,132b,134a,134b:网络接口(if)电路
26.140a,140b:非透明网桥(ntb)通信电路
27.150a,150b:主机板管理控制器(bmc)
28.152a,152b:暂存器电路
29.160a,160b:储存接口(if)模块
30.162a,162b,164a,164b:储存接口(if)电路
31.170a,170b:备用电源单元
32.500~514:步骤
33.610a,610b:表
34.710_1,710_2,720_1,720_2:暂存器
35.v1_a,v2_a,v1_b,v2_b:数值
36.t1,t2,t3,t4,t5:时间
具体实施方式
37.图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”以求简明)、一主机板管理控制器(board management controller,简称bmc)150a、一暂存器(register)电路152a(标示为“reg ckt”以求简明)其耦接至bmc 150a、一储存接口(if)模块160a其包含一个或多个储存接口电路诸如储存接口电路162a和164a(分别标示为“储存if ckt”以求简明)以及一备用电源诸如一备用电源单元170a(例如,电池),其中这些组件的至少一部分(例如,一部分或全部)可以藉由节点100a的总线彼此耦接,但本发明不限于此。依据某些实施例,节点100a的架构可以作不同变化。
38.相似地,节点100b可包含可以统称为处理器110b的至少一处理器(例如,一个或多个处理器诸如一个或多个cpu),并包含一dram 120b、一c2f ssd 122b、包含有一个或多个网络接口(if)电路诸如网络接口电路132b和134b(分别标示为“network if ckt”以求简明)的一网络接口(if)模块130b、一ntb模块(或ntb)诸如一ntb通信电路140b标示为“ntb ckt”以求简明)、一bmc 150b、一暂存器电路152b(标示为“register ckt”以求简明)其耦接至bmc 150b、一储存接口(if)模块160b其包含一个或多个储存接口电路诸如储存接口电路162b和164b(分别标示为“storage if ckt”以求简明)以及一备用电源诸如一备用电源单元170b(例如,电池),其中这些组件的至少一部分(例如,一部分或全部)可以藉由节点100b的总线彼此耦接,但本发明不限于此。依据某些实施例,节点100b的架构可以作不同变化。
39.如图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中的数据。
40.运行着程序模块112a的处理器110a可用以控制节点100a的操作。dram120a可用以缓冲数据(例如待写入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提供用户储存服务。
41.相似地,运行着程序模块112b的处理器110b可用以控制节点100b的操作。dram 120b可用以缓冲数据(例如待写入ssd群组12b的数据),并且c2f ssd122b可用以将dram 120b中的缓冲后数据(简称“缓冲数据”)复制到c2f ssd122b中的快闪存储器中,以在需要时防止缓冲数据的数据遗失。举例来说,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、dram 120b等)耦接到多个快闪储存装置(例如节点100a和100b共享的ssd群组12a和12b),用以存取(例如读取或写入)该多个快闪储存装置中的数据。如此一来,afa伺服器100可用以藉由节点100b提供用户储存服务。
42.关于节点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彼此通信,使得它们就像正在透过网络接口电路进行通信一样。
43.在运行着程序模块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的储存服务。
44.需注意的是,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与bmc 150b可独立地管理节点100a与100b的各自的硬件层,而不需要仰赖处理器110a与110b。举例来说,当处理器110a发生故障时,bmc 150a可以处理节点100a的未完成的工作,而当处理器110b发生故障时,bmc 150b可以处理节点100b的未完成的工作,但本发明不限于此。依据某些实施例,bmc 150a和150b可用以分别接管(take over)节点100a和100b,以进行紧急处理操作来减少数据遗失的机率。
45.依据本实施例,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等)。
46.依据某些实施例,节点100a和100b的每一节点(例如节点100a和100b的各自的主电路板中的每一节点)可以还包含多个感测器(sensor)/检测器(detector)用以至少对该节点的组件进行检测以产生检测结果(例如从这些传感器/检测器中的任一个所获得的状态信息)。举例来说,这些检测结果中的一功率检测结果可以表示该节点的主电源的功率状态,尤其,可以指出该节点是否发生异常电源状况,以供触发该节点启动备用电源(例如备用电源单元170a或备用电源单元170b)以提供备用电力。
47.图2依据本发明一实施例绘示图1所示的afa伺服器100的某些实施细节,其中,可以将ssd 100s作为图1所示实施例中提到的多个ssd的例子。除了节点100a和100b以及ssd 100s,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的整体效能及正常运行。
48.依据某些实施例,ssd 100s中的每一ssd可以是一单埠(single port)ssd,尤其,可以是一单埠的基于装置的(device

based)ssd。另外,藉助于背板电路100r,afa伺服器100可以支援ssd 100s中的每一ssd的热插拔。
49.依据某些实施例,两个节点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)通信路径(例如节点之间的超过两个的相互通信路径)。
50.图3是依据本发明一实施例所绘示的如图1所示的afa伺服器100的一双节点架构的示意图。依据本实施例,节点100a和100b可以被分别配置为该现用节点和该待命节点,但本发明不限于此。举例来说,节点100a和100b可以在需要时交换它们所扮演的角色。如图3所示,除了某些硬件(hardware,hw)组件诸如图1或图2所示的架构中的部分组件外,还可绘示某些软件(software,sw)程序/程序,例如ha框架程序、网络(web)伺服器程序、数据库(database)程序、操作于一服务模式的储存控制模块程序以及操作于一待机模式的储存控制模块程序(分别标示为“ha框架”、“web伺服器”、“数据库”、“于服务模式下的储存控制模
块”以及“于待机模式下的储存控制模块”以求简明)以指出afa伺服器100中的关联互动,其中,上述程序的名称分别代表其相关功能。
51.运行于节点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之间的网络路径进行额外的通信操作。
52.图4是依据本发明一实施例所绘示的如图1所示的多个节点100a与100b的任一(例如每一)节点中的程序模块112的示意图。例如,程序模块112可以代表运行在节点100a的处理器110a上的程序模块112a或运行在节点100b的处理器110b上的程序模块112b。如图4所示,程序模块112可以包含某些主程序模块,例如储存协定及区块输入/输出(io)接口模块、储存快取模块、储存池模块、储存服务连续ha模块、储存功能模块以及储存管理模块(分别标示为“储存协定及区块io接口”、“储存快取”、“储存池”、“储存服务连续ha”、“储存功能”以及“储存管理”以求简明),其中这些主程序模块中的任一程序模块可以包括一个或多个子模块。另外,程序模块112中的某些程序模块之间的箭头指出这些程序模块可以彼此在各自所属的多个层的程序模块之间互动。举例来说,储存协定及区块io接口模块可以被视为储存快取模块上方的一上层(例如一上层程序模块),储存池模块可以被视为储存快取模块下方一下层(例如一下层程序模块),储存功能模块和储存快取模块可被安排在一中间层以作为中间层程序模块,其中储存协定及区块io接口模块以及储存池模块可用以与客户端装置和ssd群组互动,但本发明不限于此。当需要时,该节点可以触发其他程序模块与这些程序模块中的一个或多个进行互动。
53.储存协定及区块io接口模块可以包含某些子模块诸如小型计算机系统接口(small computer system interface,简称scsi)模块、互联网scsi(internet scsi,简称iscsi)模块和区块装置(block device)模块(分别标示为“scsi”、“iscsi”和“区块装置”以求简明)。储存快取模块可以包含某些子模块诸如使用软件实现的永久存储器(persistent memory using sw implementation)模块和写入缓冲模块(write buffer module;也可称为“写入缓冲器模块”),于图中分别标示为“永久存储器(软件实现)”和“写入缓冲”以求简明。储存池模块可以包含一子模块诸如快闪存储器阵列(flash array)模块(为简便起见标示为“快闪存储器阵列”)。储存服务连续ha模块可以包含一子模块诸如ha框架模块(标示为“ha框架”以求简明)。储存功能模块可以包含某些子模块诸如卷管理器(volume manager)模块和数据减少模块(分别标示为“卷管理器”和“数据减少”以求简明),其中数据减少模块可以包含某些子模块诸如压缩引擎(compression engine)模块和重复数据删除引擎(deduplication engine)模块,可以分别称为“压缩引擎”和“重复数据删除引擎”。储存管
理模块可以包含某些子模块诸如网络(web)用户界面(user interface,ui)模块、应用程序编程接口(application programming interface,api)伺服器模块、请求代理(request broker)模块和数据库模块(分别标示为“网络ui”、“api伺服器”、“请求代理”和“数据库”以求简明)。上列模块的名称分别指出其相关功能。为了便于理解,对某一模块诸如卷管理器模块、压缩引擎模块、重复数据删除引擎模块等而言,某些实施例中所提到的咨询(consult)该模块的操作可包含对这个模块进行呼叫、查询等操作以从它取得对应的处理结果,但本发明不限于此。
54.依据某些实施例,afa伺服器100(例如,该现用节点,诸如节点100a和100b的其中之一)可用以从afa伺服器100外部的客户端装置接收请求诸如写入请求、读取请求等,并分别因应这些请求来操作。
55.图5为根据本发明一实施例之afa伺服器100的写入控制方法的示意图。在步骤500中,afa伺服器100上电,且afa伺服器100能够经由至少一个网络(例如,lan,wan,互联网等)以及tor交换器10a和10b与其他电子装置通信。在步骤502中,afa伺服器100的一个节点作为主装置(master device),而另一节点作为从装置(slave device)。在该实施例中,节点100a作为能够经由tor交换器10a和10b与其他电子装置通信并存取ssd 100s的主装置,而节点100b作为在节点100a正常工作时不允许存取ssd 100s的从装置。在步骤504中,处理器110a在dram 120a内配置dram空间以供作为写入缓冲器使用,并且处理器110a另通知节点100b的处理器110b在dram 120b内配置dram空间以供作为写入缓冲器,其中dram 120a/120b内的写入缓冲器可以具有任何合适的大小,例如16十亿位元组(gigabyte,gb)或32gb。在步骤506中,节点100a从使用者装置接收数据,亦即使用者透过网络将数据写入至afa伺服器100。在步骤508中,节点100a将数据写入dram 120a内的dram空间中,并且处理器110a进一步建立如图6中所示的表610a。参考图6,其中表610a包括一独特身分(unique id)(即,使用者id)、数据在使用者端的逻辑地址、数据长度以及数据在dram 120a中的起始地址。在步骤510中,节点100a执行快取同步镜像(cache mirroring)机制,以透过ntb将数据和对应资讯发送至节点100b,其中,对应资讯可以是表610a的至少一部分内容,例如对应资讯可以包括使用者id,数据在使用者端的逻辑地址和数据长度。在步骤512中,节点100b的处理器110b将数据写入dram 120b内的dram空间,并且处理器110b进一步建立如图6所示的表610b。参考图6,其中表610b包括使用者id、数据在使用者端的逻辑地址、数据长度以及数据在dram 120b中的起始地址。在数据完全写入至dram 120b之后,节点100b的处理器110b向节点100a发送通知以告知快取同步镜像操作已经完成。在步骤514中,只有在处理器110a从节点100b接收到通知之后,节点100a才透过tor交换器10a/10b向使用者的电子装置发送讯息,以通知数据已经成功接收,之后处理器110a才开始将储存在dram 120a中的数据移动到ssd 100s中。在一实施例中,当储存在dram 120中并且能够被移动的数据的大小超过预定值时,例如超过64千为元组(kilobyte)时,处理器110a才将储存在dram 120a中的数据移动到ssd 100s。
56.当储存在dram 120a中的数据成功地被搬移至ssd 100s后,处理器110a删除dram 120a中的数据,并且更新表610a以删除数据的相关资讯。此外,处理器110a另通知节点100b数据已经储存在ssd 100s中,以便处理器110b可以删除dram 120b中的数据,并且更新表610b以删除数据的相关资讯。
57.图5、6所示的实施例所述的快取同步镜像机制用于故障转移(failover)机制以保护已经被写入dram 120a中但尚未被写入至ssd 100s的数据,亦即,一旦主装置将接收到的数据储存在dram 120a中,则主装置立即将数据传送至从装置,使得主装置和从装置都具有该数据。因此,由于主装置和从装置都具有该数据,所以一旦主装置不能正常工作,从装置就可以立即替换主装置以执行原本应该由主装置执行的操作,亦即从装置在适当的时间将储存在dram 120b中的数据移动到ssd 100s。
58.详细来说,假设主装置(例如,节点100a)突然无法存取ssd 100s,例如主装置的操作系统崩溃、主装置内的存储器或储存元件损坏、下行连接埠被禁用或任何其他故障原因,则afa伺服器100可以立即执行故障转移机制,亦即从装置(例如,节点100b)被设定为用来执行主装置的操作。本发明另外提出了一种故障检测机制,其可以有效且准确地检测出主装置是否无法正常工作。图7为本发明一个实施例的故障检测机制的示意图。如图7所示,节点100a配置两个暂存器710_1和710_2,且节点100a的处理器110a系可控制暂存器710_1和710_2,以使得暂存器710_1具有数值v1_a且暂存器710_2具有数值v2_a。节点100b配置两个暂存器720_1和720_2,且节点100b的处理器110b系可控制暂存器720_1和720_2,以使得暂存器720_1具有数值v1_b且暂存器720_2具有数值v2_b。在一实施例中,节点100a的暂存器710_1和节点100b的暂存器720_1由pcie装置分配,即暂存器710_1和暂存器720_1是pcie基地址暂存器(base address register,bar);此外,节点100a的暂存器710_2和节点100b的暂存器720_2由pcie装置分配,即暂存器710_2和暂存器720_2是pcie基地址暂存器。
59.节点100a的暂存器710_1和节点100b的暂存器720_2彼此同步,但是由处理器110a控制的数值v1_a不同于由处理器110b控制的数值v2_b。另外,节点100a的暂存器710_2和节点100b的暂存器720_1彼此同步,但是由处理器110a控制的数值v2_a不同于由处理器110b控制的数值v1_b。举例来说,假设数值v1_a和数值v2_a分别为'0'和'1',则处理器110a可以定期检查数值v1_a和数值v2_a是否分别等于'0'和'1';如果数值v1_a和数值v2_a不等于'0'和'1',则处理器110a立即改变暂存器710_1和710_2的数值,以使得数值v1_a等于'0'并且数值v2_a等于为'1'。类似地,假设数值v1_b和数值v2_b分别为'0'和'1',则处理器110b可以周期性地检查数值v1_b和数值v2_b是否分别等于'0'和'1';如果数值v1_b和数值v2_b不等于'0'和'1',则处理器110b立即改变暂存器720_1和720_2的值,使得数值v1_b等于'0'并且数值v2_b等于为'1'。如上所述,当节点100a和节点100b两者都工作良好时,处理器110a将会一直判断数值v1_a和v2_a不等于预定值,因为数值v1_a和v2_a会一直被数值v2_b和v1_b同步,且处理器110a需要周期性地将数值v1_a和v2_a分别更新为'0'和'1'。因此,如果处理器110a判断数值v1_a和v2_a始终为'0'和'1',则代表着节点100b不更新其数值v1_b和v2_b,而此时处理器110a可以判断节点100b无法正常工作。类似地,当节点100a和节点100b都工作良好时,处理器110b将会一直判断数值v1_b和v2_b不等于预定值,因为数值v1_b和v2_b会一直被数值v2_a和v1_a同步,且处理器110b需要将数值v1_b和v2_b分别周期性地更新为'0'和'1'。因此,如果处理器110b判断数值v1_b和v2_b始终为'0'和'1',则代表着节点100a不更新其数值v1_a和v2_a,而此时处理器110b可以判断节点100a无法正常工作。
60.图8为本发明一实施例之当节点100a和节点100b都正常工作时数值v1_a、v2_a、v1_b与v2_b的变化示意图。在图8所示的实施例中,数值v1_a和v2_a的预定值分别是'0'和'1',亦即,如果数值v1_a和v2_a不为'0'和'1',则处理器110a会将其更新为预定值'0'和'
1';此外,数值v1_b和v2_b的预定值分别是'0'和'1',亦即,如果数值v1_b和v2_b不为'0'和'1',则处理器110b会将其更新为预定值'0'和'1'。如图8所示,在时间t1,afa伺服器100上电,且此时数值v1_a、v2_a、v1_b和v2_b均等于'0'。在时间t2,节点100a的处理器110a检查数值v1_a和v2_a,并将数值v1_a和v2_a分别更新为'0'和'1';同时,节点100b的数值v1_b和v2_b分别被数值v2_a和v1_a同步,亦即数值v1_b变为'1',且数值v2_b变为'0'。在时间t3,节点100b的处理器110b检查数值v1_b和v2_b,并将数值v1_b和v2_b分别更新为'0'和'1';同时,节点100a的数值v1_a和v2_a分别被数值v2_b和v1_b同步,亦即数值v1_a变为'1',且数值v2_a变为'0'。在时间t4,节点100a的处理器110a检查数值v1_a和v2_a,并将数值v1_a和v2_a分别更新为'0'和'1';同时,节点100b的数值v1_b和v2_b分别被数值v2_a和v1_a同步,亦即数值v1_b变为'1',且数值v2_b变为'0'。在时间t5,节点100b的处理器110b检查数值v1_b和v2_b,并将数值v1_b和v2_b分别更新为'0'和'1';同时,节点100a的数值v1_a和v2_a分别被数值v2_b和v1_b同步,亦即数值v1_a变为'1',且数值v2_a变为'0'。如上所述,当节点100a和节点100b都工作良好时,暂存器710_1、710_2、720_1和720_2中的数值会随着同步机制的进展而周期性地改变,而因此处理器110a/110b需要定期更新暂存器中的数值。
61.需注意的是,处理器110a之检查与更新的步骤以及处理器110b之检查与更新的步骤是以时间交错的方式来进行,也就是说,处理器110a之检查与更新的步骤的周期为与处理器110b之检查与更新的步骤的周期相同。以图8为例来说明,时间t2与t4之间的间隔等于时间t3与t5之间的间隔(亦即,(t4

t2)=(t5

t3))。
62.图9为本发明一实施例之当节点100a无法正常工作时数值v1_a、v2_a、v1_b与v2_b的变化示意图。在图9所示的实施例中,数值v1_a和v2_a的预定值分别是'0'和'1',亦即,如果数值v1_a和v2_a不为'0'和'1',则处理器110a会将其更新为预定值'0'和'1';此外,数值v1_b和v2_b的预定值分别是'0'和'1',亦即,如果数值v1_b和v2_b不为'0'和'1',则处理器110b会将其更新为预定值'0'和'1'。如图9所示,在时间t1,节点100a的处理器110a检查数值v1_a和v2_a,并将数值v1_a和v2_a分别更新为'0'和'1';同时,节点100b的数值v1_b和v2_b分别被数值v2_a和v1_a同步,亦即数值v1_b变为'1',且数值v2_b变为'0'。在时间t2,节点100b的处理器110b检查数值v1_b和v2_b,并将数值v1_b和v2_b分别更新为'0'和'1';同时,节点100a的数值v1_a和v2_a分别被数值v2_b和v1_b同步,亦即数值v1_a变为'1',且数值v2_a变为'0'。在时间t3,节点100a突然无法正常工作,而处理器110a因此不会更新数值v1_a和v2_a,也就是说,数值v1_a和v2_a仍分别为'1'和'0'。在时间t4,节点100b的处理器110b检查数值v1_b和v2_b,并发现不需要更新数值v1_b和v2_b,因此处理器110b便可以判断节点100a(主装置)无法正常工作,并且节点100b(从装置)可以执行故障转移机制以执行原本应该由节点100a所执行的操作。
63.综上所述,由于节点100a/100b可以仅透过检查其自身的暂存器来判断另一节点是否无法工作,而无需参考来自另一节点的通知,因此本实施例的故障检测机制可以有效且准确地检测其他节点是否无法正常工作。
64.在一实施例中,当执行故障转移机制时,节点100b会由从装置变成主装置。因此,为了方便软件设计,节点100a内之v1_a和v2_a的预定值会设计的与节点100b内之v1_b和v2_b的预定值相同,然而,本发明不限于此。
65.以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与
修饰,皆应属本发明的涵盖范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜