首页> 中国专利> 镜像网络数据以建立虚拟存储区域网络

镜像网络数据以建立虚拟存储区域网络

摘要

使用管辖协议(311、321)和镜像引擎(317、327)而没有一个物理的共享存储节点,镜像数据以提供一个虚拟存储区域网络(340)。镜像引擎(317、327)位于网络301中的每个服务器计算机310、320处,以便在服务器接收和执行写操作时在服务器(310、320)的大容量存储设备(319、329)之间镜像数据,这导致每个大容量存储设备包含相同的存储数据。管辖协议(311、321)通过每次不允许一个以上的服务器(310、320)写入一数据文件来防止数据损坏。如果一个服务器(310、320)经历故障、并且不能提供对网络数据的访问,则其它服务器能够服务于所有读请求,是由于所有网络数据可由所有服务器访问。不同于常规的存储区域网络,没有物理的共享存储节点,并且因此,获得和操作虚拟存储区域网络(340)的成本是相对小的。

著录项

  • 公开/公告号CN1520564A

    专利类型发明专利

  • 公开/公告日2004-08-11

    原文格式PDF

  • 申请/专利权人 EMC公司;

    申请/专利号CN02812792.7

  • 发明设计人 迈克尔·R·奥赫朗;

    申请日2002-06-25

  • 分类号G06F17/30;H02H3/05;

  • 代理机构11219 中原信达知识产权代理有限责任公司;

  • 代理人陆弋;钟强

  • 地址 美国马萨诸塞州

  • 入库时间 2023-12-17 15:26:25

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-12

    专利权有效期届满 IPC(主分类):G06F17/30 专利号:ZL028127927 申请日:20020625 授权公告日:20080716

    专利权的终止

  • 2008-07-16

    授权

    授权

  • 2004-10-20

    实质审查的生效

    实质审查的生效

  • 2004-08-11

    公开

    公开

说明书

发明背景技术

1.发明领域

这个发明涉及网络服务器计算机系统,并且尤其涉及对在一系统中用于从计算机故障中恢复的方法的改进,其中该系统提供了一个虚拟存储区域网络,在该网络中多个服务器计算机存取相同的网络数据。

2.背景和相关技术

在网络服务器计算机系统中,有通常由两个或更多服务器支持的多个个人计算机或者用户工作站。为了提供这些计算机系统的连续操作,有必要使计算机系统提供一种用于克服在网络服务器计算机系统内经常发生的错误(faults)和故障(failures)的方法。这通常通过这样来实现:具有冗余的计算机和大容量存储设备,以便如果发生主要服务器计算机或者磁盘驱动器的错误或者故障,则备份服务器计算机或者磁盘驱动器立即可用于接管。

在Major等人的美国专利5,157,663中描述了一种用于实现容错计算机系统的技术。尤其是,Major提供了一种能够从一个文件服务器的计算机或者大容量存储设备的故障中恢复的冗余网络文件服务器系统。文件服务器操作系统运行在网络文件服务器中的每个计算机系统上,并且每个计算机系统协调操作以产生冗余网络文件服务器。这种技术已经被UT Provo的Novell使用以实现它的SFT-III容错文件服务器产品。

近年来,已经发展了被称为“存储区域网络”的容错网络。存储区域网络(“SAN”)用一个公用的或者共享的存储节点连接一企业网中的多个服务器以存储和存取网络数据。在服务器其中之一发生故障的情况下,另一个服务器能够执行否则将由发生故障的(failed)服务器提供的网络服务。

图1说明了一个包含常规的存储区域网络的网络系统的典型体系结构。图1说明了三个为网络101提供网络服务的服务器计算机110、120、和130。尽管在图1中说明了三个服务器,但是网络101可以包含两个服务器或比图1中所示更多的服务器。服务器计算机的这个可变数目取决于正在被服务的网络的个别需要。例如,大的机构可能要求使用几个服务器计算机,而较小的机构可能仅仅要求两个服务器计算机。

