在升級過程中,應該盡量減少生產環(huán)境的中斷時間,因此需要優(yōu)化升級過程,平滑升級。
澳大利亞悉尼當地時間11月6號上午9點,第16屆OpenStack峰會在悉尼國際會議中心盛大開幕,來自全球52個國家2300余名與會者,將就以OpenStack為核心的開放基礎架構相關技術和商業(yè)實踐展開為期三天的討論,本文為第三天的討論內容之一。
OpenStack 每年發(fā)布兩個大版本,每個版本都包含了大量的新特性以及性能穩(wěn)定性的提升。
升級的環(huán)境信息如下圖所示,節(jié)點分為管理節(jié)點,控制節(jié)點,計算節(jié)點和存儲節(jié)點。節(jié)點的OpenStack服務都是容器化的,通過Ansible部署。
從組件角度來看,OpenStack升級主要包含Package升級;配置更新以及數據庫更新幾個主要步驟。縱向來看需要升級操作系統(tǒng)、Host Package、Ceph、基礎組件升級(Rabbitmq,galera)以及各OpenStack組件。采用的升級策略是逐個版本升級,避免跨版本。
OpenStack組件有比較類似的升級步驟;A組件如MySQL、Rabbitmq都有自己的備份和升級步驟。通過Ansible playbook進行自動化的升級和回滾。
演示階段,首先演示了Neutron組件從Mitaka到Newton的升級。通過Ansible-playbook自動化升級。 執(zhí)行了更新配置,Bootstrap新版本容器,Syncdb等操作。另外演示了Ocata到Newton的回滾。
可以看到,容器化簡化了升級和回滾過程,隔離了部分復雜性,使得整個過程更加可控。從直接主機部署,到容器化部署到基于容器編排引擎(如Kubernetes)的部署,OpenStack的升級與回滾會越來越容易和成熟。
那些不為人知的故事
現在OpenStack的應用領域越來越廣泛,來自Platform9的工程師分享了他們在OpenStack運行科學計算任務的經驗。
科學計算任務一般是計算密集的,對計算性能比較敏感。需要根據科學計算的特點來進行性能調優(yōu)。
一是可以給虛機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的詳細信息。
而且,可以利用云的靈活性,根據計算負載進行彈性自動擴展。這點可以利用Murano以及Heat提供的應用編排和Murano的Auto-scaling機制來實現。
為此,他們發(fā)起了一個新的項目Tasker,基于OpenStack為科學計算任務提供更好的管理靈活性以及更優(yōu)的性能。
Tasker的架構如下圖所示,基于Nova、Heat和Murano實現自動化的編排以及性能優(yōu)化。
Tasker主要實現了兩個概念,一是模板,定義了一個任務的藍圖,包括硬件要求,最大以及最小的主機數量等。另一個是應用,及模板的實例化。Tasker會根據模板定義以及OpenStack環(huán)境資源情況盡可能創(chuàng)建最優(yōu)化的資源集合。
Tasker項目是OpenStack適應特定任務場景的一次有益嘗試,提供了解決特定場景下優(yōu)化性能的一種思路。同時,我們也看到另外一種可能性就是在一定程度上改造現有的應用和編排引擎,例如,提供一種擴展機制,通過不同的插件可以為應用引擎擴展特定的領域知識。從而已一種更加輕量級的方式來進行任務編排的優(yōu)化。
感謝 EasyStack 工程師 發(fā)自悉尼現場的報道