StarlingX是什么?
说到StarlingX,要先说两个公司,(Intel)英特尔和WindRiver(风河)。英特尔我们都知道是美国一家主要以研制CPU处理器的公司,是全球最大的个人计算机零件和CPU制造商,它成立于1968年,具有50年产品创新和市场领导的历史。那么风河是家什么样的公司呢?
风河
风河是智能互联系统软件的全球领导者,提供全面的边缘到云软件产品套件,旨在帮助各关键基础设施公司应对系统发展和现代化过程中面临的挑战和机遇,最大限度地实现物联网的价值。和苹果、谷歌一样,风河也是在车库起家。
1981年劳伦斯伯克利国家实验室前研究员JerryFiddler在加利福尼亚州伯克利市的一个车库里创建了风河公司。1987年风河推出了VxWorks,是首个具有跨计算机网络通信能力的实时操作系统(RTOS),VxWorks也是目前应用最广泛的RTOS(实时操作系统),VxWorks平台用途广泛,支持美国国家航空航天局(NASA)的好奇号漫游车、网络设备、工厂机器人及其他许多类型的工业设备。VxWorks还用在与消费者接触的硬件(比如医疗设备)中。2009年,风河被英特尔收购,2018年4月英特尔又把风河卖给了TPGCapitalLP。
Titanium Cloud
2014年6月,风河公司针对WindRiver Carrier Grade Communications Server成立了TitaniumCloud生态系统项目。设计目标就是要成为电信网络应用软件理想的云操作系统平台,以最高的可靠性地运行网络虚拟化功能。通过本项目,风河将与其合作伙伴针对NFV (Network Functions Virtualization,网络功能虚拟化)基础设施部署提供经过优化且可互操作的硬件和软件解决方案,以加快服务提供商以及TEM (Telecom Equipment Manufacturers,电信设备制造商) 产品上市步伐。
正如项目名称Titanium所示,风河合作伙伴生态系统将围绕电信级通信服务器(Carrier Grade Communications Server)平台建立功能强大的解决方案阵容。通过与风河公司的电信行业专家密切合作,Titanium Cloud项目合作伙伴将对其现有标准产品进行优化,以便更加充分利用Wind River平台的全部功能。
电信级通信服务器是一组集成化、支持NFV基础设施达到电信网络所要求的运营商级高可靠性软件。传统电信网络的可靠性都已达到6个9的级别(99.9999%)或换算为一年30秒停机时间,而基于IT应用的企业级软件平台的可靠性则通常仅为3个9(99.9%),也就是每年约有9个小时的停机时间,这会造成严重的成本和收入损失。电信级通信服务器是唯一能够让服务提供商向虚拟化基础设施过渡后仍能达到保持6个9级别的高可靠性商用级网络功能虚拟化服务器解决方案,并保持能够满足“永不停机”的要求。
除此之外,通过加速虚拟网络功能(VNF,Virtual Network Functions)的性能,提供简化的虚拟网络功能安装、管理和维护步骤的功能,电信级通信服务器支持客户在网络中逐步部署虚拟网络功能时,最大程度地降低资本支出 (CAPEX)和运营支出 (OPEX) 。
风河Titanium Cloud最初构建在OpenStack等开源组件上, 然后对其进行扩展和加固, 以满足关键的基础设施需求, 包括: 高可用性、故障管理和性能管理,可用于NFV电信云、边缘云、工业物联网等场景。
StarlingX
今天说的StarlingX项目就是基于WindRiver的产品Titanimu Cloud R5版本基础上修改而来。 2018年5月, Intel和风河宣布将其电信云/边缘云的商业产品TitaniumCloud中的部分组件开源, 命名为StarlingX, 并提交给OpenStack Foundation管理。
2018年10月,OpenStack社区发布了StarlingX首个版本,最初的starlingX主要是通过6大组件,来完成对Openstack的安装部署,监控管理等。
服务管理(Service Management)—— stx-ha
从名字可以看出,就是用来做系统可靠性性的简称(SM)。
1.SM对kenrel中的进程调度进行扩展,增加了信号量,从而可以第一时间获取到监控的进程死亡的信号,从而触发进程重新拉起的工作。
2.SM复用了pacemaker中ocf脚本,可以用它来做服务的拉起。这里主要是对floating IP,nfs等资源的监控
3.SM也使用了init.d的脚本,来对openstack以及其他组件的服务进行拉起动作。
因此,在StarlingX平台上启动/停止相关服务,要使用sm-restart/sm-unmanager等命令来进行。
故障管理(Fault Managerment)——stx-fault
该模块就是用来做事件告警收集的模块,简称(FM)
其他模块通过fm-api来直接发送告警或者事件信息给fm-manager
软件管理(Software Managerment)——stx-update
该模块主要提供了在StarlingX,如何制作patch的工具,同时也有patch的服务,用来管理升级/降级等功能。
基础管理(Bare Metal Managerment)——stx-metal
该模块是StarlingX中比较重要的一部分。整个平台的有机结合都是靠它。
该工程是从WindRiver自己的MTCE平台开源而来。
1. 提供了rmon对资源进行监控,比如cpu/memory等。
2. 提供了pmon对进程进性监控。这个模块的监控和sm是有区别的。SM主要管理Openstack整个服务及相关资源。pmon只管理基础进程,比如ssh等等。
值得一提的是,在StarlingX中的计算节点是不安装SM服务的,所以nova-compute等服务,也是由pmon来监控。
3. hbs服务,对整个平台提供了心跳检测服务。
4. hwmond服务,提供了对服务器BMC的服务。
5. Mtc服务,总管MTCE平台其他服务模块,对外提供接口。
平台调度(Platform Orchestration)—— stx-nfv
从名字来看就可以看到,这个模块是在NFV场景下来丰富openstack功能的组件。
1. 提供了nova-api-proxy的模块,直接监听了nova的8774端口来拦截nova的请求,然后将一些需要处理的请求发送给VIM模块。其他透传给nova。
2. Nfv-vim模块,用来做一些NFV场景下逻辑处理功能,例如VM的HA功能。
3. Guest-server模块。这个模块用来提供了一套api及机制,通过在虚拟机中安装agent,达到从平台侧获取虚拟机心跳等功能。
配置管理(Configuration Managerment)——stx-config
该模块用来对StarlingX中的组件以及openstack服务进行安装配置的。
1. sysinv服务提供整个软件的状态管理,配置的修改等。
2.Controllerconfig/computeconfig等提供了根据角色来进行配置的设置。
每一次启动时候这类服务都会重新执行。来保证系统在重启后能恢复到正常配置。
StarlingX安装方法
以Ubuntu 16.04 LTS 64-bit为例:
(1) 更新操作系统1. #sudo apt-get update
(2)安装stx-tools工具项目1. #cd $home2. #git clone git://git.openstack.org/openstack/stx-tools
(3)安装依赖包1. #cd $HOME/stx-tools/deployment/libvirt/2. #bash install_packages.sh
(4)制作StarlingX的ISO镜像可参考https://wiki.openstack.org/wiki/StarlingX/Developer_Guide进行镜像制作。注意:· 下载依赖包时, 由于众所周知的原因, 国内访问有问题, 所以最好设置http代理下载, 或者使用国外虚拟机上进行镜像制作。· 通过源码编译、打包成RPM包, 这个过程很长, 笔者的虚拟机上跑了约12个小时, 请耐心等待· 编译各RPM源代码时使用了linux的mock隔离环境, 其log位置在/localdisk/loadbuild/user/starlingx/std/results/user-starlingx-tis-r5-pike-std/XXX包名/build.log· 如果碰到报错:ERROR:Command failed: 09:08:15 # mount -n -t tmpfs -o mode=0755 -onr_inodes=0 -o size=5g mock_chroot_tmpfs/localdisk/loadbuild/user/starlingx/std/mock/b1/root 可以尝试修改:/usr/lib/python2.7/site-packages/mockbuild/plugins/tmpfs.pyself.optArgs =['-o', 'nr_inodes=500000]
(5)复制镜像到bootimage.iso1. #cp <starlingx iso image> $HOME/stx-tools/deployment/libvirt/bootimage.iso
(6)关闭防火墙1. #sudo ufw disable2. Firewall stopped and disabled on system startup3. #sudo ufw status4. Status: inactive
(7)通过ISO镜像启动, 并按照提示进行安装StarlingX, 详情请参考:https://wiki.openstack.org/wiki/StarlingX/Installation_Guide_Virtual_Environment/Simplex
StarlingX平台是一个完整、高可靠、可扩展的边缘云软件堆栈,它将新服务与许多其他开源项目结合到一个整体边缘云软件堆栈中,为边缘计算、工业物联网和电信应用构建一个有弹性的边缘云基础设施。StarlingX不是OpenStack子项目。它本身就是一个完整的项目。同时,它使用了许多OpenStack服务来提供核心的计算、存储和网络功能。StarlingX的开源也是响应了Akraino项目。
Akraino Edge Stack是Linux基金会旗下的一个项目,它开发了一套开源软件堆栈,支持针对边缘计算系统和应用软件优化的高可用性云服务,18年8月宣布从成立阶段进入到执行阶段。Akraino Edge Stack旨在为企业边缘、OTT(Over the Top)边缘和运营商边缘网络改善边缘云基础设施的状况。它将为用户提供新的灵活性,以便快速扩展边缘云服务,最大限度地利用边缘处支持的应用程序和功能,并有助于为必须始终运行的系统确保可靠性。
StarlingX未来将会朝着容器化方向发展, 将会把openstack等组件做在容器中, 并可使用K8S来管理。从功能上来看, StarlingX在系统HA、性能调优、软件管理、故障监控方面有很好的参考价值, 很适合OpenStack开发人员研究。
小彩蛋: StarlingX的第二个版本将在今年第三季度推出!
参考文献
1.OpenStack StarlingX 组件详解,
作者:开源云中文社区
2.浅谈高性能边缘云软件堆栈StarlingX,
作者:steve
3.电信云/边缘云虚拟层软件StarlingX介绍,
作者:赵怡
4.开源边缘计算项目:让你真正明白什么是StarlingX,
作者:肖丁