在这个配置中,用户工作站(或者个人计算机)102连接到网络101,并且能访问服务器计算机110、120、和130。每个用户工作站通常与一特定服务器计算机有关,但是,在包含存储区域网络的网络系统中,任一服务器实质上能够在需要时为任一工作站提供任何网络服务。用户在用户工作站102处发布对诸如读、写等操作的请求,该请求被传输到相关的服务器计算机110、120、或者130,然后由该相关的服务器计算机使用I/O驱动器113、123、和133执行所请求的操作。服务器110、120、和130在保存在共享存储节点140的磁盘142中的网络数据上执行数据操作。根据如下所述的管辖(policing)协议,每个服务器110、120、和130能访问存储在共享存储节点140处的任何网络数据。图1中的存储区域网络包含物理通信基础结构、和允许服务器计算机110、120、和130与共享存储节点140操作的协议。

每个服务器计算机包含表示管辖协议模块111、121、131的软件,上述管辖协议模块与其它服务器计算机的管辖协议模块协同操作以实现一种管辖协议。管辖协议通过控制所请求操作的操作防止数据损坏。例如,由模块111、121、和131实现的管辖协议可以允许服务器在任何时候对读操作请求做出响应,但是可能仅仅每次允许一个服务器计算机执行写操作请求。

SAN的一个优点是:所有服务器计算机能通过共享的存储节点访问所有网络数据。如果一个服务器经历故障,则工作站能够绕过(bypass)发生故障的服务器,并且向其它服务器发布操作请求。共享的存储节点免除了对在与不同服务器有关的多个存储节点之间镜像(mirroring)数据的需要。然而,存储区域网络具有至少两个值得注意的不利条件(liability):防止它们在市场中变得完全被接受,和使它们不适于许多客户。

首先,SAN要求专门的硬件、即共享的存储节点。存储区域网络的许多潜在用户发现购买和维护一个共享存储节点的费用价格过高。实际上,SAN的许多用户是具有相对大的、有大量服务器的网络的大公司或者其它企业。仅仅需要两或三个服务器的企业可能不会发现实现存储区域网络是节省成本的。

其次,尽管SAN能容忍网络服务器故障,但是它们不是很适于响应或者保护免受其它硬件故障。例如,由于存储区域网络使用单个共享的存储节点,所以与共享存储节点有关的任何故障或者问题能够使SAN离线,并且还可能丢失保存在共享存储节点中的数据。因此,基本的SAN配置没有提供高度的数据完整性,并且在其中数据丢失的风险不可接受的机构中可能不被接受。

发明概述

本发明涉及提供虚拟存储区域网络而不使用一个物理的共享存储节点的计算机网络。依据本发明,网络包含两个或更多服务器,其中每个服务器具有它自己的用于存储网络数据的磁盘。在下面的讨论中,考虑了具有两个服务器的网络。然而,关于两个服务器描述的原理能够被推广到具有两个以上的服务器的网络。

当在网络中的一个用户工作站发布一个写操作请求到服务器中的一个时,接收请求的服务器在它的磁盘处执行写操作,并且使用一个镜像引擎和一个专用的链路以传输该写操作请求到其它服务器。在接收了被镜像的(mirrored)写操作请求后,其它服务器在它的磁盘处执行写操作。这样,写入到一个服务器的磁盘的数据还被写入到另一个服务器的磁盘,由此使网络数据被镜像和存储在两个磁盘处。

由于相同的网络数据存在于两个服务器的磁盘上,所以任何一个服务器都能够对来自任一用户工作站的读操作请求做出响应。在每个服务器处的管辖协议模块协同操作以实现一种管辖协议,其调整每个服务器访问网络数据的定时和优先级。例如,管辖协议能够指定每次只有一个服务器能够在网络数据的特定部分上执行写请求,由此防止数据崩溃。

由于数据被镜像和存储在网络中的每个服务器的磁盘处,所以网络能够很容易容忍服务器其中之一的故障。例如,如果第一个服务器经历了故障,则其它服务器能访问存储在它的磁盘处的所有网络数据,并且它能够使用它自己的磁盘服务于所有操作请求。由于相同的网络数据被存储在网络中的每个服务器的磁盘处,所以从服务器的立场来看,数据好象是已经被保存在一个共享的存储节点中了。因此,本发明提供了一个虚拟存储区域网络,其以类似于实际存储区域网络对故障做出响应的方式来响应网络服务器的操作请求和故障,是由于每个服务器能立即存取所有网络数据。

