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