从 Liberty 到 Ocata 的 OpenStack 版本升级之旅

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


导读

   

   在升级过程中,应该尽量减少生产环境的中断时间,因此需要优化升级过程,平滑升级。


澳大利亚悉尼当地时间11月6号上午9点,第16届OpenStack峰会在悉尼国际会议中心盛大开幕,来自全球52个国家2300余名与会者,将就以OpenStack为核心的开放基础架构相关技术和商业实践展开为期三天的讨论,本文为第三天的讨论内容之一。


OpenStack 每年发布两个大版本,每个版本都包含了大量的新特性以及性能稳定性的提升。


升级的环境信息如下图所示,节点分为管理节点,控制节点,计算节点和存储节点。节点的OpenStack服务都是容器化的,通过Ansible部署。  


从 Liberty 到 Ocata 的 OpenStack 版本升级之旅_第1张图片从组件角度来看,OpenStack升级主要包含Package升级;配置更新以及数据库更新几个主要步骤。纵向来看需要升级操作系统、Host Package、Ceph、基础组件升级(Rabbitmq,galera)以及各OpenStack组件。采用的升级策略是逐个版本升级,避免跨版本。


OpenStack组件有比较类似的升级步骤。基础组件如MySQL、Rabbitmq都有自己的备份和升级步骤。通过Ansible playbook进行自动化的升级和回滚。


从 Liberty 到 Ocata 的 OpenStack 版本升级之旅_第2张图片


演示阶段,首先演示了Neutron组件从Mitaka到Newton的升级。通过Ansible-playbook自动化升级。 执行了更新配置,Bootstrap新版本容器,Syncdb等操作。另外演示了Ocata到Newton的回滚。


可以看到,容器化简化了升级和回滚过程,隔离了部分复杂性,使得整个过程更加可控。从直接主机部署,到容器化部署到基于容器编排引擎(如Kubernetes)的部署,OpenStack的升级与回滚会越来越容易和成熟。


那些不为人知的故事


现在OpenStack的应用领域越来越广泛,来自Platform9的工程师分享了他们在OpenStack运行科学计算任务的经验。


科学计算任务一般是计算密集的,对计算性能比较敏感。需要根据科学计算的特点来进行性能调优。


一是可以给虚机Qemu-kvm进程合理配置CPU affinity来达到更好的性能。目前Nova已经有了CPU pinning的支持,在session ‘All you need to know about CPU pinning and how to make it work?’ 中,给出了非常详细的解释,从NUMA架构基础,Kernel对CPU affinity的支持以及OpenStack对CPU pinning的支持都作了详细的解释和说明,大家可以从基金会的网站上找到session的详细信息。


从 Liberty 到 Ocata 的 OpenStack 版本升级之旅_第3张图片


而且,可以利用云的灵活性,根据计算负载进行弹性自动扩展。这点可以利用Murano以及Heat提供的应用编排和Murano的Auto-scaling机制来实现。


为此,他们发起了一个新的项目Tasker,基于OpenStack为科学计算任务提供更好的管理灵活性以及更优的性能。


Tasker的架构如下图所示,基于Nova、Heat和Murano实现自动化的编排以及性能优化。


Tasker主要实现了两个概念,一是模板,定义了一个任务的蓝图,包括硬件要求,最大以及最小的主机数量等。另一个是应用,及模板的实例化。Tasker会根据模板定义以及OpenStack环境资源情况尽可能创建最优化的资源集合。


从 Liberty 到 Ocata 的 OpenStack 版本升级之旅_第4张图片


Tasker项目是OpenStack适应特定任务场景的一次有益尝试,提供了解决特定场景下优化性能的一种思路。同时,我们也看到另外一种可能性就是在一定程度上改造现有的应用和编排引擎,例如,提供一种扩展机制,通过不同的插件可以为应用引擎扩展特定的领域知识。从而已一种更加轻量级的方式来进行任务编排的优化。



感谢 EasyStack 工程师 发自悉尼现场的报道


投稿邮箱:[email protected]

640?wx_fmt=jpeg


你可能感兴趣的:(从 Liberty 到 Ocata 的 OpenStack 版本升级之旅)