云与雾拓扑结构解析
1. OpenStack组件概述
OpenStack具备丰富的过滤器,可实现服务器和服务的自定义分配,对服务器的供应和扩展进行精确控制,这是云设计的经典且重要的方面。这些过滤器包括但不限于:
- RAM大小
- 磁盘容量和类型
- IOPS级别
- CPU分配
- 组亲和性
- CIDR亲和性
以下是OpenStack的主要组件介绍:
| 组件名称 | 功能描述 |
| — | — |
| Swift - 对象存储 | 为OpenStack数据中心提供冗余存储系统,允许通过添加新服务器实现集群扩展,可存储账户、容器等,用户虚拟机可存储或缓存于此,Nova计算节点首次运行时可直接调用并下载镜像。 |
| Neutron - 网络服务 | 负责OpenStack的网络管理和VLAN服务,整个网络可配置,提供域名服务、DHCP、网关功能、VLAN管理、L2连接、SDN、覆盖和隧道协议、VPN、NAT(SNAT和DNAT)、入侵检测系统、负载均衡、防火墙等服务。 |
| Cinder - 块存储 | 为云提供持久块存储服务,适用于数据库、动态增长的文件系统(如数据湖,在流式物联网场景中尤为重要)。其功能包括创建、删除和绑定存储设备到Nova计算实例,支持多存储供应商互操作性(如HP 3PAR、EMC、IBM、Ceph、CloudByte、Scality),支持多种接口(如光纤通道、NFS、共享SAS、IBM GPFS、iSCSI),可进行磁盘镜像的备份和检索、时间点快照,还可作为VM镜像的替代存储。 |
| Horizon | OpenStack的仪表盘,为客户提供OpenStack的单窗口视图,以基于Web的方式展示OpenStack的各个组件(如Nova、Cinder、Neutron等),提供云系统的用户界面视图作为API的替代方式,且具有可扩展性,第三方可添加小部件或工具,还可添加新的计费组件。 |
| Heat - 编排(可选) | 可基于OpenStack实例上的模板启动多个复合云应用并管理云基础设施,与遥测集成以根据负载需求自动扩展系统。模板尽量遵循AWS CloudFormation格式,可指定资源之间的关系。示例模板如下:
heat_template_version: 2015-04-30
description: example template
resources:
my_instance:
type: OS::Nova::Server
properties:
key_name: { get_param: key_name }
image: { get_param: image }
flavor: { get_param: flavor }
admin_pass: { get_param: admin_pass }
user_data:
str_replace:
template: |
#!/bin/bash
echo hello_world
| Ceilometer - 遥测(可选) | 用于收集遥测数据和计量每个服务使用的资源,计量信息用于收集使用情况并转化为客户账单,还提供评级和计费工具。监控和计量不同事件(如启动服务、附加卷、停止实例),收集CPU使用、核心数量、内存使用和数据移动等指标,并存储在MongoDB数据库中。 |
2. 物联网云架构的限制
云服务提供商位于物联网边缘设备之外,负责广域网。物联网架构的一个特点是PAN和WPAN设备可能不支持IP协议,如蓝牙低功耗(BLE)和ZigBee等协议不是基于IP的,而广域网上的一切(包括云)都是基于IP的,因此边缘网关的作用是进行协议转换。
同时,云存在延迟影响。在许多物联网应用中,硬实时响应至关重要,这迫使处理过程更靠近端点设备。
3. 延迟效应分析
随着接近传感器,进入硬实时要求的领域。这些系统通常是深度嵌入式系统或微控制器,其延迟由现实世界事件决定。例如,摄像机对帧率敏感(通常为30或60 fps),必须在数据流管道中执行一系列顺序任务(如去马赛克、降噪、白平衡和伽马调整、色域映射、缩放和压缩)。以1080p视频,每通道8位,60 fps为例,视频成像管道中的数据流量约为1.5 GB/s,每个帧都必须实时通过该管道,因此大多数视频图像信号处理器在硬件中执行这些转换。
网关的响应时间次之,通常在个位数毫秒范围内。响应时间的限制因素是WPAN延迟和网关负载。大多数WPAN(如BLE)的延迟是可变的,取决于网关下的BLE设备数量、扫描间隔、广告间隔等。BLE连接间隔可低至7.5 ms,但会根据客户调整广告间隔以最小化功耗而变化。Wi-Fi信号通常有1.5 ms的延迟。在这个级别,需要与PAN有物理接口,不能期望将原始BLE数据包传输到云并实现近实时控制。
云组件在广域网上引入了额外的延迟。网关和云提供商之间的路由可能有多条路径,具体取决于数据中心和网关的位置。云提供商通常提供一组区域数据中心来规范流量。以下是不同地区的云延迟示例:
| 地区 | 延迟 |
| — | — |
| 美国东部(弗吉尼亚) | 80 ms |
| 美国东部(俄亥俄) | 87 ms |
| 美国西部(加利福尼亚) | 48 ms |
| 美国西部(俄勒冈) | 39 ms |
| 加拿大(中部) | 75 ms |
| 欧洲(爱尔兰) | 147 ms |
| 欧洲(伦敦) | 140 ms |
| 欧洲(法兰克福) | 152 ms |
| 亚太地区(孟买) | 307 ms |
| 亚太地区(首尔) | 192 ms |
| 亚太地区(新加坡) | 306 ms |
| 亚太地区(悉尼) | 205 ms |
| 亚太地区(东京) | 149 ms |
| 南美洲(圣保罗) | 334 ms |
| 中国(北京) | 436 ms |
| 美国政府云 | 39 ms |
通常,云延迟在数十甚至数百毫秒级别(未考虑传入数据的处理开销)。在构建基于云的物联网架构时,应考虑不同的响应级别。靠近设备的架构可实现低于10 ms的响应,且具有可重复性和确定性,而云解决方案会使响应时间产生可变性,且比近边缘设备的响应时间长一个数量级以上。架构师应根据这些影响考虑解决方案的部署位置,选择云服务提供商时也应考虑其数据中心部署模型。
4. 雾计算概述
雾计算是云计算在边缘的演进扩展。雾计算借鉴了Hadoop和MapReduce的成功经验。MapReduce有三个步骤:映射、洗牌和归约。在映射阶段,将计算函数应用于本地数据;洗牌步骤根据需要重新分配数据,这是关键步骤,系统会尝试将所有相关数据集中到一个节点;最后是归约阶段,所有节点的处理并行进行。其核心思想是将处理带到数据所在的地方,而不是将数据移动到处理器所在的地方,这种方式有效消除了通信开销和大数据系统中的自然瓶颈。在物联网领域,数据以实时流的形式产生,雾计算是解决这种新大数据问题的自然方式。
雾计算与边缘计算和云计算有所不同。边缘计算是将处理移近数据产生的地方,在物联网中,边缘设备可以是带有小型微控制器或支持广域网通信的嵌入式系统的传感器,也可以是连接受约束端点的网关。边缘计算旨在解决延迟和不必要的带宽消耗问题,并在数据源附近添加服务(如净化和安全),边缘设备可能与云服务有联系,但不积极参与云基础设施。
雾计算首先与其他雾节点和/或覆盖云服务共享框架API和通信标准,雾节点是云的扩展,而边缘设备可能与云无关。雾计算的另一个关键原则是可以存在层次结构,还可以进行负载均衡,引导数据进行东西向和南北向流动以实现资源平衡,可以将雾节点视为混合云中更多(尽管功能较弱)的基础设施。
5. OpenFog参考架构
OpenFog参考架构是理解各层之间交互和数据契约所必需的。OpenFog联盟是一个非营利行业组织,负责定义雾计算的互操作性标准,其参考架构为架构师和企业领导者创建硬件、构建软件和获取雾计算基础设施提供模型。该架构采用分层方法,从底部的边缘传感器和执行器到顶部的应用服务,与典型的云架构(如OpenStack)有一些相似之处,但更类似于PaaS而非IaaS,提供完整的堆栈,通常与硬件无关,或至少将平台从系统的其他部分抽象出来。
以下是OpenFog参考架构的各层介绍:
-
应用服务层
:为任务提供单窗口视图和自定义服务,包括提供与其他服务的连接器、托管数据分析包、按需提供用户界面和核心服务。应用层的连接器将服务连接到支持层,协议抽象层为连接器直接与传感器通信提供路径。每个服务应被视为容器中的微服务,OpenFog联盟提倡将容器部署作为在边缘部署软件的正确方法。
-
应用支持层
:是帮助构建最终客户解决方案的基础设施组件,可能在部署方式上有依赖关系(如作为容器)。支持形式包括应用管理(图像识别、图像验证、图像部署、身份验证)、日志工具、组件和服务注册、运行时引擎(容器、虚拟机)、运行时语言(Node.js、Java、Python)、应用服务器(Tomcat)、消息总线(RabbitMQ)、数据库和存档(SQL、NoSQL、Cassandra)、分析框架(Spark)、安全服务、Web服务器(Apache)、分析工具(Spark、Drool)等。OpenFog建议将这些服务打包为容器,但架构师应根据边缘设备的处理和资源情况选择合适的支持服务。
-
节点管理和软件背板层
:指带内(IB)管理,管理雾节点与其域内其他节点的通信,通过该接口进行节点的升级、状态监控和部署。背板可包括节点的操作系统、自定义驱动程序和固件、通信协议和管理、文件系统控制、虚拟化软件和微服务的容器化。其典型功能包括服务发现(允许临时的雾到雾信任模型)、节点发现(允许添加雾节点并加入集群,类似于云集群技术)、状态管理(允许为有状态和无状态计算使用不同的计算模型)、发布/订阅管理(允许推送数据而非拉取数据,并在软件构建中提供抽象级别)。
-
硬件虚拟化层
:与典型的云系统一样,OpenFog将硬件定义为虚拟化层,应用程序不应与特定的硬件绑定,系统应在雾中进行负载均衡,并根据需要迁移或添加资源,所有硬件组件(包括计算、网络和存储)在此层进行虚拟化。
-
OpenFog节点安全层
:该层是堆栈的硬件安全部分,高层雾节点应能够监控低层雾节点,对等节点应能够监控其东西向邻居。其职责包括加密、篡改和物理安全监控、数据包检查和监控(东西向和南北向)。
OpenFog参考架构或任何基于雾的架构应允许分层部署,存在多种拓扑结构,可根据规模、带宽、处理负载和经济性进行设计,就像真正的云可以根据需求动态扩展和负载均衡一样。
云与雾拓扑结构解析
6. OpenFog参考架构各层详细分析
为了更清晰地展示OpenFog参考架构各层之间的关系和数据流向,我们可以用mermaid流程图来表示:
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A(边缘传感器和执行器):::process --> B(硬件虚拟化层):::process
B --> C(节点管理和软件背板层):::process
C --> D(应用支持层):::process
D --> E(应用服务层):::process
E -->|服务调用| F(其他服务):::process
D -->|数据存储| G(数据库和存档):::process
A -->|数据传输| H(网关):::process
H -->|数据转发| B
从这个流程图可以看出,数据从边缘传感器和执行器开始,经过硬件虚拟化层、节点管理和软件背板层、应用支持层,最终到达应用服务层。应用服务层可以调用其他服务,应用支持层会将数据存储到数据库和存档中。同时,边缘传感器和执行器的数据会先传输到网关,再由网关转发到硬件虚拟化层。
下面我们对各层的关键功能进行详细分析:
-
应用服务层
:
-
服务连接器
:负责将本层的服务与应用支持层的服务进行连接,实现不同服务之间的交互。例如,一个数据分析服务可以通过连接器调用应用支持层的数据库服务来获取数据。
-
数据处理与分析
:托管各种数据分析包,对从下层传来的数据进行处理和分析。比如,对传感器采集的环境数据进行实时分析,以判断是否存在异常情况。
-
用户界面
:根据需要为用户提供直观的操作界面,方便用户查看和管理系统。例如,一个物联网监控系统的用户界面可以展示各个传感器的实时数据和设备状态。
-
应用支持层
:
-
应用管理
:包括图像识别、验证和部署,以及身份验证等功能。确保应用的安全性和正确性,只有经过授权的用户和应用才能访问系统资源。
-
日志工具
:记录系统的运行状态和事件,方便后续的故障排查和性能分析。例如,记录每个服务的启动时间、停止时间和处理的数据量。
-
组件和服务注册
:对系统中的各个组件和服务进行注册,方便服务发现和调用。例如,将一个新的数据分析服务注册到系统中,其他服务就可以通过服务发现机制找到并调用它。
-
节点管理和软件背板层
:
-
服务发现
:通过特定的协议和机制,允许雾节点之间进行服务发现,建立临时的信任模型。例如,一个雾节点可以通过服务发现机制找到附近的其他雾节点,并建立通信连接。
-
节点发现
:支持雾节点的动态加入和退出集群,类似于云集群技术。当一个新的雾节点加入集群时,系统可以自动发现并将其纳入管理范围。
-
状态管理
:针对有状态和无状态计算,提供不同的计算模型和状态管理机制。例如,对于一个有状态的数据库服务,系统可以管理其数据的状态和一致性。
-
硬件虚拟化层
:
-
资源抽象
:将硬件资源(如计算、网络和存储)进行虚拟化,使应用程序可以独立于具体的硬件进行部署和运行。例如,一个应用程序可以在不同的硬件平台上运行,而不需要关心底层硬件的具体配置。
-
资源分配和调度
:根据应用程序的需求,对虚拟化的硬件资源进行分配和调度。例如,当一个应用程序需要更多的计算资源时,系统可以动态地为其分配更多的CPU和内存。
-
OpenFog节点安全层
:
-
加密
:对传输和存储的数据进行加密,确保数据的安全性和隐私性。例如,使用对称加密算法对传感器采集的数据进行加密,防止数据在传输过程中被窃取。
-
篡改和物理安全监控
:监控节点的物理状态和数据的完整性,防止节点被篡改或受到物理攻击。例如,通过传感器监测节点的温度、湿度和振动等物理参数,及时发现异常情况。
-
数据包检查和监控
:对网络中的数据包进行检查和监控,防止恶意攻击和非法访问。例如,使用入侵检测系统对网络流量进行实时监测,发现并阻止潜在的攻击行为。
7. 雾计算拓扑结构示例
雾计算的拓扑结构可以根据不同的应用场景和需求进行设计。以下是几种常见的雾计算拓扑结构示例:
| 拓扑结构类型 | 描述 | 适用场景 |
| — | — | — |
| 星型拓扑 | 以一个中心雾节点为核心,其他雾节点和边缘设备都与中心雾节点连接。中心雾节点负责数据的收集、处理和转发。 | 适用于数据集中处理的场景,如物联网监控系统,所有传感器的数据都传输到中心雾节点进行处理。 |
| 网状拓扑 | 所有雾节点之间都相互连接,形成一个网状结构。数据可以在任意两个雾节点之间直接传输,提高了数据传输的可靠性和效率。 | 适用于对数据传输可靠性要求较高的场景,如工业自动化系统,各个设备之间需要实时、可靠地交换数据。 |
| 分层拓扑 | 将雾节点分为不同的层次,上层雾节点负责管理和协调下层雾节点。数据可以在不同层次的雾节点之间进行传输和处理。 | 适用于大规模的物联网系统,如智慧城市系统,通过分层管理可以提高系统的可扩展性和管理效率。 |
下面是一个星型拓扑结构的mermaid流程图:
graph LR
classDef node fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
A(中心雾节点):::node --> B(雾节点1):::node
A --> C(雾节点2):::node
A --> D(雾节点3):::node
B --> E(边缘设备1):::node
C --> F(边缘设备2):::node
D --> G(边缘设备3):::node
在这个星型拓扑结构中,中心雾节点与多个雾节点连接,每个雾节点又连接着多个边缘设备。边缘设备将数据传输到对应的雾节点,雾节点再将数据转发到中心雾节点进行集中处理。
8. 雾计算的优势和挑战
雾计算作为云计算在边缘的扩展,具有以下优势:
-
低延迟
:将处理和数据存储靠近数据源,减少了数据传输到云端的延迟,满足了许多物联网应用对实时性的要求。例如,在智能交通系统中,车辆的实时数据可以在本地雾节点进行处理,及时做出决策,避免了数据传输到云端的延迟。
-
减少带宽需求
:在边缘进行数据处理和分析,只将必要的数据传输到云端,减少了网络带宽的消耗。例如,在一个大规模的视频监控系统中,雾节点可以对视频数据进行实时分析,只将有异常情况的视频片段传输到云端,大大减少了带宽需求。
-
增强数据安全性
:数据在本地雾节点进行处理和存储,减少了数据在网络中的传输,降低了数据泄露的风险。同时,雾节点可以对数据进行加密和访问控制,进一步增强了数据的安全性。
-
提高系统可靠性
:雾计算的分布式架构使得系统具有更高的可靠性。即使某个雾节点出现故障,其他雾节点仍然可以继续工作,保证了系统的正常运行。
然而,雾计算也面临着一些挑战:
-
资源管理
:雾节点的资源通常有限,如何有效地管理和分配这些资源是一个挑战。例如,在多个应用程序同时运行在一个雾节点上时,需要合理分配CPU、内存和存储等资源,以确保每个应用程序都能正常运行。
-
安全和隐私
:虽然雾计算在一定程度上增强了数据安全性,但仍然面临着安全和隐私方面的挑战。例如,雾节点可能会受到攻击,导致数据泄露或系统故障。因此,需要采取有效的安全措施来保护雾节点和数据的安全。
-
互操作性
:不同厂商的雾节点和设备可能采用不同的技术和标准,如何实现它们之间的互操作性是一个问题。例如,一个物联网系统中可能同时存在多个不同品牌的传感器和雾节点,需要确保它们能够相互通信和协作。
-
管理和维护
:雾计算的分布式架构使得系统的管理和维护变得更加复杂。例如,需要对大量的雾节点进行监控和管理,及时发现和解决故障。
9. 总结
雾计算作为云计算的延伸,为物联网应用提供了一种有效的解决方案。通过将处理和数据存储靠近数据源,雾计算可以降低延迟、减少带宽需求、增强数据安全性和提高系统可靠性。OpenFog参考架构为雾计算的设计和实现提供了一个标准化的框架,使得不同厂商的设备和系统能够更好地互操作。
在实际应用中,架构师需要根据具体的需求和场景选择合适的拓扑结构和部署方式。同时,也需要解决雾计算面临的资源管理、安全和隐私、互操作性以及管理和维护等挑战。随着物联网技术的不断发展,雾计算有望在更多的领域得到应用,为人们的生活和工作带来更多的便利和价值。
超级会员免费看
26

被折叠的 条评论
为什么被折叠?



