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