在升級過(guò)程中,應該盡量減少生產(chǎn)環(huán)境的中斷時(shí)間,因此需要優(yōu)化升級過(guò)程,平滑升級。
澳大利亞悉尼當地時(shí)間11月6號上午9點(diǎn),第16屆OpenStack峰會(huì )在悉尼國際會(huì )議中心盛大開(kāi)幕,來(lái)自全球52個(gè)國家2300余名與會(huì )者,將就以OpenStack為核心的開(kāi)放基礎架構相關(guān)技術(shù)和商業(yè)實(shí)踐展開(kāi)為期三天的討論,本文為第三天的討論內容之一。
OpenStack 每年發(fā)布兩個(gè)大版本,每個(gè)版本都包含了大量的新特性以及性能穩定性的提升。
升級的環(huán)境信息如下圖所示,節點(diǎn)分為管理節點(diǎn),控制節點(diǎn),計算節點(diǎn)和存儲節點(diǎn)。節點(diǎn)的OpenStack服務(wù)都是容器化的,通過(guò)Ansible部署。

從組件角度來(lái)看,OpenStack升級主要包含Package升級;配置更新以及數據庫更新幾個(gè)主要步驟。縱向來(lái)看需要升級操作系統、Host Package、Ceph、基礎組件升級(Rabbitmq,galera)以及各OpenStack組件。采用的升級策略是逐個(gè)版本升級,避免跨版本。
OpenStack組件有比較類(lèi)似的升級步驟。基礎組件如MySQL、Rabbitmq都有自己的備份和升級步驟。通過(guò)Ansible playbook進(jìn)行自動(dòng)化的升級和回滾。

演示階段,首先演示了Neutron組件從Mitaka到Newton的升級。通過(guò)Ansible-playbook自動(dòng)化升級。 執行了更新配置,Bootstrap新版本容器,Syncdb等操作。另外演示了Ocata到Newton的回滾。
可以看到,容器化簡(jiǎn)化了升級和回滾過(guò)程,隔離了部分復雜性,使得整個(gè)過(guò)程更加可控。從直接主機部署,到容器化部署到基于容器編排引擎(如Kubernetes)的部署,OpenStack的升級與回滾會(huì )越來(lái)越容易和成熟。
那些不為人知的故事
現在OpenStack的應用領(lǐng)域越來(lái)越廣泛,來(lái)自Platform9的工程師分享了他們在OpenStack運行科學(xué)計算任務(wù)的經(jīng)驗。
科學(xué)計算任務(wù)一般是計算密集的,對計算性能比較敏感。需要根據科學(xué)計算的特點(diǎn)來(lái)進(jìn)行性能調優(yōu)。
一是可以給虛機Qemu-kvm進(jìn)程合理配置CPU affinity來(lái)達到更好的性能。目前Nova已經(jīng)有了CPU pinning的支持,在session ‘All you need to know about CPU pinning and how to make it work?’ 中,給出了非常詳細的解釋?zhuān)瑥腘UMA架構基礎,Kernel對CPU affinity的支持以及OpenStack對CPU pinning的支持都作了詳細的解釋和說(shuō)明,大家可以從基金會(huì )的網(wǎng)站上找到session的詳細信息。

而且,可以利用云的靈活性,根據計算負載進(jìn)行彈性自動(dòng)擴展。這點(diǎn)可以利用Murano以及Heat提供的應用編排和Murano的Auto-scaling機制來(lái)實(shí)現。
為此,他們發(fā)起了一個(gè)新的項目Tasker,基于OpenStack為科學(xué)計算任務(wù)提供更好的管理靈活性以及更優(yōu)的性能。
Tasker的架構如下圖所示,基于Nova、Heat和Murano實(shí)現自動(dòng)化的編排以及性能優(yōu)化。
Tasker主要實(shí)現了兩個(gè)概念,一是模板,定義了一個(gè)任務(wù)的藍圖,包括硬件要求,最大以及最小的主機數量等。另一個(gè)是應用,及模板的實(shí)例化。Tasker會(huì )根據模板定義以及OpenStack環(huán)境資源情況盡可能創(chuàng )建最優(yōu)化的資源集合。

Tasker項目是OpenStack適應特定任務(wù)場(chǎng)景的一次有益嘗試,提供了解決特定場(chǎng)景下優(yōu)化性能的一種思路。同時(shí),我們也看到另外一種可能性就是在一定程度上改造現有的應用和編排引擎,例如,提供一種擴展機制,通過(guò)不同的插件可以為應用引擎擴展特定的領(lǐng)域知識。從而已一種更加輕量級的方式來(lái)進(jìn)行任務(wù)編排的優(yōu)化。
感謝 EasyStack 工程師 發(fā)自悉尼現場(chǎng)的報道