云存储环境中的镜像解决方案的制作方法

文档序号:7986627阅读:388来源:国知局
专利名称:云存储环境中的镜像解决方案的制作方法
技术领域
本公开涉及对云存储环境中的镜像节点进行高速缓存。
背景技术
在此提供的背景技术描述是出于一般性地呈现本公开上下文的目的。在本背景技术部分中所描述的程度上的当前提名发明人的工作以及在提交时不作为现有技术的描述的各方面,都不被明示或者暗示地承认为本公开的现有技术。在云存储环境中,服务器提供共享存储以用于操作一个或多个虚拟机(VM)。远程用户访问服务器以使用由VM中的相应VM实现的操作系统。仅出于示例,用户经由对应的客户端工作站或计算机来访问服务器。客户端工作站与网络节点集群通信,网络节点集群转而与服务器对接。例如,每个客户端工作站可以与节点之一通信,该节点代表客户端工作站中的一个或多个客户端工作站与服务器通信。节点对客户端工作站使用的数据进行高速缓存。因此,客户端工作站可得到数据而无需直接访问服务器。

发明内容
配置用于提供对共享存储的访问的系统包括第一网络节点,该第一网络节点配置用于向第一多个客户端工作站提供对共享存储的访问。该第一网络节点包括第一高速缓存存储器模块和第一高速缓存控制模块,该第一高速缓存存储器模块配置用于存储对应于该第一多个客户端工作站的第一数据,并且该第一高速缓存控制模块配置用于从第一高速缓存存储器模块向共享存储传送第一数据。第二网络节点配置用于向第二多个客户端工作站提供对共享存储的访问。该第二网络节点包括第二高速缓存存储器模块和第二高速缓存控制模块,该第二高速缓存存储器模块配置用于存储对应于该第二多个客户端工作站的第二数据并且存储第一数据,并且该第二高速缓存控制模块配置用于从第二高速缓存存储器模块向共享存储传送第二数据,并且响应于第一网络节点的故障,从第二高速缓存存储器模块向共享存储传送第一数据。在其他特征中,集群管理模块配置用于检测第一网络节点的故障,以及指示第二网络节点向共享存储传送第一数据。第一网络节点配置用于当至少一个第一数据被写入第一网络节点并且该第一数据在该第一网络节点中被修改时,向第二网络节点传送第一数据。第一网络节点配置用于响应于第一网络节点向共享存储传送第一数据而指示第二网络节点使存储在第二高速缓存存储器模块中的第一数据无效。在其他特征中,配置用于提供对共享存储的访问的系统包括布置在节点集群中的多个网络节点,该多个网络节点中的每一个网络节点配置用于向多个客户端工作站提供对共享存储的访问。集群管理模块配置用于向节点配对指派每个网络节点。每个节点配对包括原始网络节点和镜像网络节点。原始网络节点配置用于存储与多个客户端工作站的第一分组相关联的第一数据。镜像网络节点配置用于存储第一数据以及存储与多个客户端工作站的第二分组相关联的第二数据。镜像网络节点配置用于响应于原始网络节点的故障而向共享存储传送第一数据。在其他特征中,集群管理模块配置用于检测是否多个网络节点之一发生故障并且向节点配对重新分配多个网络节点。本公开的适用性的其他领域将通过详细描述、权利要求书和附图变得显而易见。 详细描述和具体示例仅仅是为了示例说明的目的,而并不是旨在限制本公开范围。