和常规的存储区域网络相比,本发明中的虚拟存储区域网络和虚拟共享存储节点具有重要的优点。例如,本发明中的网络不要求物理的共享存储节点。因此,与常规的存储区域网络有关的大部分成本被除去了。操作本发明中的网络的降低了的成本使它们可兼容于甚至只具有两个服务器的网络的企业。

此外,在多个服务器的磁盘中镜像和存储相同的网络数据,和使用一个物理的共享存储节点相对比,导致本发明中的网络显著地比常规的存储区域网络更能容忍磁盘故障。例如,如果依据本发明操作的网络中的一个服务器的磁盘发生故障,则在该网络中的其它服务器的磁盘将在其上存储所有网络数据。相反,如果常规的存储区域网络的物理共享存储节点发生故障,则存储在其上的数据会丢失,或者至少该数据将暂时不可存取。

本发明另外的特征和优点将在随后的说明书中进行阐述,而且在某种程度上来说从该说明书中是很显而易见的,或是可以通过本发明的实践得知。本发明的特征和优点可以借助于在附加权利要求中特别指出的装置和组合而实现和获得。本发明的这些及其它特征通过下列的描述和附加权利要求将变得更充分明显,或者可以如在下文中阐述的那样从本发明的实践中得知。

附图简要说明

为了描述能够获得本发明中的以上列举的及其它优点和特征的方式,将参考在附图中说明的它的具体实施例描写以上简要描述的本发明的更特定的描述。明白了这些附图仅仅描述了本发明的典型实施例、并且因此不被认为限制了它的范围后,将通过使用附图用另外的特殊性和细节描述和解释本发明,其中:

图1说明了一个包含常规的存储区域网络的网络系统,其中该常规的存储区域网络具有一个物理的共享存储节点。

图2说明了一个为本发明提供了适当的操作环境的示范性系统。

图3是一个说明了依据本发明的容错网络的示意图,并且显示了一个虚拟的共享存储节点。

图4是一个说明了图3中的容错网络的示意图,其显示了提供图3中的虚拟共享存储节点的功能的硬件及其它组件。

图5是一个描述了依据本发明、具有三个服务器的网络的示意图。

图6和7说明了用于在与两个服务器有关的磁盘之间镜像网络数据、由此向每一个服务器提供对网络数据的访问的方法。

图8是一个流程图,描述了用于在与两个服务器有关的磁盘之间镜像网络数据、由此向每一个服务器提供对网络数据的访问的方法。

本发明的详细说明

本发明涉及其中在多个服务器的磁盘上镜像和存储网络数据以便使多个服务器提供一个虚拟存储区域网络而不具有一个物理的共享存储节点的网络。在网络中的多个服务器中的每一个都具有一个在其上存储网络数据的磁盘、和一个允许该服务器与在网络中的其它服务器通信的镜像引擎。当服务器接收一个写操作请求时,服务器在它的磁盘处执行写操作,并且使用镜像引擎和专用的链路或者其它用于通信的装置把写操作请求传输到在网络中的其它服务器。其它服务器接收写操作请求,并且在它们的相应服务器的磁盘处执行写操作。这样,相同的网络数据被存储在多个服务器中每一个的磁盘处。在服务器中的一个或者与任一服务器有关的磁盘发生故障的情况下,在网络中剩余的其它服务器能够使用保存在对应于这种服务器的磁盘中的网络数据为在网络中的任一用户工作站提供网络服务。

A.示范性的操作环境

本发明的实施例可以包含一个包含各种计算机硬件的专用或者通用计算机,如在下面更详细讨论的那样。在本发明的范围内的实施例还包含用于携带或者在其上存储计算机可执行指令或者数据结构的计算机可读介质。这种计算机可读介质能够是能由通用或者专用计算机访问的任何可利用的介质。例如,而不是限制,这种计算机可读介质能够包含RAM、ROM、EEPROM、CD-ROM或者其它光盘存储器、磁盘存储器或者其它磁存储器设备,或者其它任何能够被用来携带或者存储想要的以计算机可执行指令或者数据结构的形式的程序代码装置、并且能够由通用或者专用计算机访问的介质。当经由网络或者另一个通信连接(或者硬布线的、无线、或者硬布线或无线的组合)向计算机传送或者提供信息时,计算机适当地把该连接看作计算机可读介质。因此,任何这种连接被适当地称为计算机可读介质。上述的组合也应当被包含在计算机可读介质的范围内。计算机可执行指令包含例如使通用计算机、专用计算机、或者专用处理设备执行某个功能或者某组功能的指令和数据。

