孫佩娟 武漢傳媒學(xué)院
隨著信息技術(shù)的持續(xù)飛速發(fā)展,社會(huì)已經(jīng)步入大數(shù)據(jù)時(shí)代。為了方便海量數(shù)據(jù)的處理,越來(lái)越多的應(yīng)用將遷移到云中。據(jù)前瞻產(chǎn)業(yè)研究院發(fā)布的《中國(guó)云計(jì)算產(chǎn)業(yè)發(fā)展前景與投資戰(zhàn)略規(guī)劃分析報(bào)告》統(tǒng)計(jì)數(shù)據(jù)顯示,截止至2017年中國(guó)云計(jì)算行業(yè)市場(chǎng)規(guī)模增長(zhǎng)至691.6億元,同比增長(zhǎng)34.3%,增速快于全球水平。初步預(yù)測(cè)2019年中國(guó)云計(jì)算行業(yè)市場(chǎng)規(guī)模將突破千億元,并預(yù)測(cè)到了2021中國(guó)云計(jì)算行業(yè)市場(chǎng)規(guī)模將增長(zhǎng)至1858億元左右??梢?jiàn),從全球范圍來(lái)看,中國(guó)云計(jì)算行業(yè)發(fā)展較快,未來(lái)發(fā)展空間較大。
云計(jì)算讓資源更為的集中,只是這種“集中”不是集中到一臺(tái)機(jī)器,而是集中到由1000臺(tái)、10000臺(tái)或更多機(jī)器從邏輯上整合成的集群。管100臺(tái)、1萬(wàn)臺(tái)還是100萬(wàn)臺(tái)機(jī)器,那是完全不同的。機(jī)器少可以用人管理,機(jī)器多是不可能全部靠人工來(lái)完成的。 一方面,云計(jì)算要用云平臺(tái)取代那些昂貴的物理解決方案。但是物理設(shè)備出了問(wèn)題可以返廠維修,可以直接更換壞塊兒。但是云計(jì)算是基于云平臺(tái)搭建的框架結(jié)構(gòu),不存在返廠維修更換芯片的概念,所以在一定意義上來(lái)說(shuō)云計(jì)算的目標(biāo)是在故障成為常態(tài)的情況下保證高可用。
服務(wù)器集群(Server Cluster)可簡(jiǎn)稱為集群,一般是指數(shù)臺(tái)、數(shù)十臺(tái)甚至更多臺(tái)具有較高計(jì)算能力的服務(wù)器組成的數(shù)據(jù)處理集合,具有優(yōu)于單臺(tái)服務(wù)器的高性能、高可用性、高可擴(kuò)展性的數(shù)據(jù)處理與服務(wù)能力。由于其卓越的性能,目前世界上主流的大數(shù)據(jù)處理都基于公用或私有的集群系統(tǒng)來(lái)構(gòu)建。比如說(shuō)IT行業(yè)的龍頭——谷歌公司就維護(hù)著世界上最大的計(jì)算機(jī)集群系統(tǒng),并且隨著其業(yè)務(wù)的發(fā)展其集群數(shù)目還在不斷的擴(kuò)大。而在中國(guó),作為全球B2B 電商龍頭的阿里巴巴公司,早在2016年其數(shù)據(jù)中心的服務(wù)器數(shù)目就超過(guò)了100萬(wàn)臺(tái)。并且為了支持其包括電子商務(wù)在內(nèi)的繁重?cái)?shù)據(jù)業(yè)務(wù),該公司專門(mén)構(gòu)建的“云梯”(YARN)服務(wù)器集群系統(tǒng),僅其內(nèi)部的物理計(jì)算節(jié)點(diǎn)都已經(jīng)超過(guò)了二十萬(wàn),有望成為電商行業(yè)內(nèi)最大的集群應(yīng)用之一。
隨著網(wǎng)絡(luò)帶寬的不斷提升,之前只能在特定類型的集群配置中實(shí)現(xiàn)的諸如高可用性、動(dòng)態(tài)虛擬資源管理以及短期服務(wù)器故障轉(zhuǎn)移等服務(wù)組合,都能夠在虛擬的云計(jì)算環(huán)境中得到技術(shù)實(shí)現(xiàn)與性能提升。本文就是借助于vmware虛擬軟件模擬生產(chǎn)環(huán)境,在 redhat6.5操作系統(tǒng)下用keepalived+mysql設(shè)計(jì)并構(gòu)建高可用數(shù)據(jù)庫(kù)集群,最后可以手動(dòng)宕機(jī)或通過(guò)動(dòng)態(tài)腳本進(jìn)行測(cè)試。
keepalived是集群管理中保證集群高可用的一個(gè)服務(wù)軟件,用來(lái)防止單點(diǎn)故障。它是以VRRP(虛擬路由冗余協(xié)議)為實(shí)現(xiàn)基礎(chǔ)的,即將N臺(tái)提供相同功能的路由器組成一個(gè)路由器組,這個(gè)組里面有一個(gè)master和多個(gè)backup,master上面有一個(gè)對(duì)外提供服務(wù)的vip(該路由器所在局域網(wǎng)內(nèi)其他機(jī)器的默認(rèn)路由為該vip),master會(huì)發(fā)組播,當(dāng)backup收不到vrrp包時(shí)就認(rèn)為master宕掉了,這時(shí)就需要根據(jù)VRRP的優(yōu)先級(jí)來(lái)選舉一個(gè)backup當(dāng)master。這樣的話就可以保證路由器的高可用了。
而MySQL由瑞典MySQL AB 公司開(kāi)發(fā),目前屬于 Oracle旗下產(chǎn)品,是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)之一。關(guān)系數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),一般中小型網(wǎng)站的開(kāi)發(fā)都選擇MySQL 作為網(wǎng)站數(shù)據(jù)庫(kù)。
本項(xiàng)目用MySQL做數(shù)據(jù)庫(kù)服務(wù)器,用Keeplived來(lái)做心跳檢測(cè),其中一臺(tái)服務(wù)器宕機(jī),另外一臺(tái)可以自動(dòng)接管服務(wù),從而實(shí)現(xiàn)數(shù)據(jù)庫(kù)集群的高可用。其主要配置流程如下所示:
(一)mysql 主主同步
所謂主從復(fù)制是指主庫(kù)授權(quán)從庫(kù)遠(yuǎn)程連接,讀取binlog日志并更新到本地?cái)?shù)據(jù)庫(kù),主庫(kù)寫(xiě)數(shù)據(jù)后,從庫(kù)會(huì)自動(dòng)同步過(guò)來(lái)(從庫(kù)跟著主庫(kù)變)。而主主復(fù)制則是之主從相互授權(quán)連接,讀取對(duì)方binlog日志并更新到本地?cái)?shù)據(jù)庫(kù),只要對(duì)方數(shù)據(jù)改變,自己就跟著改變。
因?yàn)楸疚牡闹攸c(diǎn)是實(shí)現(xiàn)數(shù)據(jù)庫(kù)服務(wù)器的高可用,所以在此對(duì)mysql的主主同步僅做簡(jiǎn)要介紹如下所示: (1)設(shè)置master數(shù)據(jù)庫(kù)的my.cnf文件;(2)導(dǎo)出master數(shù)據(jù)庫(kù)多余slave數(shù)據(jù)庫(kù)中的數(shù)據(jù),然后導(dǎo)入到slave數(shù)據(jù)庫(kù)中。保證雙方在同步環(huán)境實(shí)現(xiàn)前的數(shù)據(jù)一致。[新建環(huán)境可忽略次步驟];(3)在master上設(shè)置數(shù)據(jù)同步權(quán)限;(4)查看主服務(wù)器master狀態(tài)(注意File與Position項(xiàng),從服務(wù)器需要這兩項(xiàng)參數(shù));(5)設(shè)置slave數(shù)據(jù)庫(kù)的my.cnf配置文件;(6)在slave數(shù)據(jù)庫(kù)中導(dǎo)入從master傳過(guò)來(lái)的數(shù)據(jù);(7)配置主從同步指令
(二)安裝keepalived,修改keepalived主備配置文件
建議源碼安裝keepalived軟件,如果安裝報(bào)錯(cuò),建議查看ipvsadm kernel-headers kernel-devel openssl-devel poptdevel 是否安裝。重點(diǎn)關(guān)注主備配置文件中不同的配置項(xiàng),配置文件一般存放在/etc/keepalived/keepalived.conf中。其主要更改項(xiàng)如下所示:
state MASTER #主節(jié)點(diǎn)角色是master;從節(jié)點(diǎn)是BACKUP
interface eth0 #vip 綁定端口,主從一般為一致
virtual_router_id 88 #讓master和backup在同一個(gè)虛擬路由里,id號(hào)必須相同;
priority 100 #優(yōu)先級(jí),誰(shuí)的優(yōu)先級(jí)高誰(shuí)就是master;
virtual_ipaddress {
192.168.1.100 # 虛擬 ip
}
(四)狀態(tài)檢測(cè)
兩邊均啟動(dòng)keepalived,然后手動(dòng)或啟用腳本讓其中一臺(tái)服務(wù)器宕機(jī),觀察服務(wù)是否正常運(yùn)行。
隨著技術(shù)的發(fā)展社會(huì)的進(jìn)步,云計(jì)算的應(yīng)用越來(lái)越普及,逐步形成了一種以數(shù)據(jù)業(yè)務(wù)為中心的商業(yè)計(jì)算新模式。原先作為專業(yè)應(yīng)用領(lǐng)域的集群技術(shù)也隨著云計(jì)算尤其是虛擬化技術(shù)的發(fā)展而變得低成本和易于實(shí)現(xiàn),不管是單位還是個(gè)人都可以通過(guò)合法的手段在公有云平臺(tái)上購(gòu)買云主機(jī)來(lái)完成滿足不同需求的服務(wù)器集群的搭建。因此,基于虛擬化技術(shù)的云計(jì)算集群技術(shù)已經(jīng)成為當(dāng)前數(shù)據(jù)應(yīng)用的主要承載方式,相關(guān)技術(shù)發(fā)展與應(yīng)用創(chuàng)新將是一個(gè)長(zhǎng)期持續(xù)的研究熱點(diǎn)。