Gravity:海量闲置算力的调度设计与实现

2019-03-22 21:06 栏目:经验之谈 来源: 查看()
自计算机以来,计算能力已经开始。从1942年Atanasoff-Berry计算机(ABC)的第一台超级计算机开始,计算数十年来一直是计算的规模,性能和多功能性。快速发展。从企业内部的独立系统,私有云和公共云,计算能力逐渐从各个分散点集成到一个更统一的数据中心,而分布式计算逐渐发展成为解决问题的重要途径。如何处理互联网产生的大量数据。 。

在云计算基础设施和服务(如公共云)出现后,具有计算和存储需求的用户越来越不关心底层网络,硬件基础设施如服务器,只需要使用云计算服务,根据使用情况或使用情况基于时间的支付,不断降低用户的使用门槛,而集中统一的云服务为用户提供了更加稳定的环境。在云趋势下,越来越多的私有云和中小企业用户逐渐将其服务迁移到公共云,公共云成为企业操作系统的趋势。通过云上的各种服务,与自建私有云相比,初创公司的产品开发周期大大缩短,这可能直接影响用户的商业化周期。

从数据中心开始,从私有云到公共云,数据和计算逐渐向中心靠拢。云服务正逐渐从以人为中心的云(例如,Web服务)转移到下一个时代。该设计以机器为中心。云(例如,边缘计算,IOT PAAS)支持更大规模的计算和调度。补充公共云是边缘计算。在边缘计算简单地在网关级别处理之后,大多数数据将返回到中央公共云,这是中央云的扩展。我们的想法是将中央云服务部分计算推向边缘,即网关节点。通常是更靠近区域的数据中心服务器。

今天,凭借大量智能设备和大量闲置计算能力,Gravity将空闲计算能力集成到标准化计算单元VCU中,该计算单元利用异构计算能力通过P2P NFV网络形成虚拟数据中心,通过分散化调度。该网络由异构节点(包括移动电话,智能设备,采矿机,PC,路由器等)组成,形成更具分布式和边缘云的基础设施,具有资源和作业调度功能,边缘设备由大型组成。数据计算和具有存储功能的分布式计算网络,将数据中心计算扩展到边缘云,这也是对现有云计算的有力补充。

1.在整合空闲计算以提供大数据计算的过程中,我们面临着一些挑战。

·计算节点平台,操作系统和计算能力是异构的 ·节点分散在靠近用户,没有数据中心级别的网络环境中 ·未来的节点很大,数百万级别 ·动态节点拓扑(相对于数据中心节点拓扑)

该行业还有许多测量相关指标的基准。例如,TeraByte Sort in Sort Benchmark主要用于大数据领域。它曾经是巨人追逐的指标。这种评估是测试调度功能的典型方法,优秀的调度功能将在指定数据和算法任务时获胜。我们比较当前的主流计算和资源调度,以说明我们如何解决上述问题。

常见的调度模型分为:

Gravity:海量闲置算力的调度设计与实现

单片统一调度架构
单个调度程序负责通过集群状态信息进行统一资源和任务调度。许多调度系统最初是为此模式设计的。该架构具有很强的一致性和较差的可扩展性。当群集大小增加时,可用性和处理能力可能会下降。

两级两级调度
通过动态划分资源,中央协调器用于确定每个子集群可以分配的资源。每个子调度程序都没有全局资源视图,这可能会导致资源使用不平衡等问题。代表性的两级时间表是Mesos和Yarn(有争议的)

共享状态共享状态调度
调度系统同时具有多个调度程序。调度程序共享全局资源视图。通过乐观锁定机制,调度冲突概率很大,如Borg和高仿Omega。

2.主流开源调度程序的横向比较

纱线

Yarn是Hadoop中的一个调度系统,专注于大数据计算。由资源管理器,NodeManager,容器和应用程序主服务器组成是典型的多级计划。从早期的本地MapReduce任务调度现在可以支持在Hadoop集群中运行的Spark,Flink等。

Yarn的NodeManager复杂主机管理,其中Container主要是进程级管理,在运行MapReduce任务时启动TaskManager和TaskExector进程。

当Yarn启动任务时,资源管理器将指定一个节点来启动Application Master并成为辅助管理器,它负责子作业操作管理,例如MapReduce JobManager或Spark Master。

默认情况下,Yarn使用公平调度策略以队列的形式管理任务。队列可以嵌套或优先。通常,Yarn适用于大数据场景,管理迭代计算具有优势。

联邦支持节点级别10k~100k(理论值)

Gravity:海量闲置算力的调度设计与实现

Mesos

通过抽象其他计算资源(如机器,CPU,内存和存储),代理会将节点资源报告给主服务器。 Master决定根据策略将Resource Office分配给不同的调度框架。

您可以使用主备用设备通过ZooKeeper执行分布式协调。通过从模式将节点添加到集群,以支持大约10K的节点大小。

Gravity:海量闲置算力的调度设计与实现

Kubenetes

Minon节点将节点资源状态报告给Master。 Controller Manager管理群集的各种资源。调度程序通过群集的拓扑执行Pod调度。无状态ApiServer负责调用理论以支持5K节点大小。

Gravity:海量闲置算力的调度设计与实现