图2及以下的讨论用来提供其中可以实现本发明的一个适当的计算环境的摘要的、一般的说明。尽管不需要,但是将在在网络环境中由计算机执行的、诸如程序模块之类的计算机可执行指令的一般环境中对本发明进行描述。通常,程序模块包含执行特定任务或者实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。计算机可执行指令、相关的数据结构、和程序模块表示用于执行在此公开的方法中的步骤的程序代码装置的例子。这种可执行指令或者相关数据结构的特定序列表示用于实现在这种步骤中描述的功能的相应动作的例子。

本领域技术人员将会意识到,可以在具有多种类型的计算机系统配置的网络计算环境中实践本发明,其中多种类型的计算机系统配置包含个人计算机、掌上型设备、多处理器系统、基于微处理器的或者可编程的消费者电子设备、网络PC、微型计算机、大型计算机等等。还可以在分布式计算环境中实践本发明,在该分布式计算环境中由通过通信网络链接的(或者通过硬布线的链路、无线链路、或者通过硬布线的或者无线链路的组合)本地和远程处理设备执行任务。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。

参考图2,用于实现本发明的一个示范性系统包含一个以常规计算机20的形式的通用计算设备,它包含处理单元21、系统存储器22、和连接包含系统存储器22的系统组件到处理单元21的系统总线23。系统总线23可以是几种类型的总线结构中的任何一种,其中这几种类型的总线结构包含:使用各种总线体系结构中任何一种的存储器总线或存储控制器、外围总线、和局域总线。系统存储器包含只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统(BIOS)26可以被保存在ROM 24中,其中该基本输入/输出系统(BIOS)26包含基本的、有助于在计算机20内部的单元之间比如在启动时传输信息的例程。

计算机20还可以包含一个用于从磁硬盘39中读取和向其中写入的磁硬盘驱动器27,一个用于从可移动的磁盘29中读取或者向其中写入的磁盘驱动器28,和一个用于从可移动的光盘31、诸如CD-ROM或者其它光介质中读取或者向其中写入的光盘驱动器30。如在此描述的那样,上述结构中的任何一个表示能够被用来建立虚拟存储区域网络的存储设备或者存储体(storage volumes)的例子。磁硬盘驱动器27、磁盘驱动器28、和光盘驱动器30分别通过硬盘驱动器接口32、磁盘驱动器接口33、和光驱动器接口34连接到系统总线23。驱动器和它们的相关计算机可读介质为计算机20提供了计算机可执行指令、数据结构、程序模块及其它数据的非易失性存储。尽管在此描述的示范性环境使用了磁硬盘39、可移动的磁盘29和可移动的光盘31,但是能够使用其它类型的用于存储数据的计算机可读介质,包含磁带盒、闪速存储卡、数字通用磁盘、Bernoulli盒、RAM、ROM等。

包含一个或多个程序模块的程序代码装置可以被存储在硬盘39、磁盘29、光盘31、ROM 24或者RAM 25上,上述一个或多个程序模块包含操作系统35、一个或多个应用程序36、其它程序模块37、和程序数据38。用户可以通过键盘40、指示设备42、或者其它输入设备(未显示)、诸如麦克风、操纵杆、游戏手柄、卫星电视天线、扫描仪等输入命令和信息到计算机20中。这些及其它输入设备经常通过连接到系统总线23的串行端口接口46连接到处理单元21。做为选择,输入设备可以通过其它接口、诸如并行端口、游戏端口或者通用串行总线(USB)连接。监视器47或者另一个显示设备也经由接口、诸如视频适配器48连接到系统总线23。除了监视器之外,个人计算机通常包含其它外围输出设备(未显示)、诸如扬声器和打印机。

