天天看點

Hypertable的更新安裝

原文位址:http://hypertable.com/documentation/installation/upgrade/。因為Hypertable的獨立安裝模式較為少見,故原文中獨立安裝模式部分沒有翻譯。

驗證版本間更新相容性

為了判斷已安裝的版本和欲更新到的版本之間是否相容,需要使用官方提供的腳本(ugrade-ok.sh)進行驗證。腳本用法如下:
$ /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
           
可以用如下指令驗證目前正在使用的版本和0.9.7.0版本之間的相容性。
$ /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腳本恢複表。