用于远程更新执行进程的方法和设备的制作方法

文档序号:6496266阅读:138来源:国知局
用于远程更新执行进程的方法和设备的制作方法
【专利摘要】本发明公开了用于远程更新执行进程的方法、设备以及计算机可访问存储介质,所述执行进程在I/O端口上接收I/O请求,将写数据存储到本地存储的写日志,并将数据从所述写日志上传到远程存储。检测到并下载用于所述进程的更新,并且从所述更新对更新后的进程进行实例化。在更新窗口期间,当前进程被指示来执行关闭以进行更新。作为响应,所述当前进程保存其当前配置、将所述写日志的存储器中的部分转储清除到本地存储,并释放其I/O端口。更新后的进程加载所保存的配置,检测到所述端口已被释放,并在所述端口上开始接受I/O请求。在转储清除期间,当前进程转储清除存储器中的当前数据,同时继续追加新的写数据,停止接受新的写请求并且然后转储清除所述新的写数据。
【专利说明】用于远程更新执行进程的方法和设备
【背景技术】
[0001]许多公司和其它组织操作互连众多计算系统的计算机网络以支持其运营,例如其中所述计算系统位于同一位置(例如,作为本地网络的一部分)或者位于多个不同的地理位置中(例如,经由一个或多个私有或公共中间网络连接)。例如,包括显著数量的互连的计算系统的数据中心已变得司空见惯,如由单一组织操作并用于所述组织的私有数据中心和由实体进行商业运营来向客户提供计算资源的公共数据中心。一些公共数据中心运营商为由各种客户所拥有的硬件提供网络接入、电源以及安全安装设施,而其它公共数据中心运营商提供还包括可供其客户使用的硬件资源的“全方位服务”设施。然而,随着典型的数据中心的规模和范围不断增加,供应、操纵以及管理物理计算资源的任务已变得日益复杂。
[0002]用于商用硬件的虚拟化技术的出现已为管理用于具有多样化需求的众多客户的大规模计算资源提供了益处,从而允许各种计算资源高效且安全地由多个客户共享。例如,虚拟化技术可以通过为每个用户提供由单一物理计算机作主机的一个或多个虚拟机而允许所述单一物理计算机在多个用户之间共享,其中每个这样的虚拟机充当不同逻辑计算系统的软件模拟,所述软件模拟为用户提供了以为自己是给定硬件计算资源的唯一操作者和管理员的错觉,同时还提供了各种虚拟机之间的应用程序隔离和安全性。此外,一些虚拟化技术能够提供跨越两个或更多个物理资源的虚拟资源,如具有跨越多个不同物理计算系统的多个虚拟处理器的单一虚拟机。
[0003]作为另一实例,虚拟化技术可以通过为每个用户提供可以横跨多个数据存储装置分布的虚拟化的数据存储器而允许数据存储硬件在多个用户之间共享,其中每个这样的虚拟化的数据存储器充当不同的逻辑数据存储器,所述逻辑数据存储器为用户提供了以为自己是数据存储资源的唯一操作者和管理员的错觉。
[0004]Web 服备
[0005]常规Web模型允许客户端经由HTTP客户端程序(如Web浏览器)访问Web资源(例如,应用程序、服务以及数据)。已开发了被称为Web服务的技术以提供对Web资源的编程式访问。Web服务可以用来提供经由Web服务接口对Web资源进行编程式访问,所述Web资源包括托管在Web连接的计算机(如Web服务器系统)上的技术平台(例如,应用程序和服务)和数据(例如,产品目录和其它数据库)。一般来说,Web服务接口可以被配置来提供标准、跨平台的API (应用程序编程接口)用于请求执行一些服务的客户端与服务提供商之间的通信。在一些实施方式中,Web服务接口可以被配置来支持文件或信息的交换,所述文件或信息包括描述服务请求和对此请求的响应的信息。这类文件或消息可以使用标准化的Web协议(例如像超文本传输协议(HTTP))进行交换并且可以以与平台无关的数据格式(例如像可扩展标记语言(XML))进行格式化。
【专利附图】

