用于数据环境的自服务配置的制作方法_2

文档序号:9547244阅读:来源:国知局
如使得服务器对单个数据中心故障是能恢复的。
[0025] 在本实施方案中,控制面包括在本文被称为"清理器"的部件214。清理器部件可 以是可操作来轮询控制面的各个部件或以其它方式响应于正在等待的请求而确定待执行 的任何任务的任何适当的部件。在本实例中,Web服务层可在管理数据存储器222或类似 的作业队列中安排对"创建数据库"请求的指令或信息,且清理器可周期性地检查管理数据 存储器以得到正在等待的作业。可使用各种其它方法,如对本领域的技术人员将是明显的, 诸如Web服务层向作业存在的清理器提交通知。清理器部件可收到"创建数据库"请求,且 使用请求的信息可将请求、调用或其它这种命令提交到可操作来例示该请求的至少一个工 作流的工作流部件216。在一个实施方案中,使用工作流服务来产生并维持工作流,如在本 文其它地方讨论的。工作流通常是应被实现来执行特定作业的一序列任务。工作流不是实 际的工作,而是控制信息流动的工作和执行的工作的抽象。工作流也可被认为是状态机,其 可在执行期间的任何时间管理并返回过程的状态。在一个实施方案中,工作流部件(或部 件的系统)可操作来管理和/或执行任务的工作流的托管和执行,这些任务诸如存储库创 建、修改和删除;恢复和备份;安全组创建、删除和修改;用户证书管理;以及密钥旋转和证 书管理。这种工作流可紧接着工作流服务来实现,如在本文其它地方讨论的。工作流部件 也可管理用于不同的数据库引擎诸如MySQL的工作流步骤之间的差异,因为下层工作流服 务不一定改变。
[0026] 在本实例中,可使用用于创建数据库并应用从原始请求提取的信息的工作流模板 来例示工作流。例如,如果该请求是针对MySQUb关系数据库管理系统(RDBMS)实例,与 Oracle" RDBMS或其它这种实例相反,则特定的任务将被添加到指向MySQL实例的工作流。 工作流部件还可选择与所请求的存储量有关的特定的任务、任何特定的硬件要求或其它这 种任务。这些任务可按对总作业有用的执行的顺序被添加到工作流。虽然一些任务可被并 行地执行,但是其它任务依赖于将被首先完成的先前任务。工作流部件或服务可包括工作 流中的该信息,且在需要时任务可被执行且信息被传递。
[0027] 客户的示例性"创建数据库"工作流可包括任务,诸如供应数据存储器实例,分配 实例之外的持久存储卷、将持久存储卷附到数据存储器实例,接着分配并附加客户可用来 访问或以其它方式连接到数据实例的DNS地址或其它地址、端口、接口或标识符。在本实例 中,给用户提供用于访问实例的DNS地址和端口地址。工作流还可包括下载并安装任何二 进制或用于特定的数据存储技术(例如,MySQL)的其它信息的任务。工作流部件可管理这 些和任何相关任务或这种任务的任何其它适当组合的执行,并可响应于"创建数据库"请求 而产生对指示"数据库"的创建的请求的响应(其实际上对应于在数据面210中的数据存 储器实例),并提供用于访问该实例的DNS地址。用户接着可使用DNS地址和端口来直接访 问数据存储器实例,而不必访问或经过控制面208。各种其它工作流模板可用于执行类似的 作业,诸如删除、创建或修改多个数据存储器实例之一,诸如以增加存储。在一些实施方案 中,工作流信息被写到存储器,且至少一个单独的执行部件(未示出)基于工作流信息提取 或以其它方式访问或接收待执行的任务。例如,可能有执行供应任务的专用供应部件,且该 部件可能不被工作流部件调用,但可监控任务队列或可接收用于以很多相关方法的任一个 供应任务的信息,如应是明显的。
[0028] 如所提到的,各种实施方案可利用工作流服务,其可接收对过程或任务的当前状 态(诸如存储库的供应)的请求或调用,并可返回过程的当前状态。工作流部件和/或工 作流服务不进行实际调用或请求以执行每个任务,但相反管理使控制面的部件能够确定待 执行的下一任务的工作流的状态和配置信息,以及该任务所需的任何信息,接着产生进入 包括该状态信息的数据面中的适当调用,由此数据面的部件可进行调用以执行任务。工作 流和任务可被并行地调度,以便增加吞吐量并最大化处理资源。如所讨论的,任务的实际执 行将发生在数据面中,但任务将起源于控制面。例如,工作流部件可与可进行进入数据存储 器的调用的主机管理器进行通信。因此,对于给定的任务,可对传递某些参数的工作流服务 进行调用,由此工作流服务产生对工作流的任务序列,并提供当前状态,使得该当前状态的 任务可被执行。在任务被执行(或以其它方式被解决或终结)之后,部件例如主机管理器 可回答服务,该服务可接着提供关于工作流中的下一状态的信息,使得下一任务可被执行。 每当工作流的任务之一被执行时,服务可提供待执行的新任务,直到工作流被完成。此外, 对于不同的工作流可以并行地运行多个线程以加快工作流的处理。
[0029] 在本实施方案中,控制面208还包括至少一个监控部件218。当数据实例在数据面 中被创建时,该实例的信息可被写到控制面中的数据存储器中,诸如监控数据存储器220。 应理解,监控数据存储器可以是单独的数据存储器,或可以是另一数据存储器的一部分,诸 如在管理数据存储器222中的不同的一组表或其它适当的存储库。监控部件可访问监控数 据存储器中的信息以确定数据面210中的活动实例234。监控部件还可执行其它任务,诸如 从控制面和/或数据面的多个部件(诸如Web服务层、工作流部件、清理器部件和各种主机 管理器)收集日志和/或事件信息。使用这种事件信息,监控部件可为了诸如实现面向客 户的API的目的而暴露客户可见的事件。监控部件可持续地监控控制面的所有运行存储库 和/或实例的健康状况,检测这些实例的任何一个的故障,并启动适当的恢复过程。
[0030] 对于提供对数据存储器的访问的机器,在数据面中的每个实例234可包括至少一 个数据存储器226和主机管理器部件228。在一个实施方案中,主机管理器是应用或软件代 理,其在实例和/或应用服务器诸如Tomcat或Java应用服务器上执行,被编程为管理诸如 软件配置和数据存储操作的任务,以及监控数据存储器和/或各种实例的状态。在一个实 施方案中,主机管理器监听只可从内部系统部件到达且对客户或其它外部实体不可用的端 口。在一些实施方案中,主机管理器不能启动进入控制面层的任何调用。主机管理器可负 责管理和/或执行任务,诸如建立新存储库的实例,包括建立逻辑卷和文件系统,安装数据 库二进制和种子,以及开始或停止存储库。主机管理器可监控数据存储器的健康状况,以及 对数据存储器监控错误情况诸如I/O错误或数据存储错误,并可在必要的情况下重新启动 数据存储器。主机管理器还执行和/或管理软件补丁的安装,及升级数据存储器和/或操 作系统。主机管理器还可收集相关的度量,例如可涉及CPU、存储器和I/O使用。
[0031] 监控部件可诸如通过提交特定的请求或通过监控来自主机管理器的心跳来周期 性地与所监控的实例234的每个主机管理器228进行通信,以确定每个主机的状态。在一 个实施方案中,监控部件包括被配置来向每个主机管理器发出命令的一组事件处理器(或 监控服务器),诸如以得到特定主机和/或实例的状态。如果在特定数量的重试之后没有 收到响应,则监控部件可确定有问题,并可将信息存储在管理数据存储器222或另一这种 作业队列中,以对实例执行行动,诸如以验证问题并在必要时重新供应实例。清理器可访问 该信息并开始该实例的恢复工作流,以试图从故障自动恢复。主机管理器228可充当对控 制面的监控和其它部件的代理,其代表控制面部件来执行实例的任务。有时,实例之一将出 现问题,诸如相应的主机、实例或卷崩溃、再引导、重新启动等,其不能自动解决。在一个实 施方案中,存在可记录这些和其它客户可见事件的记录部件(未示出)。记录部件可包括 API或其它这种接口,使得如果实例在一段时间内是不可用的,那么客户可调用适当的"事 件"或类似的API来获得关于事件的信息。在一些情况下,当实例出故障时,请求可保持未 决。因为在本实施方案中控制面与数据面分离,控制面从不接收数据请求,因此不能使请求 排队用于随后的提交(虽然在一些实施方案中该信息可被转发到控制面)。因此,在本实施 方案中,控制面向用户提供关于故障的信息,所以用户可在必要时处理请求。
[0032] 如所讨论的,一旦实例被供应且用户被提供了 DNS地址或其它地址或位置,用户 就可通过使用Java数据库连接(JDBC)的网络将请求"直接"提交到数据面210或其它这 种客户,以直接与该实例234交互作用。在一个实施方案中,数据面采取计算云环境的形式 (或至少包括计算云环境或是计算云环境的部分),或在硬件和/或软件部件的整个"云" 或动态网络中提供数据存储和访问的一组Web服务和资源。DNS地址在这种动态云环境中 是有益的,因为实例或可用性故障,例如,可通过计划性地将DNS地址重新映射到用于使用 的任何适当的置换实例而被掩码。从用户202或应用程序204接收的请求,例如,可被引导 到网络地址转换(NAT)路由器224或其它适当的部件,其可将请求引导到实际实例234或 对应于该请求的DNS的主机。如所讨论的,这种方法允许实例被动态地移动、更新、复制等, 而不需要用户或应用改变DNS或用于访问实例的其它地址。如所讨论的,每个实例234可 包括主机管理器228和数据存储器226,并具有在持久性存储器230中的至少一个备份实例 或副本。使用这种方法,一旦实例通过控制面被配置,用户、应用、服务或部件就可通过对数 据面的请求来直接与实例交互作用,而不必访问控制面232。例如,用户可通过DNS地址直 接发出结构化查询语言(SQL)或与实例中的数据有关的其它这种命令。如果用户想执行任 务,诸如扩展实例的存储容量,用户可只须访问控制面。在至少一个实施方案中,控制面208 的功能可作为至少一个服务由提供商提供,该提供商可以或可以不与数据面210的提供商 有关,而是可简单地是可用于供应并管理数据面中的数据实例并且还可监控和确保单独的 数据面210中的那些实例的可用性的第三方服务。
[0033] 如所讨论的,提供控制面的功能作为Web服务或其它这种服务的一个优点是控制 面作为虚拟数据库管理员(DBA)起作用并避免人DBA执行任务(诸如供应数据)的需要。 供应数据目前是冗长的手工过程,需要DBA接收必要的配置信息,确定配置是否是有效的, 优化并调节实例,并执行其它这种任务,这花费大量的时间和努力。此外,这种方法为错误 提供了很多机会,这些错误可能没有被发现直到数据丢失之后。使用如本文所述的控制面 或服务,用户或客户可替代地提交调用,包括诸如硬件的类型和数据库产品的版本的信息。 控制面或服务可接着执行必要的任务来创建、删除、修改、扩展或以其它方式修改数据存储 器或数据存储实例。控制面还可用一致的方式支持数个不同的数据库引擎,而不需要DBA 在每个引擎中成为专家。一旦被供应,用户就本地访问数据实例,并可简单地将现有的应用 (诸如MySQL应用)指向DNS地址或特定实例的其它位置信息。没有询问模型或其它这种 功能的限制或更改,因为用户可继续使用基于MySQL、Oracle或其它数据库技术上的应用。 [0034] 当对客户供应数据存储库、数据存储实例或其它数据资源时,至少某些实施方案 中的控制面部件提供用于设定数据实例的配置参数的初始设定。这种故障参数组的参数可 包括例如缓冲器缓存分配设定、查询超时设定、连接超时设定和/或其他这种操作或配置 参数。在某些实施方案中,控制面的管理部件将选择或确定一组优选(或至少是默认)参 数值,以用于设定数据库。所选参数可根据多个因素的任意因素,例如用户、数据库类型、应 用所使用或访问所需的类型等。
[0035] 在云计算或类似的可扩展资源环境中,在各种实施方案中提供配置参数的默认或 初始设定可能是非常重要的,这是由于客户可具有根据要求操作数据库的能力,包括开启 数据实例、扩展存储和/或处理资源等。例如,客户可在指定实例类存储空间内创建一个或 多个数据实例,并且当不再需要这些实例时可删除这些实例。在这样一个实施方案中,系统 可对实例类生成配置参数的默认设定,其中在该类中生成的任意实例将具有应用于这些实 例的默认参数组。
[0036] 在许多情况下,生成的默认参数被优化,或者至少对于各种实例是适当的或可接 受的。然而,可能具有特殊用途的情况,其中用户可能希望调节一个或多个参数以提高或调 节性能、可用性或其它这种方面。例如,某些应用可能是非常缓存密集的,从而客户可能希 望增加一个或多个数据库的缓存分配。客户可能希望在创建实例之前或者在存在的实例运 行的同时调节参数。在某些情况下,当数据实例重新启动(restart)或重启(reboot)时可 仅改变参数,如同本发明其他处所详细讨论的。
[00
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1