前言
本文不再對升級過程做太詳細說明。
升級指南參考我的另外一篇博文:http://systems.blog.51cto.com/2500547/1385470
另外,生產環境中,如果需要升級,一定要進行多次模擬測試!
備份工作一定要做好。確定萬無一失再進行升級!
環境
CloudStack:4.1.1 → 4.3.0
虛擬化:KVM
主機系統:RHEL6.3
升級過程
一、上傳4.3的系統虛擬機模版
由於不同版本的CS所使用的系統虛擬機模版不一樣。爲了確保在升級完成後,系統虛擬機等組件能正常工作,官方首先建議在升級前就先把對應版本的系統虛擬機模版導入。方便升級後,現有系統虛擬機的更新。
1.由於我4.1.1的環境中僅存在kvm虛擬化平臺,所以我只需上傳4.3 for kvm的系統虛擬機模版。各位根據自己的環境上傳。如果異構環境的話,建議3個模版全部上傳。
注意:
註冊模版嚴格按照升級文檔要求來寫。上傳後系統虛擬機模版會有2個,一個是systemvm-kvm-4.3,另一個爲默認的:SystemVM Template(KVM). 無須手動干預。也不要去手動刪除它。
上傳成功。查看模版信息:
二、備份數據庫
備份數據庫是爲了出現錯誤時回滾升級操作,保證在升級新版本失敗時,可以正常回滾到舊版本的基礎。
1.首先,停止management服務
[root@SJCloudManager ~]# service cloudstack-management stop
2.(選做)停止usage服務,如果你在使用的話
[root@SJCloudManager ~]# service cloudstack-usage stop
3.(選做)如果你使用了本地存儲,需修改本地存儲路徑,將路徑最後的斜槓“/”移除
查看當前的本地存儲信息:
[root@SJCloudManager ~]# mysql -ucloud -p1qaz2wsx -e "select id,name,path from cloud.storage_pool where pool_type='Filesystem'" +-----+--------------+--------------------------+ | id | name | path | +-----+--------------+--------------------------+ | 201 | SJCloudKVM-2 | /var/lib/libvirt/images/ | +-----+--------------+--------------------------+ [root@SJCloudManager ~]#
#修改如上本地存儲路徑,將路徑最後的斜槓“/”移除:
[root@SJCloudManager ~]# mysql -ucloud -p1qaz2wsx -e 'update cloud.storage_pool set path="/var/lib/libvirt/images" where path="/var/lib/libvirt/images/"'; [root@SJCloudManager ~]# mysql -ucloud -p1qaz2wsx -e "select id,name,path from cloud.storage_pool where pool_type='Filesystem'" +-----+--------------+-------------------------+ | id | name | path | +-----+--------------+-------------------------+ | 201 | SJCloudKVM-2 | /var/lib/libvirt/images | +-----+--------------+-------------------------+ [root@SJCloudManager ~]#
#唯一的變化爲路徑最後的斜槓被移除。此步驟爲官方要求。
4.開始備份數據庫
[root@SJCloudManager ~]# mysqldump -uroot -proot cloud > cloudstack-backup.sql
三、製作4.3YUM源
此步驟不再囉嗦,不會的可以看我另一篇博客:http://systems.blog.51cto.com/2500547/1338039
#僅看下我的cloudstack的repo文件
[root@SJCloudManager 430]# cat /etc/yum.repos.d/cloudstack.repo [apache-cloudstack] name=Apache CloudStack 4.3.0 baseurl=http://192.168.100.3/cloudstack/430/ enabled=1 gpgcheck=0 [root@SJCloudManager 430]# yum clean all; yum makecache
四、升級管理端主機:
#停止cloudstack-management服務
[root@SJCloudManager ~]# service cloudstack-management stop
#upgrade cloudstack-management軟件包
[root@SJCloudManager ~]# yum upgrade cloudstack-management -y
#啓動cloudstack-management服務
[root@SJCloudManager ~]# service cloudstack-management start
管理端升級完成!
五、升級KVM主機:
#停止cloudstack-agent服務
[root@SJCloudKVM-2 ~]# service cloudstack-agent stop [root@SJCloudKVM-2 ~]# killall jsvc
#upgrade cloudstack-agent軟件包
[root@SJCloudKVM-2 ~ ]# yum upgrade cloudstack-agent -y
#查找/etc/cloudstack/agent/environment.properties文件中,有無如下行:
[root@SJCloudKVM-2 ~]# grep -r "paths.script" /etc/cloudstack/agent/environment.properties paths.script=/usr/share/cloudstack-common
#確定存在paths.script行,如果沒有,自行添加上去。
#啓動cloudstack-agent服務
[root@SJCloudKVM-2 ~]# service cloudstack-agent start
#確定服務啓動
[root@SJCloudKVM-2 ~]# service cloudstack-agent status cloudstack-agent (pid 19059) is running...
KVM主機升級完成!
六、登錄CS管理頁面
1.查看CS版本是否更新成功。
2.設置全局變量”integration.api.port“參數爲:8096
在升級結束後cloud-sysvmadm腳本會使用這個端口,進行對系統虛擬機的管理。
3.並確保在防火牆中開放此端口的訪問。
七、升級系統虛擬機
升級系統虛擬機有幾種辦法:
1.官方說只需要重啓系統虛擬機即可。你可以手動或者藉助cloudstack-sysvmadm腳本。 #但我未驗證是否可行。
2.銷燬系統虛擬機,待系統自行創建 #我在升級SSVM和CPVM過程中是採用這種方式。
3.手動點擊使用新模版更新系統虛擬機 #我在升級VR過程中是採用這種方式。
升級前系統虛擬機狀態:
手動升級虛擬路由器虛擬機:
升級完畢後,該升級選項消失:
至此,CS4.1.1 到4.3.0的升級工作全部完成!
升級過程中,虛擬機實例沒有出現異常宕機情況
已知問題(BUG?)
升級完成後,如果碰到控制檯界面打不開,提示如下:
提示找不到服務器,無法找到 x.x.x.x.*.realhostip.com.
可以看到realhostip.com前被加入了一個*,正是因爲該域名無法解析照成console打不開。
此問題由4.1升級到4.3帶來,且全新安裝不會出現該問題。
請修改兩個變量參數。
consoleproxy.url.domain secstorage.ssl.cert.domain
升級完成後,該值被修改爲 *.realhostip.com
正確的應該爲realhostip.com
升級後:
驗證
更新前我有一臺虛擬機實例:
更新後此實例沒有被影響:
更新前,我主存儲本地路徑信息:
更新後的信息:
創建新的虛擬機測試:
九、新版UI
登錄界面:
項目視圖:
基礎架構視圖:
十、扯犢子
使用CS的過程中,狀況百出,特別是面對一坨有一坨的java異常。
那種感覺,你懂得。
蛋疼菊緊人憔悴。
但,生活還得繼續。
活着,就要繼續被虐。
什麼是經驗?
經驗就是CS虐了你千百遍,腦子缺根筋的你還要當它是初戀似的一次又一次撲上去。
爲啥撲不對?“姿勢”很重要。