计算机20可以在使用到一个或多个远程计算机、诸如远程计算机49a和49b的逻辑连接的网络环境下操作。尽管在图2中仅仅说明了存储器设备50a和50b以及它们的相关的应用程序36a和36b,但是远程计算机49a和49b每个都可以是另一个个人计算机、服务器、路由器、网络PC、对等设备或者其它公共网络节点,并且通常包含以上相对于计算机20描述的许多或者全部单元。在图2中描述的逻辑连接包含在此通过举例而非限制给出的局域网(LAN)51和广域网(WAN)52。这种联网环境在办公室、企业范围的计算机网络、企业内部网、和互联网中是常见的。

当用在LAN联网环境中时,计算机20通过网络接口或者适配器53连接到局部网络51。当用在WAN联网环境中时,计算机20可以包含调制解调器54、无线链路或者其它用于经由广域网52、诸如互联网建立通信的装置。可以是内部或外部的调制解调器54经由串行端口接口46连接到系统总线23。在联网环境中,相对计算机20描述的程序模块、或者它的部分可以被保存在远程存储器存储设备中。将会理解,显示的网络连接是示范性的,而且可以使用其它用于在广域网52上建立通信的装置。

B.虚拟存储区域网络

图3说明了本发明中的虚拟存储区域网络的典型配置。为了说明起见,在图3的例子中,两个服务器计算机310和320为网络301提供网络服务。然而,本发明中的网络的体系结构能够很容易地被缩放为具有三个或更多服务器的网络,其例子将在下面就图5进行讨论。网络301还包含任意数量的用户工作站302,其能够是个人计算机或者其它任何从服务器310和320接收网络服务的计算设备。

每个服务器310和320包含一个管辖协议模块311、321和一个输入/输出设备驱动器313、323。服务器A 310和服务器B 320一起操作以建立一个虚拟的共享存储节点340。虚拟共享存储节点340不是一个物理的共享存储节点、诸如图1中的共享存储节点140。作为替代,虚拟共享存储节点340包含将结合图4更详细描述的各种硬件和软件组件,从I/O驱动器313和323的立场来看,其提供了好象与实际的共享存储节点有关的功能。因此,在这种意义上讲,网络301包含一虚拟共享存储节点340,并且允许服务器310和320访问虚拟共享存储节点340的那部分网络301表示一虚拟存储区域网络。

还注意到,在被指定为虚拟共享存储节点340的图3的区域外的、网络301的包含硬件和软件的网络配置能够与已有网络的相应组件类似或者实质上相同,并且与常规的实际存储区域网络、诸如在图1中说明的网络101的相应组件类似或者实质上相同。依据本发明操作的网络的一个优点是:它们与目前存在的用于和常规存储区域网络一起使用的已有管辖协议软件及其它软件兼容。

参见图4,能够看出,虚拟共享存储节点340的物理组件显著地不同于图1中的常规存储区域网络的实际共享存储节点140的组件。例如,图4中的网络301不包含一个物理的共享存储节点,其除去了与获得和操作一存储区域网络有关的大部分开支。作为替代,服务器310具有它自己的磁盘319,而服务器320具有它自己的磁盘329。因此,服务器310和320能够是普通的或者常规的网络服务器,每个网络服务器都具有它自己的磁盘。换句话说,服务器310和320中的硬件能够与目前用在除实际存储区域网络以外的企业网络中的大多数服务器的硬件类似或相同。如在此使用的那样,“磁盘”和“大容量存储设备”将被广泛地解释为包含用于存储数据以执行在此描述的方法的任何设备或者结构。

允许这种服务器310和320提供虚拟存储区域网络的功能的组件包含镜像引擎317和327以及专用的链路315。镜像引擎317和327表示用于在不同服务器的大容量存储设备或者磁盘之间镜像数据的的装置的例子。还能够和本发明一起使用对应于用于镜像数据的装置的其它结构以执行在此描述的功能。此外,如上所述,在被指定为虚拟共享存储节点340的图4中的区域之外的、在服务器310和320处操作的管辖协议模块311和321及其它软件能够与传统地被用来操作实际存储区域网络的管辖协议及其它功能的已有软件类似或者相同。

