Moebius集群:實(shí)現(xiàn)SQL負(fù)載均衡
談到數(shù)據(jù)庫集群,我們最先想到的是Oracle的RAC和DB2的PureScale,其中的一個(gè)重要原因是它們不僅可以滿足系統(tǒng)對(duì)高可用的需求,還能夠?qū)崿F(xiàn)數(shù)據(jù)庫的負(fù)載均衡。負(fù)載均衡對(duì)數(shù)據(jù)庫的價(jià)值,如同CPU對(duì)計(jì)算機(jī)的價(jià)值,是對(duì)系統(tǒng)資源的有效整合和分配。SQL Server是一款廣泛使用的數(shù)據(jù)庫,盡管SQL Server 2012新增的AlwaysOn功能可以更好的滿足“高可用+讀寫分離”,卻始終無法實(shí)現(xiàn)自動(dòng)負(fù)載均衡。
《SQL Server可以做Load Balance嗎?》的主題帖在ITPUB論壇中引起超過33萬人的關(guān)注,可見用戶對(duì)SQL Server的負(fù)載均衡功能的需求非常高。在這種需求的驅(qū)動(dòng)下,國(guó)內(nèi)外數(shù)據(jù)庫工具廠商開始為用戶提供SQL Server具有負(fù)載均衡功能的集群方案。
為了尋找最權(quán)威的SQL Server集群解決方案,筆者在微軟合作伙伴官網(wǎng)的數(shù)據(jù)庫集群板塊中找到其金牌合作伙伴——格瑞趨勢(shì)。據(jù)了解,格瑞趨勢(shì)是一家專注于SQL Server數(shù)據(jù)庫集群技術(shù)、云數(shù)據(jù)庫技術(shù)、數(shù)據(jù)流技術(shù)的軟件廠商。為了進(jìn)一步了解格瑞趨勢(shì)及其集群解決方案,筆者郵件采訪了格瑞趨勢(shì)的CTO David Zhou,向我們分享了Moebius集群的特點(diǎn)和功能。
初識(shí)Moebius集群
據(jù)David Zhou介紹,格瑞趨勢(shì)的核心技術(shù)團(tuán)隊(duì)均來自微軟和雅虎,匯聚了一批具有多年相關(guān)工作經(jīng)驗(yàn)的管理、研發(fā)、銷售人員。Moebius(莫比斯)集群是格瑞趨勢(shì)繼海量數(shù)據(jù)處理Green Cloud和數(shù)據(jù)流控制SQL Controller后推出的又一核心產(chǎn)品,其名稱來源于Moebius環(huán),寓意無限擴(kuò)展。
據(jù)了解,Moebius集群是格瑞趨勢(shì)專門針對(duì)微軟SQL Server數(shù)據(jù)庫提供的綜合集群平臺(tái),利用這一平臺(tái),用戶可以把多臺(tái)SQL Server服務(wù)器虛擬成一臺(tái),以實(shí)現(xiàn)核心數(shù)據(jù)庫在性能、可靠性、數(shù)據(jù)安全及擴(kuò)展性方面的提升。目前,Moebius集群擁有超過1000家客戶,覆蓋全國(guó)所有省份。
談到Moebius集群的架構(gòu),David Zhou表示,Moebius集群實(shí)質(zhì)上是一個(gè)非共享磁盤架構(gòu)(share-nothing)的并行數(shù)據(jù)庫系統(tǒng)。從結(jié)構(gòu)上講,包含數(shù)據(jù)同步引擎、故障監(jiān)控引擎、SQL解析及調(diào)度引擎三部分。設(shè)計(jì)初衷來,Moebius更偏向于事務(wù)型而非分析型的工作負(fù)載。
Moebius集群功能盤點(diǎn)
作為SQL Server官方認(rèn)證的唯一一款第三方負(fù)載均衡解決方案,Moebius集群可以為企業(yè)用戶做些什么呢?接下來筆者將為大家盤點(diǎn)一下Moebius集群的功能:
1. 負(fù)載均衡與橫向擴(kuò)展
傳統(tǒng)的集群都是“主備”模式,即:始終只有一個(gè)節(jié)點(diǎn)在運(yùn)行,在性能上得不到提升,系統(tǒng)也就不具備擴(kuò)展的能力,當(dāng)現(xiàn)有的機(jī)器不能滿足應(yīng)用的負(fù)載時(shí)只能更換更高配置的機(jī)器。這樣的系統(tǒng)既不利于擴(kuò)展,同時(shí)硬件資源浪費(fèi)嚴(yán)重。
Moebius集群打破以往的“主備”模式,集群中的每個(gè)節(jié)點(diǎn)都具有同等地位,集群強(qiáng)大的SQL解析及調(diào)度引擎,有多達(dá)10種靈活的算法,將所有的訪問均衡地分配到所有數(shù)據(jù)庫服務(wù)器上,進(jìn)而顯著提升數(shù)據(jù)庫系統(tǒng)的性能。
Moebius集群,在需要更高數(shù)據(jù)庫處理速度時(shí),只要簡(jiǎn)單地增加服務(wù)器就可以了,不但可以繼承歷史投資,也可以降低迎接投資風(fēng)險(xiǎn)。
2. SQL調(diào)度與業(yè)務(wù)分離
盡管數(shù)據(jù)庫“復(fù)制技術(shù)”可以構(gòu)建多個(gè)副本供應(yīng)用程序查詢,但是今天,多數(shù)已建好的信息系統(tǒng)基本上采用單數(shù)據(jù)庫實(shí)例的設(shè)計(jì)模式。因此,應(yīng)用程序不做大量修改,根本無法訪問到這些副本。
對(duì)用戶來說,多數(shù)系統(tǒng)是由軟件廠商(ISV)開發(fā)的產(chǎn)品或項(xiàng)目,修改應(yīng)用程序幾乎無法做到。
Moebius集群透明地支持“讀寫分離”,通過對(duì)SQL語句進(jìn)行解析并自動(dòng)將SQL語句重定向其它服務(wù)器上(對(duì)報(bào)表或歷史數(shù)據(jù)的查詢自動(dòng)導(dǎo)向到另外的服務(wù)器),從而透明地實(shí)現(xiàn)“業(yè)務(wù)分離“而無需改動(dòng)應(yīng)用程序。
3. 高可用性及數(shù)據(jù)安全
保證業(yè)務(wù)連續(xù)性及數(shù)據(jù)安全是數(shù)據(jù)庫應(yīng)用中的一個(gè)基本需求,Moebius集群各節(jié)點(diǎn)在任何時(shí)刻具有實(shí)時(shí)一致的數(shù)據(jù),實(shí)現(xiàn)了真正的數(shù)據(jù)冗余,這樣冗余的硬件架構(gòu)不但可以避免單點(diǎn)故障而且提供了杰出的故障恢復(fù)能力。
Moebius 集群通過“網(wǎng)絡(luò)心跳”及“仲裁機(jī)制”實(shí)現(xiàn)自動(dòng)故障轉(zhuǎn)移,當(dāng)偵測(cè)到集群中某節(jié)點(diǎn)發(fā)生故障時(shí),會(huì)在最短的時(shí)間(<10s)內(nèi)發(fā)現(xiàn)并通過虛擬IP轉(zhuǎn)移技術(shù)自動(dòng)將故障節(jié)點(diǎn)的業(yè)務(wù)轉(zhuǎn)移,確保整個(gè)系統(tǒng)7*24小時(shí)不間斷運(yùn)行。
4. 對(duì)用戶透明
對(duì)應(yīng)用程序完全透明,只暴露虛擬IP地址及端口,無需用戶改動(dòng)應(yīng)用程序。
對(duì)管理人員透明,對(duì)集群的維護(hù)和單實(shí)例數(shù)據(jù)庫維護(hù)相似。
對(duì)開發(fā)人員透明,仍然使用SQL Server提供的技術(shù),不改變開發(fā)人員的使用習(xí)慣。
小結(jié)
作為微軟的金牌合作伙伴,格瑞趨勢(shì)研發(fā)的Moebius彌補(bǔ)了SQL Server集群的負(fù)載均衡功能,并且從整體上提升了數(shù)據(jù)庫的性能。“創(chuàng)新”是格瑞趨勢(shì)的公司理念之一,正如David Zhou所說,未來,格瑞趨勢(shì)將會(huì)圍繞數(shù)據(jù)庫發(fā)布很多新產(chǎn)品,繼續(xù)秉持“Green(年輕)”的精神,發(fā)揮“集群”的力量,將“創(chuàng)新”進(jìn)行到底。