网站建设资源抽象层

资源抽象层主要是对底层的物理硬件资源进行统一抽象,抽象为与单个物理硬件无关的资源集合。上层不需要关心物理机的模型,只需要关注特定的资源。资源抽象层需要关注以下三点。首先,收集和管理…

资源抽象层主要是对底层的物理硬件资源进行统一抽象,抽象为与单个物理硬件无关的资源集合。上层不需要关心物理机的模型,只需要关注特定的资源。资源抽象层需要关注以下三点。首先,收集和管理特定的物理资源;其次,将抽象的硬件资源属性重新打包,使其成为上层可以使用的实体,可以是容器或虚拟机,也可以是资源的集合;第三,数据存储问题。做业务时,必须将数据存储在机器中,使机器变得“有状态”,这不利于资源的全局调度。为了能够执行全局调度,需要解决三个场景:数据不需要在本地永久存储,而是在本地实时写入,如应用程序日志;第二,需要永久存储的数据,如DB数据;第三,过程中的分布式存储场景,存储和计算必须分开。资源收集与管理资源收集是物理机器资源的集合。例如,当前机器型号(如CPU、内存和磁盘)有多少可用信息。可以分为四个方面。一是资源信息管理。有多少,用了多少,用了多少;第二,大量物理机的集群管理。除了通常的几十万个机器管理功能外,还有一部分任务管理,比如负责从主机接收任务来创建容器。三是合理的资源分配策略和算法。上层资源请求最终将分配到每台物理机器上,那么它是如何分配的呢?有根合理的分配策略和算法支持。第四,资源信息管理是实现一个CMDB,它可以管理物理机和vhostI之间的关系,并且必须能够管理数万甚至几十万个机器集群。这种机器集群管理框架目前的选择相对较少。我们选择中微子,主要基于以下两个考虑。一是Mesos目前比较成熟,主流大公司使用较多,实际场景中的使用规模已经达到5万左右;二是Mesos的扩展性比较强,而且轻量级,可以灵活定制。框架满足业务需求。我们来分析一下Msos为什么能够管理这么大的集群,它的资源分配策略,以及它如何灵活地创建各种容器和配置网络。介观星团结构。Mesos的模块化设计使得其集群管理本身没有很多东西:Master只将从Save收集的资源数据报告给Framework;主从通过消息交换消息,不需要保持长连接。随着从机规模的扩大,主站的压力不会显著增加。主机本身的高可用性由ZK(Zookeeper)保证,整个集群的架构设计非常清晰。当集群规模较大时,资源管理和分配策略将非常重要。分配策略对于最大限度地充分利用物理资源非常重要,因此您必须定制框架以更精细地分配资源。目前我们设计了4种分配策略。(1) 最大剩余内存优先级分配策略。也就是说,集群中剩余内存最多的优先级分配就是填充(2)剩余最大CPU的优先级分配策略。与内存分配类似,对CPU资源要求高的任务,根据剩余CPU的数量给予优先级;3)最大和最小资源公平分配策略。此分配基于当前任务请求的资源。检查当前集群中每台机器和每一个资源的使用是否饱和,并将任务分配给当前最空闲的机器;(4)根据资源分配指定分配策略。这种方法更加灵活,可以根据用户的需要将任务分配到指定的机器上执行。例如,一些机器可以被标记,某些任务可以在这些标记的机器上执行。从以上介绍可以看出,网站制作框架的修改需要更灵活的支持,而目前Mesos框架的更新还是比较麻烦的。如果要更新框架的代码,需要重新启动每个Slave的执行,然后可能需要停止Slave上的任务,这在生产环境中很难接受。有鉴于此,我们实现了框架的无状态设计。在代码实现方面,我们使用Groovy这样的动态语言编写需要频繁修改的逻辑,这样Govy实现的代码可以在不重启任务的情况下动态加载。调节功能非常方便。

作者: guangdongseo

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部