您当前的位置: 首页 >  ar

凌云时刻

暂无认证

  • 0浏览

    0关注

    1437博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【干货分享】电信云/边缘云虚拟层软件StarlingX介绍

凌云时刻 发布时间:2018-10-20 19:19:04 ,浏览量:0

StarlingX介绍

2018年5月, Intel和风河宣布将其电信云/边缘云的商业产品Titanium Cloud中的部分组件开源, 命名为StarlingX, 并提交给OpenStack Foundation管理。

风河Titanium Cloud最初构建在OpenStack等开源组件上, 然后对其进行扩展和加固, 以满足关键的基础设施需求, 包括: 高可用性、故障管理和性能管理,可用于NFV电信云、边缘云、工业物联网等场景。

StarlingX是一款高性能的电信云/边缘云软件, 最初版本代码基于风河的商业软件Titanium Cloud R5产品,开源以后代码采用Apache2许可证。

除了提供传统的OpenStack服务, StarlingX代码功能还包括额外的增强管理:

  1. 高可用服务管理, 进程监控

  2. 单独的故障管理服务

  3. 节点、裸金属、硬件管理

  4. 安装、配置管理

  5. 软件管理, 包括补丁, 升级, 备份和恢复

StarlingX代码发布策略: 2018年10月将发布第一个正式版本, 从2019年起, 每年将发布3个版本。另外, 每个月第2周会发布一个测试版本。目前从git log上来看, 参与的人数还比较少,处于起步阶段。

官网:  https://www.starlingx.io

wiki:  https://wiki.openstack.org/wiki/StarlingX

git库: https://git.openstack.org/cgit/openstack/stx

         https://github.com/starlingx-staging

gerrit:https://review.openstack.org/#/admin/projects/?filter=stx

StarlingX整体架构

2.1 StarlingX软件架构

