原文位址:http://hypertable.com/documentation/installation/upgrade/。因為Hypertable的獨立安裝模式較為少見,故原文中獨立安裝模式部分沒有翻譯。
驗證版本間更新相容性
為了判斷已安裝的版本和欲更新到的版本之間是否相容,需要使用官方提供的腳本(ugrade-ok.sh)進行驗證。腳本用法如下:可以用如下指令驗證目前正在使用的版本和0.9.7.0版本之間的相容性。$ /opt/hypertable/current/bin/upgrade-ok.sh usage: upgrade-ok.sh description: Determines whether or not the upgrade from Hypertable version to version is valid. and are assumed to be Hypertable installation directories whose last path component is either a version number or the symbolic link "current" which points to a Hypertable installation directory whose last path component is a version number. return: Zero if upgrade is OK, non-zero otherwise
可以如下指令驗證兩個指定版本之間的相容性。$ /opt/hypertable/current/bin/upgrade-ok.sh /opt/hypertable/current 0.9.7.0 $ echo $? 0
$ /opt/hypertable/current/bin/upgrade-ok.sh 0.9.3.0 0.9.4.0 Incompatible upgrade a: 0.9.3.0 -> 0.9.4.0 $ echo $? 1
相容性的更新
如果舊版本和新版本之間是更新相容的,則更新過程既快速,又不麻煩,隻需要遵循下列四個步驟即可:
第一步:停止Hypertable
執行關閉叢集指令:$ cap stop
第二步:安裝新包
可以從網上下載下傳Hypertable的二進制安裝包,也可自己從源碼編譯。将rmp、dmg或者tar.bz2格式的安裝包放在源機器的任一具有通路權限的目錄下,源機器可以是叢集裡面的任一台叢集,例如admin1機器。修改capfile檔案中的hypertable_version和default_pkg變量,前者設為目前需要更新到的版本,後者設為安裝包在源機器上的絕對路徑。例如:如果需要更新到0.9.7.0版本,并且安裝包為rpm格式,則變量設定如下:
set :hypertable_version, "0.9.7.0"
set :default_pkg, "/tmp/hypertable-0.9.7.0-linux-x86_64.rpm"
為了分發和安裝Hypertable二進制安裝包到叢集中所有機器,需要執行指令:$ cap install_package
該指令将同步安裝包到所有機器,并根據不同的包類型使用不同的包管理器(rpm、dpkg或者tar)進行安裝。
第三步:更新
執行更新指令:$ cap upgrade. 此指令包含三個行為:
1. 驗證更新格式相容的;
2. 拷貝舊版本下conf、hyperspace、fs、run和log目錄的内容到新版本中。如果有些目錄已經建立了符号連接配接,則僅在新版本下建立相同的符号連結,而不會發生内容拷貝。
3. 在所有機器上設定current符号連結指向新的安裝目錄。
第四步:啟動Hypertable
執行啟動指令:$ cap start
不相容性的更新
如果舊版本和新版本之間更新不相容,則需要備份和恢複所有的表。更新步驟如下:
1. 使用backup.sh腳本備份表;
2. 删除舊版本的安裝,例如:rm -rf /opt/hypertable/$OLDVERSION;
3. 安裝新的版本;
4. 使用restore.sh腳本恢複表。