本公开将通过详细描述和随附的附图被更加充分地理解,在附图中图I是根据本公开的云存储环境的功能框图;图2是根据本公开的节点配对的功能框图;图3是根据本公开的节点集群的功能框图;以及图4图示了根据本公开的节点配对方法的步骤。
具体实施例方式云存储环境中的网络节点以集群方式进行布置。每个集群与集群管理模块对接。 集群管理模块对节点进行管理和配置。仅出于示例,集群管理模块基于可用性和负载平衡来管理节点、多个客户端工作站以及服务器之间的通信。客户端工作站中的一个或多个客户工作站经由节点中的选定节点与服务器通信。 因此,选定节点存储由客户端工作站使用的数据以最小化客户端工作站与服务器之间的通信。如果节点出现故障,则向不同节点分配客户端工作站,并且经由该不同节点与服务器通信。如果节点在该节点中存储的任何经修改的数据被冲向(flush)(即,传送)服务器之前出现故障,则经修改的数据对于客户端工作站而言丢失。在根据本公开的原理的云存储环境中,每个节点与另一节点配对并且在特定条件下(例如,当在该节点中执行写入操作时)将数据冲向另一节点。如果节点出现故障,则向另一节点分配与该节点相关联的任何客户端工作站。因此,最小化由该节点的故障引起的数据丢失。现在参考图1,在云存储环境中操作的系统100包括共享存储104(例如,由网络服务器提供的共享存储,诸如文件夹(filer))。多个节点集群108-1、108-2. . . 108_m(统称为节点集群108)与共享存储104通信。节点集群108相对于共享存储104而言可以位于本地或者远程。节点集群108中的每个集群都包括多个网络节点112-1、112-2. . . 112_n(统称为网络节点112)和集群管理模块116。虽然节点集群108-1被示出为具有n个节点,但是应当理解,其他节点集群108-2. .. 108-m可以包括n个或其他数目的节点。仅出于示例, 每个节点集群108可以包括16个节点112。换言之,节点集群108-1可以包括16个节点 112-1. . . 112-16。类似地,节点集群108-2可以包括另外16个节点112-1. . . 112-16,这些节点与节点集群108-1的节点不同。另外,虽然与节点112分开示出,但是集群管理模块116 也可以与节点112中的一个或多个节点集成。多个客户端工作站120-1、120-2. . . 120-p (统称为客户端工作站120)经由节点112与共享存储104对接。例如,每个客户端工作站120 可以执行主应用,该主应用与在节点112和共享存储104上实现的虚拟机(VM)对接。节点集群108之一中的每个节点112对客户端工作站120的相关联的客户端工作站所使用的数据进行高速缓存,以用于与对应的VM对接。此外,每个节点112与另一节点 112配对。例如,在第一节点配对中,节点112-1可以是原始节点,而节点112-2可以是针对该原始节点的配对节点(即,镜像节点)。相反地,在第二节点配对中,节点112-2可以是原始节点,而节点112-n可以是镜像节点。在第n个节点配对中,节点112-n可以是原始节点,而节点112-1可以是镜像节点。因此,节点集群108中的每个节点112在一个节点配对中为原始节点(例如,第一节点配对中的节点112-1),而在另一节点配对中为镜像节点(例如,第n个节点配对中的节点112-1)。在每个节点配对中,原始节点配对相关联的客户端工作站120的数据进行高速缓存,并且还向镜像节点提供其相关联的客户端工作站120的数据。例如,节点112-1对客户端工作站120的数据进行高速缓存并且向节点112-2提供该数据。在每个节点集群108中,对应的集群管理模块116管理客户端工作站120向节点 112的分配和重新分配,并且向相应的节点配对分配节点112。仅出于示例,集群管理模块 116可以存储标识客户端工作站120与节点之间的关联的信息,以及存储标识每个节点配对的原始节点与镜像节点的信息。可以基于以下标准向所述配对分配节点112,该标准包括但不限于故障区域和/或电源使用。例如,集群管理模块116可以向所述配对分配节点 112,从而使得每个配对中的节点112不使用相同的电源和/或不位于相同的故障区域中。 此外,虽然节点112被描述为分配到节点配对,但是应当理解,在其他实施方式中,某些节点112可以与不止一个其他节点配对。集群管理模块116确定是否节点112之一出现故障。仅出于示例,如果节点112没有响应集群管理模块116传输的特定数据分组;如果另一个节点112向集群管理模块116 通知尝试访问节点112不成功,以及/或者一个或多个其他错误条件,则集群管理模块116 可以确定该节点112出现故障。如果节点112的原始节点出现故障,则集群管理模块116 指示对应的镜像节点将对应的原始节点的数据冲向共享存储104。镜像节点将该数据冲向共享存储104,并且当冲送传输完成时,通知集群管理模块116。因此,尽管原始节点出现了故障,但该原始节点的数据仍然对于客户端工作站120可用。集群管理模块116向一个或多个其他节点112重新分配对应于发生故障的原始节点的VM,并且可以重新分配节点配对。例如,发生故障的原始节点还可能已经是另一节点112的镜像节点。因此,集群管理模块116还指示节点112的另一节点将其数据冲向共享存储104,并且可以向节点112的另一节点重新分配不同镜像节点。节点112的另一节点还可以转变成直写模式(writethrough mode),直到其与不同镜像节点配对为止。例如,在直写模式中,节点112中的所有写入操作被复制到共享存储104中。如果与原始节点相关联的客户端工作站120被分配到一个不同节点112,则集群管理模块116还可以指示镜像节点将对应的原始节点的数据冲向共享存储104。因此,如果客户端工作站120通过该不同的节点112访问共享存储104,则冲向共享存储104的数据仍然对于客户端工作站120可用。现在参考图2,节点集群200包括具有原始节点208和镜像节点212的节点配对 204。虽然可以理解节点集群200包括多个附加节点(例如,总共16个节点),但是出于说明的目的只示出了节点配对204。例如,原始节点208可以是不同节点配对中的镜像节点。 节点配对204与集群管理模块216、共享存储220和相应的客户端工作站224和228进行通f目。原始节点208包括高速缓存控制模块240、高速缓存存储器模块244(例如,LI高速缓存)和高速缓存固态驱动(SSD)模块248 (例如,L2高速缓存)。仅出于示例,高速缓存存储器模块244可以是LI ( S卩,等级I)存储器,其相对于高速缓存SSD模块248 (例如, L2或等级2存储器)而言较快并且具有较少的存储空间。相反,镜像节点212包括高速缓存控制模块252、高速缓存存储器模块256和高速缓存SSD模块260。仅出于示例,高速缓存存储器模块244和256可以包括非易失性存储器,诸如NVRAM。相反,高速缓存存储器模块248和260可以包括SSD。此外,虽然原始节点208和镜像节点212被示出为包括高速缓存模块244、248、252和256,但是原始节点208和镜像节点212可以包括任何其他适合的高速缓存存储器布置。当数据在原始节点208中被修改时(例如,基于与客户端工作站224之一的交互将数据写入原始节点208或在原始节点208中进行修改),原始节点208的高速缓存控制模块240将经修改的数据存储到高速缓存模块244和248中的一个或两者中,并且将经修改的数据冲向镜像节点212。高速缓存控制模块240还可以根据任何适合的标准将数据冲向共享存储220。例如,高速缓存控制模块240可以周期性地和/或基于达到预定的经修改数据量来将数据冲向共享存储220。高速缓存控制模块252将经修改的数据存储到高速缓存模块256和260中的一个或两者中。如果原始节点208出现故障,则集群管理模块216检测该故障,并且指示镜像节点212的高速缓存控制模块252将经修改的数据冲向共享存储220。当将经修改的数据向共享存储220的冲送传输完成时,高速缓存控制模块252通知集群管理模块216,并且集群管理模块216向不同节点重新分配客户端工作站224(和任何对应的VM)。集群管理模块 216还可以在节点集群200中重新分配节点配对。相反,如果镜像节点212出现故障,则集群管理模块216可以通知原始节点208镜像节点212出现故障。作为响应,原始节点208可以将数据冲向共享存储220并且不再尝试将数据冲向镜像节点。仅出于示例,原始节点208可以按照直写模式将数据冲向共享存储220 (例如,原始节点208中的所有写入操作均被复制/备份到共享存储220),直到集群管理模块向原始节点208分配新的镜像节点。在一个实现中,原始节点208的高速缓存控制模块240可以响应于数据被写入高速缓存存储器模块244和248中的一个或两者(即,数据在其中被修改)而将经修改的数据冲向镜像节点212。仅出于示例,高速缓存控制模块252将存储在高速缓存模块244和 248中数据的备份映像(即,拷贝)存储到高速缓存存储器模块256。最初,备份映像数据被存储到高速缓存存储器模块256,然后高速缓存控制模块252可以将该备份映像数据从高速缓存存储器模块256传送到高速缓存SSD模块260。存储到高速缓存模块256和260 的备份映像数据可以被称作“暂停”数据。
镜像节点212针对原始节点208 (例如,高速缓存模块256和260)中发生的每个写入操作维持被冲向镜像节点212的暂停数据。当原始节点208中对应于镜像节点212中的暂停数据的任何数据被修改(例如,重写(overwrite))时,受影响的数据还被冲向镜像节点212,从而使得镜像节点212中的数据反映原始节点208中的经修改的数据。相反,当原始节点208中对应于镜像节点212中的暂停数据的数据被冲向共享存储220时,镜像节点212中的暂停数据变成“无效”或“无暂停”。例如,如果原始节点208将数据冲向共享存储220,则原始节点208可以指示镜像节点212使任何对应的暂停数据无效。然而,在原始节点208出现故障之后,如果对应于无暂停数据的VM与镜像节点212对接,则镜像节点212 随后可以重新使用被标记为“无暂停”的数据。镜像节点212可以不使用该无效数据,并且如果镜像节点212将数据标记为无效,则可以随后改写该无效数据,或者如果数据为“无暂停”,则可以在特定条件下重新使用该数据。此外,当集群管理模块216确定原始节点208已经出现故障时,镜像节点212将尚未无效的任何暂停数据冲向共享存储220。例如,集群管理模块216可以指示镜像节点212 冲送传输暂停数据。现在参考图3,节点集群300中的节点配对配置包括节点304-1、304_2、 304-3. . . 304-(n-1)和304_n (统称为节点304),这些节点由集群管理模块308进行管理。 节点304与共享存储312通信。集群管理模块308向节点配对分配节点304。例如,在第一节点配对中,节点304-1是原始节点而节点304-2是镜像节点。类似地,在第二节点配对中,节点304-2是原始节点而节点304-3是镜像节点。在第(n_l)个节点配对中,节点 304-(n-1)是原始节点而节点304-n是镜像节点。相反,在第n个节点配对中,节点304_n 是原始节点而节点304-1是镜像节点。因此,每个节点304在两个节点配对中,并且每个节点304在一个节点配对中为原始节点而在另一节点配对中为镜像节点。此外,如果任何节点304出现故障,则会影响两个节点配对。每个节点304可以与唯一的标识符相关联。当集群管理模块308向节点配对分配两个节点304时,节点配对中的每个节点304接收指示另一节点304的唯一标识符的信息。 例如,集群管理模块308可以向节点304-2提供节点304-1的标识符,以用于将节点304-1 标识为原始节点。相反,集群管理模块308可以向节点304-1提供节点304-2的标识符,以用于将节点304-2标识为镜像节点。基于原始节点的标识符,镜像节点提供对原始节点的访问并且保留预定存储器量以存储从原始节点冲送传输的数据。当节点304中的一个节点出现故障时,集群管理模块308从对应的节点配对以及节点集群300移除该节点304。例如,如果节点304-1出现故障,则集群管理模块308指示节点304-2不允许来自节点304-1的任何后续数据,并且将对应于节点304-1的任何暂停数据冲向共享存储312。集群管理模块308还可以指示节点304-n不再将数据冲向节点 304-1。在任何受影响节点的数据被冲送传输之后,集群管理模块308可以向不具有节点 304-1的节点配对重新分配节点304。例如,在第一节点配对中,节点304-2可以是原始节点而节点304-3可以是镜像节点。在第(n-2)个节点配对中,节点304-(n_l)可以是原始节点而节点304-n可以是镜像节点。在第(n-1)个节点配对中,节点304_n可以是原始节点而节点304-2可以是镜像节点。因此,发生故障的节点304-1不再被分配到节点集群300中的任何节点配对。集群管理模块308可以重新引导(reboot)节点304-1或者采取其他补救措施来修复节点304-1。如果成功,则节点304-1可以重新进入节点集群300并被分配给节点配对。现在参考图4,节点配对方法400开始于404。在408处,方法400向具有原始节点和镜像节点的节点配对分配节点集群中的节点。在412处,方法400确定是否节点集群中的任何节点出现了故障。如果为真,则方法400继续到416。如果为假,则方法400继续到420。在416处,方法400将受节点故障影响的任何节点冲向共享存储。例如,方法400 将出现故障的节点的镜像节点以及还可以将出现故障的节点的对应原始节点冲向不同的节点配对。在424处,方法400从节点集群中的任意节点配对移除出现故障的节点。方法 400继续到408以向不具有出现故障的节点的节点配对分配节点集群中的节点。在420处,方法400确定原始节点中是否存在写入操作以及是否支持回写(即,将写入内容复制到对应的镜像节点)。如果为真,则方法400继续到428。如果为假,则方法 400继续到412。在428处,方法400将原始节点中的经修改的或写入的数据复制到对应的镜像节点。在432处,方法400确定原始节点是否将数据冲向共享存储。如果为真,则方法 400继续到436。如果为假,则方法400继续到412。在436处,方法400使镜像节点中的数据无效,所述镜像节点中的数据对应于由原始节点冲送传输的数据。上述描述本质上仅是说明性的,并且绝非旨在限制本公开、其应用或使用。本公开的广义教导可以通过各种形式实现。因此,虽然本公开包括特定示例,但是本公开的实际范围并不应当如此受限,这是因为其他修改在研习了附图、说明书和所附权利要求书之后将会变得显而易见。出于清楚的目的,相同的参考标号在图中将用于标识类似的元素。如在此所用,短语A、B和C中至少一个应被解释为意味着使用非排他性逻辑OR的逻辑(A或B 或C)。应该理解,在不改变本公开原理的情况下,方法中的一个或多个步骤可以按照不同的顺序(或者同时)执行。如在此所用,术语模块可以指代、包括专用集成电路(ASIC);电子电路;组合逻辑电路;现场可编程门阵列(FPGA);执行代码的处理器(共享、专用或分组);提供所述功能的其他适合的硬件组件;或者上述某些或所有的组合(诸如在片上系统中)或者作为上述中的一部分。术语模块可以包括存储供处理器执行的代码的存储器(共享、专用或分组)。如上文所用的术语代码可以包括软件、固件和/或微代码,并且可以指代程序、例程、函数、类和/或对象。如上文所用的术语共享意味着来自多个模块的某些或所有代码可以使用单个(共享)处理器来执行。另外,来自多个模块的某些或所有代码可以由单个(共享)存储器来存储。如上文所用的术语分组意味着来自单个模块的某些或所有代码可以使用处理器分组来执行。另外,来自单个模块的某些或所有代码可以使用存储器分组来存储。在此所述的装置和方法可以通过由一个或多个处理器执行的一个或多个计算机程序来实现。计算机程序包括处理器可执行指令,该指令存储在非瞬态有形计算机可读介质上。计算机程序还可以包括所存储的数据。非瞬态有形计算机可读介质的非限制示例为非易失性存储器、磁存储和光存储。
9
权利要求
1.一种配置用于提供对共享存储的访问的系统,所述系统包括第一网络节点,其配置用于向第一多个客户端工作站提供对所述共享存储的访问,所述第一网络节点包括第一高速缓存存储器模块,其配置用于存储对应于所述第一多个客户端工作站的第一数据;以及第一高速缓存控制模块,其配置用于从所述第一高速缓存存储器模块向所述共享存储传送所述第一数据;以及第二网络节点,其配置用于向第二多个客户端工作站提供对所述共享存储的访问,所述第二网络节点包括第二高速缓存存储器模块,其配置用于存储对应于所述第二多个客户端工作站的第二数据并且存储所述第一数据;以及第二高速缓存控制模块,其配置用于从所述第二高速缓存存储器模块向所述共享存储传送所述第二数据,并且响应于所述第一网络节点的故障,从所述第二高速缓存存储器模块向所述共享存储传送所述第一数据。
2.根据权利要求I所述的系统,进一步包括集群管理模块,其配置用于向节点配对分配所述第二网络节点和所述第一网络节点。
3.根据权利要求2所述的系统,其中所述集群管理模块配置用于检测所述第一网络节点的故障,以及指示所述第二网络节点向所述共享存储传送所述第一数据。
4.根据权利要求2所述的系统,其中所述集群管理模块配置用于从所述节点配对移除所述第一网络节点。
5.根据权利要求I所述的系统,其中所述第一网络节点配置用于当所述第一数据中的至少一个被写入所述第一网络节点并且所述第一数据在所述第一网络节点中被修改时,向所述第二网络节点传送所述第一数据。
6.根据权利要求I所述的系统,其中所述第一网络节点配置用于响应于所述第一网络节点向所述共享存储传送所述第一数据而指示所述第二网络节点使存储在所述第二高速缓存存储器模块中的所述第一数据无效。
7.根据权利要求I所述的系统,其中所述第一多个客户端工作站配置用于根据从所述第二高速缓存存储器模块向所述共享存储传送的所述第一数据进行操作。
8.根据权利要求I所述的系统,其中所述第一高速缓存存储器模块和所述第二高速缓存存储器模块包括NVRAM和固态驱动(SSD)中的至少一个。
9.根据权利要求I所述的系统,其中所述第一数据和所述第二数据对应于虚拟机数据。
10.一种配置用于提供对共享存储的访问的系统,所述系统包括布置在节点集群中的多个网络节点,所述多个网络节点中的每个网络节点配置用于向多个客户端工作站提供对所述共享存储的访问;以及集群管理模块,其配置用于向节点配对指派每个所述网络节点,其中每个所述节点配对包括原始网络节点和镜像网络节点,所述原始网络节点配置用于存储与所述多个客户端工作站的第一分组相关联的第一数据,所述镜像网络节点配置用于存储所述第一数据以及存储与所述多个客户端工作站的第二分组相关联的第二数据,以及所述镜像网络节点配置用于响应于所述原始网络节点的故障而向所述共享存储传送所述第一数据。
11.根据权利要求10所述的系统,其中所述多个网络节点中的每个网络节点是第一节点配对中的原始网络节点和第二节点配对中的镜像网络节点。
12.根据权利要求10所述的系统,其中所述集群管理模块配置用于检测是否所述多个网络节点中的一个网络节点发生故障并且向节点配对重新分配所述多个网络节点。
13.一种用于提供对共享存储的访问的方法,所述方法包括使用第一网络节点,向第一多个客户端工作站提供对所述共享存储的访问;存储对应于所述第一多个客户端工作站的第一数据;以及从所述第一网络节点向所述共享存储传送所述第一数据;以及使用第二网络节点,向第二多个客户端工作站提供对所述共享存储的访问;存储对应于所述第二多个客户端工作站的第二数据;存储所述第一数据;从所述第二网络节点向所述共享存储传送所述第二数据;以及响应于所述第一网络节点的故障,从所述第二网络节点向所述共享存储传送所述第一数据。
14.根据权利要求13所述的方法,进一步包括向节点配对分配所述第二网络节点和所述第一网络节点。
15.根据权利要求14所述的方法,进一步包括检测所述第一网络节点的故障;以及指示所述第二网络节点向所述共享存储传送所述第一数据。
16.根据权利要求14所述的方法,进一步包括从所述节点配对移除所述第一网络节
17.根据权利要求13所述的方法,进一步包括当所述第一数据中的至少一个被写入所述第一网络节点并且所述第一数据在所述第一网络节点中被修改时,向所述第二网络节点传送所述第一数据。
18.根据权利要求13所述的方法,进一步包括响应于所述第一网络节点向所述共享存储传送所述第一数据而指示所述第二网络节点使存储在所述第二网络节点中的所述第一数据无效。
19.根据权利要求13所述的方法,其中所述第一多个客户端工作站配置用于根据从所述第二网络节点向所述共享存储传送的所述第一数据进行操作。
20.根据权利要求13所述的方法,其中所述第一数据和所述第二数据对应于虚拟机数据。
全文摘要
本发明涉及一种云存储环境中的镜像解决方案。配置用于提供对共享存储的访问的系统包括配置用于向第一多个客户端工作站提供对共享存储的访问的第一网络节点。该第一网络节点包括配置用于存储对应于该第一多个客户端工作站的第一数据的第一高速缓存存储器模块,以及配置用于从第一高速缓存存储器模块向共享存储传送第一数据的第一高速缓存控制模块。第二网络节点配置用于向第二多个客户端工作站提供对共享存储的访问。该第二网络节点包括配置用于存储对应于该第二多个客户端工作站的第二数据并存储第一数据的第二高速缓存存储器模块,以及配置用于从第二高速缓存存储器模块向共享存储传送第二数据并且响应于第一网络节点的故障而从第二高速缓存存储器模块向共享存储传送第一数据的第二高速缓存控制模块。
文档编号H04L29/08GK102594858SQ20111037926
公开日2012年7月18日 申请日期2011年11月18日 优先权日2010年11月19日
发明者A·P·戈尔, S·班德约帕德雅 申请人:马维尔国际贸易有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1