java 程序员 微软 Firefox 编程 centos Windows wordpress mysql nginx 开源 php apache Python Android google Ubuntu shell linux 云计算

利用AX產品與VMware虛擬化平臺實現VM動態資源的按需分配和應用加速

在去年的博客文章中,我們探討了“A10虛擬化技術在雲計算中的應用”,其中有一部分描述談到了與類似VMware這樣的虛擬化平臺結合,提供VM資源的按需分配和應用系統資源的調度。隨著虛擬化技術在不同行業的逐步推廣和應用,最近遇到了一個項目正好就是測試這部分的功能,主要就是驗證當VMware的vCenter動態增減VM(虛擬機)數量的時候,如何在AX設備上實現即時的VM資源同步。如果做到了這一步,那麽當應用系統需要增減一定數量的VM時,對應的AX設備上提供該應用系統訪問服務的虛擬服務器(VIP)就可以隨之完成VM資源的動態調度和負載分擔。下面我們結合這次的測試,闡述一下具體的配置步驟。下圖為通用的部署示意圖:

image

Step 1、在VMware上創建一定數量的VM,並在這些VM上開啟Web service

        如何在VMware上創建VM,在這裏就不闡述了,如果想了解相關的配置步驟,可以參考VMware網站提供的相關資料。在這裏需要提醒一下,這些VM需要使用不同的ip地址,並能夠被上遊的AX設備訪問,這個要求與傳統的服務器負載均衡部署完全一致。

Step 2、配置vCenter和ESX的HTTP代理

        缺省情況下,“VMware VirtualCenter Management Webservices”是不會自動啟動的,因此,需要首先開啟這個服務,具體步驟是在VMware主機【控制面板】-》【管理工具】-》【服務】中找到這個服務進程,並開啟它。我們可以利用vSphere Client登錄到vCenter來驗證該服務已經開啟。

註意:缺省情況下,只能通過HTTPS方式接入vCenter Webservice,所以通常還需要按照以下步驟修改配置文件,來開啟HTTP方式的接入:

以root用戶身份登錄到ESX的服務控制界面;
進入到/etc/vmware/hostd目錄,用文本編輯器打開proxy.xml文件;
找到類似如下的字段,將接入方式改為HTTP和HTTPS:
          ... 
         <e id=”1”> 
         <_type>vim.ProxyService.NamedPipeServiceSpec</_type> 
         <accessMode>httpAndHttps</accessMode> 
         <pipeName>/var/run/vmware/proxy-sdk</pipeName> 
         <serverNamespace>/sdk</serverNamespace> 
         </e> 
          ...

重啟網絡管理進程,使修改生效。
Step 3、AX設備上的相關配置

        除了基本的服務器(Real Server)和虛擬服務器(VIP)配置外,與VMware互動最多的部分就是服務組(Service Group)了,例如在服務組中增減服務器(組員)這些動作,因此一定要在配置API時,提供準確的服務組名和服務端口號;

Step 4、將AX API應用導入到vCenter中

        在與VMware結合的應用中,aXAPI是一個獨立的文件(VMPowerOps.cs),我們稱之為VM觸發批處理程序,將其導入到vCenter中,從而可以通過vCenter在AX設備上完成一些諸如增減服務器、創建服務組和虛擬服務器等動作。在這個VMPowerOps批處理文件中,一共需要配置13個參數,通過調整這些參數/變量,來配合我們在不同應用環境中的部署。下面我們用一個示例分別來看看這些參數/變量的含義是什麽:

       VmPowerOps.exe --url http://192.168.32.150/sdk --username TestUser --password mypasswd --hostname 192.168.1.240 --threshold 5 --DatacenterName DC --vmPath dc/vm/vm10 --AXIP 192.168.1.215.--AXUsrName admin --AXPasswd a10 --AXServiceGroup vm_group_01 --AXPort 80 --multipleAllow VmPowerOps

url <http://192.168.32.150/sdk>
          表示登錄vCenter的URL路徑,無論是登錄哪臺vCenter設備,後面都需要跟著“/sdk”的後綴;

username <TestUser>
          表示登錄該vCenter的用戶名;

password <mypasswd>
          表示登錄該vCenter用戶的口令;

hostName <192.168.1.240>
          表示該vCenter中開啟了相關VM的主機,通常是該主機的物理網卡IP地址;

threshold <5>
          表示克隆VM(虛擬機)的門限值,即最大克隆的個數;

DatacenterName <DC>
          表示該vCenter的名字;

vmPath <dc/vm/vm10>
          表示克隆模板的路徑,通過該模板可以克隆出與此VM模板完全一樣的VM,這樣就可以保證VM所提供的服務內容完全一致;

AXIP <192.168.215>
          表示被管理AX設備的IP地址;

AXUsrName <admin>
          表示登錄該AX設備的用戶名;

AXPasswd <a10>
          表示登錄該AX設備用戶的密碼;

AXServiceGroup <vm_group_01>
          表示該AX設備上的相關服務組名;

AXPort <80>
          表示服務器上的應用服務端口號;

multipleAllow
          表示是否允許多個進程,1表示允許,2表示拒絕,缺省為1;

      為了將此觸發程序應用到vCenter對應的觸發器(Trigger),通常我們都會把這些應用參數通過文本編輯器,存為一個後綴名為“.bat”的批處理文件,例如Power.bat。

Step 5、使用vSphere Client配置aXAPI觸發器(Trigger)

        通過vSphere Client配置告警觸發器,將此前創建的“Power.bat”文件綁定到對應的主機,使aXAPI的應用生效。

選擇對應的主機(host),通過鼠標右鍵在列表中選擇”告警“-》”添加告警“,如下圖所示,配置告警閥值:

clip_image002

  • 在【操作】选择中,选择”运行命令“,并在【配置】中输入Power.bat文件所在路径,如下图所示:

clip_image002[6]

      

  當主機觸發器被命中時,vCenter系統將執行VMPowerOps這個應用程序,進行如下操作:

在ESX主機中尋找一個關閉的VM,並啟動它;

將此啟動的VM服務器同步到AX設備對應的服務組中,使之能夠即可承載業務的訪問;

如果沒有在ESX主機中找到一個關閉的VM,另外VM虛擬機總數沒有超過閥值(Threshold)的上限,那麽應用程序會根據克隆模板克隆一個新的VM,並開啟它;如果虛擬機總數達到閥值上限,則應用程序不會做任何操作和動作。

        以上就是AX負載均衡設備和VMware虛擬化平臺的一個互通過程和配置步驟,可以達到對VM資源的動態調配和同步,這是AX設備的一個最主要的虛擬化應用場景。此外,根據業務的需要,在AX設備開啟必要的應用加速功能,例如連接復用、緩存功能、SSL卸載、抵禦DDoS功能等,也可以大大的降低VM系統的壓力,提高單個VM的業務承載能力,更好的節省雲系統資源,這也是AX負載均衡設備在虛擬化應用中的一個重要價值!

延伸阅读

    评论