上述调度系统假设节点全部在数据中心,网络和设备高度可用,并且它们都处于G上方的网络互连并且可以是IP-through的环境中。节点拓扑是相对静态的,可扩展性是10K规模的节点集群。无法满足我们边缘云计算的业务背景。

重力需要解决异构节点平台和OS计算的问题(如:PC,手机,挖掘机,智能盒等),节点动态加入动态扩展和离开(共享设备可以加入和离开任何网络)时间),由于边缘和闲置计算能力计算资源相对较弱,因此有必要满足海量设备的资源和作业调度。

以下是Gravity实现和相关产品:

重力PMR(PMR)

PMR是我们迄今为止实施的,它为MapReduce大数据处理任务提供公共测试计划,适用于迭代批量计算。由于Gravity是利用公共网络上的共享设备的计算网络,因此网络和设备稳定性和异构性可能很复杂,并且支持的单簇节点大小也增加了两个数量级。

Gravity:海量闲置算力的调度设计与实现

重力MapReduce的实现

1.节点分散。通常,家用PC或移动电话网络位于路由器NAT后面,外部没有公共IP固定,数据中心外的空闲或边缘设备数量很大。

通过节点之间的P2P网络,同一局域网内的节点通过广播相互通信,通过不在同一网络中的其他NAT对等体,构建分散式计算网络,降低了通信成本。它不需要使用固定的公共IP,并且只有一个节点由节点id标记。节点网络是统一的,本地是自治网络。通过平衡策略,每个点都不会接收大量节点,并且水平扩展能力很强。

2.动态节点拓扑和自平衡网络
当节点启动时,节点将根据VRF和Bully选举算法自动选择成为作业调度节点,其他节点成为作业执行节点。

首先,网络中的所有节点都具有任务执行和调度功能。所有节点都是普通的Node角色。在启动过程中,它们会自动转换为空闲。在空闲状态下,根据VRF和欺负选举算法,在随机超时后,持有手中大部分投票的节点获胜并进入GP-Mid状态。这个阶段是一个中间状态。该节点仅有权参加第二轮选举。其他节点返回节点状态。在第二轮中,在GP-Mid选择节点中,VRF生成的投票通过Bully选举选择以选择网络。所有Ggroup处于初始状态,其余节点进入Gant状态。选择后,组状态中的所有节点将由多个候选Ggroup随机选择,以检测和同步状态信息。当小组倒闭时,所有替代方案将重新选举并接管状态。在新节点加入过程中,如果不接受相应的组节点,则其他不可接受的节点进入选举状态,最后生成新的组节点。

Gravity:海量闲置算力的调度设计与实现

网络自平衡策略,红色是作业调度节点,蓝色是作业任务执行节点。当作业被提交更多并且用户等待很长时间时,所有作业调度程序将通过协调器从任务执行节点中选择新作业。调度节点。当作业减少任务数量时,未在一定时间内收到作业的调度节点将自动转换为任务执行节点。

Gravity:海量闲置算力的调度设计与实现

3.工作负载验证和容错机制

Gravity:海量闲置算力的调度设计与实现

红色节点是当前作业分配节点,蓝色节点执行当前作业的任务节点,黄色节点是红色节点的检测器。黄色节点不知道彼此的作业信息,并且它们并行地从红色节点获得作业的状态报告。当检测到当前作业调度器关闭或停止响应时,黄色节点通过选择模块以选择接收器和检测器。

蓝色节点不知道彼此的状态信息。如果检测器或作业调度程序发现某些节点具有异常心跳或执行速度比其他蓝色节点慢,则执行将被推迟,并且将选择并执行蓝色节点。这个任务,最终返回最快的人获得计算证明。

4.解决设备和节点的异构计算能力问题
我们通过标准化基准测试评估不同设备的计算能力,并根据逻辑划分的最小计算单元VCU估算设备可以同时接收的任务数量以及每个任务可以执行的数据量。用户可以通过参数修改并发,但在正常情况下,不建议用户修改,修改可能导致节点过载等,这比任务执行过程中的其他节点慢,导致投机执行和没有反应计算刺激。

要点:

在我们的整个网络中,所有节点都是全功能节点。在相应的任务负载下,网络中的调度器和计算节点的数量是动态调整的(适者生存),没有全局中心节点,水平缩放。 

网络中的所有调度程序都由DHT寻址,每个调度程序负责一定数量的计算节点,并且可以跨调度程序实现资源请求。同时,所有调度节点由多个备用调度节点(本地共识)监视。

如果任务计算节点中存在异常,例如不合理的并发设置,则将通过推测执行,并且将选择其他节点进行同时计算。第一次完成将取代慢(弱肉)。

要解决边缘云计算问题,利用空闲计算能力形成计算网络,现有数据中心级操作和资源调度难以解决大规模,动态节点拓扑,网络节点异构性问题,以上是部分我们的思考和实践。基于Gravity作业调度,支持MapReduce作业调度,欢迎移动电话,PC,盒等异构分散设备的计算网络。欢迎大家注意参加考试的公众号码。

微信二维码
售前客服二维码

文章均源于网络收集编辑侵删

提示:仅接受技术开发咨询!

郑重申明:资讯文章为网络收集整理,官方公告以外的资讯内容与本站无关!
NFT开发,NFT交易所开发,DAPP开发 Keywords: NFT开发 NFT交易所开发 DAPP开发