首页 / 专利库 / 控制系统 / 信道选择器 / 数据处理环境中的虚拟节点的增强数据存储

数据处理环境中的虚拟节点的增强数据存储

阅读:342发布:2020-05-08

专利汇可以提供数据处理环境中的虚拟节点的增强数据存储专利检索,专利查询,专利分析的服务。并且本文中描述了用以增强计算环境中的虚拟 节点 的管理的系统、方法和 软件 。在一个示例中,方法包括:针对在第一主机上执行的虚拟节点的第一版本标识转换事件;标识第二主机以支持虚拟节点的第二版本;以及启动虚拟节点的第二版本在第二主机上的执行。在一些实现中,虚拟节点包括执行主机上的非持久部分和第二存储元件上的持久部分。,下面是数据处理环境中的虚拟节点的增强数据存储专利的具体信息内容。

1.一种在包括多个主机的计算环境中管理虚拟节点的方法,所述方法包括:
针对在所述多个主机的第一主机上执行的虚拟节点的第一版本标识转换事件,其中所述虚拟节点的所述第一版本包括所述第一主机上的非持久存储和第二存储元件上的持久存储;
响应于所述转换事件,针对所述虚拟节点的第二版本标识所述多个主机中的第二主机;以及
启动所述虚拟节点的所述第二版本在所述第二主机上的执行,其中所述虚拟节点的所述第二版本包括所述第二主机上的非持久存储和所述第二存储元件上的所述持久存储。
2.根据权利要求1所述的方法,其中所述虚拟节点包括容器。
3.根据权利要求1所述的方法,其中所述多个主机包括物理计算系统或虚拟机
4.根据权利要求1所述的方法,其中所述转换事件包括所述第一主机的硬件故障。
5.根据权利要求1所述的方法,其中所述转换事件包括所述第一主机的软件更新或故障。
6.根据权利要求1所述的方法,其中所述转换事件包括将所述虚拟节点从所述第一主机转换到所述第二主机的用户请求
7.根据权利要求1所述的方法,还包括停止所述虚拟节点的所述第一版本在所述第一主机上的执行,并且其中启动所述虚拟节点的所述第二版本在所述第二主机上的执行包括:响应于停止所述虚拟节点的所述第一版本的执行,启动所述虚拟节点的所述第二版本在所述第二主机上的执行。
8.根据权利要求1所述的方法,其中针对所述虚拟节点的所述第二版本标识所述第二主机包括:基于与所述多个主机相关联的处理负载来选择所述第二主机。
9.根据权利要求1所述的方法,其中针对所述虚拟节点的所述第二版本标识所述第二主机包括:基于与所述虚拟节点相关联的处理要求来选择所述第二主机。
10.根据权利要求1所述的方法,其中所述第二存储元件包括:
通过以太网被通信地耦合到至少所述第一主机和所述第二主机的存储元件、通过光纤信道被通信地耦合到至少所述第一主机和所述第二主机的存储元件、或者通过外围组件互连Express(PCIe)被通信地耦合到至少所述第一主机和所述第二主机的存储元件。
11.一种系统,包括:
一个或多个非瞬态计算机可读存储介质;
处理系统,在操作上被耦合到所述一个或多个非瞬态计算机可读存储介质;以及被存储在所述一个或多个非瞬态计算机可读存储介质上的程序指令,用以在包括多个主机的计算环境中管理虚拟节点,所述程序指令在由所述处理系统执行时引导所述处理系统至少:
针对在所述多个主机中的第一主机上执行的虚拟节点的第一版本标识转换事件,其中所述虚拟节点的所述第一版本包括所述第一主机上的非持久存储和第二存储元件上的持久存储;
响应于所述转换事件,针对所述虚拟节点的第二版本标识所述多个主机中的第二主机;以及
启动所述虚拟节点的所述第二版本在所述第二主机上的执行,其中所述虚拟节点的所述第二版本包括所述第二主机上的非持久存储和所述第二存储元件上的所述持久存储。
12.根据权利要求11所述的系统,其中所述虚拟节点包括容器。
13.根据权利要求11所述的系统,其中所述转换事件包括所述第一主机的硬件故障。
14.根据权利要求11所述的系统,其中所述转换事件包括将所述虚拟节点从所述第一主机转换到所述第二主机的用户请求。
15.根据权利要求11所述的系统,其中所述程序指令还引导所述处理系统停止所述虚拟节点的所述第一版本在所述第一主机上的执行,并且其中启动所述虚拟节点的所述第二版本在所述第二主机上的执行包括:响应于停止所述虚拟节点的所述第一版本的执行,启动所述虚拟节点的第二版本在所述第二主机上的执行。
16.根据权利要求11所述的系统,其中针对所述虚拟节点的第二版本标识所述第二主机包括:基于与所述多个主机相关联的处理负载来选择所述第二主机。
17.根据权利要求11所述的系统,其中针对所述虚拟节点的第二版本标识所述第二主机包括:基于与所述虚拟节点相关联的处理要求来选择所述第二主机。
18.根据权利要求11所述的系统,其中所述第二存储元件包括:
通过以太网被通信地耦合到至少所述第一主机和所述第二主机的存储元件、通过光纤信道被通信地耦合到至少所述第一主机和所述第二主机的存储元件、或者通过外围组件互连Express(PCIe)被通信地耦合到至少所述第一主机和所述第二主机的存储元件。
19.一种装置,包括:
一个或多个非瞬态计算机可读存储介质;
被存储在所述一个或多个非瞬态计算机可读存储介质上的程序指令,用以在包括多个主机的计算环境中管理虚拟节点,所述程序指令在由处理系统执行时引导所述处理系统至少:
针对在所述多个主机中的第一主机上执行的虚拟节点的第一版本标识转换事件,其中所述虚拟节点的所述第一版本包括所述第一主机上的非持久存储和第二存储元件上的持久存储;
响应于所述转换事件,基于与所述虚拟节点相关联的处理要求来针对所述虚拟节点的第二版本选择第二主机;以及
启动所述虚拟节点的所述第二版本在所述第二主机上的执行,其中所述虚拟节点的所述第二版本包括所述第二主机上的非持久存储和所述第二存储元件上的所述持久存储。
20.根据权利要求19所述的装置,其中所述虚拟节点包括容器。