StarlingX基于现有OpenStack等开源软件(有部分增强和扩展, 详情见各软件代码log: https://github.com/starlingx-staging), 并加入对配置、故障、节点、软件、服务、基础设施的管理,使整个系统更加稳定和易于管理。

下图展示了StarlingX控制节点、计算节点、存储节点的组件架构:

图2-1 StarlingX节点组件架构 - 控制节点

 图2-2 StarlingX节点组件架构 - 计算节点

  图2-3 StarlingX节点组件架构 - 存储节点

2.2 StarlingX物理节点架构

从下图来看, StarlingX的节点/组网结构和普通的OpenStack没有太大区别。

在标准配置下, 包括:

2个HA的控制节点集群

  • 2-100个计算节点

  • 2-9个CEPH (可选)

  • 计算节点采用了DVR分布式路由

  • Cinder后端可采用LVM或者CEPH

  • Glance后端可采用文件系统或者CEPH

  • Swift后端只支持CEPH

图2-4 StarlingX节点和组网架构

2.3 StarlingX的可扩展性

单台服务器部署:

  • 控制、计算、网络、存储功能部署在同一台节点上

  • 不支持HA

 

2台服务器部署:

  • 每台服务器上运行控制、计算、网络、存储功能

  • 计算、网络、存储采用双机HA方式

 

多台服务器部署:

  • 2台HA控制节点集群

  • 2-100台计算节点

  • 2-9台可选的CEPH存储节点集群

  • 计算节点上运行DVR分布式路由

图2-5 StarlingX节点部署的可扩展性

2.4 StarlingX和分布式云/边缘计算

StarlingX支持分布式云,可用来支持边缘计算场景。 其主要功能有:

  •  基于OpenStack多region概念

  • 中心region通过分布式管理器(dc-manager)统一对各子云进行管理、配置、故障聚合、软件升级/patching等

  • 边缘region将会通过3层网络/REST API和中心region通信

  • 边缘云运行精简过的控制平面

图2-6 StarlingX - 多region分布式架构

StarlingX主要新组件介绍

除了OpenStack等开源社区的组件, StaringX项目新增的组件主要有以下6个:

  1. 配置管理

  2. 主机管理

  3. 服务管理

  4. 软件管理

  5. 故障管理

  6. 基础设施管理

另外, StarlingX会对使用到的开源项目, 如: CEPH, CentOS, OpenStack等做增强和扩展, 这些代码最终将会回馈给社区。

图2-7 StaringX主要组件

3.1 配置管理

可进行资产配置和节点配置:

安装

  • 自动发现新节点

  • 管理安装参数 (控制台、根磁盘等)

  • 通过xml文件批量配置节点

  • 具备安装进度条 

资产发现

  • CPU/核, SMT, 内存、大页信息

  • GPU, 加解密/压缩硬件, LLDP邻居信息

节点配置

  • 节点角色, 角色配置

  • CPU核, 内存(包括大页)分配, dpdk

  • 网络接口和存储配置

  • 批量节点配置

 

用户界面

  • 支持REST API, Horizon界面和命令行

 另外, 可通过puppet进行配置

3.2 主机管理

  • 管理主机的生命周期

  • 自动发现主机故障, 并恢复

  • 监控、告警和恢复。包括: 网络连接、进程问题、接口状态、资源利用率、硬件故障、主机看门狗等等

  • 主机带外重启、上电、下电、硬件传感器监控

  • 发布主机状态给其它组件

  •  可通过REST API进行主机管理

3.4 软件管理

  • 提供软件升级功能

  • 可以对整个软件的各层次升级/打补丁, 从kernel层一直到openstack的各服务层

  • 所有节点软件可以并行更新

  • 已在线的服务如果打了patch需要进行重启

  • 提供详细的补丁状态信息, 包括节点层和系统层

  • 支持滚动升级(Rolling Upgrade)

  • 自动处理数据库schema变更和转换

  • 提供REST API, Horizon界面和命令行

3.5 基础设施编排

  • 管理和编排VM HA能力

  • 自动恢复故障虚拟机实例

  • 生成实例告警和日志信息

  • 可对节点的软件升级和打补丁进行编排

  • 支持REST API, Horizon界面和命令行

3.6 故障管理

  • 提供一个故障管理的框架软件服务

  • 可通过客户端/REST API对故障管理软件进行配置、清空、查询告警、日志等事件。并可通过SNMPv2c Trap进行信息发布

  • 可在Horizon界面上显示告警信息列表

  • 故障信息覆盖: 节点、虚拟机、网络、存储等等

StarlingX代码结构

StarlingX代码托管位置: https://git.openstack.org/cgit/?q=stx

StarlingX未来发展和总结

StarlingX未来将会朝着容器化方向发展, 将会把openstack等组件做在容器中, 并可使用K8S来管理。从功能上来看, StarlingX在系统HA、性能调优、软件管理、故障监控方面有很好的参考价值, 很适合OpenStack开发人员研究。

StarlingX安装方法

以Ubuntu 16.04 LTS 64-bit为例:

6.1 更新操作系统

# sudo apt-get update

6.2 安装stx-tools工具项目

# cd $home

# git clone git://git.openstack.org/openstack/stx-tools

6.3 安装依赖包

# cd $HOME/stx-tools/deployment/libvirt/# bash install_packages.sh

6.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 -o nr_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.py

self.optArgs += ['-o', 'nr_inodes=500000]

6.5 复制镜像到bootimage.iso

# cp $HOME/stx-tools/deployment/libvirt/bootimage.iso

6.6 关闭防火墙

# sudo ufw disable

Firewall stopped and disabled on system startup

# sudo ufw status

Status: inactive

6.7 通过ISO镜像启动, 并按照提示进行安装StarlingX, 详情请参考:

https://wiki.openstack.org/wiki/StarlingX/Installation_Guide_Virtual_Environment/Simplex

关于“Linux宝库”微信公众号:

欢迎关注"Linux宝库"微信公众号,这里每天发布最新的开源人物和开源事件。谨以此号记录Linux和开源业界的点点滴滴,为开源爱好者和从业者点亮人生。

-END-

-责任编辑 王鹏-

关注
打赏
1663816507
查看更多评论
立即登录/注册

微信扫码登录

0.0558s