◇成都職業(yè)技術(shù)學(xué)院 姚 蕾
隨著一體化“網(wǎng)云”全面推廣上線應(yīng)用,云應(yīng)用的范圍越來(lái)越廣泛,越來(lái)越多的業(yè)務(wù)系統(tǒng)開展應(yīng)用的遷移上云工作,但在云化環(huán)境中的數(shù)據(jù)庫(kù)應(yīng)用進(jìn)展緩慢,主要是因?yàn)楹芏鄻I(yè)務(wù)應(yīng)用仍依賴于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)架構(gòu)。傳統(tǒng)數(shù)據(jù)庫(kù)架構(gòu)應(yīng)用與當(dāng)前虛擬化的云平臺(tái)的不兼容,導(dǎo)致數(shù)據(jù)庫(kù)資源無(wú)法充分發(fā)揮云平臺(tái)靈活、高可靠、高度自愈服務(wù)的能力,傳統(tǒng)的數(shù)據(jù)庫(kù)在當(dāng)前虛擬化構(gòu)建的云平臺(tái)上無(wú)法發(fā)揮其良好的性能,影響業(yè)務(wù)應(yīng)用。同時(shí),云化環(huán)境的數(shù)據(jù)種類復(fù)雜,數(shù)據(jù)形式各異,云化環(huán)境數(shù)據(jù)庫(kù)資源的數(shù)據(jù)有效備份將變得越來(lái)越復(fù)雜,如何有效保證在云化環(huán)境實(shí)現(xiàn)數(shù)據(jù)的有效備份也是亟需解決的問(wèn)題。嚴(yán)重影響核心業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫(kù)上云服務(wù)。
我們提出的“基于物理資源的高可用自服務(wù)數(shù)據(jù)庫(kù)云關(guān)鍵技術(shù)”研究,旨在針對(duì)國(guó)網(wǎng)云環(huán)境下的數(shù)據(jù)庫(kù)資源云化服務(wù)的功能現(xiàn)狀進(jìn)行分析研究,在保障業(yè)務(wù)應(yīng)用系統(tǒng)在云環(huán)境下平穩(wěn)、安全、高效運(yùn)行的前提下,緊跟“大云物移”的發(fā)展方針,圍繞云化環(huán)境的數(shù)據(jù)庫(kù)服務(wù)資源的統(tǒng)一靈活調(diào)度、管理、分配、編排使用、數(shù)據(jù)保護(hù)等功能方向開展深入研究,設(shè)計(jì)適用于云環(huán)境數(shù)據(jù)庫(kù)資源管理軟件架構(gòu),開發(fā)完成高可用自服務(wù)的數(shù)據(jù)庫(kù)云組件,設(shè)計(jì)開發(fā)完成云化環(huán)境數(shù)據(jù)庫(kù)的備份服務(wù)組件,形成業(yè)務(wù)系統(tǒng)的數(shù)據(jù)庫(kù)上云服務(wù)架構(gòu)方案,為企業(yè)信息系統(tǒng)的數(shù)據(jù)庫(kù)上云服務(wù)提供建議,為企業(yè)信息系統(tǒng)應(yīng)用整體遷移上云服務(wù)提供指導(dǎo)。
隨著云平臺(tái)的推廣使用,此云平臺(tái)應(yīng)用已初見成效,部分業(yè)務(wù)系統(tǒng)應(yīng)用開始逐步向云平臺(tái)遷移,云平臺(tái)存在針對(duì)基于物理資源部署數(shù)據(jù)庫(kù)服務(wù)的支撐能力不足、云平臺(tái)支撐的數(shù)據(jù)庫(kù)服務(wù)類型局限性、云平臺(tái)無(wú)法兼容多樣化的數(shù)據(jù)庫(kù)資源等問(wèn)題,影響業(yè)務(wù)系統(tǒng)數(shù)據(jù)庫(kù)的上云服務(wù)工作開展?;诋?dāng)前數(shù)據(jù)庫(kù)上云服務(wù)應(yīng)用的迫切需求,我們主要研究基于物理資源的高可用自服務(wù)數(shù)據(jù)庫(kù)云[1],提出網(wǎng)云化環(huán)境下各類型數(shù)據(jù)庫(kù)資源的統(tǒng)一分配、自動(dòng)部署、敏捷交付、集中監(jiān)控、高可用、故障自愈、可擴(kuò)展、智能化負(fù)載均衡、動(dòng)態(tài)資源調(diào)度、智能運(yùn)維、高性能數(shù)據(jù)保護(hù)策略及算法等應(yīng)用的關(guān)鍵技術(shù),為云平臺(tái)實(shí)現(xiàn)納管各種資源的數(shù)據(jù)庫(kù)、實(shí)現(xiàn)云化環(huán)境不同種類數(shù)據(jù)庫(kù)的安裝部署、應(yīng)用、監(jiān)控、運(yùn)維、故障處理、數(shù)據(jù)保護(hù)等提供標(biāo)準(zhǔn)化、自動(dòng)化的應(yīng)用經(jīng)驗(yàn)和技術(shù)積累,為數(shù)據(jù)庫(kù)上云服務(wù)提供技術(shù)支撐。
主要基于服務(wù)器負(fù)載均衡算法、動(dòng)態(tài)資源調(diào)度模型進(jìn)行相關(guān)研究,通過(guò)服務(wù)器負(fù)載均衡算法確定數(shù)據(jù)庫(kù)服務(wù)器的初始安裝和運(yùn)行節(jié)點(diǎn)[2],通過(guò)動(dòng)態(tài)資源調(diào)度模型根據(jù)服務(wù)器的當(dāng)前負(fù)載情況決定是否需要進(jìn)行數(shù)據(jù)庫(kù)資源動(dòng)態(tài)調(diào)度和如何進(jìn)行資源調(diào)度,從而既實(shí)現(xiàn)服務(wù)器資源的節(jié)約化使用,又避免業(yè)務(wù)高峰時(shí)數(shù)據(jù)庫(kù)成為系統(tǒng)的性能瓶頸。
服務(wù)器的負(fù)載均衡算法種類有很多種,常見的負(fù)載均衡算法包括輪詢法、隨機(jī)法、源地址哈希法、加權(quán)輪詢法、加權(quán)隨機(jī)法、最小連接法等,應(yīng)根據(jù)具體的使用場(chǎng)景選取對(duì)應(yīng)的算法。
(1)最小連接數(shù)法。實(shí)際上請(qǐng)求次數(shù)的均衡并不代表負(fù)載的均衡,最小連接數(shù)法則比較靈活和智能,由于后臺(tái)服務(wù)器的配置不盡相同,對(duì)請(qǐng)求的處理有快有慢,它正是根據(jù)后端服務(wù)器當(dāng)前的連接情況,動(dòng)態(tài)的選取其中當(dāng)前積壓連接數(shù)最少的一臺(tái)服務(wù)器來(lái)處理當(dāng)前請(qǐng)求[3],盡可能的提高后臺(tái)服務(wù)器利用率,將負(fù)載合理的分流到每一臺(tái)服務(wù)器[4]。
(2)隨機(jī)法。通過(guò)系統(tǒng)隨機(jī)函數(shù),根據(jù)后臺(tái)服務(wù)器列表的大小值來(lái)隨機(jī)選取其中一臺(tái)進(jìn)行訪問(wèn)[3]。由概率統(tǒng)計(jì)理論可以得知,隨著調(diào)用量的增大,其實(shí)際效果越來(lái)越接近于平均分配流量到后臺(tái)的每一臺(tái)服務(wù)器,也就是輪詢法的效果。
(3)輪詢(Round Robin)法。輪詢很容易實(shí)現(xiàn),將請(qǐng)求按順序輪流分配到后臺(tái)服務(wù)器上,均衡的對(duì)待每一臺(tái)服務(wù)器,而不關(guān)心服務(wù)器實(shí)際的連接數(shù)和當(dāng)前的系統(tǒng)負(fù)載[5]。
(4)加權(quán)輪詢(Weight Round Robin)法。不同的后臺(tái)服務(wù)器可能機(jī)器的配置和當(dāng)前系統(tǒng)的負(fù)載并不相同,因此它們的抗壓能力也不一樣。跟配置高、負(fù)載低的機(jī)器分配更高的權(quán)重,使其能處理更多的請(qǐng)求,而配置低、負(fù)載高的機(jī)器,則給其分配較低的權(quán)重,降低其系統(tǒng)負(fù)載,加權(quán)輪詢很好的處理了這一問(wèn)題,并將請(qǐng)求按照順序且根據(jù)權(quán)重分配給后端[6]。
(5)源地址哈希法。源地址哈希法的思想是根據(jù)服務(wù)消費(fèi)者請(qǐng)求客戶端的IP地址,通過(guò)哈希函數(shù)計(jì)算得到一個(gè)哈希值,將此哈希值和服務(wù)器列表的大小進(jìn)行取模運(yùn)算,得到的結(jié)果便是要訪問(wèn)的服務(wù)器地址的序號(hào)[7]。采用源地址哈希法進(jìn)行負(fù)載均衡,相同的IP客戶端,如果服務(wù)器列表不變,將映射到同一個(gè)后臺(tái)服務(wù)器進(jìn)行訪問(wèn)[8]。
(6)加權(quán)隨機(jī)(Weight Random)法。加權(quán)隨機(jī)法跟加權(quán)輪詢法類似,根據(jù)后臺(tái)服務(wù)器不同的配置和負(fù)載情況,配置不同的權(quán)重。不同的是,它是按照權(quán)重來(lái)隨機(jī)選取服務(wù)器的,而非順序。
云計(jì)算環(huán)境中由于有大量運(yùn)算和數(shù)據(jù)節(jié)點(diǎn),以及大量運(yùn)行任務(wù),所以經(jīng)常需要進(jìn)行動(dòng)態(tài)資源調(diào)度,以此實(shí)現(xiàn)最優(yōu)化任務(wù)分配。
云計(jì)算環(huán)境中動(dòng)態(tài)資源調(diào)度模型有很多研究成果,應(yīng)用較為廣泛的資源動(dòng)態(tài)調(diào)度算法主要有用戶負(fù)指數(shù)分布法、云計(jì)算資源綜合利用率乘積法。國(guó)內(nèi)這方面的研究也很多,例如劉賽等人提出的資源池調(diào)度管理算法、米海波等人提出的基于布爾二次指數(shù)平滑法預(yù)測(cè)用戶請(qǐng)求來(lái)動(dòng)態(tài)調(diào)整節(jié)點(diǎn)運(yùn)行數(shù)量、林偉偉等人提出的基于動(dòng)態(tài)重配置虛擬資源的云計(jì)算資源調(diào)度方法等。
分布式系統(tǒng)基礎(chǔ)架構(gòu)的大數(shù)據(jù)環(huán)境,雖然自身引入了高可用機(jī)制解決了單點(diǎn)故障問(wèn)題,但網(wǎng)絡(luò)、應(yīng)用或者機(jī)房級(jí)的災(zāi)難和風(fēng)險(xiǎn)仍然存在。
進(jìn)行異地災(zāi)備中心建設(shè),完成建設(shè)后,將生產(chǎn)中心生產(chǎn)系統(tǒng)數(shù)據(jù)實(shí)時(shí)復(fù)制到災(zāi)備中心災(zāi)備系統(tǒng),當(dāng)生產(chǎn)中心發(fā)生災(zāi)難時(shí),可由災(zāi)備中心快速的接管生產(chǎn)業(yè)務(wù)并對(duì)外持續(xù)提供服務(wù)[9];當(dāng)生產(chǎn)中心故障解除后,災(zāi)備中心繼續(xù)對(duì)外提供服務(wù),同時(shí)開啟反向復(fù)制,將災(zāi)備系統(tǒng)的數(shù)據(jù)反向復(fù)制到生產(chǎn)系統(tǒng),當(dāng)初始數(shù)據(jù)復(fù)制完成,進(jìn)入實(shí)時(shí)復(fù)制階段后,可將業(yè)務(wù)切換回生產(chǎn)中心;由生產(chǎn)中心繼續(xù)對(duì)外提供服務(wù),再開啟正向?qū)崟r(shí)復(fù)制,生產(chǎn)中心的新增數(shù)據(jù)實(shí)時(shí)復(fù)制到災(zāi)備中心[10]。
復(fù)制原理。安裝復(fù)制代理和卷復(fù)制驅(qū)動(dòng),復(fù)制代理解析文件系統(tǒng)有效數(shù)據(jù),將有效數(shù)據(jù)通過(guò)傳輸模塊傳輸?shù)脚鋵?duì)的異地節(jié)點(diǎn)上;同時(shí)通過(guò)卷復(fù)制驅(qū)動(dòng)實(shí)時(shí)監(jiān)控對(duì)卷的寫入操作,將截獲的I/O數(shù)據(jù)通過(guò)傳輸模塊傳輸?shù)脚鋵?duì)的異地節(jié)點(diǎn)上,異地節(jié)點(diǎn)接收到數(shù)據(jù)后,將數(shù)據(jù)寫入數(shù)據(jù)卷。
接管原理。通過(guò)災(zāi)備控制中心或者監(jiān)控節(jié)點(diǎn)監(jiān)控生產(chǎn)集群的狀態(tài),其中監(jiān)控節(jié)點(diǎn)可以部署到實(shí)際的應(yīng)用環(huán)境中,根據(jù)配置的切換策略,監(jiān)控生產(chǎn)集群的狀態(tài),當(dāng)檢測(cè)到生產(chǎn)中心狀態(tài)異常,打印日志并發(fā)送郵件通知管理員,當(dāng)配置為自動(dòng)接管、且備集群組狀態(tài)滿足接管條件時(shí),自動(dòng)停止主集群組的復(fù)制策略,并按配置的節(jié)點(diǎn)優(yōu)先級(jí)通知各個(gè)備集群組中的節(jié)點(diǎn)執(zhí)行預(yù)處理腳本、啟動(dòng)數(shù)據(jù)盤監(jiān)控、執(zhí)行后處理腳本,完成接管。接管后,各個(gè)節(jié)點(diǎn)中卷復(fù)制驅(qū)動(dòng)處于位圖模式,卷復(fù)制驅(qū)動(dòng)將截獲到的所有變化扇區(qū)塊標(biāo)記到位圖中。
反向復(fù)制原理。反向復(fù)制原理與正向復(fù)制原理類似。通過(guò)復(fù)制代理進(jìn)行初始數(shù)據(jù)復(fù)制,將數(shù)據(jù)通過(guò)傳輸模塊傳輸?shù)脚鋵?duì)的異地節(jié)點(diǎn)上;同時(shí)通過(guò)卷復(fù)制驅(qū)動(dòng)實(shí)時(shí)監(jiān)控對(duì)數(shù)據(jù)卷的寫入操作,將截獲的I/O數(shù)據(jù)通過(guò)傳輸模塊傳輸?shù)脚鋵?duì)的異地節(jié)點(diǎn)上,異地節(jié)點(diǎn)接收到數(shù)據(jù)后,將數(shù)據(jù)寫入數(shù)據(jù)卷。
綜述,無(wú)論采取哪種服務(wù)器負(fù)載均衡算法和資源動(dòng)態(tài)調(diào)度模型,或是使用哪種關(guān)鍵技術(shù),我們都將建立在及時(shí)準(zhǔn)確地獲取服務(wù)器負(fù)載的基礎(chǔ)上,我們?cè)陂L(zhǎng)期監(jiān)控服務(wù)器資源使用狀況的基礎(chǔ)上建立了一套切實(shí)有效的服務(wù)器綜合負(fù)載計(jì)算方法,該計(jì)算方法綜合考慮了服務(wù)器一段時(shí)間內(nèi)的內(nèi)存使用率、CPU使用率、網(wǎng)絡(luò)負(fù)載狀況等[11],依據(jù)該綜合負(fù)載評(píng)分對(duì)數(shù)據(jù)庫(kù)資源進(jìn)行人工調(diào)度,取得了良好的效果。此服務(wù)器綜合負(fù)載計(jì)算方法為服務(wù)器負(fù)載均衡算法和資源動(dòng)態(tài)調(diào)度模型的使用奠定了堅(jiān)實(shí)的基礎(chǔ),至于具體采用哪種現(xiàn)有的算法和模型,或者進(jìn)一步優(yōu)化形成新的算法、模型,我們只需要通過(guò)仿真實(shí)驗(yàn)進(jìn)行比較從中選擇最優(yōu)的算法和模型即可,這也是我們研究云資源數(shù)據(jù)庫(kù)技術(shù)的關(guān)鍵點(diǎn)。