图6和7说明了其中镜像引擎317和327以及专用链路315能够被用来在磁盘319和329上镜像数据、由此允许服务器310和320中的每一个能访问所有网络数据的方式。如图6所示,用户工作站302a的用户使用户工作站向与网络301有关的磁盘发布一个用于写数据块A 350的写操作请求。如图6所示,写操作请求通过网络301传输到服务器A 310。由于网络301中的任何一个服务器(例如服务器A 310或者服务器B 320)都能够处理来自任一用户工作站的所有操作请求,所以选择特定服务器310或者320来处理这个操作的方式对于本发明来说不是关键性的。为了平衡在服务器310和320之间的负载,能够实现任何一种想要的负载平衡算法。做为选择,能够在缺省的基础上把特定服务器分配给特定用户工作站。

在这个例子中,服务器A 310接收写操作请求,并且把该请求传递到I/O驱动器313。I/O驱动器313然后把写操作请求传输到从I/O驱动器313的立场来看能够被感知为一虚拟共享存储节点(即图4中的虚拟共享存储节点340)的地方。

管辖协议模块311与服务器B 320的管辖协议模块321一起操作,以确定服务器A 310目前是否满意对磁盘319和329的写访问。管辖协议模块311和321的一个主要目的是:确保在任何单个时间仅仅单个服务器具有对在磁盘319和329中的特定扇区或者数据块的写访问。由于每个服务器310、320通常能访问所有网络数据,所以允许任何服务器一直具有对磁盘的写访问而不实现管辖协议否则能够导致数据崩溃。由于从I/O驱动器313和323以及管辖协议模块311和321的立场来看服务器A 310和服务器B 320好象是使用一个虚拟共享存储节点,所以和本发明一起使用的管辖协议能够与传统地和实际存储区域网络一起使用的管辖协议类似或者相同。换句话说,如先前已经提及的那样,在服务器A 310和服务器B 320上操作的大部分软件能够与和实际存储区域网络一起使用的相应软件类似或者相同。

由于常规的管辖协议能够和本发明一起使用,所以管辖协议的特性将会被本领域技术人员理解。一般说来,无论是和常规存储区域网络还是和本发明中的虚拟存储区域网络一起使用,管辖协议确定已经接收了I/O请求的服务器相对于在网络中的其它服务器目前是否具有访问优先级。例如,如果服务器A 310将接收一个写操作请求,则服务器A 310和服务器B 320经由网络301的网络基础结构彼此通信,并且使用管辖协议模块311和321以确定哪一个服务器具有对将接收写操作的磁盘的扇区或者其它部分的写访问优先级。虽然许多类型的管辖协议都能够和本发明一起使用,所以许多管辖协议具有共同的特征,即它们分布在多个服务器之间,并且在多个服务器彼此通信时被执行。

下面返回图6,I/O驱动器把写操作请求传输到由I/O驱动器感知为是虚拟共享存储节点的地方。然而,实际上,写操作请求由镜像引擎317接收。写操作请求从镜像引擎317传输到磁盘319,在那儿它被执行,从而导致数据A 350被写入到磁盘的特定扇区或者其它区域。为了镜像数据A到磁盘329,镜像引擎317还传输写操作请求到服务器B 320的一个相应的镜像引擎327。写操作请求由专用的链路315或者另一个用于通信的装置传输。其它用于通信的装置可以包含任何无线或者硬布线的通信装置中的一个或者它们的组合。如果使用了专用的链路315,则物理的专用链路表示在网络301和常规网络之间的一个物理差别。本发明的其它实施例能够使用镜像引擎317和327镜像数据而不需要专用链路315。例如,另外被用来在用户工作站302和服务器310和320之间传输数据的网络301的网络基础结构也能够被用来从一个服务器向另一个服务器传输被镜像的写操作请求。专用链路315、网络301的网络基础结构及其它用于通信的装置表示用于在服务器和它的大容量存储设备或者磁盘之间通信的装置的例子。

无论如何,镜像引擎327接收被镜像的写操作请求,并且把它传输到磁盘329,在那儿它被执行,从而导致数据A 350被写入到磁盘329。这样,在用户工作站302a发布写操作请求之后,与写操作请求有关的数据被写入到磁盘319和磁盘329,以便使两个磁盘都包含相同网络数据的被镜像的拷贝。还注意到,当用户工作站302a-n中的一个发布一个使数据从文件中删除或者从磁盘319上删除的写操作请求时,执行类似的处理过程。换句话说,如果从磁盘319上删除数据,则从磁盘329上删除相同的数据,以便使相同的网络数据被镜像和存储在两个磁盘中。

