技术周 | Octavia 实现与分析;是否升级OpenStack;Metadata Service分析;DHCP原理分析……


技术周 | Octavia 实现与分析;是否升级OpenStack;Metadata Service分析;DHCP原理分析……


为了让更多的业界朋友了解到九州云的最新技术及相关开源技术,即本月起,九州云特别推出“技术周”,在每月的月末为大家推送诸多技术干货。九州云希望让更多的业界朋友走进开源,了解开源技术及应用,九州云愿与业界朋友携手并进,加速开源技术的发展。


Octavia Rocky 实现与分析(一):架构简介


技术周 | Octavia 实现与分析;是否升级OpenStack;Metadata Service分析;DHCP原理分析……

Octavia 网络架构图(注:图源来自孔令贤的博客)


自 Pike 以来 OpenStack 推荐使用 Octavia 代替 neutron-lbaas extension 作为 Load Balancing as a Service 的首选方案,并在 Queens 中将 neutron-lbaas 标记为废弃 —— Neutron-lbaas is now deprecated。


社区推崇 Octavia 的原因有很多,它解决了 neutron-lbaas 遗留的历史包袱,能够对外提供独立而稳定的 API。简单的说,社区认为 neutron-lbaas 使 Neutron 的项目管理变得拖沓,LBaaS 应该作为一个独立项目得到长足的发展,事实也是如此。


《Octavia Rocky 的实现与分析》系列基于 Rocky,主要记录、分析了 Octavia 作为 OpenStack LBaaS 的抽象设计,开发性设计及架构代码实现,从中感受社区开发者们对 Octavia 的寄予。


本文作为系列的开篇,希望能够从宏观的角度鸟瞰 Octavia 的全貌,由面及点,更利于后续理解 Octavia 的底层实现细节。


欲阅读本篇文章,请点击这里


OpenStack用户是否需要升级版本?


Openstack迭代很快,半年一次的更新往往会引入新的特性,及原有功能的完善。每个新版本都包含了大量的新特性以及性能稳定性的提升。


版本升级成为了一个不可避免的问题。由于openstack升级的复杂性许多公司和团队采用直接迁移至新版本云的方案,这是不失为一种可行的方案。


在某些情况下,升级OpenStack也意味着更新操作系统层, OpenStack的价值主张在很大程度上围绕着它很容易定制和高度可插拔的。OpenStack的一个优点在于它有一套全面的应用程序编程接口(API)服务,可以将不同的存储技术和不同的网络技术插入其中,并且围绕OpenStack和发行版有一个非常健康的生态系统。


实际上,“纯净的”OpenStack (即未经过定制化修改的原版OpenStack)并不难升级,因为每个OpenStack版本都是为无缝滚动更新(rollover)设计的,并经受大量的社区测试,确保升级过程尽可能顺畅无阻。在升级过程中,应该尽量减少生产环境的中断时间,因此需要优化升级过程,平滑升级。


欲阅读本篇文章,请点击这里 


OpenStack Metadata Service分析


OpenStack Metadata Service 提供 instance 的配置信息(这些信息被统称为 metadata)。instance 启动时向 Metadata Service 请求并获得自己的 metadata,instance 的 cloud-init根据 metadata 完成个性化配置工作。


技术周 | Octavia 实现与分析;是否升级OpenStack;Metadata Service分析;DHCP原理分析……


在本篇技术文章中,作者将详细介绍Metadata Service架构、L3 agent实现分析、DHCP agent实现分析以及Instance 怎么获得自己的 Metadata。


欲阅读本篇文章,请点击这里


OpenStack DHCP原理分析


DHCP:动态主机配置协议,是一个局域网的网络协议。由DHCP服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。


工作流程如下:


Discover阶段: 当DHCP Client启动时,由于没有ip地址,会自动发送discover的广播报文(带有MAC地址信息),DHCP Server会响应该报文。


Offer阶段: 当DHCP Server监听到Client发来的DHCP discover广播报文后,会检查租约表,将地址范围内没有租出去,且最靠前的空闲IP,连同租约期限等信息封装为offer报文,广播回应给Client。


接受IP租约阶段: 如果Client收到网络上多台DHCP Server的响应,只会挑选最先抵达的DHCP Offer报文进行解析,然后发送进行arp报文,检查该ip在网络是否已经被其他主机所使用,如果发现该ip已经被使用,Client会发送一个DHCP Decline报文给DHCP Server,拒绝接受它的DHCP Offer,并重新发送Discover报文。

……


欲阅读本篇文章,请点击这里


Tempest Rocky的新功能一览


Tempest是一个旨在为OpenStack 提供集成功能测试的开源项目,包含了OpenStack基本组件(nova,keystone,glance,neutron,cinder等)的测试用例,同时支持json,xml两种rest api格式类型的测试,以及cli测试。它是基于unittest2和nose测试框架实现的,灵活且易于扩展及维护,使得OpenStack相关测试效率得到大幅提升。


技术周 | Octavia 实现与分析;是否升级OpenStack;Metadata Service分析;DHCP原理分析……


Tempest目前最新版本号为v19.0.0,它支持对OpenStack的Rocky,Queens,Pike 和Ocata版本的测试,在发布的OpenStack Rocky版本中,它的功能也发生了诸多变更。


欲阅读本篇文章,请点击这里


关于九州云99Cloud

九州云成立于2012年,是中国早期从事OpenStack和相关开源服务的专业公司。公司成立六年,秉承“开源 · 赋能变革”的理念,不断夯实自身实力,已实现业务从核心云到边缘云再到垂直行业应用的拓展和积累,先后为政府、金融、运营商、能源、制造业、商业、交通、物流、教育、医疗等各大行业的企业级客户提供高质量的云计算服务。目前拥有国家电网、中国人民银行、中国银联、中国移动、中国电信、中国联通、中国资源卫星、eBay、国际陆港集团、中国人寿、万达信息、东风汽车、诺基亚等众多重量级客户,被用户认可为开源界的领军企业。

技术周 | Octavia 实现与分析;是否升级OpenStack;Metadata Service分析;DHCP原理分析……