云计算环境中的分布式锁管理的制作方法

文档序号:9529228阅读:999来源:国知局
云计算环境中的分布式锁管理的制作方法
【专利说明】云计算环境中的分布式锁管理
【背景技术】
[0001] 许多公司和其它组织运营将众多计算系统互连W支持它们的操作的计算机网络, 例如具有位于同一处的计算系统(例如,作为局域网的部分)或改为位于多个不同地理位 置中的计算系统(例如,经由一个或多个专用或公用中间网络连接)。例如,容纳大量互连 的计算系统的数据中屯、已变得很平常,例如由并代表单个组织运营的专用数据中屯、和当作 生意向顾客或客户端提供计算资源的、由多个实体运营的公用数据中屯、。一些公用数据中 屯、运营商为各种客户端拥有的硬件提供网络接入、电源和安全安装设施,而其它公用数据 中屯、运营商提供还包括可供其客户端使用的硬件资源的"全服务"设施。然而,随着典型数 据中屯、的规模和范围不断增加,准备、管控和管理物理计算资源的任务变得日益复杂。
[0002] 用于商品硬件的虚拟化技术的出现提供了为具有不同需要的许多客户端管理大 规模计算资源方面的好处,从而允许各种计算资源被多个客户端有效且安全地共享。例 如,虚拟化技术可W通过为每一用户提供由单个物理计算机器托管的一个或多个虚拟机来 允许所述单个物理计算机器在多个用户之间共享,其中每一此类虚拟机是充当不同逻辑计 算系统的软件模拟,运样向用户提供他们是给定硬件计算资源的唯一操作者和管理员的错 觉,同时还在各个虚拟机之间提供应用隔离和安全性。此外,一些虚拟化技术能够提供跨越 两个或两个W上物理资源的虚拟资源,例如具有跨越多个不同物理计算系统的多个虚拟处 理器的单个虚拟机。作为另一实例,虚拟化技术可W通过为每一用户提供虚拟化数据存储 区来允许数据存储硬件在多个用户之间共享,所述虚拟化数据存储区可W分布在多个数据 存储装置中,其中每一此类虚拟化数据存储区充当不同的逻辑数据存储区,运样向用户提 供他们是数据存储资源的唯一操作者和管理员的错觉。
[0003] 在支持分布式计算的一些系统中,分布式应用的应用组件或进程可W(不时地) 存取各种类型的共享资源。在一些此类系统中,使用分布式锁管理器来控制和/或同步对 那些共享资源的存取。
【附图说明】
[0004] 图1是示出了用于在提供虚拟计算系统的分布式计算系统中提供分布式锁管理 器的方法的一个实施方案的流程图。 阳0化]图2是示出了根据至少一些实施方案的示例提供商网络环境的框图。
[0006] 图3是示出了根据一些实施方案的示例数据中屯、的框图。
[0007] 图4是示出了根据一些实施方案的在控制平面中实现分布式锁管理器的示例数 据中屯、的框图。
[0008] 图5是示出了用于在提供虚拟化资源的分布式计算系统中实现分布式锁管理器 的方法的一个实施方案的流程图。
[0009] 图6是示出了用于使客户端应用或进程存取在云计算环境中实现的分布式锁管 理器的功能性的方法的一个实施方案的流程图。
[0010] 图7是示出了根据一些实施方案的示例数据中屯、的框图,所述示例数据中屯、在控 制平面中实现分布式锁管理器并且将所述分布式锁管理器呈现给在其环境外部执行的进 程。
[0011] 图8是示出了用于使在云计算环境外部执行的客户端应用或进程存取在云计算 环境中实现的分布式锁管理器的功能性的方法的一个实施方案的流程图。
[0012] 图9是示出了根据不同实施方案的实现本文所描述的一些或全部技术的示例计 算机系统的框图。
[0013] 虽然本文中通过举出若干实施方案和示意图来描述实施方案,但是本领域的技术 人员将认识到实施方案不限于所描述的实施方案或图。应理解,所述图和其详细描述不希 望将实施方案限于所公开的特定形式,而是相反地,希望涵盖属于如由所附权利要求书界 定的精神和范围内的所有修改、等效物和替代物。本文中所使用的标题仅用于组织目的并 且没有打算用W限制说明书或权利要求书的范围。如贯穿本申请所使用,词语"可是在 许可意义(即,表示有可能)而非强制性意义(即,表示必须)上使用。类似地,词语"包 括"、"包括了"和"包括有"表示包括但不限于。
【具体实施方式】
[0014] 本文描述了用于在向客户端提供虚拟化计算资源的系统中实现分布式锁管理的 系统和方法的各种实施方案。在一些实施方案中,分布式锁管理器值LM)的组件可W通过 与另一网络(或网络的部分)在物理上或逻辑上不同的网络(或网络的部分)来彼此通信 W管理共享资源的锁,其中存取所述共享资源的分布式应用的应用组件通过所述另一网络 来彼此通信和/或与所述共享资源通信。例如,在一些实施方案中,DLM组件可W通过云计 算环境的控制平面网络来彼此通信,而分布式应用的应用组件可W通过云计算环境的数据 平面网络来彼此通信和/或与共享资源通信。在一些实施方案中,除了呈现给在云计算环 境内执行的客户端应用(或其组件)外,应用编程接口(API)还可W呈现给在云计算环境 外执行的客户端应用(或其组件)。在此类实施方案中,客户端应用(或其组件)中的任一 者都可W加入到DLM的锁定机制中(例如,W开始对用于那些客户端应用共享的资源的锁 的锁管理操作)。
[0015] 应指出,在群集环境(例如实现分布式应用和/或向客户端应用提供虚拟化计算 资源的群集环境)中,在资源之间可能有不同的共享等级。运些系统可W实现各种机制来 管理需要到处移动(例如,响应于计算节点的故障或在其它失效转移的情形中)的资源。例 如,在其中十个虚拟化实例是在虚拟专用云(VPC)内执行的系统中,有时可能会希望在不 同实例之间移动网络接口(例如,弹性网络接口或ENI,或另一类型的虚拟网络接口)(例 如,使它与一个实例断开连接并重新连接至另一实例)。
[0016] 一些现有的系统使用分布式锁管理器来控制和同步对共享资源的存取,但运些系 统通常需要网络连接性。例如,一些群集技术使用网络作为用于DLM的互连机制,所述DLM 用W管理群集使用的锁。在各种实施方案中,本文所描述的系统可W实现不需要此类网络 连接性的分布式锁管理器值LM)。而是,可W在云计算环境的控制平面中实现DLM,并且可 W使用各种API调用由在云计算环境中的资源实例上执行的分布式应用来存取DLM(例如, W便管理可W由那些分布式应用存取的资源的一个或多个锁)。在一些实施方案中,例如, 在顾客想让他们的应用与其它应用隔离(即,其它应用或顾客不可见和/或在与其它应用 不同的虚拟机上运行)时,分布式应用的应用组件在上面执行的资源实例可w被配置为虚 拟专用云(VPC)。在一些实施方案中,可W向在虚拟专用云中执行的每一虚拟机给予它自己 的专用IP地址。在一些实施方案中,可W选择运些专用IP地址(它们也可W被称为"虚拟 专用IP地址"),使得它们不与客户端自己的专用网络中的任何IP地址重叠。在一些实施 方案中,VPC内的资源实例可W使用公用服务API向DLM发送服务请求,而在其它实施方案 中,VPC内的资源实例可W使用专用服务API向DLM发送服务请求。
[0017] 由于群集系统通常包括至少一些共享资源,因此DLM在运些环境中可能是非常有 用的。如上所述,分布式锁管理器可W由分布式应用用来控制和/或同步对各种类型的共 享资源的存取。在各种实施方案中,锁可W与任何类型的资源(例如,磁盘卷、ENI或另一 类型的虚拟网络接口、数据库行或文件)或者一般来说是多个进程对它的访问应进行控制 的任何实体(例如,包括应用组件或资源实例)相关联。
[0018] 在一些实施方案中,DLM可W实现具有任意数目的等级的锁定层级,使得可W锁定 个别资源/实体,或者可W锁定资源/实体的集合(例如,包括两个或两个W上"子"资源的 "父"资源)。在一些实施方案中,在可W获得较低等级的资源(例如,子资源)的锁之前, 必须获得较高等级的资源(例如,父资源)的锁。
[0019] 在各种实施方案中,本文所描述的分布式锁管理器可W支持多种锁模式,其中每 一者可W指示相关联的资源/实体(或它的锁)的共享性质。例如,在不同实施方案中,可 W支持W下锁模式中的任一者或全部:
[0020] ?空锁模式,所述模式允许持有处于此模式的锁的进程表达对相关联的共享资源 的兴趣,但并不阻止所述进程或其它进程对相关联的共享资源的任何存取
[0021] ?并发读取锁模式,所述模式允许所述进程读取(但不修改)相关联的共享资源并 允许其它进程读取或修改相关联的共享资源,但所述模式阻止对相关联的共享资源的独占 存取
[0022] ?并发写入锁模式,所述模式允许所述进程读取或修改相关联的共享资源并允许 其它进程读取或修改相关联的共享资源,但所述模式阻止对相关联的共享资源的独占存取
[0023] ?受保护的读取锁模式,所述模式允许所述进程读取(但不修改)相关联的共享资 源并允许其它进程读取(但不修改)相关联的共享资源
[0024] ?受保护的写入锁模式,所述模式允许所述进程读取或修改相关联的共享资源并 允许具有并发读取存取的其它进程读取(但不修改)相关联的共享资源
[0025] ?独占锁模式,所述模式允许所述进程读取或修改相关联的共享资源,但所述模式 阻止其它进程对相关联的共享资源的任何存取
[0026] 在一些实施方案中,获得(获取)共享资源的锁可W包括(例如,向DLM的组件) 传送获得所述锁的请求和/或入队等待所述锁(例如,将发出请求的进程的指示符加入到 等待获得/获取所述锁的进程的队列中)。在不同实施方案中,锁请求可W是同步的(例 如,所述进程可W等待锁被给予)或异步的(例如,所述进程可W继续进行不需要所述锁的 其它操作,但是如果锁被给予那么所述进程可能会中断)。
[0027] 在一些实施方案中,锁数据结构(或由DLM创建和/或管理的锁的其它表示)可W包括锁值,所述锁值的含义可W通过它在应用中的使用来确定。在一些此类实施方案中, DLM可能不知道(或不需要知道)锁值的含义是什么。在一些实施方案中,锁值可W识别拥 有与锁相关联的共享资源的进程或应用。在一些实施方案中,锁值可w是代表用于锁或用 于相关联的共享资源的版本标识符的单调递增的值。在一些实施方案中,在存取共享资源 之前,进程(或应用)可W读取相关联的锁的值。如果自从进程(或应用)上次获得锁W 来值都没有改变,那么所述进程(或应用)可能知道自从所述进程(或应用)上次存取共 享资源W来所述共享资源都没有被另一进程(或应用)修改。在一些实施方案中,本文所 描述的DLM可W支持或提供死锁检测。
[0028] 如前所述,在一些实施方案中,DLM可W在分布式计算环境(例如,向客户端提供 虚拟化计算资源和/或虚拟计算服务的云计算环境)中W使得DLM组件通过控制平面网络 (例如,使用除了分配给在云中执行的客户端应用外的网络连接性或吞吐量)彼此通信的 方式来实现。在此类实施方案中,DLM组件之间的通信可能不会消耗打算给客户端应用使 用的网络资源或可能不会W其它方式干扰客户端应用的组件之间的通信。
[0029] 在不同实施方案中,本文所描述的系统和方法可W在网络环境内的一个或多个计 算系统上或由网络环境内的一个或多个计算系统实现。本文所描述的分布式锁管理器的实 施方案可W在上面实现的示例计算机系统示出于图9中。用于实现运些分布式锁管理器的 各种系统和方法的实施方案在本文中是在服务提供商的背景中大体描述,所述服务提供商 经由中间网络(例如因特网)向客户端提供在服务提供商的提供商网络上实现的虚拟化资 源(例如,虚拟化计算和存储资源)。图2至图4、图7和图9(W及其对应描述)示出和描 述了在其中可W实现本文所描述的系统和方法的实施方案的示例环境,并且不打算是限制 性的。在至少一些实施方案中,经由提供商网络提供给服务提供商的客户端的至少一些资 源可W是在与其它客户端共享的多租户硬件上和/或在专用于特定客户端的硬件上实现 的虚拟化计算资源。每一虚拟化计算资源可W被称为资源实例。资源实例可W(例如)出 租或租赁给服务提供商的客户端。例如,服务提供商的客户端可W经由至提供商网络的一 个或多个服务的API来存取所述服务,W获得并配置资源实例W及建立和管理包括所述资 源实例的虚拟网络配置(例如虚拟化专用网络)。
[0030] 在一些实施方案中,可W(例如)根据硬件虚拟化技术来实现资源实例,所述硬件 虚拟化技术使多个操作系统能够在主机计算机上同时运行,即,作为主机上的虚拟机(VM)。 主机上的管理程序或虚拟机监视器(VMM)可W向主机上的VM呈现虚拟平台并监视VM的执 行。每一VM可W具有一个或多个专用IP地址;主机上的VMM可能知道主机上的VM的专用 IP地址。
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1