图7说明了在磁盘319和329之间被镜像的数据的另一个实例。在这种情况下,用户工作站302n传输用于写入数据B 352的写操作请求到磁盘329。写操作请求被传输到服务器B 320,在那儿它由I/O驱动器323和管辖协议模块321以类似于以上就用于图6中的数据A350的写操作请求描述的方式进行处理。在图7中,镜像引擎327把写操作请求传输到磁盘329,在那儿它被执行,从而导致数据B被写入到磁盘329。此外,镜像引擎327通过专用链路315、或者通过与网络301有关的另一个用于通信的装置传输写操作请求到服务器A 310中的相应镜像引擎317。镜像引擎317然后把被镜像的写操作请求传输到磁盘319,在那儿它被执行,从而导致数据B 352被写入到磁盘319。因此,图6和7说明了在网络301中的任何服务器310、320是如何能够使与写操作请求有关的数据被存储和镜像在网络中的服务器的每一个磁盘319、329处的。

图8概括了写操作请求被处理以及相关数据被镜像到在网络中的每一个磁盘的方法。在步骤710,用户工作站发布一个写操作请求。在步骤720,经由网络把请求传输到一个特定服务器。在步骤730,特定服务器执行管辖协议,以确定该服务器目前是否具有对在网络中的磁盘的写访问。如果依据判定块732服务器不具有写访问,则操作请求在步骤751被拒绝,并且在步骤753被中止。做为选择,如果依据判定块732服务器不具有写访问,则操作能够被排队直到准予服务器写访问的这种时间为止。

如果依据判定块732服务器具有写访问权力,则操作请求在步骤741被接受。镜像引擎然后在步骤743复制写操作请求,并且把它传输到在网络中的一个或多个其它服务器。在步骤749,接收写操作请求的特定服务器在它的磁盘处执行写操作。同时或者刚好在步骤749之前或者之后,执行步骤750,其中在网络中的、已经接收了写操作请求的被镜像的拷贝的其它服务器执行被镜像的写操作请求,以便使相同的网络数据也被保存在与其它服务器有关的磁盘中。执行步骤743、749以及750的顺序对于本发明来说不是关键性的。

结合图7说明网络301能够对服务器或者磁盘的故障做出响应或是容忍服务器或者磁盘的故障的方式。在这个例子中,假定数据A 350和数据B 352已经被镜像到两个磁盘319和329中了,如以上所述的那样。在服务器A 310离线之前,服务器A宣传(advertise)它能够向工作站提供对在图4的340说明的、虚拟共享存储节点的访问的事实,以便使请求虚拟共享存储节点的磁盘服务的任何工作站能够通过服务器A 310接收它们。在正常操作中的,服务器A 310通过使用磁盘319提供对虚拟共享存储节点的访问。在这个例子中,假定服务器A 310保持可操作,但是它的相关磁盘319离线,并且由于任何原因而变得不可用了。服务器A 310继续向工作站宣传它能够提供对虚拟共享存储节点、包含磁盘319的访问,这是因为从服务器A 310的立场上来看,虚拟共享存储节点和存储在其上的数据保持是可利用的。

在磁盘319发生故障之后,工作站302a-d能够继续通过服务器A 310发布将被虚拟共享存储节点处理的读操作请求。在这个例子中,假定工作站302a发布指向数据A 350的读操作请求。在由服务器A 310接收了读操作请求后,由I/O驱动器313接收读操作请求,并且它被传输到镜像引擎317,镜像引擎317如图4所示在虚拟共享存储节点340的范围之内。

此时,以典型的方式把读操作请求传输到从服务器A 310的立场上来说被感知为一个共享存储节点的存储设备。然而,如上所述,磁盘319是不可访问的,并且不能服务于读操作请求。因此,使用专用链路315把读操作请求传输到服务器B 320。读操作请求然后被用来访问磁盘329,其具有网络数据、包含数据A 350的完整拷贝。因此,网络301能够通过使用镜像引擎317和327无缝地对磁盘319的不可访问做出响应,以重定向由服务器A 310接收的读操作请求。尽管磁盘319发生故障,但是网络301的操作继续不间断。此外,服务器A 310能够以类似的方式在磁盘319发生故障之后通过使用虚拟共享存储节点对其它网络操作请求、诸如写操作请求做出响应,

