基于OpenStack的物联网云平台创新搭建
2023-10-25陈鲤文
张 松,陈鲤文
(福建工程学院,福建 福州 350000)
0 引言
云计算是指配置了相关的计算服务模块,用户根据自身项目需求选择服务器、系统等计算资源进行项目开发的技术。其技术特点可以扩展到物联网传感资源的管理,实现物联网和云计算的方法和技术的融合[1],这将会成为项目开发人员的另一种选择。大规模物联网项目中的传感器通常会有几个数量级的数量分散部署,物联网包含了物联对象的所有信息,不可避免地带来了信息安全问题。为了有效地管理边缘传感设备和物联网信息安全[2],迫切需要一种管理机制,即需要创建管理传感资源的动态基础设施的解决方案。因此,本文基于开源云架构OpenStack和开源物联网解决方案Stack4Tings构建了物联网云平台,能够管理边缘传感资源和保障物联网信息安全,为开发大型物联网项目提供了方案参考。
1 OpenStack 和Stack4Tings
1.1 OpenStack简介及其组件
OpenStack是一个旨在为公共及私有云的建设与管理提供软件支持的开源项目[3],各个组件之间相互关联,协同管理各类计算、存储和网络资源,其特点为模块松耦合、组件配置灵活和二次开发简单等。
物联网云平台搭建选用的核心组件及其功能介绍如下。(1)Keystone:身份认证服务[4],是OpenStack 框架中负责验证用户身份、设定访问服务规则和签发服务令牌的组件。具体表现为访问资源和执行操作需要验证用户的身份与权限。Keystone可以说是整个Openstack框架的注册表,OpenStack中各项服务都是通过Keystone来注册其网络端口(服务访问的URL),在本平台中会注册物联网服务的网络端口进行功能调用,实现对边缘开发板实例的创建、查询和删除等。(2)Horizon:仪表盘服务,为OpenStack提供了一个Web前端的管理界面,管理员可以通过前端界面直观地看到各种操作结果与运行状态。
1.2 Stack4Ting简介及其组件
Stack4Things是一个开源的物联网框架,由意大利墨西拿大学的移动和分布式系统实验室开发[5]。Stack4Things可以不用获取嵌入式设备的物理位置、网络配置和底层技术就能够管理物联网设备,是一个面向云的水平解决方案,提供物联网对象虚拟化、定制和编排服务。
Stack4Things物联网框架主要包含3部分。(1)IoTronic:物联网平台核心服务,部署在云基础设施侧,同OpenStack其他服务类似,需要通过Keystone注册获得其网络端口。该组件主要接收用户命令,传递命令到开发板,接收开发板的数据反馈到云端,完成将OpenStack云计算架构扩展到传感资源管理的任务。(2)Lighting-Rod:边缘开发板侧服务程序,完成来自云端用户命令的接收和与开发板上的外接传感资源交互的任务,同时将传感器获得的数据上传云端。(3)IoTronicClient:命令行工具,通过Keystone服务认证的用户可以使用IoTronicClient命令行工具输入相关命令实现对开发板的创建、查询和删除等操作。
2 物联网云平台的设计
本文设计了物联网平台的总体架构,如图1所示。总体架构主要分为两部分:云基础设施侧和边缘开发板侧,重点注重于OpenStack组件和Stack4Tings组件的分布情况。在云基础设施侧,Keystone服务完成对用户的认证,IoTronic组件代表了物联网云平台的核心,管理数据库,存储所有必要的信息。在边缘开发板侧,Lighting-Rod作为板侧软件架构的核心,代表了云基础设施的接触点,通过WebSocket全双工通道连接到一个特定的WAMP路由器与IoTronic进行通信,完成与云端收发命令和数据的任务。
图1 物联网平台总体架构
同时,本文给出了云基础设施侧和边缘开发板侧之间具体的信息交互,如图2所示。假定用户已经通过身份认证,操作物联网云平台的具体信息流程如下:(1)用户通过命令行工具或者Web前端界面连接到IoTronic服务。(2)用户命令转化为对IoTronic API接口的调用,同时将调用消息放进RabbitMQ消息队列。(3)IoTronic conductor从消息队列中提取消息并查询数据库检查用户要操作的开发板是否已经注册,如果已注册则获取该开发板的WAMP通信协议代理。(4)IoTronic conductor向消息队列推送新的消息,WAMP通信协议代理从消息队列中提取消息,并在相应的WAMP路由的主题上发布信息。(5)在边缘开发板侧,通过WAMP库,Lighting-Rod从路由上获得信息,同时打开反向套接字隧道连接到由云端IoTronic conductor指定的网络套接字隧道代理,并且生成一个TCP端口。(6)隧道代理通过指定的端口发布一条用户命令被执行的消息到消息队列中。(7)IoTronic API接口从消息队列中提取消息显示在Web前端界面。
图2 物联网平台内部信息流
3 物联网云平台的搭建
3.1 OpenStack基础云架构搭建
对于OpenStack基础云架构的搭建主要包含以下几个步骤:(1)基础环境搭建。本次搭建采用一台4核4 G内存、Centos7系统的虚拟机作为基础云架构的controller节点。基础设置包括设置虚拟机双网卡模式(NAT和主机模式),关闭防火墙并设置开机不启动,安装MySQL数据库、RabbitMQ消息队列服务、Memcached缓存服务等。(2)安装OpenStack相关服务。Keystone身份验证服务和Horizon仪表盘服务,本文采用的是先电云平台一键式搭建。(3)搭建成功验证。在浏览器上输入controller节点的IP地址进入云平台登录界面可以验证是否安装成功。云平台登录界面如图3所示。
图3 云平台登录界面
3.2 Stack4Things物联网架构搭建
对于Stack4Things物联网架构搭建主要包含以下几个步骤:(1)搭建前准备。在controller节点准备完成后,需要在MySQL数据库创建名为“iotronic”的数据库,使用Keystone服务创建名为“iotronic”用户并将用户加入项目域,再创建名为“iot”的服务并为该服务注册网络端口以供用户访问。(2)Stack4Things相关组件安装。此次搭建采用一台4核4 G内存、Ubuntu18.04系统的虚拟机作为IoTroinc节点。安装Crossbar服务,Crossbar实现了开放式Web应用程序消息传递协议(WAMP),上文提到的WAMP路由由此服务提供。安装IoTroinc服务,是物联网云平台的核心。安装apache2服务,作用为开放该节点特定的网路端口。(3)IoTroinc服务相关进程开启。通过systemctl命令开启conductor、WAMP agent等进程,并设置为开机自启动。
3.3 边缘开发板侧架构搭建
对于边缘开发板侧架构的搭建主要包含以下几个步骤:(1)搭建前准备。本次搭建采用一块MPU为RK3568的开发板,运行Debian10系统。安装JavaScript 运行环境NodeJS、反向代理服务器NGINX和自动化安全证书管理工具Certbot。(2)Lighting-Rod安装。安装完成后通过systemctl命令运行Lighting-Rod。安装完成后登录界面如图4所示。
图4 Lighting-Rod登录界面
4 物联网平台测试
本次测试在云基础设施侧和边缘开发板侧分别测试。在云基础设施侧的测试为在controller节点创建用户,用户通过IoTronicClient命令行工具进行创建、查看和删除开发板设备实例。边缘开发板侧的测试为通过命令行配置数据并在Web端登录开发板,与数据库中创建的开发板实例相匹配。
云基础设施侧测试:通过IotronicClient命令行工具输入命令“iotronic board-create
代表开发板唯一标识符,在边缘开发板侧实际注册时需要提供此标识符,当恶意攻击者要将设备接入云端会因数据库没有该实例或者无法提供开发板标识符而失败,从而保证了物联网信息安全。
图5 创建、查看和删除开发板实例
边缘开发板侧测试:本次测试分为模拟未获取开发板实例标识符的攻击者恶意接入云端和云端用户正常接入云端。在云端创建名为“rk3568”开发板实例的标识符为000001。在开发板安装Lighting-Rod后,命令行输入lr_configure
为创建实例的标识符,
图6 开发板未接入云端
图7 开发板成功接入云端
5 结语
本文基于云计算开源项目OpenStack和物联网开源项目Stack4Tings构建了物联网云平台,将按需分配和管理计算资源的云计算技术特点扩展到对物联网传感资源的管理,实现了物联网和云计算的方法和技术的融合。该物联网平台能够实现对边缘传感资源的管理,使得大型物联网项目部署传感资源更快捷,同时也能保障物联网信息的安全。下一步工作是将外接传感器的开发板应用到某个场景中,配合OpenStack存储服务将采集的数据同步上传云端,同时进行网络前端的开发,实现一键式数据采集、上传、存储和计算功能。
[1]舒俊.云计算在物联网领域的应用研究[J].中国高新科技,2023(2):109-111.
[2]李鹏.云计算技术在基于信任的物联网中的应用[J].无线互联科技,2023(6):103-105.
[3]曹海平.基于OpenStack的云计算平台设计与实现[J].信息记录材料,2023(4):237-239.
[4]尹誉衡.OpenStack Keystone认证机制研究[J].计算机技术与发展,2021(2):122-126.
[5]BRUNEO D,DISTEFANO S.Stack4Things as a fog computing platform for smart city applications:2016 IEEE conference on computer communications workshops [C].New York:IEEE, 2016.