一種虛擬主機實現(xiàn)故障遷移的方法及虛擬主機業(yè)務(wù)裝置制造方法
【專利摘要】本申請公開了一種虛擬主機業(yè)務(wù)裝置及其實現(xiàn)故障遷移的方法,包括在虛擬主機故障且其所在的第一服務(wù)器不能實現(xiàn)容災(zāi)時,用于統(tǒng)一管理虛擬主機業(yè)務(wù)的資源控制模塊查找到具備空閑資源的第二服務(wù)器,在第二服務(wù)器中創(chuàng)建新的虛擬主機并更新業(yè)務(wù)路由;按照下載的配置文件及更新后的業(yè)務(wù)路由將發(fā)生故障的虛擬主機上的業(yè)務(wù)轉(zhuǎn)移至新的虛擬主機。本申請?zhí)摂M主機的遷移無需數(shù)據(jù)遷移和用戶干預(yù),在虛擬主機創(chuàng)建成功后,只需按照更新后的路由,將業(yè)務(wù)直接轉(zhuǎn)移至新的虛擬主機,直接切割流量,后續(xù)訪問的都是遷移后的虛擬主機資源,對于業(yè)務(wù)是零中斷影響??梢?,本申請簡單、靈活地實現(xiàn)了故障的無縫遷移,確保了用戶業(yè)務(wù)的可靠運行。
【專利說明】一種虛擬主機實現(xiàn)故障遷移的方法及虛擬主機業(yè)務(wù)裝置
【技術(shù)領(lǐng)域】
[0001]本申請涉及虛擬主機技術(shù),尤指一種虛擬主機實現(xiàn)故障遷移的方法及虛擬主機業(yè)務(wù)裝置。
【背景技術(shù)】
[0002]虛擬主機(virtual hosting)是指通過apache, nginx等web服務(wù)器的虛級化技術(shù),以提供網(wǎng)頁的運行環(huán)境。
[0003]目前,虛擬主機都是基于單臺物理設(shè)備進(jìn)行復(fù)用的,即直接通過A地址(Address)或者CNAME解析到對應(yīng)的物理設(shè)備上的虛擬主機。導(dǎo)致的問題就是當(dāng)用戶的虛擬主機在遇到被攻擊或者故障的情況下,只能遷移到另外一臺物理設(shè)備。而伴隨著虛擬主機的遷移,用戶的IP地址和臨時域名都會改變,從而造成了用戶業(yè)務(wù)的中斷,此時,就需要用戶手動再次配置A地址或者CANME,在新紀(jì)錄生效后,業(yè)務(wù)才能恢復(fù)。其中,A地址記錄是用來指定主機名(或域名)對應(yīng)的IP地址的記錄,用戶可以將該域名下的網(wǎng)站服務(wù)器指向到自己的web服務(wù)器上。同時也可以設(shè)置域名的子域名;CNAME是別名記錄,這種記錄允許將多個名字映射到同一臺計算機。
[0004]這樣,在虛擬主機遭到攻擊或者宕機的情況下,無法做到故障轉(zhuǎn)移;而且也不能方便的支持虛擬主機動態(tài)調(diào)節(jié)資源大小和運行環(huán)境的情況??梢?,由于現(xiàn)有的虛擬主機無法跨越單臺機器設(shè)備資源,其計算資源被限定在一臺服務(wù)器資源范圍內(nèi),無法突破單臺計算瓶頸。也正因為虛擬主機受限于單臺物理機器資源,在業(yè)務(wù)處理能力上受到極大的制約,最大的計算能力也不能超過單臺機器的計算能力。
【發(fā)明內(nèi)容】
[0005]為了解決上述技術(shù)問題,本申請?zhí)峁┝艘环N虛擬主機實現(xiàn)故障遷移的方法及虛擬主機業(yè)務(wù)裝置,能夠簡單、靈活地實現(xiàn)故障的無縫遷移,確保用戶業(yè)務(wù)的可靠運行。
[0006]為了達(dá)到本申請目的,本申請?zhí)峁┮环N虛擬主機實現(xiàn)故障遷移的方法,包括:所述虛擬主機故障且其所在的第一服務(wù)器不能實現(xiàn)容災(zāi);
[0007]資源控制模塊查找具備空閑資源的第二服務(wù)器,在所述第二服務(wù)器中創(chuàng)建新的虛擬主機并更新業(yè)務(wù)路由;
[0008]下載配置文件并按照更新后的所述業(yè)務(wù)路由將發(fā)生故障的虛擬主機上的業(yè)務(wù)轉(zhuǎn)移至所述新的虛擬主機。
[0009]所述下載配置文件并按照更新后的所述業(yè)務(wù)路由將業(yè)務(wù)轉(zhuǎn)移至所述新的虛擬主機包括:
[0010]從所述資源控制模塊的配置服務(wù)中下載配置文件,增加所述新創(chuàng)建的虛擬主機到監(jiān)控關(guān)聯(lián)點,并修改所述發(fā)生故障的虛擬主機上的業(yè)務(wù)路由表,以將發(fā)生故障的虛擬主機上的業(yè)務(wù)轉(zhuǎn)移至所述新的虛擬主機。
[0011]該方法還包括:將所述第一服務(wù)器上的所述虛擬主機之外的全部虛擬主機上的業(yè)務(wù)轉(zhuǎn)移至所述第二服務(wù)器。
[0012]所述資源控制模塊在所述第二服務(wù)器創(chuàng)建新的虛擬機包括:
[0013]所述資源控制模塊在資源庫中查找是否有合適的服務(wù)器資源,如果查找到有足夠的服務(wù)器資源,根據(jù)該資源創(chuàng)建所述新的虛擬主機并加鎖保護(hù);
[0014]從所述資源控制模塊的配置服務(wù)中下載配置文件,對創(chuàng)建成功的所述新的虛擬主機進(jìn)行初始化;
[0015]將創(chuàng)建成功的所述新的虛擬主機注冊到所述資源控制模塊中的資源監(jiān)控平臺,并在業(yè)務(wù)路由映射表中增加所述新的虛擬主機上的業(yè)務(wù)路由。
[0016]在所述虛擬主機需要升級業(yè)務(wù)時,該方法還包括:
[0017]在所述資源控制模塊的資源庫中,查找所述需要實現(xiàn)升級業(yè)務(wù)的虛擬主機所在服務(wù)器的剩余資源,如果所述需要實現(xiàn)升級業(yè)務(wù)的虛擬主機所在服務(wù)器的剩余資源不足,則查找其他服務(wù)器的剩余資源;
[0018]如果查找到存在有空閑資源的服務(wù)器,則在該服務(wù)器上創(chuàng)建新的虛擬主機并鎖定資源;
[0019]從所述資源控制模塊的配置服務(wù)中下載配置文件,對所述創(chuàng)建成功的虛擬主機進(jìn)行初始化;
[0020]將所述創(chuàng)建成功的虛擬主機注冊到所述資源控制模塊中的資源監(jiān)控平臺,并在業(yè)務(wù)路由映射表中增加所述虛擬主機上的業(yè)務(wù)路由。
[0021]本申請還提供一種虛擬主機業(yè)務(wù)裝置,至少包括資源控制模塊,以及兩個或兩個以上服務(wù)器;在虛擬主機故障且其所在的第一服務(wù)器不能實現(xiàn)容災(zāi)時,
[0022]所述資源控制模塊,用于查找具備空閑資源的第二服務(wù)器,在所述第二服務(wù)器中創(chuàng)建新的虛擬主機并更新業(yè)務(wù)路由;下載配置文件并按照更新后的所述業(yè)務(wù)路由將發(fā)生故障的虛擬主機上的業(yè)務(wù)轉(zhuǎn)移至所述新的虛擬主機。
[0023]還包括:流量匯聚入口、業(yè)務(wù)路由模塊,及用于存儲所有的用戶數(shù)據(jù)的存儲模塊;其中,
[0024]流量匯聚入口,用于提供訪問虛擬主機的統(tǒng)一接口 ;在用戶通過流量匯聚入口訪問時,調(diào)用業(yè)務(wù)路由模塊查詢業(yè)務(wù)路由,并根據(jù)查詢結(jié)果將流量分發(fā)至對應(yīng)的服務(wù)器中的虛擬主機;
[0025]業(yè)務(wù)路由模塊,其中存儲有虛擬主機的流量分發(fā)映射表;接收到來自流量匯聚入口的查詢,將當(dāng)前訪問的虛擬主機的業(yè)務(wù)路由返回給流量匯聚入口。
[0026]所述資源控制模塊,具體用于:
[0027]查找具備空閑資源的第二服務(wù)器,在所述第二服務(wù)器中創(chuàng)建新的虛擬主機并更新業(yè)務(wù)路由;從自身的配置服務(wù)中下載配置文件,增加所述新創(chuàng)建的虛擬主機到監(jiān)控關(guān)聯(lián)點,并修改所述發(fā)生故障的虛擬主機上的業(yè)務(wù)路由表,以將發(fā)生故障的虛擬主機上的業(yè)務(wù)轉(zhuǎn)移至所述新的虛擬主機。
[0028]所述資源控制模塊,還用于將所述第一服務(wù)器上的所述虛擬主機之外的全部虛擬主機上的業(yè)務(wù)轉(zhuǎn)移至所述第二服務(wù)器。
[0029]所述資源控制模塊,還用于:
[0030]在資源庫中查找是否有合適的服務(wù)器資源,在查找到有足夠的服務(wù)器資源時,根據(jù)該資源創(chuàng)建所述新的虛擬主機并加鎖保護(hù);從其配置服務(wù)中下載配置文件,對創(chuàng)建成功的所述新的虛擬主機進(jìn)行初始化;將創(chuàng)建成功的所述新的虛擬主機注冊到所述資源控制模塊中的資源監(jiān)控平臺,并在業(yè)務(wù)路由映射表中增加所述生成新的虛擬主機上的業(yè)務(wù)路由。
[0031]所述虛擬主機需要升級業(yè)務(wù)時,
[0032]所述資源控制模塊,還用于在所述需要實現(xiàn)升級業(yè)務(wù)的虛擬主機所在服務(wù)器的剩余資源不足時,查找其他服務(wù)器的剩余資源;在存在有空閑資源的服務(wù)器上創(chuàng)建新的虛擬主機并鎖定資源;從所述資源控制模塊的配置服務(wù)中下載配置文件,對所創(chuàng)建成功的虛擬主機進(jìn)行初始化;將創(chuàng)建成功的虛擬主機注冊到所述資源控制模塊的資源監(jiān)控平臺,在業(yè)務(wù)路由映射表中增加所述虛擬主機上的業(yè)務(wù)路由;并向所述業(yè)務(wù)路由模塊發(fā)送更新通知;
[0033]所述業(yè)務(wù)路由模塊,還用于接收到來自資源控制模塊的更新通知,更新流量分發(fā)映射表。
[0034]所述流量匯聚入口由一個或一個以上的Nginx組成。
[0035]本申請?zhí)峁┑姆桨赴ㄔ谔摂M主機故障且其所在的第一服務(wù)器不能實現(xiàn)容災(zāi)時,用于統(tǒng)一管理虛擬主機業(yè)務(wù)的資源控制模塊查找到具備空閑資源的第二服務(wù)器后,在第二服務(wù)器中創(chuàng)建新的虛擬主機并更新業(yè)務(wù)路由;按照下載的配置文件及更新后的業(yè)務(wù)路由將發(fā)生故障的虛擬主機上的業(yè)務(wù)轉(zhuǎn)移至新的虛擬主機。本申請?zhí)摂M主機的遷移無需數(shù)據(jù)遷移和用戶干預(yù),在虛擬主機創(chuàng)建成功后,只需按照更新后的路由如通過更新內(nèi)部的業(yè)務(wù)映射表,將業(yè)務(wù)直接轉(zhuǎn)移至新的虛擬主機,直接切割流量,后續(xù)訪問的都是遷移后的虛擬主機資源,對于業(yè)務(wù)是零中斷影響??梢?,本申請簡單、靈活地實現(xiàn)了故障的無縫遷移,確保了用戶業(yè)務(wù)的可靠運行。
[0036]進(jìn)一步地,在虛擬主機進(jìn)行業(yè)務(wù)升級時,服務(wù)器的彈性通過冗余資源來實現(xiàn),而通過流量匯聚入口可通過多臺服務(wù)器并借助負(fù)載均衡進(jìn)行分擔(dān),實現(xiàn)了本申請的無限擴展能力。
[0037]本申請的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本申請而了解。本申請的目的和其他優(yōu)點可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
【專利附圖】
【附圖說明】
[0038]附圖用來提供對本申請技術(shù)方案的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本申請的實施例一起用于解釋本申請的技術(shù)方案,并不構(gòu)成對本申請技術(shù)方案的限制。
[0039]圖1為本申請?zhí)摂M主機業(yè)務(wù)裝置的組成架構(gòu)示意圖;
[0040]圖2為本申請?zhí)摂M主機實現(xiàn)故障遷移的方法的流程示意圖;
[0041]圖3為虛擬主機的購買業(yè)務(wù)流程示意圖;
[0042]圖4為在虛擬主機創(chuàng)建成功后,虛擬主機實現(xiàn)升級業(yè)務(wù)的流程示意圖。
【具體實施方式】
[0043]為使本申請的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本申請的實施例進(jìn)行詳細(xì)說明。需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互任意組合。
[0044]在本申請一個典型的配置中,計算設(shè)備包括一個或多個處理器(CPU)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
[0045]內(nèi)存可能包括計算機可讀介質(zhì)中的非永久性存儲器,隨機存取存儲器(RAM)和/或非易失性內(nèi)存等形式,如只讀存儲器(ROM)或閃存(flash RAM)。內(nèi)存是計算機可讀介質(zhì)的示例。
[0046]計算機可讀介質(zhì)包括永久性和非永久性、可移動和非可移動媒體可以由任何方法或技術(shù)來實現(xiàn)信息存儲。信息可以是計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計算機的存儲介質(zhì)的例子包括,但不限于相變內(nèi)存(PRAM)、靜態(tài)隨機存取存儲器(SRAM)、動態(tài)隨機存取存儲器(DRAM)、其他類型的隨機存取存儲器(RAM)、只讀存儲器(ROM)、電可擦除可編程只讀存儲器(EEPR0M)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲器(CD-ROM)、數(shù)字多功能光盤(DVD)或其他光學(xué)存儲、磁盒式磁帶,磁帶磁磁盤存儲或其他磁性存儲設(shè)備或任何其他非傳輸介質(zhì),可用于存儲可以被計算設(shè)備訪問的信息。按照本文中的界定,計算機可讀介質(zhì)不包括非暫存電腦可讀媒體(transitory media),如調(diào)制的數(shù)據(jù)信號和載波。
[0047]在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的計算機系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
[0048]圖1為本申請?zhí)摂M主機業(yè)務(wù)裝置的組成架構(gòu)示意圖,如圖1所示,包括流量匯聚入口、業(yè)務(wù)路由模塊、存儲模塊、資源控制模塊,以及一個或一個以上服務(wù)器;其中,
[0049]流量匯聚入口,用于提供訪問虛擬主機的統(tǒng)一接口,可以由一個或一個以上的Nginx組成,同時起到負(fù)載均衡的作用。其中,Nginx (Engine x)是一款輕量級的Web服務(wù)器/反向代理服務(wù)器及電子郵件(IMAP/P0P3)代理服務(wù)器。
[0050]所有業(yè)務(wù)的IP都落到前端的Nginx,和后端的運行環(huán)境解耦。當(dāng)用戶通過流量匯聚入口訪問Nginx時,Nginx調(diào)用業(yè)務(wù)路由模塊,并根據(jù)查詢結(jié)果即當(dāng)前訪問的虛擬主機的業(yè)務(wù)路由,將流量分發(fā)至對應(yīng)的服務(wù)器中的虛擬主機。
[0051]業(yè)務(wù)路由模塊,其中存儲有虛擬主機的流量分發(fā)映射表,提供對流量的轉(zhuǎn)發(fā)策略的查詢和更新。接收到來自流量匯聚入口的查詢,將當(dāng)前訪問的虛擬主機返回給流量匯聚入口 ;接收到來自資源控制模塊的更新通知,更新流量分發(fā)映射表。
[0052]其中,業(yè)務(wù)路由模塊中的流量分發(fā)映射表是一個大的K-V表,其中,Key是IP地址和端口號,Value是對應(yīng)的運行實體即哪臺服務(wù)器中的哪個虛擬主機,運行實體可以是一個或者多個。當(dāng)為多個運行實體時,可以根據(jù)每個運行實體的配置,設(shè)置對應(yīng)的權(quán)重值。這里權(quán)重值可以動態(tài)設(shè)置,比如根據(jù)運行實體的資源大小成比例設(shè)置,舉例來講,假設(shè)有三個運行實體,分別占有1G,2G和3G帶寬,那么,在設(shè)置權(quán)重時,各自的權(quán)重值分別對應(yīng)1,2,3。
[0053]存儲模塊,用于存儲所有的用戶數(shù)據(jù)。這里,數(shù)據(jù)統(tǒng)一存儲即共享在分布式文件系統(tǒng)中,保證了數(shù)據(jù)的高可靠和無限擴展。
[0054]資源控制模塊,用于統(tǒng)一管理虛擬主機業(yè)務(wù),比如虛擬主機的生產(chǎn),修改,維護(hù)以及回收;在發(fā)生業(yè)務(wù)路由變化時,向業(yè)務(wù)路由模塊發(fā)送更新通知。
[0055]具體地,在虛擬主機故障且該虛擬主機所在的第一服務(wù)器自身不能容災(zāi)時,資源控制模塊用于,查找到具備空閑資源的第二服務(wù)器在該服務(wù)器中創(chuàng)建新的虛擬主機并更新業(yè)務(wù)路由;下載配置文件并按照更新后的業(yè)務(wù)路由將發(fā)生故障的虛擬主機上的業(yè)務(wù)轉(zhuǎn)移至新的虛擬主機。
[0056]在需要創(chuàng)建虛擬主機時,在其資源庫中查找是否有合適的服務(wù)器資源,如果查找到有足夠的服務(wù)器資源,根據(jù)該資源創(chuàng)建虛擬主機并加鎖保護(hù);從其配置服務(wù)中下載配置文件,對創(chuàng)建成功的虛擬主機進(jìn)行初始化;將創(chuàng)建成功的虛擬主機注冊到資源控制模塊中的資源監(jiān)控平臺,并在業(yè)務(wù)路由映射表中增加所述生成的虛擬主機上的業(yè)務(wù)的業(yè)務(wù)路由。
[0057]在虛擬主機需要實現(xiàn)升級業(yè)務(wù)時,通過查詢其資源庫中,在需要實現(xiàn)升級業(yè)務(wù)的虛擬主機所在服務(wù)器的剩余資源不足時,查找其他服務(wù)器的剩余資源;在存在有空閑資源的服務(wù)器上創(chuàng)建新的虛擬主機并鎖定資源;從資源控制模塊的配置服務(wù)中下載配置文件,對所創(chuàng)建成功的虛擬主機進(jìn)行初始化;將創(chuàng)建成功的虛擬主機注冊到資源控制模塊的資源監(jiān)控平臺,在業(yè)務(wù)路由映射表中增加所述虛擬主機上的業(yè)務(wù)路由;并向業(yè)務(wù)路由模塊發(fā)送更新通知。
[0058]資源控制模塊,還用于將第一服務(wù)器上的虛擬主機之外的全部虛擬主機上的業(yè)務(wù)轉(zhuǎn)移至第二服務(wù)器。
[0059]可見,本申請通過前端設(shè)置的流量匯聚入口,及用于存儲一對多的映射關(guān)系的業(yè)務(wù)映射表,很方便地擴展了多運行實體,理論上可以提供無限多的處理能力。本申請的資源控制模塊提供了運行環(huán)境的監(jiān)控和遷移服務(wù),保證了資源的運作可靠性;而且資源控制模塊的配置服務(wù)如配置管理中心,集中保持了虛擬主機和用戶的配置信息。創(chuàng)建新的運行實體或者遷移時,直接下載配置管理中心的數(shù)據(jù),完成初始化,保證了數(shù)據(jù)的一致性,也保證了運行環(huán)境的一致性。
[0060]本申請?zhí)摂M主機業(yè)務(wù)裝置提供的獨立運行環(huán)境是借助Apache,Nginx等提供的虛擬主機運行環(huán)境,運行環(huán)境能夠完成靜態(tài)業(yè)務(wù)以及PHP,JSP, ASP等腳本語言的解析。每個運行環(huán)境都是獨立的,各自有自身的配置文件;而每一個用戶的配置文件是統(tǒng)一通過資源控制模塊來配置、維護(hù)的。
[0061]圖2為本申請?zhí)摂M主機實現(xiàn)故障遷移的方法的流程示意圖,如圖2所示,包括以下步驟:
[0062]步驟200:虛擬主機故障且其所在服務(wù)器自身不能實現(xiàn)容災(zāi)。本步驟的實現(xiàn)屬于現(xiàn)有技術(shù),大致包括:一臺服務(wù)器的總體資源是定義在資源控制模塊中的,當(dāng)分配出運行實體即虛擬主機后,該服務(wù)器的可用的資源就會減少。在判斷能否容災(zāi)時,只需比對容災(zāi)所需資源和該服務(wù)器所剩資源即可知道能否容災(zāi)。本申請中,發(fā)生故障的虛擬主機所在的服務(wù)器也稱為第一服務(wù)器。
[0063]本步驟還包括:如果虛擬主機所在的服務(wù)器可以容災(zāi),直接在本機重啟服務(wù),進(jìn)行初始化即可。結(jié)束本流程。
[0064]步驟201:資源控制模塊查找空閑資源。具體包括:
[0065]此時表明故障是服務(wù)器級別的故障,資源控制模塊在自身資源庫中查找其他服務(wù)器是否有足夠空閑資源。由于資源控制模塊用于統(tǒng)一管理虛擬主機業(yè)務(wù),比如虛擬主機的生產(chǎn),修改,維護(hù)以及回收,因此,資源管理模塊是可以通過其資源庫對服務(wù)器的資源使用情況進(jìn)行判斷的。
[0066]如果沒有空閑資源,故障轉(zhuǎn)移失敗并告警,結(jié)束本流程。
[0067]本申請中,查找到的具備空閑資源的服務(wù)器也稱為第二服務(wù)器。
[0068]步驟201:查找到發(fā)生故障的虛擬主機所在的服務(wù)器之外的其他服務(wù)器有空閑資源后,在該服務(wù)器中創(chuàng)建新的虛擬主機并更新業(yè)務(wù)路由。
[0069]本步驟中,創(chuàng)建運行環(huán)境以增加新的虛擬主機的具體實現(xiàn)如前所述的創(chuàng)建虛擬主機,這里不再贅述。
[0070]本步驟中,新的業(yè)務(wù)路由與創(chuàng)建的需求方是關(guān)聯(lián)的,每一個用戶的業(yè)務(wù)對應(yīng)一個生產(chǎn)標(biāo)識(saleid),這個saleid表明用戶的資源需求狀態(tài)和關(guān)聯(lián)的運行實體情況。更新業(yè)務(wù)路由即根據(jù)業(yè)務(wù)saleid對應(yīng)的IP地址進(jìn)行檢索,查找到對應(yīng)的路由實體后,更新實體信肩、O
[0071]步驟202:下載配置文件并按照更新后的業(yè)務(wù)路由將業(yè)務(wù)轉(zhuǎn)移至新的虛擬主機。
[0072]從資源控制模塊的配置服務(wù)中下載配置文件并初始化。增加虛擬主機到監(jiān)控關(guān)聯(lián)點,并修改業(yè)務(wù)路由表以打通數(shù)據(jù)通道。
[0073]需要說明的是,對于業(yè)務(wù)故障的轉(zhuǎn)移,也可以進(jìn)行整體轉(zhuǎn)移,即當(dāng)一個虛擬主機發(fā)生故障時,其所在服務(wù)器的所有虛擬主機全部轉(zhuǎn)移,具體轉(zhuǎn)移方法如步驟201-步驟202所示,這里不再贅述。
[0074]從本申請?zhí)摂M主機實現(xiàn)故障遷移的方法可見,虛擬主機的遷移無需數(shù)據(jù)遷移和用戶干預(yù),對于業(yè)務(wù)也是零中斷影響。需要遷移虛擬主機時,只需選擇一個合適的服務(wù)器,在服務(wù)器中創(chuàng)建對應(yīng)的虛擬主機,在虛擬主機創(chuàng)建成功后,通過更新內(nèi)部的業(yè)務(wù)映射表,直接切割流量,后續(xù)訪問的都是遷移后的虛擬主機資源。
[0075]本申請方法之前還包括:虛擬主機的購買業(yè)務(wù)流程,如圖3所示,在現(xiàn)有售賣平臺完成訂單的生成和支付后進(jìn)行虛擬主機的生產(chǎn),虛擬主機的生成主要包括以下步驟:
[0076]步驟300:資源控制模塊在資源庫中查找是否有合適的服務(wù)器資源,如果未查找到,表明生產(chǎn)失敗,通知售賣平臺并報警,結(jié)束本流程。
[0077]步驟301:如果查找到有足夠的服務(wù)器資源,根據(jù)該資源創(chuàng)建運行環(huán)境并加鎖保護(hù)。
[0078]其中加鎖保護(hù)就是通知專門用于監(jiān)控運行環(huán)境的監(jiān)控服務(wù)器,資源庫中可用資源是多少,并定期向監(jiān)控服務(wù)器拋送監(jiān)控數(shù)據(jù),監(jiān)控服務(wù)器計算后和配額做比對,從而完成對運行環(huán)境的監(jiān)控,具體實現(xiàn)屬于現(xiàn)有技術(shù),其并不用于限定本申請的保護(hù)范圍,這里不再贅述。
[0079]步驟302:從所述資源控制模塊的配置服務(wù)中下載配置文件,對于所創(chuàng)建成功的運行環(huán)境進(jìn)行初始化。
[0080]步驟303:增加虛擬主機并注冊到資源控制模塊中的資源監(jiān)控平臺,以完成健康度和資源的監(jiān)控。本步驟的具體實現(xiàn)屬于現(xiàn)有技術(shù),即由監(jiān)控服務(wù)器實現(xiàn)對運行環(huán)境的監(jiān)控,這里不再贅述。
[0081]步驟304:在業(yè)務(wù)路由映射表中增加新的業(yè)務(wù)路由。此時虛擬主機創(chuàng)建成功,通知售賣平臺。
[0082]在虛擬主機創(chuàng)建成功后,如果虛擬主機需要升級業(yè)務(wù),其業(yè)務(wù)流程包括:
[0083]步驟400:在資源控制模塊的資源庫中,查找同一臺需要實現(xiàn)升級業(yè)務(wù)的虛擬主機所在服務(wù)器的剩余資源,并判斷是否能滿足升級的需求,如果該服務(wù)器自身就能滿足升級需求,則直接修改資源庫中的信息,以擴大用戶的可用資源即可。
[0084]步驟401:如果需要實現(xiàn)升級業(yè)務(wù)的虛擬主機所在服務(wù)器的剩余資源不足,則查找其他服務(wù)器的剩余資源。
[0085]如果查找出其他的服務(wù)器資源也不足以實現(xiàn)升級,則本次升級失敗并通知售賣平臺。
[0086]步驟402:如果查找到存在有合適的資源服務(wù)器,則創(chuàng)建新的運行環(huán)境并鎖定資源。
[0087]步驟403:從所述資源控制模塊的配置服務(wù)中下載配置文件,對于所創(chuàng)建成功的運行環(huán)境進(jìn)行初始化。
[0088]步驟404:增加虛擬主機并注冊到資源控制模塊中,完成健康度和資源的監(jiān)控。
[0089]步驟405:在業(yè)務(wù)路由映射表中增加新的業(yè)務(wù)路由。
[0090]對于同一個業(yè)務(wù)關(guān)聯(lián)多個運行環(huán)境,在修改業(yè)務(wù)路由映射表時,需要考慮多路由條目的映射。比如,可以通過一個動態(tài)數(shù)組等類似的機制來實現(xiàn),一個Key管理到一個數(shù)組,數(shù)組中的數(shù)值就是對應(yīng)的實際運行環(huán)境的IP。每一個運行實體對應(yīng)資源配置,資源配置的處理能力比例決定了多路由條目的權(quán)重。
[0091]在虛擬主機進(jìn)行業(yè)務(wù)升級時,服務(wù)器的彈性通過冗余資源來實現(xiàn),而通過流量匯聚入口可通過多臺服務(wù)器并借助負(fù)載均衡進(jìn)行分擔(dān),實現(xiàn)了本申請的無限擴展能力即流量匯聚入口是可以水平擴展的。
[0092]本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本申請實施例所提供的裝置的各組成部分,以及方法中的各步驟,它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成的網(wǎng)絡(luò)上??蛇x地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn)。從而,可以將它們存儲在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成各個集成電路模塊,或者將它們中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本申請不限制于任何特定的硬件和軟件結(jié)合。
[0093]雖然本申請所揭露的實施方式如上,但所述的內(nèi)容僅為便于理解本申請而采用的實施方式,并非用以限定本申請。任何本申請所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本申請所揭露的精神和范圍的前提下,可以在實施的形式及細(xì)節(jié)上進(jìn)行任何的修改與變化,但本申請的專利保護(hù)范圍,仍須以所附的權(quán)利要求書所界定的范圍為準(zhǔn)。
【權(quán)利要求】
1.一種虛擬主機實現(xiàn)故障遷移的方法,其特征在于,包括:所述虛擬主機故障且其所在的第一服務(wù)器不能實現(xiàn)容災(zāi); 資源控制模塊查找具備空閑資源的第二服務(wù)器,在所述第二服務(wù)器中創(chuàng)建新的虛擬主機并更新業(yè)務(wù)路由; 下載配置文件并按照更新后的所述業(yè)務(wù)路由將發(fā)生故障的虛擬主機上的業(yè)務(wù)轉(zhuǎn)移至所述新的虛擬主機。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述下載配置文件并按照更新后的所述業(yè)務(wù)路由將業(yè)務(wù)轉(zhuǎn)移至所述新的虛擬主機包括: 從所述資源控制模塊的配置服務(wù)中下載配置文件,增加所述新創(chuàng)建的虛擬主機到監(jiān)控關(guān)聯(lián)點,并修改所述發(fā)生故障的虛擬主機上的業(yè)務(wù)路由表,以將發(fā)生故障的虛擬主機上的業(yè)務(wù)轉(zhuǎn)移至所述新的虛擬主機。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,該方法還包括:將所述第一服務(wù)器上的所述虛擬主機之外的全部虛擬主機上的業(yè)務(wù)轉(zhuǎn)移至所述第二服務(wù)器。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述資源控制模塊在所述第二服務(wù)器創(chuàng)建新的虛擬機包括: 所述資源控制模塊在資源庫中查找是否有合適的服務(wù)器資源,如果查找到有足夠的服務(wù)器資源,根據(jù)該資源創(chuàng)建所述新的虛擬主機并加鎖保護(hù); 從所述資源控制模塊的配置服務(wù)中下載配置文件,對創(chuàng)建成功的所述新的虛擬主機進(jìn)行初始化; 將創(chuàng)建成功的所述新的虛擬主機注冊到所述資源控制模塊中的資源監(jiān)控平臺,并在業(yè)務(wù)路由映射表中增加所述新的虛擬主機上的業(yè)務(wù)路由。
5.根據(jù)權(quán)利要求1或4所述的方法,其特征在于,在所述虛擬主機需要升級業(yè)務(wù)時,該方法還包括: 在所述資源控制模塊的資源庫中,查找所述需要實現(xiàn)升級業(yè)務(wù)的虛擬主機所在服務(wù)器的剩余資源,如果所述需要實現(xiàn)升級業(yè)務(wù)的虛擬主機所在服務(wù)器的剩余資源不足,則查找其他服務(wù)器的剩余資源; 如果查找到存在有空閑資源的服務(wù)器,則在該服務(wù)器上創(chuàng)建新的虛擬主機并鎖定資源; 從所述資源控制模塊的配置服務(wù)中下載配置文件,對所述創(chuàng)建成功的虛擬主機進(jìn)行初始化; 將所述創(chuàng)建成功的虛擬主機注冊到所述資源控制模塊中的資源監(jiān)控平 臺,并在業(yè)務(wù)路由映射表中增加所述虛擬主機上的業(yè)務(wù)路由。
6.一種虛擬主機業(yè)務(wù)裝置,其特征在于,至少包括資源控制模塊,以及兩個或兩個以上服務(wù)器;在虛擬主機故障且其所在的第一服務(wù)器不能實現(xiàn)容災(zāi)時, 所述資源控制模塊,用于查找具備空閑資源的第二服務(wù)器,在所述第二服務(wù)器中創(chuàng)建新的虛擬主機并更新業(yè)務(wù)路由;下載配置文件并按照更新后的所述業(yè)務(wù)路由將發(fā)生故障的虛擬主機上的業(yè)務(wù)轉(zhuǎn)移至所述新的虛擬主機。
7.根據(jù)權(quán)利要求6所述的虛擬主機業(yè)務(wù)裝置,其特征在于,還包括:流量匯聚入口、業(yè)務(wù)路由模塊,及用于存儲所有的用戶數(shù)據(jù)的存儲模塊;其中, 流量匯聚入口,用于提供訪問虛擬主機的統(tǒng)一接口 ;在用戶通過流量匯聚入口訪問時,調(diào)用業(yè)務(wù)路由模塊查詢業(yè)務(wù)路由,并根據(jù)查詢結(jié)果將流量分發(fā)至對應(yīng)的服務(wù)器中的虛擬主機; 業(yè)務(wù)路由模塊,其中存儲有虛擬主機的流量分發(fā)映射表;接收到來自流量匯聚入口的查詢,將當(dāng)前訪問的虛擬主機的業(yè)務(wù)路由返回給流量匯聚入口。
8.根據(jù)權(quán)利要求7所述的虛擬主機業(yè)務(wù)裝置,其特征在于,所述資源控制模塊,具體用于: 查找具備空閑資源的第二服務(wù)器,在所述第二服務(wù)器中創(chuàng)建新的虛擬主機并更新業(yè)務(wù)路由;從自身的配置服務(wù)中下載配置文件,增加所述新創(chuàng)建的虛擬主機到監(jiān)控關(guān)聯(lián)點,并修改所述發(fā)生故障的虛擬主機上的業(yè)務(wù)路由表,以將發(fā)生故障的虛擬主機上的業(yè)務(wù)轉(zhuǎn)移至所述新的虛擬主機。
9.根據(jù)權(quán)利要求8所述的虛擬主機業(yè)務(wù)裝置,其特征在于,所述資源控制模塊,還用于將所述第一服務(wù)器上的所述虛擬主機之外的全部虛擬主機上的業(yè)務(wù)轉(zhuǎn)移至所述第二服務(wù)器。
10.根據(jù)權(quán)利要求7所述的虛擬主機業(yè)務(wù)裝置,其特征在于,所述資源控制模塊,還用于: 在資源庫中查找是否有合適的服務(wù)器資源,在查找到有足夠的服務(wù)器資源時,根據(jù)該資源創(chuàng)建所述新的虛擬主機并加鎖保護(hù);從其配置服務(wù)中下載配置文件,對創(chuàng)建成功的所述新的虛擬主機進(jìn)行初始化;將創(chuàng)建成功的所述新的虛擬主機注冊到所述資源控制模塊中的資源監(jiān)控平臺,并在業(yè)務(wù)路由映射表中增加所述生成新的虛擬主機上的業(yè)務(wù)路由。
11.根據(jù)權(quán)利要求7或10所述的虛擬主機業(yè)務(wù)裝置,其特征在于,所述虛擬主機需要升級業(yè)務(wù)時, 所述資源控制模塊,還用于在所述需要實現(xiàn)升級業(yè)務(wù)的虛擬主機所在服務(wù)器的剩余資源不足時,查找其他服務(wù)器的剩余資源;在存在有空閑資源的服務(wù)器上創(chuàng)建新的虛擬主機并鎖定資源;從所述資源控制模塊的配置服務(wù)中下載配置文件,對所創(chuàng)建成功的虛擬主機進(jìn)行初始化;將創(chuàng)建成功的虛擬主機注冊到所述資源控制模塊的資源監(jiān)控平臺,在業(yè)務(wù)路由映射表中增加所述虛擬主機上的業(yè)務(wù)路由;并向所述業(yè)務(wù)路由模塊發(fā)送更新通知; 所述業(yè)務(wù)路由模塊,還用于接收到來自資源控制模塊的更新通知,更新流量分發(fā)映射表。
12.根據(jù)權(quán)利要求7所述的虛擬主機業(yè)務(wù)裝置,其特征在于,所述流量匯聚入口由一個或一個以上的呢組成。
【文檔編號】H04L12/24GK104468150SQ201310415508
【公開日】2015年3月25日 申請日期:2013年9月12日 優(yōu)先權(quán)日:2013年9月12日
【發(fā)明者】朱以軍, 楊名, 孫磊, 李群峰 申請人:阿里巴巴集團(tuán)控股有限公司