智联网
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.5.1 雾计算

1. 基本概念

雾计算(Fog Computing)最初是由美国纽约哥伦比亚大学的斯特尔佛教授(Prof. Stolfo)提出的,当时的意图是利用“雾”来阻挡黑客入侵。雾计算第一次出现在人们的视野中,是2011年在拉斯维加斯举办的第八届车联网国际会议上。思科(Cisco)的Bonomi F. 等人率先提出一种区别于云计算的计算模式,该计算模式将云端的服务和任务扩展到网络边缘,以克服云计算在位置感知、内容实时交付、服务低时延、移动性支持等方面的缺陷。随后,在2012年的移动云计算(Mobile Cloud Computing,MCC)研讨会上,Bonomi F. 等人对雾计算的特性和服务场景做了进一步研讨。作者们定义了雾计算具备的七个特性:支持低延迟服务和位置感知服务、服务节点呈广泛的地理分布特性、支持服务的移动性、服务节点大量部署、无线接入服务占主导地位、支持流媒体等内容实时交付要求、服务节点和接入设备存在异构性。而上述特性使得雾计算可以为诸如车联网、智慧城市、无线传感网等物联网场景的服务和应用提供计算平台。

同年,思科给出了雾计算的明确定义:雾计算是云计算的延伸,在雾计算模式中,数据、处理和应用程序都集中在网络边缘的设备中,而不是几乎全部保存在云中,因此“雾是更贴近地面的云”。惠普实验室指明,“雾计算是由大量异构的分布式设备,通过有线/无线的方式协同完成任务的计算与存储”。

2. 主要优点

1)低时延

不同于远程部署的云,雾通常部署于网络边缘,近距离为终端设备提供计算、存储及网络等服务。对于实时数据的发送,可以通过单跳链路通信完成,大大减小了数据传输时延。相比于将数据传输至云端进行计算,保证了实时数据处理的服务质量,减轻了主干网络通信的压力。

2)节省核心网络带宽

雾作为云和终端的中间层,本就在用户与数据中心的通信通路上。雾可以过滤、聚合用户消息(如不停发送的传感器消息),只将必要的消息发送给云,减小核心网络的压力。

3)高可靠性

为了服务不同区域的用户,相同的服务会被部署在各区域的雾节点上。这也使得高可靠性成为雾计算的内在属性,一旦某一区域的服务异常,用户请求可以快速转向其他临近区域。

4)背景信息了解

因为分布在不同区域,雾计算中的服务可以了解到区域背景信息,如本区域带宽是否紧张,根据这一知识,一个视频服务可以及时决策是否降低本地区视频质量,来避免即将到来的卡顿现象;而对一个地图应用,则可将本地区地图缓存,提高用户体验。

5)低能耗

雾计算具有低能耗的优势,终端设备将任务发送至附近的雾节点处理,终端设备的能耗问题得到解决。在雾计算环境中,分布式部署的雾相比集中式部署的云能效性更高。在云计算环境中,海量数据传输至云需要消耗大量的能量,对于移动设备来说是一个很大的挑战。引入雾计算可解决能耗问题,海量数据无须发送至云端进行分析,靠近数据源的雾节点为降低能耗提供了有效的解决方案。

6)位置感知精确

雾计算主要使用边缘网络中的设备,由于网络边缘分布范围较广,节点数量庞大,密度较高,部署在雾计算环境中的设备能够感知周围环境的详细信息,可以随时获取其中设备的位置信息、正在发生的行为及人员的出席情况等。

7)移动性支持

在雾计算环境中,静止的雾节点不但可以为静止/移动的终端用户提供服务,而且移动的雾节点也可以为静止/移动的终端用户提供服务。移动的雾节点可以是正在行驶的汽车、飞行中的无人机、配有可穿戴设备的行人等。通过采用不同的通信协议及任务迁移等技术,实现雾节点与移动终端设备的信息无缝交互。

8)异构性

随着物联网技术的快速发展,预测在未来不久,将会有数百亿个物理设备连接到物联网。雾节点由位于网络边缘的智能体、网络设备等组成,这些设备的功能及性能都存在很大的差异,同时依赖不同的通信协议和传输介质。雾计算能够在制造现场通过虚拟化技术和面向服务的理念将异构设备进行抽象,形成提供计算、存储与网络服务的高度虚拟化共享平台,为操作技术(Operation Technology,OT)与信息技术(Information Technology,IT)互相融合提供载体,从而有效降低云端与制造系统交互的任务难度。

3. 系统架构[35]

相较于云计算终端用户层、网络层和云层的三层架构,雾计算的系统在引入中间雾层后架构可以分成五层,分别是终端用户层、接入网络层、雾层、核心网络层和云层,如图1-7所示。不难看出,离底层越近,分布的区域越大,且终端用户数据传输到该层的时延越小。

图1-7 雾计算的系统架构

1)终端用户层

终端用户层主要由用户的手机、便携式电脑等终端设备构成,而且随着传感网技术的发展,传感器节点也将在这一层中发挥重要作用。任务将在这一层中产生,处理后的结果也将返回到这一层。此外,终端设备还需要发现并指定对应任务转发的雾节点。

2)接入网络层

当终端用户层的用户生成内容后,会由接入网络的网络设备将这些信息按照预定的规则发送到对应的雾节点上。在这一层中通信的网络既包含有线局域网,又包含Wi-Fi、5G等无线接入网络。

3)雾层

