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