【附图说明】
[0006]图1是根据至少一些实施方案的示例性网络环境的概要框图,所述网络环境包括示例性服务提供商和示例性服务客户。[0007]图2示出根据至少一些实施方案的用于存储网关的示例性体系结构和所述存储网关的组件。
[0008]图3是其中可以实施存储网关的实施方案的示例性网络环境的概要框图。
[0009]图4是根据至少一些实施方案的示例性网络环境的框图,所述网络环境包括在服务客户网络现场的存储网关,所述存储网关用作所述服务客户网络与服务提供商网络上的存储服务之间的接口。
[0010]图5是根据至少一些实施方案的示例性服务提供商的框图,所述服务提供商向其客户提供存储服务和硬件虚拟化服务。
[0011]图6是宽泛地示出示例性网络环境的体系结构和所述网络环境中的数据流的概要框图,在所述网络环境中存储网关的实施方案被配置为高速缓存网关。
[0012]图7是宽泛地示出示例性网络环境的体系结构和所述网络环境中的数据流的概要框图,在所述网络环境中存储网关的一个实施方案被配置为投影(shadowing)网关。
[0013]图8是根据至少一些实施方案的宽泛地示出在示例性网络环境中自举投影网关的概要框图。
[0014]图9是根据至少一些实施方案的用于投影网关的自举过程的流程图。
[0015]图10是根据至少一些实施方案投影网关进入直通模式并从其中恢复的流程图。
[0016]图11是根据至少一些实施方案的用于从网关上传、更新并跟踪块到远程数据存储器的方法的流程图。
[0017]图12是根据至少一些实施方案的用于投影网关的优化的自举过程的流程图。
[0018]图13示出根据至少一些实施方案的存储网关安全模型的方面。
[0019]图14是根据至少一些实施方案的示出网关安全模型在存储网关的激活、配置以及操作过程中的至少一些方面的流程图。
[0020]图15是根据至少一些实施方案的示例性网络环境的概要框图,其示出参与网关激活过程的服务客户和服务提供商组件或实体。
[0021]图16A和图16B是根据至少一些实施方案的过程流程图,其示出在网关激活过程中图15中所示的组件之间的交互。
[0022]图17A和图17B是根据至少一些实施方案的从存储网关的角度来看的激活过程的流程图。
[0023]图18是示出可以在至少一些实施方案中采用的示例性网关控制体系结构的概要框图。
[0024]图19是根据至少一些实施方案的用于使用网关发起的连接和长轮询技术的远程网关管理的方法的流程图。
[0025]图20是根据一些实施方案的用于网关控制服务器向其对等服务器广播网关请求的方法的流程图。
[0026]图21是根据一些实施方案的用于将网关请求发送到适当的网关控制服务器的替代性方法的流程图。
[0027]图22是根据至少一些实施方案的用于建立、监视以及维护网关发起连接的方法的流程图。
[0028]图23A是根据至少一些实施方案的宽泛地示出用于包括网关代理平面的服务提供商网络的体系结构的框图。
[0029]图23B示出根据至少一些实施方案网关控制服务器通过网关代理平面向网关发送消息。
[0030]图23C示出根据至少一些实施方案网关通过网关代理平面对网关控制服务器请求作出响应。
[0031]图23D示出根据至少一些实施方案的用于网关代理平面的ping消息交换。
[0032]图24示出根据至少一些实施方案的用于高速缓存网关的通用体系结构和所述高速缓存网关的数据I/o操作。
[0033]图25示出根据至少一些实施方案的用于投影网关的通用体系结构和所述加密网关的数据I/o操作。
[0034]图26是根据至少一些实施方案的用于向块数据存储器上的写日志进行写入的方法的流程图。
[0035]图27是根据高速缓存网关的至少一些实施方案的用于满足读请求的方法的流程图。
[0036]图28A至图28D图示出根据至少一些实施方案的用于更新执行网关控制进程的技术的组件和操作。
[0037]图29是根据至少一些实施方案的用于更新执行存储网关进程的方法的流程图。
[0038]图30是示出可以在一些实施方案中使用的示例性计算机系统的框图。
[0039]虽然在本文中通过列举若干实施方案和示意性附图的实例的方式描述了实施方案,本领域的技术人员应认识到,实施方案并不限于所描述的实施方案或附图。应理解,附图和对其的详细描述并非意图将实施方案限于所公开的特定形式,而是相反,其意图在于涵盖落入由所附权利要求书所界定的精神和范围内的所有修改、等同物以及替代方案。本文中所使用的任何标题都是仅用于组织目的并且并不意图限制说明书或权利要求书的范围。如贯穿本申请所用,词语“可以”是以允许意义(即,意味着有可能)而不是强制意义(即,意味着必须)使用。类似地,词语“包括(include/including/includes)”意味着包括但不限于。
【具体实施方式】
[0040]本公开描述了用于为远程存储提供本地网关的方法、设备以及计算机可存取存储介质的各种实施方案。本文在服务提供商的上下文中描述了存储网关的实施方案,所述服务提供商通过中间网络(如因特网)向其一个或多个客户提供存储服务。所述存储网关可以被实施为内置安装在客户的数据中心处并充当所述客户的数据中心与所述存储服务之间的网关的虚拟或物理设备。存储网关可以被配置为到经由存储服务远程提供的主存储的接口并用于所述主存储的本地高速缓存,和/或配置为将实施在客户的网络上的主存储投影到由存储服务提供的远程存储的接口。存储网关可以在所述设备的前端处向客户的应用程序呈现标准的数据存取接口,在所述设备的后端处将数据存取转换成存储服务请求,并根据存储服务接口将数据通过网络传输到存储服务。在至少一些实施方案中,所述存储服务接口可以被实施为Web服务接口。
[0041]存储网关的实施方案可以提供到经由存储服务所提供的几乎无限的、灵活的、可扩展的远程存储的内置接口。存储网关可以提供常规的内置存储解决方案的具有成本效益、灵活且更易扩展的替代方案。虽然存储装置的成本可能减少,但常规的内置存储解决方案的管理成本和其它的硬件与软件成本仍保持相对恒定或者在一些情况下增加。在将至少一些管理成本和其它成本转嫁给服务提供商的情况下,存储网关的实施方案可以允许所述服务提供商的客户降低总体存储拥有成本。
[0042]在至少一些实施方案中,存储服务可以根据块存储技术将客户的数据存储在远程数据存储器中。在至少一些实施方案中,存储网关可以在前端处向客户的应用程序公开块存储协议(例如,iSCS1、GNBD(全局网络块装置)等)、文件存储协议(例如,NFS(网络文件存储)、CIFS(通用互联网文件系统)等)和/或对象存储协议(例如,REST(代表性状态传输))。块存储协议(如iSCSI)使得能够直接存取远程数据存储器的底层数据块。
[0043]由应用程序经由文件存储协议(如由存储网关呈现的NFS或CIFS)写入的文件可以根据块存储技术存储到远程数据存储器。通过所公开的文件存储协议(如NFS和CIFS),在根据块存储技术存储在远程数据存储器中的客户的数据被通过网络从网关发送到客户的应用程序之前,存储网关将客户的数据以文件呈现给客户的应用程序。所述所公开的块存储协议(例如,iSCSI)将块传输到客户的应用程序,因而要求所述应用程序来处理将数据块解释成所述应用程序所期望的任何格式的解释操作。
[0044]块存储协议(如iSCSI)是底层块存储协议,并且因此可以使得用例范围能够比文件存储协议(如NFS和CIFS)更为广泛。块存储协议可以使得能够支持通常写入到块存储器的应用程序(如MicrosoftKSharePoint?和Oraclek数据库),并且还可以被配置来为CIFS或NFS文件服务器提供底层存储。因此,在存储网关的至少一些实施方案中,可以采用块存储协议(如iSCSI)作为到客户应用程序的公开的接口。
[0045]图1是根据至少一些实施方案的示例性网络环境的概要框图,所述网络环境包括示例性服务提供商和示例性服务客户。存储网关84可以被安装、激活并配置为服务客户本地网络或数据中心(例如,客户端网络80)中的虚拟或物理设备,以便向客户端网络80上的客户进程88提供若干远程数据存储功能中的一个或多个。客户进程88可以是存在于客户端网络80上并可以经由网关84的数据端口的数据协议(例如,iSCSI协议)连接到存储网关84并与其通信的任何硬件、软件和/或其组合。存储网关84可以(例如)用作内置存储装置和/或用作客户端网络80上的客户进程88与由服务提供商60提供的存储服务64之间的接口。应注意,除了存储服务64之外,服务提供商60还可以向服务提供商60的客户提供其它服务,包括但不限于硬件虚拟化服务。
[0046]服务提供商60的客户在本文中可以被称为服务客户或简单地称为客户,并且可以是实施耦接到中间网络50 (如互联网)的计算机网络或网络来向本地网络或网络上的一个或多个用户提供网络化计算服务(包括由服务提供商60远程提供的一种或多种服务)的任何实体。服务客户可以是商业企业、教育实体、政府实体或实施向用户提供网络化计算服务的计算机网络或网络的总体上任何实体。虽然图1示出单一客户端网络80,但可能存在多个客户端网络80。每个客户端网络80可以对应于不同服务客户,或者两个或更多个客户端网络80可以对应于同一服务客户的不同数据中心或位置,例如商业企业的不同地区办事处或学校系统的不同校区。在至少一些实施方案中,服务提供商60的每个客户可以拥有服务提供商60的账户,并且可以被提供有安全凭证(例如,账户名称和/或标识符、密码等),经由所述安全凭证一个或多个客户代表(例如,客户端网络管理员)可以登录至到服务提供商60的接口(例如,Web页面)中来管理由一种或多种服务提供的客户的资源,所述客户的资源包括但不限于由服务提供商60提供的存储服务。
[0047]存储网关84的实施方案可以在硬件、软件或其组合中实施。在至少一些实施方案中,存储网关84可以实施为可以(例如)在被在主机系统上实例化的虚拟机内执行的虚拟设备。在至少一些实施方案中,存储网关84可以实施为可以在耦接到服务客户的数据中心处的本地网络基础设施(例如,客户端网络80)的一个或多个计算装置(如服务器系统)上下载或以其它方式安装、激活并配置的虚拟设备。或者,存储网关84可以实施为可以耦接到服务客户的数据中心处的本地网络基础设施(例如,客户端网络80)的专用装置或设备;所述专用装置或设备可以包括实施存储网关84的功能的软件和/或硬件。图26示出其上可以实施存储网关84的实施方案的示例性计算机系统。在至少一些实施方案中,存储网关84经由中间网络50 (例如,因特网)通过防火墙82技术与服务提供商60网络进行通信。应注意,服务提供商60网络还可以包括前端62技术(例如,防火墙技术、边界路由器技术、负载均衡器技术等),来自和流向中间网络50的网络流量通过所述前端技术。
[0048]存储网关84的至少一些实施方案可以根据安全模型进行实施,所述安全模型为客户提供了数据保护并且提供了对网关84的保护防止网关被客户或第三方滥用和未经授权而使用(例如,盗版)。可以保护并加密存储网关84与存储服务64之间的通信。稍后在本文件中描述了激活过程,在所述激活过程中,新安装的存储网关84发起与服务提供商60网络的连接并被其标识以获取安全凭证。在至少一些实施方案中,在所述激活过程中,客户登录到由服务提供商60提供的客户的账户中并向服务提供商60提供在注册网关84中所使用的信息。然而,客户并没有登录到存储网关84中,并且因此客户的安全凭证和其它账户信息没有暴露在网关84上。这可以最小化客户的安全风险。
[0049]在至少一些实施方案中,所述安全模型的方面是存储网关84只接受到从外部向公开给客户端网络80上的客户进程88的一个或多个数据端口(例如,iSCSI端口)发起的连接。存储网关向外部进程发起所有其它连接;外部进程无法向网关发起任何其它连接。例如,在至少一些实施方案中,存储网关84向服务提供商60发起网关管理和其它连接;月艮务提供商60不向网关84发起连接。作为另一个例子,客户端网络80的网络管理员进程90无法直接连接到存储网关84来配置和管理网关84。而是,网络管理员进程90对存储网关84的配置和管理可以通过服务提供商60(例如)经由服务提供商60网络上的控制台进程68来执行。因此,在至少一些实施方案中,客户端网络80上的用户、网络管理者或进程(例如,网络管理员进程90或客户进程88)无法直接“登录”到存储网关84中,服务提供商60网络上或某个其它外部网络上的用户、管理者或进程(例如,控制台进程68和存储服务64)或者某个其它外部网络上的用户、管理者或进程也无法向存储网关84发起连接。这有助于保护存储网关84上的安全凭证和其它操作信息不受到客户端网络80上的个人或进程或受到外部个人或进程有意或无意地危害。
[0050]存储网关84的实施方案可以被安装、激活并配置用于存储服务64来提供若干数据存储器66功能中一种或多种。例如,存储网关84可以被安装、激活、配置并用于存储服务64以用作:
[0051].文件系统网关。在此配置中,存储网关用作到存储服务64的(例如,使用CIFS或NFS协议的)NAS存储接口。网关84可以将远程数据存储器66作为对象存储器(例如,REST)呈现给客户,而数据存储器66是根据块存储技术来实施。在这种配置中,远程数据存储器66可以作为虚拟化的文件系统呈现给客户,客户可以向所述虚拟化的文件系统写入文件并且客户可以从所述虚拟化的文件系统读取文件。
[0052].云卷网关。在此配置中,存储网关84用作经由存储服务64到在远程数据存储器66上实施的卷的接口。远程数据存储器66可以使用块存储技术来实施。网关84提供本地网络接入点,其中远程数据存储器66上的卷(其也可以被称为云卷)用作提供灵活且基本上无限的主存储容量的后端存储。在这种配置中,远程数据存储器66可以作为云卷系统呈现给客户,客户可以从所述云卷系统在本地挂载卷用于读取和写入数据。
[0053]?投影网关。在此配置中,存储网关84用作客户的应用程序(例如,客户进程88)与客户的本地数据存储器86之间的“线缆中的块”,以便提供经由存储服务84将客户的写数据(例如,iSCSI写入)投影到远程数据存储器66。远程数据存储器66可以使用块存储技术来实施。在这种配置中,存储网关84可以用作将客户的本地数据存储器投影到远程数据存储器66上的快照的投影设备。这种投影可以从本地网络上的用户的角度来看透明地来执行。当必要或需要时,客户可以请求或访问远程数据存储器66上的客户的数据的快照,(例如)以便将客户的数据的部分或全部从所述快照还原、恢复或复制到本地存储器86。
[0054]应注意,文件系统网关和云卷网关是相似的,因为两者都用作到远程数据存储器的网关,并且两者都可以在本地将数据(例如,频繁和/或最近使用的数据)高速缓存。在文件系统网关和云卷网关两者中,如果可能的话,那么来自客户进程的数据读取可以从本地高速缓存提供服务,或者如果不可能的话,可以从远程数据存储器提供服务。相反,在投影网关中,数据读取被通过网关传递到客户的本地数据存储器。为了本文件的目的,可以将文件系统网关和云卷网关统称为高速缓存网关以将这些实施方式与加密网关进行区分。
[0055]示例性存储网关设备体系结构
[0056]图2示出根据至少一些实施方案的用于存储网关的示例性体系结构和所述存储网关的组件。应注意,在与高速缓存网关实施方式相比较时,在投影网关实施方式中可以不使用图2中所示的组件中的一些,或者可以不同地使用或实施。
[0057]块驱动器10将客户进程88与存储网关84介接(interface)。一般来说,块驱动器10允许客户进程88 (例如,经由读/写请求)与存储网关84进行交互。由于存储网关84是与客户进程88同地的,因此从进程88的角度来看,数据似乎是被存储在本地。然而,存储网关84与存储服务64介接来将数据存储到由存储服务64提供的远程数据存储器66。对于高速缓存网关来说,主数据存储器是远程数据存储器66,而频繁存取的数据可以由网关84在本地进行高速缓存。读取可以从本地高速缓存或者从虚拟数据存储66得到满足;写入被处理以便适当地更新本地高速缓存中和/或虚拟数据存储66中的数据块。对于投影网关来说,主数据存储器是本地数据存储器86 ;读取被传递到本地数据存储器86,并且写入被投影到虚拟数据存储66,同时还被发送到本地数据存储器86。
[0058]块驱动器10拦截来自客户进程88的读/写请求并将所述请求传递给存储控制器
12。在至少一些实施方案中,块驱动器10可以提供块存储协议(例如,iSCSI或GMBD)作为到客户进程88的接口。在一些实施方案中,代替块存储协议接口或作为其可替代物,块驱动器10可以提供文件存储协议接口(例如,NFS或CIFS),并且可以使用文件系统语义作为到存储控制器12的接口。应注意,虽然图2示出一个块驱动器10,但可能存在一个以上块驱动器。
[0059]存储控制器12经由高速缓存管理器14充当块驱动器10与存储之间的中介物。存储控制器12的职责可以包括将来自块驱动器10的读取和写入请求转发给存储并且当存储用数据响应时回叫块驱动器10。块驱动器10还可以维护统计数据,如正在进行中的请求数目。
[0060]在至少一些实施方案中,一个存储网关84上的存储控制器12可以与另一存储网关84上的高速缓存管理器14进行通信。在至少一些实施方案中,每个存储网关84可以发送心跳消息用于发现和检测故障。可以使用一致性哈希函数来标识负责给定对象的存储网关84,并且可以将获取数据的请求转发给目标存储网关84上的高速缓存管理器14。高速缓存管理器14可以通过调用由存储控制器12提供的回叫信号来响应。
[0061]在高速缓存网关实施方案中,高速缓存管理器14可以管理(例如)提供用于频繁存取的数据的存储的本地高速缓存28。本地高速缓存28可以在存储网关84的内部易失性和/或非易失性存储器上来实施,或者可替代地,可以至少部分地在由客户提供的外部本地数据存储器86上来实施。在至少一些实施方案中,本地高速缓存28代表存储在虚拟化的数据存储66中的数据;来自客户进程88的写入可能不直接影响本地高速缓存28。
[0062]在采用多个网关84的至少一些实施方案中,可以使用分布式本地高速缓存,并且可以使用关于密钥的一致性哈希函数来标识负责持有给定密钥的高速缓存。在至少一些实施方案中,可以使用位置感知请求分布来减少网关84之间的可能要求额外负载平衡的通?目。
[0063]对远程数据存储器66中的给定卷的所`有写请求可以去往特定的网关84节点。由于对卷的所有写请求都被转发给特定的网关84节点,因此网络分区可能不是问题。
[0064]暂存
[0065]在至少一些实施方案中,高速缓存管理器14可以包括暂存16组件或可以与其介接。暂存16可以包括或可以访问写日志18。在至少一些实施方案中,可以在写日志18上建立数据结构并将其用作元数据存储器26。元数据存储器26可以允许快速访问对特定块的所有写入。元数据存储器26可以(例如)用来将变化应用到块内的不同片段。当从客户进程88接收到写数据时,所述数据被追加到写日志18。用于与块有关的写数据的元数据(例如,偏移和长度)可以存储到元数据存储器26。在至少一些实施方案中,写日志18可以被实施为实现为线性队列抑或循环队列的一维数据缓冲器。在至少一些实施方案中,元数据存储器26可以是例如实施为Berkeley数据库的键/值存储器。在一些实施方案中可以使用写日志18和元数据存储器26两者的其它实施方式。
[0066]在高速缓存网关实施方式中,当执行读取时,初始块可以从本地高速缓存28或者从远程数据存储器66获取,并且由写日志18指示的任何挂起的变化都可以在将数据返回给相应的客户进程88之前被应用。
[0067]在一些实施方案中,如果网关84发生故障(例如,当机),那么内存中的写数据可能丢失,除非所述数据已被写入到本地数据存储器86。在一些实施方案中,如果在客户站点处存在多个网关84,那么另一网关84可以承担由当机的网关84所有的密钥的职责、从本地数据存储器86上的快照(如果存在的话)还原写入,并开始接受定向到相应卷的请求。在一些实施方案中,可以将写日志18和/或元数据存储器26复制在两个或更多个网关84上以提供冗余和更好的耐久性。在网关84发生故障的情况下,其它网关84中的一个可以接管发生故障的网关的写日志18和元数据存储器26。然而,在至少一些实施方案中,元数据存储器26只可能在所有者网关84上进行维护。在这些实施方案中,在网关84发生故障的情况下,其它网关84中的一个可以接管并解析主要写日志18来重建元数据存储器26。
[0068]在高速缓存网关实施方式中,取块器22经由存储服务64从远程数据存储器66取出所需块片段。在至少一些实施方案中,取块器22可以采用延迟取出技术来取出完整块用于高速缓存。对于高速缓存网关和投影网关两者来说,块存储器24经由存储服务64将数据从暂存16推送到远程数据存储器66。在至少一些实施方案中,块存储器24可以采用延迟推送技术来推送块。
[0069]在至少一些实施方案中,在用于高速缓存网关的读操作期间,块驱动器10将包括卷ID、起始偏移以及长度的读请求发送给存储控制器12。在至少一些实施方案中,存储控制器12可以将所述卷ID和偏移翻译成目标密钥。存储控制器12可以将所述读请求信息传递给高速缓存控制器14,所述高速缓存控制器可以尝试从适当的本地高速缓存28来满足读请求。如果数据不存在于本地高速缓存28中,那么请求被转发给取块器22,所述取块器经由存储服务64从远程数据存储器66上的适当卷取出数据。一旦获得数据,本地高速缓存28就被更新、来自写日志18的变化被应用并且读响应被返回给客户进程88。在至少一些实施方案中,如果多个块被请求,那么可以返回多个读响应,每个读响应指示用于相应块的相对偏移。在至少一些实施方案中,如果检测到顺序读取,那么可以预取出顺序块。
[0070]在至少一些实施方案中,在写操作期间,块驱动器10将包括卷ID和写数据的写请求发送给负责所述卷的存储控制器12。写数据被写入到写日志18,并且元数据存储器26被更新以包括对缓冲池20中的变化的数据的引用。
[0071]缓+ 池
[0072]在至少一些实施方案中,缓冲池20驻留在存储控制器12与本地数据存储器86之间。缓冲池20可以执行(但不限于)以下任务中的一种或多种。应注意,一些任务可能只适用于高速缓存网关:
[0073]?为写日志18和本地高速缓存28高速缓存用于从其在本地数据存储器装置上的物理位置的逻辑偏移的数据。
[0074].在读和写操作期间维护缓冲器上的锁。
[0075].在用于本地高速缓存28的物理存储上应用逐出技术(例如,基于最近最少使用(LRU)的逐出技术)。应注意,这对于投影网关来说不需要。
[0076].对于高速缓存网关中的读取,如果在本地高速缓存28中没有找到所请求的数据,那么缓冲池20可以与取块器22通信,以便从远程数据存储器66取出块。或者,在一些实施方案中,取块器22可以直接与存储服务64通信来取出块。
[0077]在至少一些实施方案中,缓冲池20可以采用数据库(例如Berkeley数据库(BDB))作为其元数据存储器26。下面所示的表1示出根据至少一些实施方案可以存储在元数据存储器26中的信息。应注意,表1中的条目不旨在根据内容或布置进行限制。
[0078]表1-示例性元数据存储信息
【权利要求】
1.一种装置,其包括: 至少一个处理器;以及 包括程序指令的存储器,其中所述程序指令可由所述至少一个处理器执行来实施存储网关进程,所述存储网关进程经由一个或多个I/o端口从本地网络上的一个或多个客户端进程接收包括写请求的I/o请求,将由所述写请求指示的写数据追加到本地数据储存器上的写日志的存储器中的部分,并将写数据从所述写日志上传到远程数据储存器; 其中所述程序指令进一步可由所述至少一个处理器执行以从远程网络下载更新包,指示所述存储网关进程关闭,并根据所下载的更新包在所述存储器中实例化更新后的存储网关进程; 其中,响应于接收到所述关闭指示,所述存储网关进程保存包括对所述一个或多个I/O端口的指示的存储网关配置,将写数据从所述写日志的所述存储器中的部分转储清除到所述本地数据储存器,并释放所述一个或多个I/o端口 ;并且 其中所述更新后的存储网关进程加载所保存的存储网关配置,并且在所述存储网关进程释放所述一个或多个I/o端口之后从所述存储网关进程接管存储网关操作。
2.如权利要求1所述的装置,其中,为了从所述存储网关进程接管存储网关操作,所述更新后的存储网关进程检测到所述一个或多个I/o端口已被所述存储网关进程释放,打开所述一个或多个I/o端口,并开始经由所述一个或多个I/O端口从所述一个或多个客户端进程接收并处理包括写请求的I/o请求。
3.如权利要求2所述的装置,其中由所述更新后的存储网关进程从所述一个或多个客户端进程接收到的所述写请求包括在所述将写数据从所述写日志的所述存储器中的部分转储清除期间未被所述存储网关进程接受的至少一次写请求重试。`
4.如权利要求2所述的装置,其中,为了处理经由所述一个或多个I/O端口从所述一个或多个客户端进程所接收到的所述写请求,所述更新后的存储网关进程将由所述写请求指示的写数据追加到所述写日志并将所述写数据从所述写日志上传到所述远程数据储存器。
5.如权利要求1所述的装置,其中,为了将写数据从所述写日志的所述存储器中的部分转储清除到所述本地数据储存器,所述存储网关进程: 将所述写日志的所述存储器中的部分中的当前写数据转储清除到所述本地数据储存器,同时在所述一个或多个I/O端口上接受包括写请求的新的I/O请求,并且将由所述新的写请求指示的新的写数据追加到所述写日志的所述存储器中的部分;以及 在将所述写日志的所述存储器中的部分中的所述当前写数据转储清除到所述本地数据储存器之后,在所述一个或多个I/o端口上停止接受后续写请求并将所述写日志的所述存储器中的部分中的所述新的写数据转储清除到所述本地数据储存器。
6.如权利要求5所述的装置,其中所述存储网关进程对所述后续写请求中的每一个作出回复来通知相应客户端进程重试所述写请求。
7.如权利要求1所述的装置,其中所述存储网关进程在指定更新窗口期间保存所述存储网关配置,将所述写数据从所述写日志的所述存储器中的部分转储清除到所述本地数据储存器,并释放所述一个或多个I/o端口。
8.如权利要求7所述的装置,其中所述更新后的存储网关进程在所述指定更新窗口期间加载所保存的存储网关配置并从所述存储网关进程接管存储网关操作。
9.如权利要求1所述的装置,其中所述存储网关进程在所述释放所述一个或多个I/O端口之后终止。
10.一种方法,其包括: 由存储网关执行存储网关操作,所述存储网关操作包括经由一个或多个I/o端口从本地网络上的一个或多个客户端进程接收包括写请求的I/o请求,将由所述写请求指示的写数据追加到本地数据储存器上的写日志的存储器中的部分,并将写数据从所述写日志上传到远程数据储存器; 接收到关闭使得更新后的存储网关可以接管所述存储网关操作的指示;以及 响应于接收到所述指示,保存包括对所述一个或多个I/o端口的指示的存储网关配置,将写数据从所述写日志的所述存储器中的部分转储清除到所述本地数据储存器,并释放所述一个或多个I/o端口使得所述更新后的存储网关进程可以接管所述存储网关操作。
11.如权利要求10所述的方法,其中,为了接管存储网关操作,所述更新后的存储网关进程检测到所述一个或多个I/o端口已被所述存储网关进程释放,打开所述一个或多个I/O端口,并经由所述一个或多个I/O端口从 所述一个或多个客户端进程接收并处理包括写请求的I/o请求。
12.如权利要求10所述的方法,其中,为了将写数据从所述写日志的所述存储器中的部分转储清除到所述本地数据储存器,所述方法进一步包括: 将所述写日志的所述存储器中的部分中的当前写数据转储清除到所述本地数据储存器,同时在所述一个或多个I/o端口上接受包括新的写请求的I/O请求,并且将由所述新的写请求指示的新的写数据追加到所述写日志的所述存储器中的部分;以及 在将所述写日志的所述存储器中的部分中的所述当前写数据转储清除到所述本地数据储存器之后,将所述写日志的所述存储器中的部分中的所述新的写数据转储清除到所述本地数据储存器,同时在所述一个或多个I/o端口上拒绝后续写请求。
13.如权利要求12所述的方法,其进一步包括:对所述后续写请求中的每一个作出回复来通知相应客户端进程重试所述写请求。
14.如权利要求10所述的方法,其进一步包括:在指定更新窗口期间保存所述存储网关配置,将所述写日志的所述存储器中的部分中的写数据转储清除到所述本地数据储存器,并释放所述一个或多个I/o端口。
15.如权利要求10所述的方法,其进一步包括在所述释放所述一个或多个I/O端口之后关闭。
【文档编号】G06F15/16GK103765406SQ201280040713
【公开日】2014年4月30日 申请日期:2012年6月29日 优先权日:2011年6月30日
【发明者】J·C·索伦森三世, 林云, I·布鲁吉奥罗 申请人:亚马逊科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1