雾层是雾计算的核心。在雾层中部署有贴近用户的、高密度的计算和存储设备,极大地降低了传统云计算的时延,同时也能给予用户移动性的支持。这些设备被称为雾节点(Fog Node)。可以将雾节点按照其部署位置和功能分成三类:雾边缘节点(Fog Edge Node)、微雾(Foglet)和雾服务器(Fog Server)。

雾边缘节点一般由智能网关、边界路由器等构成,是距离终端用户层最近的雾节点,提供一定程度的计算、存储和通信功能。雾服务器比雾边缘节点具有更强的计算能力和更大的存储空间,能够应对更多的请求。其可直接与远端的云数据中心通过网络连接。微雾在相对复杂的雾层结构中出现,位于雾边缘节点和雾服务器之间,起着预处理、路由等中间件的作用,通过SDN(Software Defined Network)可以实现流量的智能转发,避免拥塞。

4)核心网络层与云层

对于超出雾层计算或存储能力的任务,会被雾服务器通过IP核心网络发往云数据中心。多跳的有线网一般用到SDN技术。

云层主要由远端的云数据中心服务器构成,这些服务器往往具备比雾层服务器更强的计算能力和更大的存储能力,因此,其一般起到数据备份、大计算量任务处理的作用。与雾层类似,云端服务器也是相连的,装载有任务的虚拟机可在云端服务器间来回迁移,以增大执行效率。

4. 资源调度的考虑因素

在雾计算中,任务将被装载在虚拟机(Virtual Machine,VM)或容器(Container)中运行。这些虚拟机或容器可以在物理机之间进行迁移,以更高效地利用物理机的资源。虚拟机或容器迁移的位置依赖于调度算法的设计。在调度算法的设计上,相比于云计算的复杂之处,一方面,雾计算对时延的敏感程度很高,因此,用户到雾节点的时间、任务在不同雾节点中迁移的时间、雾节点将任务转发到云数据中心的时间都可能被纳入考量;另一方面,雾节点除计算节点外可能还设置了存储相关的节点,这些节点的放置方式也会影响到相关的服务质量。因此,在调度算法的设计中需要考虑如下因素。

1)存储容量

存储是雾层的一大功能,对于存储,希望数据能尽量靠近需求,但也同时希望使用尽量少的存储空间。数据获取时间和数据备份数目这两个指标一般会同时出现,作为存储情况的衡量指标。

2)时延

除存储外,雾层中雾节点更多地承担着计算的功能,而时延是对计算能力的一个重要的衡量指标。用往返时延衡量计算时延存在问题。对于计算时延来说,采用如违反服务等级协议(SLA Violation)这样的针对资源短缺程度的衡量方法将更加合理。

3)功耗

这也是对计算能力的一个重要的衡量指标。为提升资源使用效率,任务一般加载在虚拟机中执行,同一设备上的虚拟机将共享该设备的资源。人们寄希望于将尽量多的虚拟机打包到尽量少的设备上,但打包的程度越大,资源短缺的风险越大,从而时延的风险也随之增大。因此,一般会结合功耗和时延对计算能力进行统一的考量。此外,还有一些类似的指标也可以起到相同的效果,如与资源消耗量成正比的二氧化碳排放量。

4)效用

雾计算和云计算一样具有其商业价值。例如,在车联网中利用周围车辆与道路两旁的智能传感器所提供的算力进行计算,而在这里就产生了计价的问题。由于现在还没有一个像云按需服务这样成熟的商业模式,因此,这项指标主要针对具体的情景。

5)网络资源占用与迁移时间

为了获得更高的收益,可以在必要时对虚拟机进行迁移。由于网络资源有限,虚拟机在网络上进行迁移存在代价,而这个代价一般通过网络资源占用和迁移时间来反映。其中,网络资源占用直接衡量带宽资源,而迁移时间不仅间接反映了带宽的情况,还反映了在网络线路传输过程中的时延。由于雾节点之间距离较小,这种时延实际上可以忽略不计,因此,这两种衡量方法均可采用。

5. 相关应用[35]

由于雾计算比云计算具有贴近用户、能够提供地理分布与移动性支持的特点,因此其适于四种应用类型:一是以大型网络游戏、超高清视频为代表的具有大数据量但要求较低时延的应用;二是以无线传感网为代表的基于地理分布的应用;三是以车联网、可穿戴设备为代表的需要快速反馈的移动应用;四是以智能电网、智能交通指挥系统为代表的大规模分布式决策系统。

1)具有大数据量但要求较低时延的应用

对于大型网络游戏、超高清视频这样的应用来说,雾计算可以像内容分发网络一样,将大数据缓存在靠近用户的位置,从而减少了从远端数据中心获取数据的时延,也节省了网络的带宽。与此同时,雾节点也可以进行一定程度的数据处理,从而减轻了终端设备的计算任务,提升了应用的性能。

2)基于地理分布的应用

雾节点可以部署在靠近传感器的位置以减少从终端设备到雾节点的距离。这样做可以有效减小传感器的传输距离,从而节约了传感器的能耗,保证了数据的质量,降低了数据被窥探的风险。与此同时,雾节点可以协助终端传感设备进行计算,提升了数据的计算效率。

3)快速反馈的移动应用

相比于云计算,雾计算通过安装在移动物体上的传感器与该区域内固定装载的传感器进行协同感知,然后及时交由对应的雾节点进行处理,并将得到的结果立即反馈给用户,可以有效降低时延。这种时延的降低对未来的无人驾驶大有裨益。

4)大规模分布式决策系统

在大规模分布式决策系统中,雾计算可以改善传统的云计算在位置感知、移动性支持和时延上的问题,形成快速有效的物联信息决策系统,以达到更有效、更智能的决策目的。