提高分布式系統(tǒng)中資源可用性的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明涉及分布式計算機(jī)系統(tǒng)【技術(shù)領(lǐng)域】,提供了一種提高分布式系統(tǒng)中資源可用性的方法及系統(tǒng)。該方法包括步驟:在部署資源的同時上報該資源的基本信息;實時監(jiān)控系統(tǒng)平臺中運行的資源狀態(tài)及資源運行環(huán)境的設(shè)備能力和狀態(tài);根據(jù)資源狀態(tài)及設(shè)備能力和狀態(tài)判斷是否滿足事件發(fā)生條件,根據(jù)不同的判斷結(jié)果拋出相應(yīng)的異常事件;響應(yīng)于各異常事件,為資源提供者提供資源移植向?qū)Х?wù)和/或為資源使用者提供資源訪問向?qū)Х?wù)。本發(fā)明的技術(shù)方案中,通過對大型分布式系統(tǒng)中的基礎(chǔ)資源進(jìn)行管理、監(jiān)控和調(diào)配,并基于監(jiān)控事件為用戶提供資源訪問/移植的跟蹤向?qū)Х?wù),既保證了用戶訪問資源的服務(wù)質(zhì)量和容災(zāi)能力,又保證了提供非硬件資源的持續(xù)性和可靠性。
【專利說明】提高分布式系統(tǒng)中資源可用性的方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)網(wǎng)絡(luò)【技術(shù)領(lǐng)域】,特別涉及一種提高分布式系統(tǒng)中資源可用性的方法及系統(tǒng)。
【背景技術(shù)】
[0002]隨著計算設(shè)備的多樣化和互聯(lián)網(wǎng)規(guī)模的擴(kuò)展,信息技術(shù)產(chǎn)業(yè)未來的發(fā)展特點必然是廣泛分布、海量數(shù)據(jù)、高并發(fā)度以及個性化服務(wù)。比如近年來興起的云計算技術(shù),就是通過互聯(lián)網(wǎng)為用戶提供按需分配、動態(tài)擴(kuò)展的服務(wù)和/或資源的一種大型分布式系統(tǒng),其實現(xiàn)了計算資源的整合,在為用戶提供多樣化的服務(wù)的同時大幅降低了服務(wù)的成本。
[0003]但是,對于分布式系統(tǒng)而言,隨著系統(tǒng)規(guī)模和數(shù)據(jù)量的增大,系統(tǒng)管理和維護(hù)的難度呈指數(shù)級增長,一旦發(fā)生故障勢必給用戶或系統(tǒng)帶來不可估量的損失。即便未發(fā)生故障,由于管理不善造成的負(fù)載不均衡也會給用戶的使用帶來不便;又或者,由于現(xiàn)有的網(wǎng)絡(luò)系統(tǒng)經(jīng)常要面對千萬級甚至億級的網(wǎng)絡(luò)服務(wù)和/或用戶訪問,大型分布式系統(tǒng)的用戶往往很難快速定位應(yīng)用端點。因此,如何提高系統(tǒng)的可用性是分布式系統(tǒng)必須考慮的一個問題。
[0004]現(xiàn)有技術(shù)中,集群系統(tǒng)中一般采用冗余的方式為系統(tǒng)提供高可用性,最通用的做法是使系統(tǒng)部件加倍,在一些部件不可用時,立即切換到備用的部件工作。一個強壯的高可用性系統(tǒng)通常指即使在系統(tǒng)硬件或軟件故障后也能繼續(xù)運行的系統(tǒng),強壯的高可用性系統(tǒng)不具有單點故障(單點故障是單個部件故障致使整個系統(tǒng)不可用的現(xiàn)象)。
[0005]但是集群系統(tǒng)的處理方式更多針對的是硬件故障,對于大型分布式系統(tǒng)(比如云計算平臺)來說,系統(tǒng)中普遍存在著大量的服務(wù)和虛擬資源,這些非硬件資源的故障同樣會影響系統(tǒng)的正常運行,若在服務(wù)失敗或虛擬資源失效時均采用切換硬件的方式解決故障,顯然又會嚴(yán)重影響系統(tǒng)性能??梢钥闯觯瑔渭兊挠布哂嘁褵o法解決云計算平臺中的高可用性問題,且部件的冗余又進(jìn)一步增大了系統(tǒng)管理(如負(fù)載均衡或服務(wù)/數(shù)據(jù)的獲取)的難度。
【發(fā)明內(nèi)容】
[0006](一 )要解決的技術(shù)問題
[0007]為了解決現(xiàn)有技術(shù)中大型分布式系統(tǒng)的資源可用性難以保證的問題,本發(fā)明提供了一種提高分布式系統(tǒng)中資源可用性的方法及系統(tǒng)。
[0008]( 二 )技術(shù)方案
[0009]為解決上述技術(shù)問題,本發(fā)明采用如下的技術(shù)方案實施:
[0010]首先,本發(fā)明提供了一種提高分布式系統(tǒng)中資源可用性的方法,所述方法包括步驟:
[0011]SI,在部署資源的同時向系統(tǒng)平臺上報該資源在系統(tǒng)平臺中運行時的基本信息;
[0012]S2,實時監(jiān)控系統(tǒng)平臺中運行的資源狀態(tài)以及資源運行環(huán)境的設(shè)備能力和狀態(tài);
[0013]S3,根據(jù)所述資源狀態(tài)以及所述設(shè)備能力和狀態(tài)判斷是否滿足事件發(fā)生條件,根據(jù)不同的判斷結(jié)果拋出相應(yīng)的異常事件;
[0014]S4,響應(yīng)于各異常事件,為資源提供者提供資源移植向?qū)Х?wù)和/或為資源使用者提供資源訪問向?qū)Х?wù)。
[0015]優(yōu)選地,步驟S3中,所述異常事件包括初次訪問事件、訪問異常事件、告警事件和資源移植事件。
[0016]優(yōu)選地,步驟S4中,響應(yīng)于初次訪問事件,為資源使用者提供資源訪問向?qū)Х?wù);響應(yīng)于資源移植事件,首先為資源提供者提供資源移植向?qū)Х?wù),在資源移植完成后再為資源使用者提供資源訪問向?qū)Х?wù)。
[0017]優(yōu)選地,步驟S4中,響應(yīng)于訪問異常事件或告警事件,首先確定資源狀態(tài),若資源正常運行,則在資源運行環(huán)境中進(jìn)行負(fù)載均衡并為資源使用者提供資源訪問向?qū)Х?wù);否貝U,先為資源提供者提供資源移植向?qū)Х?wù),在資源移植完成后再為資源使用者提供資源訪問向?qū)Х?wù)。
[0018]優(yōu)選地,步驟SI中,上報所述基本信息的過程包括步驟:
[0019]S11,客戶端通過S0AP/HTTP接口將注冊請求數(shù)據(jù)放入消息隊列中,資源注冊模塊獲取隊列中的注冊請求數(shù)據(jù),并將所述數(shù)據(jù)提交給目錄服務(wù)(如UDDI等服務(wù));
[0020]S12,目錄服務(wù)將所述數(shù)據(jù)寫入注冊表/數(shù)據(jù)庫中,并生成資源的service key ;
[0021]S13,資源注冊模塊將注冊結(jié)果和service key返回給客戶端,在客戶端保存所述service key。
[0022]優(yōu)選地,步驟S2中,監(jiān)控過程包括步驟:
[0023]S21,接收資源注冊模塊的通知,獲得新注冊的信息數(shù)據(jù);
[0024]S22,根據(jù)預(yù)設(shè)置的監(jiān)控調(diào)度策略,通過nrpe ssl通道向被監(jiān)控資源服務(wù)器發(fā)起監(jiān)控請求;
[0025]S23,被監(jiān)控的資源服務(wù)器收到請求后,執(zhí)行插件采集資源當(dāng)前狀態(tài)數(shù)據(jù)完成監(jiān)控請求;
[0026]S24,被監(jiān)控的資源服務(wù)器將采集的狀態(tài)數(shù)據(jù)通過NRPE協(xié)議返回給資源監(jiān)控模塊;
[0027]S25,將收到的采集數(shù)據(jù)寫入數(shù)據(jù)庫。
[0028]優(yōu)選地,所述方法還在作為數(shù)據(jù)源的多個活躍的數(shù)據(jù)庫實體之間進(jìn)行數(shù)據(jù)同步。
[0029]優(yōu)選地,所述數(shù)據(jù)同步具體包括步驟:
[0030]在源數(shù)據(jù)庫端,通過數(shù)據(jù)庫操作接口獲取數(shù)據(jù)庫中數(shù)據(jù)變更信息;
[0031]對所述數(shù)據(jù)變更信息進(jìn)行預(yù)置的過濾和轉(zhuǎn)換,通過JMS消息總線將其傳輸?shù)侥繕?biāo)數(shù)據(jù)庫端;
[0032]通過數(shù)據(jù)庫操作接口將所述數(shù)據(jù)變更信息復(fù)制到目標(biāo)數(shù)據(jù)庫中,在兩端數(shù)據(jù)庫間進(jìn)行數(shù)據(jù)的增量同步。
[0033]另一方面,本發(fā)明還同時提供一種提高分布式系統(tǒng)中資源可用性的系統(tǒng),所述系統(tǒng)包括:
[0034]注冊模塊,用于在部署資源的同時向系統(tǒng)平臺上報該資源在系統(tǒng)平臺中運行時的基本信息;
[0035]監(jiān)控模塊,用于實時監(jiān)控系統(tǒng)平臺中運行的資源狀態(tài)以及資源運行環(huán)境的設(shè)備能力和狀態(tài);
[0036]事件模塊,用于根據(jù)所述資源狀態(tài)以及所述設(shè)備能力和狀態(tài)判斷是否滿足事件發(fā)生條件,根據(jù)不同的判斷結(jié)果拋出相應(yīng)的異常事件;
[0037]向?qū)K,用于響應(yīng)于各異常事件,為資源提供者提供資源移植向?qū)Х?wù)和/或為資源使用者提供資源訪問向?qū)Х?wù)。
[0038]優(yōu)選地,所述系統(tǒng)還包括數(shù)據(jù)同步模塊,用于在作為數(shù)據(jù)源的多個活躍的數(shù)據(jù)庫實體之間進(jìn)行數(shù)據(jù)同步。
[0039](三)有益效果
[0040]本發(fā)明的技術(shù)方案中,通過對大型分布式系統(tǒng)中的基礎(chǔ)資源進(jìn)行管理、監(jiān)控和調(diào)配,基于監(jiān)控事件為用戶提供資源訪問/移植的跟蹤向?qū)Х?wù),一方面保證了用戶訪問資源的服務(wù)質(zhì)量和容災(zāi)能力,另一方面又保證了提供非硬件資源的持續(xù)性和可靠性。此外,通過向?qū)Х?wù),本發(fā)明的技術(shù)方案在增強基礎(chǔ)資源和計算資源的可用性的同時使得系統(tǒng)管理更加透明簡潔,降低了資源管理和維護(hù)的難度。
【具體實施方式】
[0041]下面將對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,所描述的實施例是本發(fā)明的一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0042]傳統(tǒng)的計算機(jī)系統(tǒng)的運營大多基于相互獨立的硬件資源,因而系統(tǒng)的高可用性也主要是針對硬件資源的冗余處理,但在大型分布式系統(tǒng)中,尤其是時下的云計算平臺中,系統(tǒng)資源進(jìn)一步細(xì)分為服務(wù)、數(shù)據(jù)、虛擬機(jī)和/或?qū)嶓w設(shè)備,單純的硬件冗余已無法適應(yīng)這類系統(tǒng)的高可用性要求。
[0043]在本發(fā)明的實施例中,提高資源可用性的方法可作為一個服務(wù)在系統(tǒng)平臺中運行,對該平臺及其上的服務(wù)的運行進(jìn)行監(jiān)控,并對該平臺中的資源進(jìn)行管理和維護(hù);該服務(wù)的根本目標(biāo)是為使用該服務(wù)的大型分布式系統(tǒng)平臺和運行于該平臺上的其他服務(wù)提供資源(通常包括服務(wù)和/或數(shù)據(jù))的高可靠、高可信保證。在一個優(yōu)選的實施例中,本發(fā)明的技術(shù)方案針對一個云計算平臺進(jìn)行管理和維護(hù),該云計算平臺可為各種網(wǎng)絡(luò)服務(wù)提供資源支持和運行環(huán)境,包括服務(wù)器資源、存儲資源、網(wǎng)絡(luò)資源以及支持服務(wù)和數(shù)據(jù)運行的軟件環(huán)境(如操作系統(tǒng)、J2EE服務(wù)運行環(huán)境和數(shù)據(jù)庫軟件等)。云計算平臺中的非硬件資源主要以服務(wù)或數(shù)據(jù)的形式存在,優(yōu)選地,服務(wù)是基于SOA架構(gòu)的J2EEServletS,提供對外的WebService接口 ;服務(wù)的數(shù)據(jù)源為關(guān)系型數(shù)據(jù)庫,服務(wù)與數(shù)據(jù)源在系統(tǒng)中均部署有多個備份。
[0044]在該優(yōu)選的實施例中,本發(fā)明的提高分布式系統(tǒng)中資源可用性的方法一般包括資源信息管理、監(jiān)控、事件報警和服務(wù)向?qū)У葞讉€基本步驟,各步驟具體為:
[0045]首先,獲取在系統(tǒng)平臺中運行的各項資源的基本信息。由于系統(tǒng)的運行維護(hù)首先需要了解被調(diào)度者的基本情況,隨后才能在被調(diào)度者的能力范圍內(nèi)進(jìn)行綜合考量和調(diào)度。對于傳統(tǒng)的基于硬件資源的負(fù)載均衡,信息采集通常采用現(xiàn)有技術(shù)周期性地收集設(shè)備的硬件能力和狀態(tài)即可;但對于云計算平臺,數(shù)據(jù)和服務(wù)都是動態(tài)變化的,隨時可能有新的數(shù)據(jù)源或服務(wù)加入或退出系統(tǒng),每項資源的能力還可以動態(tài)設(shè)定,因而很難在資源運行初期就準(zhǔn)確掌握數(shù)據(jù)和/或服務(wù)提供者的能力、內(nèi)容以及訪問方式等關(guān)鍵信息。為此,本發(fā)明的實施例中提供了注冊流程,在部署數(shù)據(jù)源和/或服務(wù)的同時就主動上報資源的基本信息,比如由數(shù)據(jù)和服務(wù)提供者向系統(tǒng)平臺注冊上述關(guān)鍵信息。當(dāng)然,若不要求在運行初期就了解資源的基本情況,也可以根據(jù)長時間的運行記錄進(jìn)行統(tǒng)計分析,推斷出上述關(guān)鍵信息,但這勢必會對系統(tǒng)初期的穩(wěn)定性造成一定影響。
[0046]其次,實時監(jiān)控服務(wù)和數(shù)據(jù)源的狀態(tài)以及其運行環(huán)境的資源能力和狀態(tài)。在獲取數(shù)據(jù)和服務(wù)提供者注冊信息之后,系統(tǒng)需要實時監(jiān)控各資源的狀態(tài)信息,比如可用性、負(fù)載等;同時,系統(tǒng)還需要實時監(jiān)控服務(wù)和數(shù)據(jù)源運行環(huán)境的資源能力和狀態(tài),這些信息是系統(tǒng)實現(xiàn)各項控制調(diào)度功能(如訪問導(dǎo)航、遷移導(dǎo)航、訪問控制等功能)的依據(jù)。
[0047]再次,根據(jù)監(jiān)控的狀態(tài)判斷是否滿足系統(tǒng)事件的發(fā)生條件,基于判斷結(jié)果拋出具體的異常事件。為了使對資源的監(jiān)控、管理和維護(hù)不影響資源的正常運行,本發(fā)明的實施例中采用基于事件觸發(fā)的方式對資源進(jìn)行控制。具體地,當(dāng)將資源的基本信息上報給系統(tǒng)時(即在系統(tǒng)平臺中進(jìn)行注冊時),需要提供異常事件的定義,包括事件發(fā)生條件、外部處理接口和外部通知接口等。事件處理模塊周期性地從數(shù)據(jù)庫中取出資源監(jiān)控信息,按照異常事件的表達(dá)式進(jìn)行計算,如果滿足預(yù)定義的發(fā)生條件則拋出事件信息進(jìn)行提示,隨后調(diào)用事件的外部處理接口或外部通知接口來觸發(fā)下一步的操作。
[0048]最后,為系統(tǒng)平臺用戶提供資源向?qū)Х?wù)。本發(fā)明的基本目標(biāo)就是使系統(tǒng)在任何狀況下都能被用戶所使用,由于在云計算平臺中涉及到的資源類型多、數(shù)目大,且提供資源和使用資源的用戶數(shù)量龐大、分布范圍廣,在保證可靠性的同時還需要考慮用戶訪問的便利性(難以被用戶訪問到的資源一般也被視為不可靠資源)。為此,本發(fā)明的實施例中,基于資源能力和使用情況,根據(jù)預(yù)定策略為用戶(包括資源提供者和資源使用者)提供向?qū)Х?wù)。具體地,基于各類異常事件,在資源故障或因使用情況而需要調(diào)整(包括系統(tǒng)自動調(diào)整或提供者手動調(diào)整等)時,為資源提供者提供資源移植向?qū)Х?wù);在資源正常運行時或成功移植后,為資源使用者提供資源訪問向?qū)Х?wù)。通過這種方式,使得各類資源可以動態(tài)且合理地分配到各節(jié)點,同時可為使用者提供最適宜的訪問節(jié)點和路由,實現(xiàn)了數(shù)據(jù)和服務(wù)調(diào)度和訪問的透明性,保證了系統(tǒng)整體的可靠性。
[0049]在更優(yōu)選的實施例中,考慮到云計算技術(shù)中經(jīng)常要面對異構(gòu)資源,不同的資源提供者很少關(guān)注其他資源的兼容性,因此,本發(fā)明進(jìn)一步對上述各步驟的功能實現(xiàn)提供了兩種模式的支持。一方面,本發(fā)明的技術(shù)方案中定義了標(biāo)準(zhǔn)的接口規(guī)范,如果云平臺和/或其中運行的服務(wù)支持該接口規(guī)范,服務(wù)可以主動通過接口實現(xiàn)注冊,而系統(tǒng)也可以直接調(diào)用這些接口對資源和服務(wù)進(jìn)行監(jiān)控。另一方面,如果云平臺和/或其中運行的服務(wù)不能直接支持該接口規(guī)范,本發(fā)明中進(jìn)一步提供了遠(yuǎn)端服務(wù)代理,系統(tǒng)將通過該遠(yuǎn)端服務(wù)代理完成相應(yīng)的注冊和監(jiān)控功能。在一個優(yōu)選的實施例中,遠(yuǎn)端服務(wù)代理可以是NRPE(Nagi0SRemote Plugin Executor) Daemon 程序。
[0050]具體地,注冊步驟通過系統(tǒng)的注冊模塊(以運行在系統(tǒng)中的注冊服務(wù)形式存在)實現(xiàn),注冊模塊又進(jìn)一步分為服務(wù)注冊模塊和數(shù)據(jù)注冊模塊。在注冊步驟中,根據(jù)數(shù)據(jù)或服務(wù)是否支持標(biāo)準(zhǔn)的注冊接口規(guī)范,注冊過程分為直接注冊和代理注冊兩種模式:
[0051]a.直接注冊:當(dāng)數(shù)據(jù)庫和服務(wù)啟動初始化完成后,直接調(diào)用注冊模塊接口(SOAP/HTTP)實現(xiàn)注冊;
[0052]b.代理注冊:遠(yuǎn)端服務(wù)代理根據(jù)系統(tǒng)設(shè)置,在監(jiān)測到數(shù)據(jù)庫和服務(wù)啟動初始化完成后,調(diào)用注冊模塊接口(S0AP/HTTP)實現(xiàn)代理注冊。
[0053]不管采用上述何種模式,調(diào)用接口實現(xiàn)的具體注冊流程為:
[0054]1)客戶端注冊模塊(運行在服務(wù)和/或數(shù)據(jù)服務(wù)器中的客戶端應(yīng)用)通過SOAP/HTTP接口將注冊請求數(shù)據(jù)放入消息隊列中,服務(wù)注冊模塊和數(shù)據(jù)注冊模塊獲取隊列中的注冊請求數(shù)據(jù);
[0055]2)系統(tǒng)注冊模塊通過服務(wù)注冊模塊和數(shù)據(jù)注冊模塊將注冊數(shù)據(jù)提交給目錄服務(wù);一般情況下,服務(wù)的注冊信息包括服務(wù)名稱和描述、服務(wù)訪問端點、服務(wù)訪問綁定協(xié)議、月艮務(wù)界面、服務(wù)功能操作、服務(wù)調(diào)用信息、服務(wù)狀態(tài)查詢方式等;數(shù)據(jù)源的注冊信息包括數(shù)據(jù)源名稱和描述、數(shù)據(jù)訪問端點、數(shù)據(jù)訪問綁定協(xié)議、數(shù)據(jù)定義信息、數(shù)據(jù)狀態(tài)查詢方式等。
[0056]3)目錄服務(wù)將注冊數(shù)據(jù)寫入注冊表/數(shù)據(jù)庫中,并生成該服務(wù)和數(shù)據(jù)的servicekey ;
[0057]4)系統(tǒng)注冊模塊將注冊結(jié)果和service key返回給客戶端注冊模塊,客戶端保存service key。
[0058]監(jiān)控步驟通過系統(tǒng)的監(jiān)控模塊實現(xiàn),系統(tǒng)通過SSL (SecureSockets Layer,安全套接層)連接調(diào)用在需要監(jiān)控的服務(wù)器上部署的遠(yuǎn)端服務(wù)代理來監(jiān)控系統(tǒng)狀態(tài)、資源使用情況、以及在服務(wù)器上運行的服務(wù)狀態(tài)。系統(tǒng)通過遠(yuǎn)端服務(wù)代理獲得實時的服務(wù)可用狀態(tài)和運行狀態(tài)信息,并將獲取的數(shù)據(jù)及時更新資源服務(wù)信息數(shù)據(jù)庫。
[0059]資源監(jiān)控的流程如下:
[0060]1)接收系統(tǒng)注冊模塊的通知,獲得新注冊的信息數(shù)據(jù);
[0061]2)根據(jù)預(yù)設(shè)置的監(jiān)控調(diào)度策略,通過nrpe ssl通道向被監(jiān)控服務(wù)和/或數(shù)據(jù)服務(wù)器發(fā)起監(jiān)控請求;
[0062]3)被監(jiān)控服務(wù)和/或數(shù)據(jù)服務(wù)器收到請求后,執(zhí)行插件采集資源當(dāng)前狀態(tài)數(shù)據(jù)完成監(jiān)控請求;
[0063]4)被監(jiān)控服務(wù)和/或數(shù)據(jù)服務(wù)器將采集的狀態(tài)數(shù)據(jù)通過NRPE協(xié)議返回給資源監(jiān)控模塊;
[0064]5)將收到的采集數(shù)據(jù)寫入數(shù)據(jù)庫。
[0065]事件的觸發(fā)和處理是監(jiān)控的目的和資源向?qū)У钠鹗?,為減輕監(jiān)控服務(wù)對資源運行的影響,監(jiān)控模塊作為獨立的服務(wù)(或服務(wù)器系統(tǒng)進(jìn)程等)運行,定期對采集數(shù)據(jù)進(jìn)行計算分析,根據(jù)異常事件的定義判斷是否發(fā)生了對應(yīng)的事件,并調(diào)用相關(guān)接口將異常事件通知給向?qū)K進(jìn)行下一步處理。
[0066]資源向?qū)潜景l(fā)明的技術(shù)方案中高可用性實現(xiàn)的保障,具體地,資源向?qū)в旨?xì)分為訪問向?qū)Ш鸵浦蚕驅(qū)?。其一方面在系統(tǒng)故障或負(fù)載不均衡時協(xié)助進(jìn)行資源移植(復(fù)制轉(zhuǎn)移),保證了資源的可靠性;另一方面在大數(shù)據(jù)、多用戶及廣泛分布的環(huán)境下提供訪問透明性控制,保證了資源的易用性。其中,訪問向?qū)橘Y源的使用者提供訪問所需資源的向?qū)?,其響?yīng)于特定的訪問事件,如用戶對資源的初次訪問事件,根據(jù)提供者的注冊信息、資源能力、采集到的實時資源利用狀態(tài)信息(如資源負(fù)載等)以及預(yù)先定義的訪問策略,計算出最適宜的訪問端點提供給用戶。該最適宜的訪問端點在同一用戶再次訪問該資源時可直接提供給用戶,但如果用戶多次訪問失敗、資源長時間無響應(yīng)或系統(tǒng)負(fù)載嚴(yán)重不平衡時,通常會產(chǎn)生訪問異常事件或告警事件,則可能會引起資源移植過程,系統(tǒng)在資源移植后穩(wěn)定運行時會再次為用戶提供資源訪問向?qū)Х?wù)。通常情況下,資源訪問向?qū)Х?wù)的具體流程如下:
[0067]接收資源使用者發(fā)出的資源訪問請求,基于該請求向目錄服務(wù)發(fā)起查詢,獲取符合請求的資源列表;
[0068]對列表中的每個資源項進(jìn)行監(jiān)控信息檢索,獲取資源的基本信息、資源狀態(tài)信息、設(shè)備能力和狀態(tài)信息;
[0069]計算最適宜的資源訪問端點,并將結(jié)果返回給資源使用者。
[0070]資源移植向?qū)t是在資源由于軟硬件故障或系統(tǒng)負(fù)載原因等需要動態(tài)移植到其他備份上時(此時通常會產(chǎn)生訪問異常事件或告警事件),又或者是資源提供者主動進(jìn)行資源移植(此時產(chǎn)生資源移植事件),根據(jù)資源的注冊信息、相關(guān)的系統(tǒng)資源能力、采集到的實時資源利用狀態(tài)信息(資源負(fù)載等)以及預(yù)定義的移植策略,計算出資源最適宜的移植端點。隨后根據(jù)記錄的資源基本信息和狀態(tài)信息,將與事件對應(yīng)的資源完整地遷移到該最適宜的移植端點上,在移植完成后對應(yīng)修改資源的注冊信息,并在用戶訪問時啟動資源訪問向?qū)А?br>
[0071]更進(jìn)一步地, 為保證數(shù)據(jù)的可靠性和服務(wù)遷移的成功率,使得服務(wù)在保持當(dāng)前數(shù)據(jù)內(nèi)容的狀態(tài)下進(jìn)行動態(tài)移植,本發(fā)明還可在作為數(shù)據(jù)源的多個活躍的數(shù)據(jù)庫實體之間進(jìn)行數(shù)據(jù)同步。在優(yōu)選的實施例中,系統(tǒng)在各個數(shù)據(jù)庫的活躍節(jié)點上部署關(guān)系型數(shù)據(jù)庫數(shù)據(jù)復(fù)制同步工具來實現(xiàn)數(shù)據(jù)的增量同步:在源數(shù)據(jù)庫端,數(shù)據(jù)同步復(fù)制工具通過數(shù)據(jù)庫操作接口獲取數(shù)據(jù)庫中數(shù)據(jù)變更信息;在經(jīng)過預(yù)置的過濾和轉(zhuǎn)換后,通過JMS消息總線可靠的傳輸?shù)侥繕?biāo)數(shù)據(jù)庫端;再通過數(shù)據(jù)庫操作接口將數(shù)據(jù)變更復(fù)制到目標(biāo)數(shù)據(jù)庫中,達(dá)到兩端數(shù)據(jù)庫數(shù)據(jù)的增量同步。本發(fā)明優(yōu)選實施例中的數(shù)據(jù)同步提供對Oracle和MySQL數(shù)據(jù)庫的支持,主要通過對數(shù)據(jù)庫(Oracle和MySQL)的數(shù)據(jù)變更日志分析獲得數(shù)據(jù)變更信息,t匕如利用數(shù)據(jù)庫開發(fā)者提供的工具(如OracleGolden Gate)完成。隨后,將采集到的數(shù)據(jù)變更信息自動轉(zhuǎn)化為文本格式的可執(zhí)行的SQL語句序列文本;根據(jù)預(yù)置策略,對生成的SQL文本實行過濾、語句轉(zhuǎn)換、編碼轉(zhuǎn)換、類型轉(zhuǎn)換等,以滿足業(yè)務(wù)系統(tǒng)及遠(yuǎn)端數(shù)據(jù)庫的要求;然后將生成的SQL文本可靠高效的傳輸?shù)揭粋€或多個遠(yuǎn)程端點,提供增量傳輸和斷點續(xù)傳支持;最后將接收到的SQL文本應(yīng)用于目標(biāo)數(shù)據(jù)庫,通過在目標(biāo)數(shù)據(jù)庫執(zhí)行該SQL文本實現(xiàn)數(shù)據(jù)復(fù)制同步。本發(fā)明的技術(shù)方案中還進(jìn)一步提供對數(shù)據(jù)庫Checkpoint支持,用于實現(xiàn)基于Checkpoint的數(shù)據(jù)增量復(fù)制同步。
[0072]本領(lǐng)域普通技術(shù)人員可以理解,實現(xiàn)上述實施例方法中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件來完成,所述的程序可以存儲于一計算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時可實現(xiàn)上述實施例方法中的各個步驟,而所述的存儲介質(zhì)可以是:R0M/RAM、磁碟、硬盤、光盤、存儲卡等。因此,與本發(fā)明的方法相對應(yīng)的,本發(fā)明還同時包括一種高可用安全增強服務(wù)系統(tǒng),該系統(tǒng)包括:
[0073]注冊模塊,用于在部署數(shù)據(jù)源和/或服務(wù)的同時由數(shù)據(jù)和/或服務(wù)提供者向云計算平臺注冊,獲取云計算平臺中運行的各項資源的基本信息;
[0074]監(jiān)控模塊,用于實時監(jiān)控服務(wù)和數(shù)據(jù)源的狀態(tài)以及其運行環(huán)境的資源能力和狀態(tài);
[0075]導(dǎo)航模塊,用于根據(jù)提供者注冊的基本信息、資源能力、實時監(jiān)控的狀態(tài)信息以及導(dǎo)航策略,在資源故障或因使用情況而需要調(diào)整時,為資源提供者提供遷移導(dǎo)航服務(wù);在資源正常運行或遷移后,為資源使用者提供訪問導(dǎo)航服務(wù)。
[0076]綜上所述,本發(fā)明的技術(shù)方案中,通過對大型分布式系統(tǒng)(尤其是云計算平臺)中的基礎(chǔ)資源執(zhí)行調(diào)配監(jiān)測,并通過提供注冊管理及其訪問/遷移導(dǎo)航的跟蹤服務(wù),增強了基礎(chǔ)資源和計算資源的可用性;此外,通過導(dǎo)航服務(wù),本發(fā)明的技術(shù)方案即增強了服務(wù)在網(wǎng)絡(luò)擁堵情況下的質(zhì)量保證能力,又增強了服務(wù)在區(qū)域性網(wǎng)絡(luò)癱瘓情況下的容災(zāi)保證能力。
[0077]以上實施方式僅用于說明本發(fā)明,而并非對本發(fā)明的限制,有關(guān)【技術(shù)領(lǐng)域】的普通技術(shù)人員,在不脫離本發(fā)明的精神和范圍的情況下,還可以做出各種變化和變型,因此所有等同的技術(shù)方案也屬于本發(fā)明的范疇,本發(fā)明的專利保護(hù)范圍應(yīng)由權(quán)利要求限定。
【權(quán)利要求】
1.一種提高分布式系統(tǒng)中資源可用性的方法,其特征在于,所述方法包括步驟: SI,在部署資源的同時向系統(tǒng)平臺上報該資源在系統(tǒng)平臺中運行時的基本信息; S2,實時監(jiān)控系統(tǒng)平臺中運行的資源狀態(tài)以及資源運行環(huán)境的設(shè)備能力和狀態(tài); S3,根據(jù)所述資源狀態(tài)以及所述設(shè)備能力和狀態(tài)判斷是否滿足事件發(fā)生條件,根據(jù)不同的判斷結(jié)果拋出相應(yīng)的異常事件; S4,響應(yīng)于各異常事件,為資源提供者提供資源移植向?qū)Х?wù)和/或為資源使用者提供資源訪問向?qū)Х?wù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟S3中,所述異常事件包括初次訪問事件、訪問異常事件、告警事件和資源移植事件。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟S4中,響應(yīng)于初次訪問事件,為資源使用者提供資源訪問向?qū)Х?wù);響應(yīng)于資源移植事件,首先為資源提供者提供資源移植向?qū)Х?wù),在資源移植完成后再為資源使用者提供資源訪問向?qū)Х?wù)。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟S4中,響應(yīng)于訪問異常事件或告警事件,首先確定資源狀態(tài),若資源正常運行,則在資源運行環(huán)境中進(jìn)行負(fù)載均衡并為資源使用者提供資源訪問向?qū)Х?wù);否則,先為資源提供者提供資源移植向?qū)Х?wù),在資源移植完成后再為資源使用者提供資源訪問向?qū)Х?wù)。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟SI中,上報所述基本信息的過程包括步驟: S11,客戶端通過SOAP/HTTP接口將注冊請求數(shù)據(jù)放入消息隊列中,資源注冊模塊獲取隊列中的注冊請求數(shù)據(jù),并將所述數(shù)據(jù)提交給目錄服務(wù); S12,目錄服務(wù)將所述數(shù)據(jù)寫入注冊表/數(shù)據(jù)庫中,并生成資源的service key ; S13,資源注冊模塊將注冊結(jié)果和service key返回給客戶端,在客戶端保存所述service key。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,步驟S2中,監(jiān)控過程包括步驟: S21,接收資源注冊模塊的通知,獲得新注冊的信息數(shù)據(jù); S22,根據(jù)預(yù)設(shè)置的監(jiān)控調(diào)度策略,通過nrpe ssl通道向被監(jiān)控資源服務(wù)器發(fā)起監(jiān)控請求; S23,被監(jiān)控的資源服務(wù)器收到請求后,執(zhí)行插件采集資源當(dāng)前狀態(tài)數(shù)據(jù)完成監(jiān)控請求; S24,被監(jiān)控的資源服務(wù)器將采集的狀態(tài)數(shù)據(jù)通過NRPE協(xié)議返回給資源監(jiān)控模塊; S25,將收到的采集數(shù)據(jù)寫入數(shù)據(jù)庫。
7.根據(jù)權(quán)利要求1-6中任一項所述的方法,其特征在于,所述方法還在作為數(shù)據(jù)源的多個活躍的數(shù)據(jù)庫實體之間進(jìn)行數(shù)據(jù)同步。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述數(shù)據(jù)同步具體包括步驟: 在源數(shù)據(jù)庫端,通過數(shù)據(jù)庫操作接口獲取數(shù)據(jù)庫中數(shù)據(jù)變更信息; 對所述數(shù)據(jù)變更信息進(jìn)行預(yù)置的過濾和轉(zhuǎn)換,通過JMS消息總線將其傳輸?shù)侥繕?biāo)數(shù)據(jù)庫端; 通過數(shù)據(jù)庫操作接口將所述數(shù)據(jù)變更信息復(fù)制到目標(biāo)數(shù)據(jù)庫中,在兩端數(shù)據(jù)庫間進(jìn)行數(shù)據(jù)的增量同步。
9.一種提高分布式系統(tǒng)中資源可用性的系統(tǒng),其特征在于,所述系統(tǒng)包括: 注冊模塊,用于在部署資源的同時向系統(tǒng)平臺上報該資源在系統(tǒng)平臺中運行時的基本信息; 監(jiān)控模塊,用于實時監(jiān)控系統(tǒng)平臺中運行的資源狀態(tài)以及資源運行環(huán)境的設(shè)備能力和狀態(tài); 事件模塊,用于根據(jù)所述資源狀態(tài)以及所述設(shè)備能力和狀態(tài)判斷是否滿足事件發(fā)生條件,根據(jù)不同的判斷結(jié)果拋出相應(yīng)的異常事件; 向?qū)K,用于響應(yīng)于各異常事件,為資源提供者提供資源移植向?qū)Х?wù)和/或為資源使用者提供資源訪問向?qū)Х?wù)。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括數(shù)據(jù)同步模塊,用于在作為數(shù)據(jù)源的多個 活躍的數(shù)據(jù)庫實體之間進(jìn)行數(shù)據(jù)同步。
【文檔編號】H04L29/08GK103905234SQ201210580070
【公開日】2014年7月2日 申請日期:2012年12月28日 優(yōu)先權(quán)日:2012年12月28日
【發(fā)明者】孫曉光, 朱海東, 王明哲 申請人:北京友友天宇系統(tǒng)技術(shù)有限公司