张 涛, 软件工程师, IBM
简介: 本文会向读者介绍IBM WebSphere Application Server V8(简称WAS V8)中版本迁移的新特性,并通过实
例一步步向读者展示如何跨不同机器实现WAS V7 到WAS V8 的版本迁移。
发布日期: 2011 年8 月18 日
级别: 初级
引言
IBM WebSphere Application Server V8(以下简称为WAS V8)将于近期发布。相比于WAS V7,WAS V8 不但在性
能上有很大提升,功能上也有很多增强,其中包括对Java EE6 的支持;新功能部件包的支持;安全方面的增强等。
WAS V8 在迁移方面也做了一些改进,我们要向大家介绍的就是WAS V8 中迁移的新特性和跨机器迁移。很多应用产
品的升级都伴随着硬件系统的升级。WAS 的迁移工作也是如此,迁移工作不单单只是在本机执行的,有很多情况下是
跨机器的。本文将向读者展示如何实现跨机器的WAS V8 版本迁移。
回页首
WAS V8 版本迁移的新特性
WAS V8 在迁移方面做了许多改进和增强:
1. WAS V7 中迁移是利用迁移向导实现的,在WAS V8 中,迁移和概要文件管理工具(PMT)放在同一个工具
WCT(WebSphere Customization Toolbox)中,迁移向导改为配置迁移工具(Configuration Migration
Tool)。用户可以通过执行<WAS Home>/bin/ProfileManagement/pmt.sh (.bat) 进入WCT 界面。
图 1. WCT 工具
1. 对WAS V7 迁移的增强。WAS V7 增加了新的概要类型:Administrative Agent 和Job Manager。在WAS
V8 中可以实现对这两种概要文件的迁移。
页码,1/8
2. 可以迁移使用Bean Validation API 的应用和OSGi 应用。
3. 简化了跨机器版本迁移的步骤。
回页首
迁移之前的评估和计划
在准备迁移之前,我们需要对迁移工作进行必要的评估和计划,避免因迁移不当给生产环境带来的损失。
图 2. 迁移计划
l 如图2 所示,迁移之前,我们第一步要对整个迁移计划进行评估,包括软硬件的升级、系统的备份、生产环
境信息的收集以及未来员工培训的开销。之后就需要根据评估制定迁移计划,对员工进行培训,备份和准备迁
移计划等。
l 第二步迁移过程分为两个部分。应用程序的迁移和WAS 配置的迁移。如果应用程序需要迁移,可以使用
IBM 提供的WAS Migration Toolkit 插件工具利用Eclipse 进行分析和迁移。工具的具体介绍请访问:
http://www.ibm.com/developerworks/websphere/downloads/migtoolkit/compmig.html;WAS 配置的迁移是本
文所介绍的迁移部分,本文也会在下一章着重讲解如何跨机器实现WAS 配置的版本迁移。
l 第三步迁移完成后的后续工作同样重要,我们需要测试并验证迁移后的系统能够正常运行。在最后这个阶段同
样需要开发人员和运维人员的共同努力,通过各种测试验证、性能分析、日志查看等手段确保整个新系统能够
正常运行。
回页首
实例介绍WAS V7 到WAS V8 跨机器版本迁移
页码,2/8
在开放式平台中,WAS 配置的迁移可以通过两种方式来实现:迁移向导(WAS V8 中改为用WCT 工具)和命令行
方式:
图 3. 跨机器迁移步骤
通过迁移向导可以很方便地实现同一台机器的版本迁移。然而对于跨机器间的版本迁移,我们就需要通过命令行方式
进行迁移。
接下来,我们将通过实例展示如何利用命令行工具将一个单元(Cell)环境从WAS V7 环境跨机器迁移到WAS V8 环
境。这个单元环境是由部署管理器(Dmgr)和多个节点(Node)组成。当然,环境中还可以包括WEB 服务器,
Application Client 等。在这里我们可以保证在原先环境处于运行状态时迁移所有概要文件(Profile)并保持前后概要文
件的端口号一致。具体迁移步骤如下:
图 4. 跨机器迁移步骤
页码,3/8
第一步:利用backupConfig 命令备份所有节点配置
任何情况下,我们都不能保证所做操作不出错误,所以养成良好的备份习惯有利于我们紧急情况下的故障恢复和灾难
恢复。本实例也是如此,如果某一步骤操作失败了,可以及时利用restoreConfig 命令恢复之前备份的配置信息,减少
不必要的损失。
进入各自概要文件的bin 目录,运行backupConfig 命令,备份所有概要文件的配置信息。本实例以部署管理器的迁
移为例:
清单 1. 备份概要文件
在这里,.sh 后缀是执行在Linux 环境下的命令,.bat 是执行在windows 环境下的命令。nostop 参数是在不停止
dmgr 的情况下备份该概要文件。
第二步:在目标机器上安装新的WAS V8 环境
接下来,我们就需要在其他目标机器上安装新的WAS V8 环境。WAS 的版本类型需要保持一致,即如果原先安装的
是ND 环境,那WAS V8 也需要安装ND 版本。详细的安装文档请参考WAS 信息中心或developerworks 上的相关
文档。
第三步:创建远程migration.jar 文件
这一步是重点。我们知道,迁移过程的核心命令是WasPreUpgrade 和WasPostUpgrade,但这两个命令都需要在新
的WAS 环境中执行。我们是跨机器迁移,原来的机器没有新的WAS V8 环境,所以原来的迁移步骤无法实现跨机器
迁移。
在原来WAS V7 环境下,如果想实现跨机器迁移需要使用WAS V7 的扩展CD 来执行WasPreUpgrade 命令。WAS
\v7dmgr01\bin\backupConfig.sh (.bat)
\mybackup_old_host\v7dmgr01backupBeforeV8migration.zip
-username myuser -password mypass -nostop
页码,4/8
V8 在这里做了一些改进,不需要使用其他的CD,直接运行<WAS_HOME>/bin/migration/bin 的
createRemoteMigrJar.sh (.bat) 命令即可生成所需要的WasPreUpgrade 命令及相关文件,将其拷贝到原环境下即可
执行。
清单 2. 生成migration.jar
运行成功后会在targetDir 指定的目录下生成一个WAS_V8_<OS>.<arch>_RemoteMigrSupport.jar 文件,如:
WAS_V8_windows.x86_RemoteMigrSupport.jar。将其拷贝到目标机器上,解压缩后即可使用,我们会在第五步讲解
如何使用。
第四步:在目标环境下创建新的概要文件
接下来我们需要在新的WAS V8 环境下创建好对应环境的概要文件。我们可以通过概要文件管理工具(PMT)或者命
令行创建,在这里以部署管理器为例:
清单 3. 创建概要文件
第五步:执行WasPreUpgrade命令
然后我们就可以在第三步解压缩后的文件夹的bin 下找到WasPreUpgrade 命令,直接运行该命令即可将原先WAS
V7 的概要文件的信息提取出来并将其存储到备份目录中。
清单 4. 运行WasPreUpgrade 命令
在这里需要注意的是,因为我们是跨机器版本迁移,machineChange 参数一定要设为true,否则迁移过程会出错。
第六步:验证WasPreUpgrade 命令
当运行完WasPreUpgrade 命令后,首先先验证输出是否成功,是否带有"Failed with errors" 或者"Completed with
warnings"。如果有错误,需要查看日志进一步分析问题。
之后需要查看WasPreUpgrade 命令的日志是否成功:
* mybackup_old_host/v7toV8dmgr01/logs/WASPreMigrationSummary.log
* mybackup_old_host/v7toV8dmgr01/logs/WASPreUpgrade.< timestamp >.log
<WAS_HOME>/bin/migration/bin/createRemoteMigrJar.sh (.bat)
-targetDir <dir for the remote migration jar>
/bin/manageprofiles.sh (.bat) -create -profileName v7toV8dmgr01
-templatePath /opt/WebSphereV8/profileTemplates/management
-serverType DEPLOYMENT_MANAGER -nodeName currentDmgrNodeName
-cellName currentCellName -hostName mydmgrhost.company.com
\migration\bin\WASPreUpgrade.sh (.bat) \mybackup_old_host\v7toV8dmgr01
\opt\WebSphereV7 -oldProfile v7dmgr01 -machineChange true
页码,5/8
* mybackup_old_host/v7toV8dmgr01/logs/WASPreUpgrade.trace
第七步:将WasPreUpgrade 文件拷贝到目标机器
之后我们需要将WasPreUpgrade 提取的信息打包后传到新的目标机器上,为以后使用WasPostUpgrade 命令做准
备。
清单 5. 操作WasPreUpgrade 的压缩文件
第八步:执行WasPostUpgrade 命令
当迁移某个节点时,需要暂时停止该节点及其应用。但我们的环境是一个集群环境,不同的节点可以分布在不同的机
器或节点上。停掉一个节点,其他节点还能正常工作保证整个环境对外的正常运行。
之后就是运行WasPostUpgrade 命令提取通过WASPreUpgrade 工具创建的目录中的信息,并将该信息导入到新
WAS V8 的概要中。
清单 6. 运行WasPostUpgrade 命令
当然,在执行完WasPostUpgrade 命令后,还不能马上启动新的部署管理器。我们还有一些辅助工作需要做。首先就
是验证WasPostUpgrade 命令的日志,查看是否运行成功了:
* mybackup_new_host/v7toV8dmgr01/logs/WASPostMigrationSummary.log
* mybackup_new_host/v7toV8dmgr01/logs/WASPostUpgrade.<target profile name>.< timestamp >.log
* mybackup_new_host/v7toV8dmgr01/logs/WASPostUpgrade.<target profile name>.trace
第九步:启动概要文件
WasPostUpgrade 命令执行成功后,别忘记及时通过backupConfig 命令备份新的WAS V8 的概要文件,停止原_____来
WAS V7 的概要文件。之后就可以启动新的部署管理器,并通过WAS 管理控制台同步部署管理器所管理的节点:
图 5. 同步节点
压缩 WasPreUpgrade 的文件,并传至目标机器:
cd /mybackup_old_host
/opt/WebSphereV7/java/bin/jar -cf v7toV8dmgr01.jar v7toV8dmgr01/
解压缩WasPreUpgrade 的文件:
mkdir /mybackup_new_host
cd /mybackup_new_host
/opt/WebSphereV8/java/bin/jar -xf v7toV8dmgr01.jar
/bin/WASPostUpgrade.sh /mybackup_new_host/v7toV8dmgr01 -profileName v7toV8dmgr01
-oldProfile v7dmgr01 -replacePorts TRUE -backupConfig TRUE -scriptCompatibility TRUE
-keepDmgrEnabled TRUE -username myuser -password mypass
页码,6/8
迁移每个节点步骤同迁移部署管理器的步骤类似,在此我们就不做过多的介绍了。当所有的节点都迁移成功后,同步
并启动所有节点上的服务器及应用,查看迁移日志和SystemOut 日志中是否存在错误。如果没有显示任何错误就表示
整个跨机器版本迁移工作执行成功了。
回页首
结束语
WAS V8 发布后,用户可以更方便地将低版本迁移到WAS V8 上。跨机器版本迁移是很多客户在迁移过程中遇到的问
题,通过有效的工具可以让用户快速地实现跨机器版本迁移,确保用户能在硬件系统升级或更换后正常使用WAS 产
品。
参考资料
学习
l 查看文章“WebSphere Application Server V7 快速迁移指南”,了解更多关于WAS V7 版本迁移的内容。
l 查看红皮书“WebSphere Application Server V7 Migration Guide”,了解WAS 更详细的迁移资料。
l WebSphere Application Server V8 信息中心
l WebSphere Application Server 专题为 WebSphere Application Server 开发人员准备的技术信息和资料,包
括文章、教程、产品下载、在线支持手册等。
l IBM developerWorks 中国WebSphere 专区:为使用WebSphere 产品的开发人员准备的技术信息和资料。
这里提供产品下载、how-to 信息、支持资源以及免费技术库,包含2000 多份技术文章、教程、最佳实践、
IBM Redbook 和在线产品手册。
获得产品和技术
l 最受欢迎的WebSphere 试用软件下载:下载关键WebSphere 产品的免费试用版。
l IBM developerWorks 软件下载资源中心:IBM deveperWorks 最新的软件下载。
l IBM developerWorks 工具包:下载关键WebSphere 最新的产品工具包。
页码,7/8
讨论
l 加入developerWorks 中文社区,developerWorks 社区是一个面向全球IT 专业人员,可以提供博客、书
签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。
l 加入IBM 软件下载与技术交流群组,参与在线交流。
页码,8/8__