对磁盘故障做出响应的上述方法允许网络动作继续,而不中断任何在磁盘故障时已经被部分完成的网络动作。以这种方式对磁盘故障做出响应需要服务器A 310的操作的I/O驱动器313和镜像引擎317。

如果服务器A 310的这些功能组件变得不能操作,则依据一个实施例网络301具有继续提供对网络数据的访问的辅助方式。在这种情况下,如果用户工作站302a将发布一个另外由服务器A 310处理的读操作请求,则读操作请求能够由服务器B 320服务,是由于服务器B 320能访问在它的磁盘329上的所有网络数据。为了说明起见,假定由用户工作站302发布的读操作请求指向数据A 350。因为服务器A 310是离线的,所以服务器B 320处理读操作请求。服务器B 320使用存储在磁盘329处的网络数据的被镜像的拷贝,以服务于读操作请求,并且由此向用户工作站提供对数据A 350的读访问。注意到,在网络中的一个服务器经历故障或者离线的情况下,常规的存储区域网络也允许所有服务器提供对所有网络数据的读访问。然而,不同于常规的存储区域网络,本发明中的网络不使用一个物理的共享存储节点来通过任何服务器提供对所有网络数据的访问。

本发明中的网络在磁盘或者服务器故障之后继续操作的性能的上述例子提供了在使用常规存储区域网络时不可能的重要优点。通常,常规存储区域网络具有如果发生故障则能够使数据不可访问的单个组件。例如,典型的常规存储区域网络包含必须操作以便提供对共享存储节点的访问的SAN连接卡或者磁盘驱动器。

此外,常规存储区域网络的共享存储节点的磁盘的物理故障能够导致丢失对数据的访问。实际上,如果图1中的共享存储节点140实际上被损害或者如果存储在其上的数据实际上被失去,则不仅仅经历与发生故障的共享存储节点140有关的停机时间,常规的存储区域网络还可能经历永久的和无法挽回的网络数据的丢失。为了消除这个可能性,常规存储区域网络的管理员能够购买和在共享存储节点维持冗余磁盘阵列(RAID),这增加了系统的成本和复杂性。如上所述,本发明允许在虚拟共享存储节点中的磁盘容错而不需要RAID。

在图3、4、6和7中就两个服务器说明的发明中的方法能够适用于具有两个以上服务器的网络。例如,图5说明了依据本发明、具有三个服务器、即服务器A 510、服务器B 520和服务器C 530的网络。图5中的网络501的操作类似于以上关于图6和7所述的网络301的操作。例如,当服务器A从用户工作站502接收一写操作请求时,由I/O驱动器513处理写操作请求。管辖协议模块511和服务器A 510与服务器B 520的管辖协议模块521以及服务器C 530的管辖协议模块531共同操作。

服务器A 510的镜像引擎517通过专用链路515或者其它另一个通信链路传输写操作请求的拷贝到服务器B 520的镜像引擎527。镜像引擎517还通过专用链路555或者其它通信链路传输写操作请求的拷贝到服务器C 530的镜像引擎537。此外,注意到,能够使用其它任何通信链路来传输写操作请求的拷贝到在网络中的其它服务器的各个镜像引擎。例如,网络501的网络基础结构能够被用来传输这种写操作请求。做为选择,能够通过连续地通过专用链路515、镜像引擎527以及专用链路525传输操作请求,把写操作请求从镜像引擎517传输到镜像引擎537。所有镜像引擎517、527、以及537能够彼此通信是重要的。以上述的方式,写入到磁盘519、529和539中的一个上的数据被存储在所有这些磁盘处。在服务器510、520、530中的一个发生故障的情况下,剩余的服务器能够服务于来自任何用户工作站的用于任何网络数据的所有请求。

可以以其它具体形式实现本发明而不背离它的精神或者本质特性。无论从哪一点来看,所描述的实施例都将仅仅被认为是说明性的与非限制性的。本发明的范围因此由附加权利要求而不是由上述说明书表示。在权利要求的等效含义和范围内的所有改变都将被包含在它们的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号