说明书全文

数据处理环境中的虚拟节点的增强数据存储

背景技术

[0001] 正在开发越来越多的数据密集型分布式应用来满足各种需求,诸如处理通常无法由单个计算机处理的非常大的数据集。取而代之,采用计算机集群来分发各种任务,诸如组织和访问数据以及关于该数据执行相关操作。已经开发了各种大型处理应用和框架来与这样的大型数据集交互,包括Hive、HBase、Hadoop、Spark等。
[0002] 同时,虚拟化技术已经变得普及并且现在在数据中心和其他计算环境中变得普遍,其中提高使用计算资源的效率是有用的。在虚拟化环境中,一个或多个虚拟节点在底层物理计算机上实例化,并且共享底层计算机的资源。相应地,不是按主机计算系统实现单个节点,而是可以在主机上部署多个节点以更有效地使用计算系统的处理资源。这些虚拟节点可能包括完整的操作系统虚拟机、容器(诸如Linux容器或Docker容器)、监牢或其他类似类型的虚拟包含节点。然而,尽管虚拟化技术在计算环境内提供了提高的效率,但是在向个体虚拟节点分配资源时常常会出现困难。附加地,当由于设备故障、软件更新或一些其他迁移或转换事件而需要在主机之间迁移虚拟节点时,会出现困难。发明内容
[0003] 本文中描述的技术增强了计算环境中的虚拟节点的管理。在一个实现中,方法包括:针对在第一主机上执行的虚拟节点的第一版本标识转换事件,其中虚拟节点的第一版本包括第一主机上的非持久存储和第二存储元件上的持久存储。该方法还包括:响应于转换事件,针对多个主机中的虚拟节点的第二版本标识第二主机。一旦第二主机被标识,该方法还提供启动虚拟节点的第二版本在第二主机上的执行,其中虚拟节点的第二版本包括第二主机上的非持久存储和第二存储元件上的持久存储。附图说明
[0004] 图1图示了根据实现的用以管理集群的节点的计算环境;
[0005] 图2图示了根据实现的计算环境中的操作;
[0006] 图3A-3B图示了了根据实现的迁移节点的操作场景;
[0007] 图4图示了根据实现的虚拟节点的概述;
[0008] 图5图示了根据实现的管理针对虚拟节点的数据请求的时序图;
[0009] 图6图示了根据实现的分配新的虚拟节点的操作场景;
[0010] 图7图示了根据实现的用以分配新的虚拟节点的计算环境的操作;
[0011] 图8图示了根据实现的用于虚拟节点的文件系统视图;
[0012] 图9图示了根据实现的用以管理虚拟节点的版本的计算环境;
[0013] 图10图示了根据实现的管理计算系统;以及
[0014] 图11图示了根据实现的主机计算系统。

具体实施方式

