應用服務器進行虛擬化整合的兩種方式:P2V和新建虛擬機。本文介紹采用新建虛擬機方式如何開展虛擬化整合工作。
搭建虛擬機環(huán)境
應用軟件提供商在不斷完善軟件功能,提升軟件性能,修復軟件存在的漏洞。搭建虛擬機環(huán)境的第一步就是創(chuàng)建虛擬機并安裝客戶操作系統。根據現有生產環(huán)境所使用的操作系統版本,使用應用軟件提供商所發(fā)布的最新操作系統版本。例如如果生產環(huán)境使用的是64位的Windows Server 2003 Enterprise Server,那么可以考慮升級至Windows Server 2008 R2 Enterprise Server。如果生產環(huán)境中使用的是 SuSE Linux Enterprise 10,那么可以考慮升級至SuSE Linux Enterprise 11 SP1。
接下來就需要根據生產環(huán)境中應用服務器環(huán)境部署相應的Web服務器和中間件服務器。例如,如果信息系統基于J2EE開發(fā),那么需要到Oracle官方網站下載最新版本的Java SE 6 Update 31或者是Java SE 7u3。如果使用的是開源Web服務器和中間件服務器,那么可以到Apache的官方網站下載HTTP Server和Tomcat,建議用戶選擇Apache HTTP Server 2.2.22以及Tomcat 6.0.35。如果生產環(huán)境中使用的是商業(yè)版的Web服務器和中間件,比如IBM HTTP Server和IBM WebSphere Application Server,那么可以選擇IBM WebSphere Application Server 7.0,并在IBM官方網站下載并安裝最新的補丁Fix Pack 21 (7.0.0.21)。
進行中間件配置
由于只是進行應用服務器的虛擬化整合,不需要對生產環(huán)境中的數據庫進行任何調整,只需要將原有的Web應用程序部署到Tomcat中間件的WebApps目錄下或者通過WebSphere控制臺發(fā)布應用即可。
如果將多個Web應用程序部署在同一個Tomcat中間件下或者單個WebSphere概要表下,在中間件服務器出現故障時,將面臨多個Web應用同時無法訪問的尷尬局面。可以通過安裝多個Tomcat中間件或者創(chuàng)建多個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文件對應的端口配置信息。
<Server port="8209" shutdown="SHUTDOWN">
<!-- A "Connector" represents an endpoint by which requests are received and responses are returned. Documentation at :
Java HTTP Connector: /docs/config/http.html (blocking & non-blocking)
Java AJP Connector: /docs/config/ajp.html
APR (HTTP/AJP) Connector: /docs/apr.html
Define a non-SSL HTTP/1.1 Connector on port 8109
-->
<Connector port="8109" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- Define an AJP 1.3 Connector on port 8009 -->
<Connector port="8009" protocol="AJP/1.3" 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可以創(chuàng)建多個概要表,然后在每個概要表下分別部署應用。
如果使用安裝的是64位的WebSphere Application Server,那么不能使用圖形界面創(chuàng)建概要表了,創(chuàng)建概要表的命令如下:
進入WebSphere Application Server 安裝目錄下的bin目錄下:cd ${WAS_HOME}/bin
在/opt/IBM/WebSphere/AppServer/profiles/AppSrv01下創(chuàng)建概要表AppSrv01:
./manageprofiles.sh -create -templatePath /opt/IBM/WebSphere/AppServer/profileTemplates/default/ -profileName AppSrv01 -profilePath /opt/IBM/WebSphere/AppServer/profiles/AppSrv01
創(chuàng)建完概要表后,就可以啟動該應用服務器了:
進入概要表主目錄下的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訪問該概要表的控制臺并部署應用了。
<specialEndpoints xmi:id="NamedEndPoint_1329977706398" endPointName="WC_adminhost">
<endPoint xmi:id="EndPoint_1329977706398" host="*" port="9060"/>
</specialEndpoints>
<specialEndpoints xmi:id="NamedEndPoint_1329977706399" endPointName="WC_defaulthost">
<endPoint xmi:id="EndPoint_1329977706399" host="*" port="9080"/>
</specialEndpoints>
虛擬機性能測試
將生產環(huán)境中的Web應用安裝包拷貝到${TOMCAT_HOME}/WebApps下或者是通過WebSphere管理控制臺發(fā)布Web應用,然后就可以對相應的應用進行測試了。VMware vSphere 5提供了性能監(jiān)視視圖,可以在應用訪問過程中對虛擬機的性能進行實時監(jiān)控。方便我們根據應用訪問情況隨即對虛擬機的CPU、內存、網絡配置、磁盤IO進行調整,和在物理服務器上進行硬件擴容相比,虛擬機的穩(wěn)定性以及效率有了大大的提高。
圖1. Tomcat中間件服務器CPU性能視圖
從上圖可見,在大部分情況下CPU使用率較低,但是在某段時間CPU使用率達到了100%,需要引起關注,查找在該段時間對虛擬機進行了哪些操作。
圖2. Tomcat中間件服務器內存性能視圖
從上圖可見,內存使用率一直較低,即使在高峰期也只有40%,所以可以考慮在該虛擬機上多部署幾個Web應用,或者是適當減少內存配置。
圖3. Tomcat中間件服務器磁盤IO性能視圖
從上圖可見,虛擬機磁盤IO在下午4點達到了峰值,每秒達到了2500KB。
利用上述vSphere 5.0性能視圖,可以最終決定在一臺虛擬機上部署多少個生產應用仍滿足業(yè)務系統訪問的需要。
通過新建虛擬機方式對應用進行遷移整合,可以在一臺物理服務器上部署多個虛擬機的基礎上更進一步,實現在一臺虛擬機上部署多個Web應用,進一步提高了服務器的使用率。而且在應用遷移過程中可以提供過性能視圖實時了解虛擬機的性能狀況,為合理評估虛擬機性能,實現更高效的應用整合提供了保證。