原文地址: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脚本恢复表。