[0015] 图1示出了根据实现的用以管理集群的节点的计算环境100。计算环境100包括主机110-112、管理系统170和持久数据存储160。主机110-112执行虚拟节点120-124,其中虚拟节点120-123对应于集群140,并且虚拟节点124对应于集群141。在一些实现中,集群140-141包括能够使用集群的节点并行处理大型数据集的大规模数据处理集群。这些集群可以包括Hadoop集群、Spark集群或一些其他类似类型的集群。主机110-112、管理系统170和持久数据存储160可以使用网络150进行通信。
[0016] 在操作中,虚拟节点120-124在主机110-112上执行以在计算环境100中提供各种数据处理功能。虚拟节点120-124中的每个虚拟节点包括非持久存储部分和持久存储部分,非持久存储部分被本地存储在执行主机上并且只要节点在主机上执行就可用(例如,短期存储、或只要节点在主机上执行就有效的一些其他存储),并且还包括被存储在持久数据存储160中的持久存储部分,其中当节点在主机之间移动时,持久存储部分可以是持久的。作为示例,虚拟节点A 120包括主机110上的非持久部分和被存储在持久数据存储160中的持久部分(示例辅助存储元件),其中持久数据存储160可以包括另一或多个服务器、存储区域网络(SAN)、网络附接的存储单元、或附接到主机110-112或由主机110-112可访问的一些其他单独存储设备。在一些示例中,虚拟节点120-124可以包括容器,其中容器可以包括Linux容器、Docker容器和其他类似的基于名称空间的容器。容器可以共享来自主机计算系统的资源,而不是需要虚拟机所需要的单独的操作系统,其中资源可以包括来自主机操作系统的内核资源,并且还可以包括存储库和可以与在主机上执行的其他容器或进程共享的其他批准资源。然而,尽管可以在主机上的容器之间共享资源,但是容器被提供为能够利用其自己的标识符空间、文件系统结构和网络接口来具有对操作系统的私有访问。操作系统还可以负责向容器化的端点分配处理资源、存储资源、网络资源和其他类似资源。
[0017] 在执行每个虚拟节点时,主机110-112可以包括诸如驱动程序或文件系统的进程,该进程能够标识针对每个容器的请求并且将该请求引导到虚拟节点的非持久部分或虚拟节点的持久部分。在一些实现中,与虚拟节点相关联的目录中的每个目录(以及在一些示例中的文件)可以指示该数据是本地存储的还是被存储在远程持久数据存储160上。因此,当数据请求被生成时,主机上的进程可以确定目录或文件是对应于本地存储的数据还是对应于远程数据,并且根据需要获得数据。作为示例,当虚拟节点A 120生成数据请求时,主机110可以确定数据是本地存储的还是远程存储的,并且访问所需要的数据以满足该请求。
[0018] 在一些实现中,计算环境100中的容器的配置可以是动态的。具体地,容器可以在主机之间迁移,被添加到新的或现有的集群,从新的或现有的集群中移除,或者需要对计算环境100进行一些其他类似的配置修改。例如,如果要从主机111向主机112迁移虚拟节点E 124,则非持久部分的映像可以被存储在主机112上,并且虚拟节点E 124可以使用被存储在主机112上的非持久数据和来自持久数据存储160的持久数据来启动执行。有利地,这允许持久数据可用于主机111上的虚拟节点的第一版本,直到虚拟节点准备好在主机112上被执行。一旦准备好在主机112上执行,主机111可以停止节点的执行,而主机112可以使用虚拟节点的相同持久部分来启动节点的执行。在改变执行主机的同时保持虚拟节点的持久部分时,计算环境可以在保持节点的状态操作的同时限制节点的停机时间。
[0019] 在一些示例中,在生成用于虚拟节点的映像时,管理员可以定义虚拟节点的持久部分和非持久部分。持久部分可以包括任何文件和目录,诸如配置文件和目录,可以包括用于虚拟节点的临时存储,或者可以包括与虚拟集群中的虚拟节点的状态相关联的任何其他数据。在很多实现中,持久存储可以包括虚拟节点的能够作为虚拟节点的执行的一部分来进行读/写操作的部分,诸如虚拟节点的配置文件或其他有状态文件。相反,虚拟节点的非持久部分可以包括虚拟节点的在保持虚拟节点的状态时不需要的部分。这些文件和目录可以包括用于虚拟节点的只读数据,可以包括被读/写但是对于虚拟节点的状态不需要的日志文件,或者可以包括虚拟节点的状态不需要的一些其他文件或目录。在至少一种实现中,在定义虚拟节点的持久部分和非持久部分时,管理系统170可以提供哪些部分应当被归类为持久部分以及哪些部分应当被归类为非持久部分的建议。这些建议可以基于的是虚拟节点的先前执行、其他管理员的设置、虚拟节点的大规模处理平台的类型(Hadoop、Spark等)、或一些其他类似因素。例如,当管理员请求集群时,管理系统170可以确定所请求的大规模处理平台的类型并且确定保持平台的状态所需要的文件和目录。在一些示例中,一旦有状态文件和目录被标识,管理系统170就可以建议或在一些示例中自动将有状态文件和目录存储在持久数据存储装置160中,而其余文件和目录则本地存储在主机中。然后,集群的驱动程序和/或文件系统可以根据需要将虚拟节点的数据请求引导到持久存储或非持久存储。
[0020] 图2图示了根据实现的计算环境中的操作200。在随后的段落中,参考图1的计算环境100的系统和元件作为插入语来指代操作200的过程。
[0021] 如本文中描述的,计算环境可以部署多个虚拟节点,其中每个虚拟节点可以对应于位于执行主机上的非持久部分和远程位于持久存储系统上的持久部分。在虚拟节点的执行期间,操作200标识(201)用于在第一主机上执行的虚拟节点的第一版本转换到计算环境中的第二主机的转换事件。这种转换事件可以在针对主机110-112中的一个主机的请求更新时发生,在主机110-112发生设备故障时发生,由于负载平衡而导致发生,响应于用户的迁移请求而发生,或者由于任何其他类似转换事件而发生。在一些实现中,该转换事件可以由管理系统170所标识,其中管理系统170可以标识对迁移或转换虚拟节点的用户请求,可以标识设备故障,可以标识更新要求,或者可以标识与转换事件相关联的任何其他指示符。
[0022] 响应于标识转换事件,操作200还标识用于虚拟节点的第二版本的(202)第二主机。该第二主机可以基于以下而被标识:跨主机110-112的负载平衡,基于虚拟节点的最低处理要求,基于第二主机的用户选择或标识第二主机的一些其他类似方法。在一些实现中,第二主机的标识可以在管理系统170处发生,但是,应当理解,第一主机可以通过与其他主机交换状态信息以标识能够支持虚拟节点的操作的第二主机来标识第二主机。
[0023] 一旦第二主机被标识为支持虚拟节点的执行,操作200启动(203)虚拟节点的第二版本在所标识的第二主机上的执行,其中虚拟节点的第二版本包括本地存储在第二主机上的非持久部分和存储在持久数据存储160上的相同持久部分。在一些实现中,在启动虚拟节点的第二版本的执行之前,可以向第二主机部署非持久部分的映像。参考虚拟节点E 124从主机111到主机112的示例迁移,虚拟节点E 124的非持久部分的映像可以被提供给主机112并且被本地存储在主机112上。一旦映像准备好执行,主机112可以使用虚拟节点E 124的本地非持久部分和持久部分来启动虚拟节点E 124的执行。在虚拟节点E124在主机112上的执行之前,主机111可以停止虚拟节点E 124在主机111上的执行。以这种方式,虚拟节点的非持久部分的新的副本被提供给新的主机,同时保持对虚拟节点的相同持久部分的使用。
[0024] 在一些实现中,用于虚拟节点的持久存储可以被用于存储虚拟节点的有状态数据以用于虚拟节点在虚拟集群中的执行。该有状态数据可以包括针对虚拟节点的数据处理操作的临时存储、虚拟节点的配置信息、或一些其他类似的状态信息。相反,用于虚拟节点的非持久存储可以包括在保持虚拟节点的状态时不需要的信息,其中非持久数据可以包括只读数据、日志文件、或在虚拟节点从第一主机到第二主机的转换时不需要的一些其他类似数据。
[0025] 图3A-图3B图示了根据实现的迁移节点的操作场景。图3A-图3B包括图1的计算环境100的系统和元件。
[0026] 首先参考图3A,在步骤1,计算环境遇到转换事件,因为虚拟节点D 123包括第一非持久版本302,其中转换事件包括将虚拟节点从主机111转换到不同主机的事件。该转换事件可以包括与主机111相关的硬件或软件故障,可以包括来自管理员的将虚拟节点D 123迁移到另一主机的请求,可以包括对主机111的软件的更新,或者可以包括一些其他类似转换事件。在一些实现中,转换事件可以由支持虚拟节点的执行的主机111来标识,然而,应当理解,在一些示例中,转换事件可以由管理系统170来标识。响应于标识与虚拟节点D 123相对应的转换事件,该操作在步骤2确定用以支持虚拟节点的执行的新的主机112。在一些实现中,主机111或管理系统170可以基于负载平衡操作、操作系统要求或虚拟节点的处理要求来确定第二主机。作为示例,虚拟节点D 123可能需要特定数量的处理核、存储器或一些其他类似计算资源。结果,主机111或管理系统170可以在计算环境中确定能够满足所需要的计算资源的第二主机。
[0027] 转向图3B,在标识出用以支持转换事件的新的主机112之后,该操作可以在步骤3启动虚拟节点D 123在主机112上的执行,其中主机112上的虚拟节点D 123包括第二非持久版本304。在一些实现中,为了在第二主机上执行虚拟节点,管理系统170可以将虚拟节点的非持久部分的映像提供给主机112,其中该映像可以包括指示主机112的处理系统在本地或从数据存储160获取数据的寻址数据。一旦将映像提供给主机112并且被本地存储在主机112上,主机112可以在步骤3启动具有第二非持久版本304的虚拟节点D 123的执行,而虚拟节点D 123停止在具有第一非持久版本302的主机111上的执行。在一些实现中,虚拟节点D 
123可以在主机112上的执行之前停止在主机111上的执行。在触发主机111上的虚拟节点D 
123执行停止时,主机112可以向主机111提供指示新的虚拟节点已经准备好执行的通知。一旦虚拟节点在主机111上停止,主机111可以向主机112提供指示新的虚拟节点的执行可以开始的通知。在其他实现中,当主机111遇到硬件或软件故障时,当部署映像时,主机112可以启动虚拟节点D 123的执行。此外,在一些示例中,在虚拟节点从原始主机到新主机的迁移期间,管理系统170可以将网络元件(诸如软件定义的网络元件)配置为为集群提供适当的功能。这可以包括将物理和/或虚拟路由器和交换机配置为将用于虚拟节点D 123的分组转发/传输到主机112而不是主机111。
[0028] 尽管在计算环境100的示例中被证明是单独的,但是应当理解,管理系统170可以在计算环境中全部或部分地作为主机110-112的一部分执行。此外,尽管在计算环境中未示出,但是分布式存储库可以存储用于由计算环境的节点进行处理的数据,其中分布式存储库可以位于相同的主机计算元件上,或者可以位于能够经由网络150进行通信的其他计算元件上。
[0029] 图4示出了根据实现的虚拟节点的概述。图4的概述包括虚拟节点410,虚拟节点410具有非持久存储420、存储管理器430和持久存储422。非持久存储420和存储管理器430被存储为主机存储440的一部分,而持久存储422被存储为远程存储441。远程存储441可以包括一个或多个服务器、存储区域网络(SAN)、网络附接的存储单元、或与主机分离的一些其他存储设备。主机可以使用以下来与远程存储441通信:以太网、光纤通道、外围组件互连Express(PCIe)、或一些其他类似连接,其中远程存储441是由计算环境的多个主机可访问的。在一些实现中,虚拟节点410可以包括作为集群的一部分来访问和处理来自对象存储或分布式文件系统的数据的大规模数据处理节点。
[0030] 尽管在图4的示例中图示了存储管理器430作为虚拟节点的一部分来执行,但是存储管理器430可以作为独立于虚拟节点而执行的主机进程来操作。在一些实现中,存储管理器430可以作为能够标识与节点相关联的数据请求并且基于该请求将请求引导到非持久存储420或持久存储422的内核进程来操作。
[0031] 在一些实现中,当生成用于虚拟节点的映像时,管理员可以定义应当被本地存储在主机上或被远程存储在持久存储系统上的目录和文件。在定义哪些数据应当被存储在什么位置时,管理员可以确定在虚拟节点的执行过程期间可以修改哪些文件和目录。例如,可以在执行过程期间修改配置文件,其中配置文件可以指示将被处理的数据、数据处理的状态、或关于虚拟节点的状态的一些其他类似信息。在一些示例中,计算环境的管理系统可以建议通常作为执行虚拟节点的一部分被写入的文件或目录将被存储在持久存储系统中。从这些建议,用户可以选择将被存储在持久存储系统中的文件和目录,并且可以生成指示在部署虚拟节点时静态或动态数据应当被存储在何处的映像。
[0032] 图5图示了根据实现的管理针对虚拟节点的数据请求的时序图500。时序图500包括虚拟节点410的存储管理器430、非持久存储420和持久存储422。
[0033] 如图所示,存储管理器430从与虚拟节点410相关联的进程接收数据请求。响应于该请求,存储管理器430可以确定该请求何时与非持久数据相关联以及何时从非持久存储420获取数据,其中非持久存储420对应于主机的本地存储。在一些实现中,当部署容器时,与集群相关联的管理员可以定义将是非持久的文件和/或目录和将被指定为持久的文件和/或目录。结果,当部署新的容器时,映像的部分可以被存储在作为非持久存储的主机上的本地存储中,或者可以被存储在可用于持久数据的远程存储中。当接收到存储输入/输出请求时,存储管理器430可以确定所需要的文件或目录是与非持久数据还是持久数据相关联,并且可以从相关联的存储库中获取数据。
[0034] 同样,如图5所示,存储管理器430可以从与虚拟节点410相关联的进程接收第二请求。响应于该请求,存储管理器430可以确定该请求何时与持久数据相关联,以及何时从与虚拟节点410相关联的持久存储422获得所需要的数据。尽管在时序图500的示例中被示出为获取读取数据的请求,但是还应当理解,存储管理器430也可以获取写入数据的请求。当接收到与写入相关联的请求时,存储管理器430可以访问持久存储422以存储所需要的数据。
[0035] 图6图示了根据实现的分配新的虚拟节点的操作场景600。操作场景600包括主机610-612、管理系统670和持久数据存储660。主机610-612为虚拟节点620-625提供平台,其中虚拟节点620-623作为集群640一部分进行操作,并且虚拟节点624-625作为集群641的一部分进行操作。
[0036] 在操作中,虚拟节点由主机610-612执行以提供各种数据处理功能。在部署虚拟节点620-625中的每个虚拟节点时,节点包括被本地存储在执行主机上的非持久部分和来自主机系统的被远程地存储在持久数据存储660中的持久部分。结果,当生成与虚拟节点相对应的数据请求时,主机可以确定与该请求相关联的寻址,并且从本地或远程存储中获得数据。在一些实现中,在生成和部署用于虚拟节点的映像时,与计算环境相关联的管理员可以定义将在持久存储中修改或需要的数据,而未被修改的数据可以被本地存储在执行主机上。在一些示例中,对于集群中的大规模数据处理节点(诸如Hadoop数据处理节点),持久数据可以包括在对数据集进行操作期间可以改变的配置文件。
[0037] 如操作场景600的示例中所示,可以生成将新的虚拟节点F 625分配给集群641的请求。在一些示例中,与计算环境相关联的管理员可以提供指示以下、的输入:将被修改的集群、修改的类型(例如,添加新节点,移除节点,等等)、修改的凭据、或一些其他类似信息。响应于该请求,管理系统670可以确定或选择主机610-612中的一个主机以支持该请求,并且分配和启动虚拟节点F 625的执行。
[0038] 在一些实现中,在选择用于支持虚拟节点F 625的执行的主机时,管理系统670可以执行负载平衡操作以平衡计算环境中的虚拟节点的执行负载。在一些示例中,管理系统670可以确定与节点相关联的资源需求,并且标识能够向虚拟节点F 625提供资源需求的主机。一旦主机被标识,管理系统670可以部署与虚拟节点相关联的映像。具体地,管理系统
670可以在持久数据存储660中针对虚拟节点F 625的持久部分分配存储,并且可以在主机
612上针对虚拟节点F 625的非持久部分分配存储。一旦分配了存储并且存储了与该节点相对应的数据,主机612可以使用本地数据和持久数据存储660中的数据两者来启动虚拟节点F 625的执行。
[0039] 图7图示了根据实现的用以分配新的虚拟节点的计算环境的操作700。在随后的段落中,参考图6的操作场景600的系统和元件作为插入语来指代操作700的功能。在一些实现中,操作700可以由管理系统670执行。
[0040] 如图所示,操作700可以引导管理系统670标识(701)对集群的修改的请求,其中该修改可以启动一个或多个虚拟节点。在一些实现中,该请求可以由计算环境的管理员生成,其中该管理员可以定义用于修改的集群、将被添加到该集群的节点的类型、针对该节点的任何资源要求、关于非持久数据以及应当可用于持久操作的数据的信息、或者用于支持修改的任何其他类似信息。响应于该请求,操作700可以标识(702)用于支持对集群的修改的至少一个主机,其中主机可以基于节点的资源需求或计算环境中的可用主机的负载均衡确定来选择。一旦主机被选择,操作700可以启动(703)一个或多个虚拟节点在至少一个主机上的执行,其中每个虚拟节点的数据至少部分地被存储在执行该虚拟节点的至少一个主机和被通信地耦合到至少一个主机的第二存储元件上。
[0041] 为了使用图6中的示例元素来进一步描述操作700,当生成针对虚拟节点F 625的请求时,管理系统670确定应当被分配用于虚拟节点的主机612。一旦被标识为支持针对新的虚拟节点的请求,虚拟节点的映像可以被部署,其中虚拟节点的数据的至少一部分可以被存储在主机612本地的存储中,诸如固态存储、硬盘存储或主机612本地的其他存储,而虚拟节点的数据的第二部分可以被存储在持久数据存储660中,该持久数据存储660可以使用以太网、光纤通道、PCIe架构或一些其他类似通信协议被通信地耦合到主机610-612。一旦被存储在持久数据存储660中并且本地存储在主机612上,主机612可以使用被存储在主机处和持久数据存储660中的数据来启动虚拟节点F 625的执行。
[0042] 在一些实现中,当针对集群641生成修改时,管理系统670还可以将联网配置为支持集群的虚拟节点与在一些示例中的至少一个数据存储库之间的通信。联网配置可以包括修改物理和逻辑路由器和交换机以为各种集群提供期望联网。在至少一个实现中,联网配置可以被用于对作为计算环境中的不同虚拟网络的各种集群进行分离和保护。
[0043] 尽管在图7的示例中被示出为向集群添加虚拟节点,但是管理系统670也可以被用于从集群中移除虚拟节点。作为示例,如果一个或多个虚拟节点将被从集群640中移除,则管理系统670可以标识运行该节点的主机并且停止虚拟节点在那些主机上的执行。在一些实现中,管理系统670还可以删除与节点相关联的非持久部分或持久部分。在其他实现中,如果节点可以再次被添加到集群,则可以保留虚拟节点的至少持久部分,从而可以通过仅将映像的非持久部分提供给主机610-612中的主机并且启动节点在相应主机上的执行来重新部署该节点。
[0044] 图8图示了根据实现的用于虚拟节点的文件系统视图801。文件系统视图801包括根目录805、目录810-813和文件820-828。文件系统视图801是示例文件系统,其可以被部署为计算环境中的虚拟节点的一部分。
[0045] 如本文中描述的,虚拟节点可以被部署在计算环境内以提供各种数据处理操作。在部署虚拟节点时,用于虚拟节点的数据的第一部分(非持久数据)可以被本地存储在与虚拟节点相关联的主机上,而用于虚拟节点的数据的第二部分(持久数据)可以被存储在被通信地耦合到计算环境的主机的辅助存储元件上。在一些实现中,用于节点的非持久数据可以作为在节点在主机上主动执行时可用的临时或非持久数据而被存储,而持久数据可以存储作为每当节点执行时使用(即,在迁移主机之间可用)的辅助存储元件中的持久存储。在定义虚拟节点的配置时,与虚拟节点或集群相关联的管理员或用户可以定义数据的哪些部分是非持久的或持久的。持久部分可以包括作为虚拟节点的执行的一部分而修改的配置文件、虚拟节点的临时存储、或虚拟节点的某个其他部分。一旦被定义,用于虚拟节点的映像可以被生成,该映像指示用于虚拟节点的部分的存储位置。使用文件系统视图801的示例,当请求针对与文件系统视图801相关联的虚拟节点的虚拟节点部署时,管理系统可以将目录810和813存储在相应主机本地的主机存储850中,而目录812被存储在被通信地耦合到主机的辅助存储851中。一旦将映像存储在主机存储850或辅助存储851中,主机可以启动对应虚拟节点的执行。
[0046] 在一些实现中,当映像被部署到主机时,包括寻址数据,该寻址数据指示所需要的数据是位于主机存储850还是辅助存储851上。作为示例,驱动程序或在主机上执行的一些其他类似进程可以标识针对文件821的请求,并且确定文件821的地址是对应于主机存储850还是辅助存储851。由于文件821被存储在主机存储850上,所以主机可以访问来自本地存储850的数据以提供所需要的操作。相反,如果请求对应于文件827,则主机可以确定所需要的数据对应于辅助存储851,并且可以从辅助存储访问所需要的数据。
[0047] 图9图示了根据实现的用以管理虚拟节点的版本的计算环境900。计算环境900包括主机910-911、管理系统970和持久数据存储960。主机910-911还包括虚拟节点920-922。持久数据存储960还包括用于虚拟节点920-922的持久数据,其中每个节点包括各种节点版本955。主机910-911、管理系统970和持久数据存储960经由网络950被通信地耦合。
[0048] 如本文中描述的,虚拟节点可以被部署在计算环境中以提供各种数据处理操作。在部署虚拟节点中,节点中的每个节点可以对应于定义将被本地存储在主机910或911中的一个主机或被存储在持久数据存储960中的数据的映像,其中在主机本地的部分可以包括持久数据,而从持久数据存储960可访问的部分可以包括能够由虚拟节点写入的数据。以这种方式,针对虚拟节点所修改的任何数据可以由主机中的任何主机访问,以在迁移期间中提供有效的故障转移操作并且针对集群中的虚拟节点保留状态信息。
[0049] 在本实现中,用于虚拟节点920-922中的每个虚拟节点的持久数据部分可以被保持为版本955(或快照),其中可以以周期性间隔,在对持久数据的每次修改之后,或者以其他类似间隔获取持久部分的版本。在一些示例中,这些版本可以被保持为集群,其中集群的每个节点可以同时添加版本。例如,虚拟节点920-922可以对应于在大规模处理集群中操作的数据处理节点,诸如Hadoop、Spark或一些其他类似集群。一旦集群被部署,管理员可以定义应当每小时为集群生成快照。作为结果,因为在主机910-911上针对虚拟节点920-922本地存储的数据没有被修改,所以可以每小时生成位于持久数据存储960中的持久数据的快照(表示为版本955)。在一些示例中,这些版本可以包括指示持久数据的当前版本与先前版本之间的差异的稀疏文件。
[0050] 在生成新版本时,与计算环境900相关联的管理员可以请求将集群还原到先前版本。该请求可以包括指示针对集群的关注时间的用户输入,可以包括集群的关注版本,或者可以包括与集群相关的任何其他信息。在一些实现中,当请求到集群的不同版本的回滚时,管理系统970可以停止虚拟节点的当前版本的执行,并且使用虚拟节点的所请求版本启动虚拟节点在相同主机上的执行。在提供虚拟节点的所请求版本时,管理系统970可以使用版本955或与版本955相关联的稀疏文件来将虚拟节点的持久部分还原到先前状态。在其他实现中,当生成针对虚拟节点的不同版本的请求时,管理系统970可以标识计算环境中的一个或多个主机以支持虚拟节点在先前状态下的执行,并且向主机提供所需要的非持久数据以支持节点在新标识的主机上的执行。一旦提供了非持久数据,新的主机可以使用非持久数据和被保持在持久数据存储960中的版本数据来执行虚拟节点的所需要的版本。在一些示例中,在提供适当的版本时,管理系统970可以包括提供数据的所需要的版本所需要的稀疏文件。例如,如果用户请求虚拟节点的第三版本,则稀疏文件可以被用于提供所需要的版本。在一些实现中,当虚拟节点(例如,最初部署该节点时的版本)和稀疏文件可以被应用于原始版本以提供所需要的版本时,版本955可以包括持久数据的原始版本。
[0051] 尽管在计算环境被示出为使用网络950与持久数据存储960通信的主机910-911的示例中进行阐释,但是应当理解,主机910可以使用PCIe、光纤通道、或允许多个主机与持久数据存储960通信的一些其他类似通信格式来与持久数据存储960通信。
[0052] 图10图示了根据实现的管理计算系统1000。计算系统1000表示可以用于实现本文中公开的用于管理系统的各种操作架构、过程、场景和序列的任何一个或多个计算系统。计算系统1000是管理系统170、670和970的示例,可以存在其他示例。计算系统1000包括通信接口1001、用户接口1002和处理系统1003。处理系统1003链接到通信接口1001和用户接口1002。处理系统1003包括处理电路1005和存储操作软件1007的存储设备1006。计算系统
1000可能包括为了清楚起见而未示出的其他公知的组件,诸如电池外壳
[0053] 通信接口1001包括通过通信链路进行通信的组件,诸如网卡、端口、射频(RF)、处理电路和软件、或一些其他通信设备。通信接口1001可以被配置为通过金属、无线或光学链路进行通信。通信接口1001可以被配置为使用时分复用(TDM)、互联网协议(IP)、以太网、光网络、无线协议、通信信令、或一些其他通信格式(包括其组合)。在至少一种实现中,通信接口1001可以用于与计算环境的一个或多个主机进行通信,其中主机执行虚拟节点以提供各种处理操作。在能够存储要部署在计算环境中的虚拟节点的持久部分的一些实现中,通信接口1001还可以与持久存储进行通信。
[0054] 用户接口1002包括与用户交互以接收用户输入并且呈现媒体和/或信息的组件。用户接口1002可以包括扬声器、麦克、按钮、灯、显示屏、触摸屏触摸板、滚轮、通信端口、或某种其他用户输入/输出装置(包括其组合)。在一些示例中,可以省略用户接口1002。
[0055] 处理电路1005包括微处理器和从存储设备1006检索和执行操作软件1007的其他电路。存储设备1006可以包括以用于存储诸如计算机可读指令、数据结构、程序模或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。存储设备1006可以被实现为单个存储设备,但是也可以跨多个存储设备或子系统来实现。存储设备1006可以包括附加元件,诸如用于读取操作软件1007的控制器。存储介质的示例包括随机存取存储器只读存储器、磁盘、光盘和闪存、以及其任何组合或变体、或任何其他类型的存储介质。在一些实现中,存储介质可以是非瞬态存储介质。在某些情况下,存储介质的至少一部分可以是瞬态的。在任何情况下,存储介质都不是传播的信号
[0056] 处理电路1005通常被安装在电路板上,该电路板上也可以容纳存储设备1006以及通信接口1001和用户接口1002的部分。操作软件1007包括计算机程序固件、或某种其他形式的机器可读程序指令。操作软件1007包括标识模块1008、主机模块1009和启动模块1010,尽管任何数目的软件模块可以提供类似的操作。操作软件1007还可以包括操作系统、实用程序、驱动程序、网络接口、应用、或某种其他类型的软件。当由处理电路1005执行时,操作软件1007如本文中描述地指示处理系统1003操作计算系统1000。
[0057] 在一个实现中,标识模块1008针对在计算环境中执行标识虚拟节点以将虚拟节点从第一主机上的执行转换到第二主机上的执行的转换事件。转换事件可以由管理员请求转换而被触发,也可以由硬件或软件故障、软件升级或某种其他类似事件触发。一旦事件被标识,主机模块1009可以标识用以支持虚拟节点的转换事件的新的主机,并且启动模块1010可以启动虚拟节点在新的主机上的执行。在一些示例中,在启动虚拟节点在新的主机上的执行时,启动模块1010可以将与虚拟节点相对应的非持久数据提供给虚拟节点的所选择的主机。一旦所需要的数据被存储在新的主机上,并且原始主机上的虚拟节点停止执行,启动模块1010可以启动虚拟节点在新标识的主机上的执行。新的虚拟节点的执行可以使用虚拟节点的本地存储的非持久数据和经由通信地耦合到主机的第二存储元件可访问的持久数据。第二存储元件可以经由以太网、PCIe、光纤通道或一些其他类似通信平台被耦合。
[0058] 在一些实现中,除了在计算环境中迁移虚拟节点,计算系统1000还可以负责保持虚拟节点的映像以及在计算环境中部署虚拟节点的集群。例如,标识模块1008可以标识在计算环境中修改集群的请求,其中修改可以包括向现有集群添加虚拟节点的请求。响应于该请求,主机模块1009可以确定一个或多个主机以支持该请求,并且将所需要的虚拟节点分配给主机中的每个主机,其中分配节点包括将每个节点的非持久数据存储在相应主机上并且配置对持久数据存储系统的访问。一旦被存储在适当位置,虚拟节点可以启动在相应主机上的执行,其中主机中的每个主机可以标识数据请求(读写请求),并且将该请求引导到本地主机存储或远程持久数据存储系统。
[0059] 图11图示了根据实现的主机计算系统1100。计算系统1100表示可以用于实现本文中公开的用于主机的各种操作架构、过程、场景和序列的任何一个或多个计算系统。计算系统1100是主机111-112、610-612和910-911的示例,可以存在其他示例。计算系统1100包括通信接口1101、用户接口1102和处理系统1103。处理系统1103链接到通信接口1101和用户接口1102。处理系统1103包括处理电路1105和存储操作系统1107的存储设备1106。计算系统1100可以包括为了清楚起见而未示出的其他公知的部件,诸如电池和外壳。
[0060] 通信接口1101包括通过通信链路进行通信的组件,诸如网卡、端口、射频(RF)、处理电路和软件、或某种其他通信设备。通信接口1101可以被配置为通过金属、无线或光学链路进行通信。通信接口1101可以被配置为使用时分复用(TDM)、互联网协议(IP)、以太网、光网络、无线协议、通信信令、或某种其他通信格式(包括其组合)。在至少一个实现中,通信接口1101可以用于与计算环境和管理系统(诸如管理计算系统1100)的一个或多个主机进行通信,以获取与可执行虚拟节点相关的配置信息。在能够存储要部署在计算环境中的虚拟节点的持久部分的一些实现中,通信接口1101还可以与辅助持久存储进行通信。
[0061] 用户接口1102包括与用户交互以接收用户输入并且呈现媒体和/或信息的组件。用户接口1102可以包括扬声器、麦克风、按钮、灯、显示屏、触摸屏、触摸板、滚轮、通信端口、或某种其他用户输入/输出装置(包括其组合)。在一些示例中,可以省略用户接口1102。
[0062] 处理电路系统1105包括微处理器和从存储设备1106获取和执行操作软件1107的其他电路系统。存储设备1106可以包括易失性和非易失性、可移动和不可移动介质,易失性和非易失性、可移动和不可移动介质以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术来实现。存储设备1106可以被实现为单个存储设备,但是也可以跨多个存储设备或子系统来实现。存储设备1106可以包括附加元件,诸如用于读取操作软件1107的控制器。存储介质的示例包括随机存取存储器、只读存储器、磁盘、光盘和闪存、以及其任何组合或变型、或任何其他类型的存储介质。在一些实现中,存储介质可以是非瞬态存储介质。在某些情况下,存储介质的至少一部分可以是瞬态的。在任何情况下,存储介质都不是传播的信号。
[0063] 处理电路1105通常被安装在电路板上,该电路板上也可以容纳存储设备1106以及通信接口1101和用户接口1102的部分。操作软件1107包括计算机程序、固件、或某种其他形式的机器可读程序指令。操作软件1107包括数据请求模块1108和虚拟节点1109的非持久部分,但是任何数目的软件模块可以提供类似的操作。操作软件1107还可以包括操作系统、实用程序、驱动程序、网络接口、应用、或某种其他类型的软件。当由处理电路1105执行时,操作软件1107如本文中描述地指示处理系统1103操作计算系统1100。
[0064] 在一个实现中,在一些示例中可以包括容器的虚拟节点1109由处理系统1103执行以提供各种数据处理操作。在一些示例中,虚拟节点1109可以表示在提供对数据集的大规模数据处理操作的一个或多个集群中操作的节点,其中数据集可以包括分布式文件系统、对象存储系统、或者可以本地存储在主机计算系统1100上或跨一个或多个其他计算系统分布的一些其他存储系统。为了提供用于虚拟节点1109的操作,每个虚拟节点可以包括被本地存储在主机上的非持久部分,并且还可以包括能够对该节点进行读写操作的持久部分。在一些实现中,与节点相关联的管理员可以定义哪些目录和文件位于主机上以及哪些数据位于由计算环境的主机可访问的持久数据存储上。作为结果,当虚拟节点的映像被部署时,与虚拟节点相关联的数据可以被存储在主机计算系统1100的对应位置或持久数据存储(未示出)中。
[0065] 一旦虚拟节点被执行,数据请求模块1108标识与虚拟节点1109中的虚拟节点相关的数据请求。响应于该请求,数据请求模块1108基于与该请求和相应节点相关联的寻址数据来确定该请求是与虚拟节点的本地存储部分相关还是与该虚拟节点的存储在持久部分中的部分相关。一旦位置被标识,数据请求模块1108可以访问所需要的数据以满足读取请求,或者可以在需要时将数据写入持久存储系统。
[0066] 返回图1的元素,主机110-112和管理系统170每个可以包括通信接口、网络接口、处理系统、计算机系统、微处理器、存储系统、存储介质、或一些其他处理设备或软件系统,并且可以被分布在多个设备之间。主机110-112和管理系统170的示例可以包括软件,诸如操作系统、日志、数据库、实用程序、驱动程序、联网软件、以及存储在计算机可读介质上的其他软件。在一些示例中,主机110-112和管理系统170可以包括一个或多个服务器计算系统、台式计算机系统、膝上型计算机系统或任何其他计算系统,包括其组合。在一些实现中,主机110-112可以包括虚拟机,该虚拟机包括抽象的物理计算元件以及能够为虚拟节点提供平台的操作系统。在这些示例中,主机110-112可以在相同的物理计算系统上操作,或者可以在多个计算系统之间执行。
[0067] 持久数据存储160可以驻留在任何一个或多个计算系统上,该一个或多个计算系统可以包括通信接口、网络接口、处理系统、计算机系统、微处理器、存储系统、存储介质、或某种其他处理设备或软件系统,并且可以被分布在多个设备之间。持久数据存储160可以位于一个或多个服务器计算系统、台式计算机系统、膝上型计算机系统、或任何其他计算系统上,包括其组合。
[0068] 主机110-112、持久数据存储160和管理系统170之间的通信可以使用金属、玻璃、光学、空气、空间或某种其他材料作为传输介质。主机110-112、持久数据存储160和管理系统170之间的通信可以使用各种通信协议,诸如时分多路复用(TDM)、异步传输模式(ATM)、互联网协议(IP)、以太网、同步光网络(SONET、混合光纤同轴电缆(HFC)、电路交换、通信信令、无线通信、或某种其他通信格式,包括其组合、改进或变化。主机110-112、持久数据存储160和管理系统170之间的通信可以是直接链路,或者可以包括中间网络、系统或设备,并且可以包括在多个物理链路上传输的逻辑网络链路。在一些实现中,主机110-112可以使用以太网与持久数据存储160进行通信,但是,应当理解,该通信可以包括PCIe、光纤通道、或某种其他类似的通信协议。
[0069] 所包括的描述和附图描绘了特定实现以教导本领域技术人员如何制作和使用最佳模式。为了教导发明原理,已经简化或省略了一些传统方面。本领域技术人员将意识到落入本发明的范围内的来自这些顺序的变型。本领域技术人员还将认识到,上述特征可以以各种方式组合以形成多种实现。结果,本发明不限于上述特定实现,而是仅由权利要求书及其等同物所限定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