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 平台开源而来。
提供了 rmon 对资源进行监控,比如 cpu/memory 等。
提供了 pmon 对进程进性监控。这个模块的监控和 sm 是有区别的。SM 主要管理 Openstack 整个服务及相关资源。pmon 只管理基础进程,比如 ssh 等等。
值得一提的是,在 StarlingX 中的计算节点是不安装 SM 服务的,所以 nova-compute 等服务,也是由 pmon 来监控。
hbs 服务,对整个平台提供了心跳检测服务。
hwmond 服务,提供了对服务器 BMC 的服务。
Mtc 服务,总管 MTCE 平台其他服务模块,对外提供接口。
平台调度( Platform Orchestration )—— stx-nfv
从名字来看就可以看到,这个模块是在 NFV 场景下来丰富 openstack 功能的组件。
提供了 nova-api-proxy 的模块,直接监听了 nova 的 8774 端口来拦截 nova 的请求,然后将一些需要处理的请求发送给 VIM 模块。其他透传给 nova。
Nfv-vim 模块,用来做一些 NFV 场景下逻辑处理功能,例如 VM 的 HA 功能。
Guest-server 模块。这个模块用来提供了一套 api 及机制,通过在虚拟机中安装 agent,达到从平台侧获取虚拟机心跳等功能。
配置管理( Configuration Managerment )—— stx-config
该模块用来对 StarlingX 中的组件以及 openstack 服务进行安装配置的。
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
( 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,
作者:肖丁
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.