本節教大家更新 OpenStack 組件的方法。請注意,是更新(Update)而不是升級(Upgrade)。更新是給組件打補丁,版本不變;而升級是刷新版本,比如從 kilo 升級到 liberty。
更新真的有必要嗎?
對于已經部署好的 OpenStack,我們有更新某個組件的需求嗎? 答案是:有!
OpenStack 是軟件,是軟件就會有 bug。 OpenStack 包含了很多組件,結構很松散,每個組件可以單獨更新,只要保證各個組件都屬于同一個大版本(比如 kilo, liberty)就不會有問題。
當我們遇到了 bug,如果社區已經有 fix,只需要更新包含該 fix 的組件就可以了,其他組件保持不變。
下面以 nova 組件為例演示如何更新。 假設目前部署的 OpenStack 是 kilo,現在發現了一個 bug,需要升級,最簡單的辦法是升級到 nova 在 kilo 里的最新版本,步驟如下:
從 github clone nova
OpenStack 的所以代碼都是在 github 上維護的,每個模塊有自己的 repository. nova 的 repository 在https://github.com/openstack/nova
點擊 “Branches”,可以看到 nova 最近的幾個版本。
咦,怎么沒有 kilo? 別著急,點擊 “Tags”。
這里有 kilo-eol,"eol" 表示 “end of life”,意味著 nova 對于 kilo 不在更新了,是 kilo 的最終版本。如果要更新 kilo 上的 nova,用這個版本就行了。
通過 git clone 命令下載 nova,下載鏈接如下:
運行命令:
git clonehttps://github.com/openstack/nova.git
切換到 kilo 的最新版本
下載完成后,查看當前的 branch 為 master:
切換到 kilo-eol:
確認目前已經是 kilo-eol 了:
安裝 nova python 源碼
OpenStack 用 python 開發,更新版本很簡單,只需要通過 pip 命令安裝新版本的源代碼就行了,沒有編譯等步驟。
在 nova 目錄下執行如下命令:
pip install .
nova 已經從 nova-2015.1.3.dev1 更新到 nova-2015.1.4 了。
重啟所有 nova-* 服務
所有運行了 nova-* 服務的節點(控制節點和計算節點)都需要更新源代碼并重啟服務,最簡單的方法是重啟整個節點。
至此,nova 組件更新完成。下節我們將再分享一個 troubleshooting 的案例。
新聞熱點
疑難解答
圖片精選