Page 286 - 《软件学报》2021年第12期
P. 286

3950                                Journal of Software  软件学报 Vol.32, No.12, December 2021

         2.2   FDN控制器
             控制器是 FDN 中心化的调度组件,负责整个系统的正常运转.它负责流量优化和容器的编排,让计算任务
         调度到更合适的边缘计算集群.同时,控制器还负责用户接入、代码库的维护、网关等功能,保持系统稳定高效
         运行.FDN 控制器包含了以下几个组件.
             1)   FDN-Web:负责存储用户的个人信息、项目信息以及功能函数的创建等功能;
             2)   FDN 分发器:负责计算并实现容器的跨集群编排,优化每个计算任务的计算延迟.编排算法会在第 3 节
                 展示;
             3)   FDN 费用中心:负责记录用户使用平台所需要支付的费用;
             4)   FDN 网关:负责收集网络的流量信息以及函数的分发与路由、集群内的负载均衡等功能.同时,FDN
                 网关还承担着流量控制、安全策略管理、用户授权等功能,保证 FDN 系统安全可靠的运行;
             5)   FDN 代码库管理:负责管理和维护代码库的稳定和更新,并且判定用户上传的容器镜像是否合法以及
                 有效.
             为了更好地管理分布式边缘集群,我们还设计了分层的控制器管理结构.在每个边缘计算集群内部有一个
         控制器,分别管理自己所在的集群.而全网还有一个中心控制器,作为全网的指挥,收集来自各个集群控制器的
         信息,以实现对全网信息的统一管理和调度.这种分层结构能够同时在中心和边缘端更便捷高效地管理各类计
         算资源和网络流量,保证 FDN 平台的可靠运行.
         2.3   边缘计算集群
             为了让不同地理位置的用户享受更低的计算延迟,多个边缘计算集群分布在网络的不同地点,并由控制器
         进行管理.我们为每个边缘服务器安装了容器的运行环境.当用户提交计算任务时,目标边缘计算集群会根据控
         制器的容器编排策略,从代码库中下载、安装并运行任务所需要的容器.同时,它会接收 DNS 的映射指令并与对
         应的用户绑定,与用户进行直接的数据通信,并最终将计算结果返回给用户.
         2.4   DNS
             DNS 为用户提供了统一的接口,用户在使用时,只需要输入一个 URL 地址,就可以访问计算资源.DNS 会解
         析用户的地址,并且将地址和任务信息传送给中心控制器.同时,在容器编排时,DNS 将与控制器协同工作.当控
         制器计算出容器编排策略后,DNS 会根据调度策略将目标边缘计算集群与用户进行绑定,通过发送映射命令,让
         它们进行数据通信.我们指出 DNS 在 FDN 系统中起到了桥梁的作用,连接了用户与中心控制器,为控制器提供
         准确的用户位置和任务信息.DNS 将解析用户信息与计算调度策略功能进行解耦,为系统的可扩展性提供了有
         力支撑;同时也能够减轻中心控制器的压力,保证平台的可靠运行.在实际运行中,为了让用户以更小的延迟访
         问 FDN 资源,我们采用了 Smart DNS 技术,优化地址访问和解析策略,以适应 FDN 在不同用户规模下的实际使
         用效果.FDN 中采用的 Smart DNS 具体分为两个部分:1)  控制器根据容器编排算法,计算出最优的用户流量调
         度策略,然后将用户的 IP 地址与边缘服务器对应,更新 DNS 服务器;2) DNS 本身不需要做任何修改,但它直接与
         控制器联动,共同组成 FDN 的 Smart DNS 功能.
             通过以上各个组件的协同工作,用户能够享受到便捷的计算服务,同时保证了用户的计算延迟.但是我们指
         出,对于容器化技术,目前的容器编排器采用的是一些较为简单的编排策略(例如先来先服务、优先级等).这种编
         排策略没有考虑到容器和网络流量等重要信息,会加大任务的计算延迟;同时,对于分布式的网络架构,现有的
         编排器无法支持跨集群的资源调度,不能很好地支持边缘计算的系统架构.相比传统的单集群内部调度,跨集群
         容器编排需要进行容器的迁移,需要考虑集群间的传播延迟;而单集群调度不需要考虑延迟,因为集群内部的传
         播延迟约等于 0.我们指出:传统的容器编排方案(例如,使用 docker 和 kubernetes 分别作为容器引擎和编排器)
         只支持单集群的容器编排,无法扩展到多集群容器编排.因此,本文为 FDN 设计了一种支持跨集群的容器编排
         策略,支持在多个边缘计算集群间进行容器调度,发挥 FDN 控制器统一管理的优势,进一步优化容器化计算平
         台的延迟.
   281   282   283   284   285   286   287   288   289   290   291