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

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

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

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

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