本文将简单的介绍一下采用新建虚拟机方式如何开展虚拟化整合工作。
搭建虚拟机环境
应用软件提供商在不断完善软件功能,提升软件性能,修复软件存在的漏洞。搭建虚拟机环境的第一步就是创建虚拟机并安装客户操作系统。根据现有生产环境所使用的操作系统版本,使用应用软件提供商所发布的最新操作系统版本。例如如果生产环境使用的是64位的Windows Server 2003 Enterprise Server,那么可以考虑升级至Windows Server 2008 R2 Enterprise Server。如果生产环境中使用的是 SuSE Linux Enterprise 10,那么可以考虑升级至SuSE Linux Enterprise 11 SP1。
接下来就需要根据生产环境中应用服务器环境部署相应的Web服务器和中间件服务器。例如,如果信息系统基于J2EE开发,那么需要到Oracle官方网站下载最新版本的Java SE 6 Update 31或者是Java SE 7u3。如果使用的是开源Web服务器和中间件服务器,那么可以到Apache的官方网站下载HTTP Server和Tomcat,建议用户选择Apache HTTP Server 2.2.22以及Tomcat 6.0.35。如果生产环境中使用的是商业版的Web服务器和中间件,比如IBM HTTP Server和IBM WebSphere Application Server,那么可以选择IBM WebSphere Application Server 7.0,并在IBM官方网站下载并安装最新的补丁Fix Pack 21 (7.0.0.21)。
进行中间件配置
由于只是进行应用服务器的虚拟化整合,不需要对生产环境中的数据库进行任何调整,只需要将原有的Web应用程序部署到Tomcat中间件的WebApps目录下或者通过WebSphere控制台发布应用即可。
如果将多个Web应用程序部署在同一个Tomcat中间件下或者单个WebSphere概要表下,在中间件服务器出现故障时,将面临多个Web应用同时无法访问的尴尬局面。可以通过安装多个Tomcat中间件或者创建多个WebSphere概要表,然后将Web应用分散部署在多个Tomcat中间件或者多个WebSphere概要表下解决这一问题。
Apache HTTP Server + Tomcat中间件配置
在Linux服务器下安装多个Tomcat最常见的一个问题就是端口冲突。每个Tomcat服务器所使用的端口记录在${TOMCAT_HOME}/conf/server.xml文件中,主要包括了以下三个端口,Server port、Connector port以及AJP 1.3 Connector port,安装多个Tomcat中间件,修改对应的这三个端口号。下面这段代码就是server.xml文件对应的端口配置信息。
connectionTimeout="20000"
redirectPort="8443" />
将Apache HTTP Server 2.2与多个Tomcat进行端口绑定时只需要修改${HTTP_SERVER}/conf/httpd.conf文件,以与三个Tomcat中间件绑定为例,在httpd.conf文件末尾添加如下内容即可:
#Tomcat Server 1端口绑定配置,8009为Tomcat Server 1的AJP 1.3 Connector Port
#webapp1为访问应用的上下文根。
ProxyPass /webapp1 ajp://localhost:8009/ webapp1
ProxyPassReverse / webapp1 ajp://localhost:8009/ webapp1
#Tomcat Server2端口绑定配置,8010为Tomcat Server 2的AJP 1.3 Connector Port
#webapp2为访问应用的上下文根。
ProxyPass /webapp2 ajp://localhost:8010/ webapp2
ProxyPassReverse / webapp2 ajp://localhost:8010/ webapp2
#Tomcat Server 3端口绑定配置,8011为Tomcat Server 3的AJP 1.3 Connector Port
#webapp3为访问应用的上下文根。
ProxyPass /webapp3ajp://localhost:8011/ webapp1
ProxyPassReverse / webapp3 ajp://localhost:8011/ webapp3
完成上述配置后,重新启动Tomcat和HTTP Server即可:
分别进入每个Tomcat安装目录:cd {TOMCAT_HOME}/bin
停止Tomcat:./shutdown.sh
启动Tomcat,查看启动过程:./catalina.sh run
进入HTTP Server安装目录:cd ${HTTP_SERVER}/bin
停止Apache HTTP Server:./apachectl stop
启动Apache HTTP Server:./apachectl start
IBM HTTP Server + WebSphere Application Server中间件配置
和Tomcat类似,使用WebSphere Application Server可以创建多个概要表,然后在每个概要表下分别部署应用。
如果使用安装的是64位的WebSphere Application Server,那么不能使用图形界面创建概要表了,创建概要表的命令如下:
进入WebSphere Application Server 安装目录下的bin目录下:cd ${WAS_HOME}/bin
在/opt/IBM/WebSphere/AppServer/profiles/AppSrv01下创建概要表AppSrv01:
./manageprofiles.sh -create -templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/default/ -profileName AppSrv01 -profilePath /opt/IBM/WebSphere/AppServer/profiles/AppSrv01
创建完概要表后,就可以启动该应用服务器了:
进入概要表主目录下的bin目录:
cd/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/bin
启动应用服务器:./startServer server1
然后就可以登录该概要表的管理控制台,管理控制台访问端口可以通过查看/opt/IBM/WebSphere/AppServer /profiles/AppSrv01/config/cells/ HOSTNAMENode01Cell/nodes/HOSTNAMENode01/erverindex.xml文件中endPointName值为 WC_defaulthost所对应的端口号查看,其HTTP端口号为9080,对应的HTTPS访问端口可以通过endPointName值为 WC_adminhost所对应的端口号查看,其HTTP端口号为9060,我们可以通过http://ip:9080/admin或者是https: //ip:9060/admin访问该概要表的控制台并部署应用了。
虚拟机性能测试
将生产环境中的Web应用安装包拷贝到${TOMCAT_HOME}/WebApps下或者是通过WebSphere管理控制台发布Web应用,然后就可以对相应的应用进行测试了。
VMware vSphere 5提供了性能监视视图,可以在应用访问过程中对虚拟机的性能进行实时监控。方便我们根据应用访问情况随即对虚拟机的CPU、内存、网络配置、磁盘IO进行调整,和在物理服务器上进行硬件扩容相比,虚拟机的稳定性以及效率有了大大的提高。
图1. Tomcat中间件服务器CPU性能视图
从上图可见,在大部分情况下CPU使用率较低,但是在某段时间CPU使用率达到了100%,需要引起关注,查找在该段时间对虚拟机进行了哪些操作。
图2. Tomcat中间件服务器内存性能视图
从上图可见,内存使用率一直较低,即使在高峰期也只有40%,所以可以考虑在该虚拟机上多部署几个Web应用,或者是适当减少内存配置。
图3. Tomcat中间件服务器磁盘IO性能视图
从上图可见,虚拟机磁盘IO在下午4点达到了峰值,每秒达到了2500KB。
利用上述vSphere 5.0性能视图,可以最终决定在一台虚拟机上部署多少个生产应用仍满足业务系统访问的需要。
通过新建虚拟机方式对应用进行迁移整合,可以在一台物理服务器上部署多个虚拟机的基础上更进一步,实现在一台虚拟机上部署多个Web应用,进一步提高了服务器的使用率。而且在应用迁移过程中可以提供过性能视图实时了解虚拟机的性能状况,为合理评估虚拟机性能,实现更高效的应用整合提供了保证。