《做好災(zāi)備平臺(tái),打造自動(dòng)化運(yùn)維管理的最后堡壘》要點(diǎn):
本文介紹了做好災(zāi)備平臺(tái),打造自動(dòng)化運(yùn)維管理的最后堡壘,希望對(duì)您有用。如果有疑問(wèn),可以聯(lián)系我們。
作者介紹
戰(zhàn)學(xué)超,青航數(shù)據(jù)架構(gòu)師.曾任職于NEC軟件、海爾B2B平臺(tái)巨商匯,負(fù)責(zé)企業(yè)數(shù)據(jù)平臺(tái)構(gòu)建、B2B電商平臺(tái)數(shù)據(jù)管理與搭建.擁有豐富DBA、系統(tǒng)運(yùn)維架構(gòu)經(jīng)驗(yàn),擅長(zhǎng)數(shù)據(jù)庫(kù)、數(shù)據(jù)平臺(tái)搭建、私有云部署、自動(dòng)化運(yùn)維等.
運(yùn)維路漫漫,風(fēng)險(xiǎn)千千萬(wàn),任何系統(tǒng)故障或是硬件故障都有可能導(dǎo)致系統(tǒng)不可用、數(shù)據(jù)丟失、數(shù)據(jù)惡意篡改等風(fēng)險(xiǎn).風(fēng)險(xiǎn)一旦發(fā)生,會(huì)對(duì)企業(yè)造成巨大乃至無(wú)法挽回的影響.所以設(shè)計(jì)一套良好的企業(yè)IT災(zāi)備方案,是保障企業(yè)IT系統(tǒng)可用性和數(shù)據(jù)安全必不可少的重要途徑.
良好的災(zāi)備方案和有效的實(shí)施會(huì)將企業(yè)因IT故障導(dǎo)致的損失降至最低.那么該如何設(shè)計(jì)企業(yè)災(zāi)備方案呢?這還是要綜合考慮企業(yè)的IT規(guī)模,成本和人力三個(gè)基本要素,結(jié)合企業(yè)自身情況,進(jìn)行有重點(diǎn)的方案設(shè)計(jì)和實(shí)施.
相對(duì)比較合理完整的災(zāi)備平臺(tái)大概架構(gòu)如下:
災(zāi)備平臺(tái)在條件允許的情況下,可以采取兩地三中心+云端的方式.
公司所在地同城自建或是租賃兩個(gè)機(jī)房,這兩個(gè)機(jī)房之間的數(shù)據(jù)或是文件以實(shí)時(shí)同步的方式實(shí)現(xiàn)兩個(gè)機(jī)房的實(shí)時(shí)熱備.在另一個(gè)城市租賃或是自建機(jī)房,一般兩城市間距離最少300公里.異地機(jī)房跟同城的兩個(gè)機(jī)房采用延遲同步或是手動(dòng)同步的方式存儲(chǔ)IT系統(tǒng)、文件和數(shù)據(jù)等.一般異地機(jī)房是用作同城機(jī)房的系統(tǒng)冷備和備份集存儲(chǔ),盡量不要做與同城機(jī)房數(shù)據(jù)實(shí)時(shí)同步:避免同城機(jī)房數(shù)據(jù)、文件刪除或是惡意篡改,導(dǎo)致異地機(jī)房實(shí)時(shí)同步數(shù)據(jù)也不可用.比較經(jīng)濟(jì)的方案是可以在異地機(jī)房租賃服務(wù)器,存儲(chǔ)同城機(jī)房的備份集和核心系統(tǒng)的冷備.另外根據(jù)公司數(shù)據(jù)的保密程度有選擇的采用云端服務(wù)器進(jìn)行備份集存儲(chǔ)或是系統(tǒng)冷熱備.
災(zāi)備平臺(tái)建設(shè)總的指導(dǎo)思想是:高可用+備份.高可用可以是熱備(即只有一臺(tái)服務(wù)器提供服務(wù),另外服務(wù)器靜默,出現(xiàn)故障后自動(dòng)切換到靜默服務(wù)器)也可以是集群方式(集群中的服務(wù)器全部對(duì)外提供服務(wù)).總之避免單點(diǎn)故障,出現(xiàn)問(wèn)題后自動(dòng)切換至正常的設(shè)備或是系統(tǒng)上.
建立災(zāi)備平臺(tái)首先是機(jī)房、網(wǎng)絡(luò)和硬件的高可用.總體架構(gòu)中的多機(jī)房+云端可以實(shí)現(xiàn)機(jī)房的高可用.網(wǎng)絡(luò)和硬件的高可用具體如下:
1、雙電源,多鏈路
機(jī)房除了必備的UPS備用電源之外,還必須實(shí)現(xiàn)接入硬件設(shè)備如:交換機(jī)、物理機(jī)等設(shè)備的雙電源.這樣可以避免掉電引起的故障.另外接入的雙電源需要插在不同的插排,避免插排故障.
多鏈路是指機(jī)房接入多種供應(yīng)商的網(wǎng)絡(luò),避免光纜挖斷或是供應(yīng)商網(wǎng)絡(luò)故障引起的大面積網(wǎng)絡(luò)故障.另外不同鏈路的網(wǎng)絡(luò)接入進(jìn)來(lái)也可以提高系統(tǒng)對(duì)外在不同網(wǎng)絡(luò)環(huán)境下的訪問(wèn)速度.
2、防火墻
防火墻一般采用不同廠商的至少2套組成防火墻的高可用,避免防火墻的單點(diǎn)故障,導(dǎo)致外網(wǎng)不能成功接入內(nèi)網(wǎng).
3、存儲(chǔ)、服務(wù)器
一般大的存儲(chǔ)廠商都有成熟的數(shù)據(jù)同步和災(zāi)備管理的方案,所以存儲(chǔ)一定要選擇大的廠商,如EMC、惠普等.另外存儲(chǔ)一般情況下盡量避免選擇多廠商.因?yàn)椴煌瑥S商之間的存儲(chǔ)產(chǎn)品不太好實(shí)現(xiàn)存儲(chǔ)級(jí)別的數(shù)據(jù)同步和鏡像災(zāi)備等.
關(guān)于服務(wù)器這里推薦企業(yè)實(shí)現(xiàn)虛擬化,通過(guò)虛擬化軟件,實(shí)現(xiàn)服務(wù)器的高可用.雖然不同的服務(wù)器和操作系統(tǒng)廠商提供了各種各樣的集群方案如RHCS、windows的WSFC等,但是實(shí)施起來(lái)比較復(fù)雜且增加IT成本.采用虛擬化既可以節(jié)省資源,也可以實(shí)現(xiàn)只采用虛擬化的集群解決方案就可以避免服務(wù)器的單點(diǎn)故障.例如采用vSphere的HA,可以實(shí)現(xiàn)一臺(tái)物理機(jī)宕機(jī),該物理機(jī)上的虛擬機(jī)實(shí)現(xiàn)自動(dòng)切換到另外正常的物理機(jī)上.
4、備件庫(kù)
備件庫(kù)在災(zāi)備平臺(tái)建設(shè)中往往是最容易忽略的一個(gè)重要因素.隨著使用時(shí)間的增長(zhǎng),機(jī)房中的硬件會(huì)有這樣或那樣的故障,如果沒(méi)有替換件及時(shí)更換硬件故障的話,從供應(yīng)商的備件庫(kù)提貨到現(xiàn)場(chǎng),會(huì)導(dǎo)致大大增加IT故障時(shí)間.
備件庫(kù)涵蓋機(jī)房中的所有部件的方方面面,包括電源、服務(wù)器內(nèi)存、CPU、HUB、路由、交換機(jī)等等,也包括網(wǎng)線、電話線和插排等部件.機(jī)房管理,災(zāi)備管理中一定要清點(diǎn)清楚備件庫(kù)的物資,出現(xiàn)緊缺,一定要及時(shí)補(bǔ)充完畢.避免硬件故障增加額外的IT故障時(shí)間.
機(jī)房、網(wǎng)絡(luò)和硬件的高可用和備件是災(zāi)備方案的基石,一定要根據(jù)企業(yè)自身的情況和IT投入成本進(jìn)行規(guī)劃和設(shè)計(jì),避免大范圍和長(zhǎng)時(shí)間的硬件故障.
機(jī)房、網(wǎng)絡(luò)和硬件屬于硬層面,接下來(lái)分享一下軟層面的一些高可用的方式,主要包括應(yīng)用、數(shù)據(jù)庫(kù)和文件服務(wù)器.
應(yīng)用、數(shù)據(jù)庫(kù)和文件總體來(lái)說(shuō)采用集群或是主備方式部署,避免單點(diǎn)故障.另外負(fù)載均衡和反向代理的使用也可以減輕單節(jié)點(diǎn)的訪問(wèn)壓力和提高內(nèi)網(wǎng)服務(wù)器的安全.
1、應(yīng)用高可用
很多企業(yè)可能直接把應(yīng)用服務(wù)器如Tomcat、Weblogic等直接映射到外網(wǎng)IP,這樣如果需要部署多臺(tái)的話,需要做多個(gè)公網(wǎng)IP的映射,并且難以實(shí)現(xiàn)訪問(wèn)的負(fù)載均衡,由于出現(xiàn)故障需要手動(dòng)切換,故不能算是實(shí)現(xiàn)了高可用.
采用反向代理服務(wù)器的方式如Nginx、Haproxy既可以實(shí)現(xiàn)反向代理,也可以實(shí)現(xiàn)負(fù)載均衡,并且可以節(jié)省公司的公網(wǎng)IP資源.每一組應(yīng)用至少部署兩臺(tái)不同的虛擬機(jī)上,避免應(yīng)用的單點(diǎn)故障.資源比較緊張的情況下,可以實(shí)現(xiàn)交叉部署,例如應(yīng)用A1和應(yīng)用A2部署在虛擬機(jī)VM1和VM2上,應(yīng)用B2和應(yīng)用B1也部署在與A1,A2相同的虛擬機(jī)上,統(tǒng)一虛擬機(jī)多應(yīng)用,每個(gè)應(yīng)用又在其它虛擬機(jī)有部署,避免單點(diǎn)故障還節(jié)省資源.但是要注意,一般業(yè)務(wù)量比較均衡的不同應(yīng)用可以交叉部署,業(yè)務(wù)量比較大且核心系統(tǒng)還是要分開(kāi)部署的.
2、數(shù)據(jù)庫(kù)高可用
不管是Oracle、還是MySQL或是SQL Server都有較多且已在不同公司的生產(chǎn)正常運(yùn)行的高可用和集群方案,這里簡(jiǎn)單介紹一下Oracle、MySQL和Redis.
Oracle比較常見(jiàn)的高可用方案主要是RAC+DG.其中RAC可以實(shí)現(xiàn)負(fù)載均衡和單點(diǎn)故障.一般部署方式RAC的兩個(gè)節(jié)點(diǎn)掛載同一存儲(chǔ),存儲(chǔ)方面存在單點(diǎn)故障的可能.由于RAC主要是做負(fù)載均衡,不太好實(shí)現(xiàn)讀寫分離.可以采用搭建RAC的DataGuard實(shí)現(xiàn)RAC的數(shù)據(jù)實(shí)時(shí)同步到standby數(shù)據(jù)庫(kù)中.另外standby可以對(duì)外提供只讀操作,實(shí)現(xiàn)讀寫分離,減少主庫(kù)RAC的壓力.
另外OGG即Oracle GoldenGate是Oracle做數(shù)據(jù)同步的另一主要解決方案.OGG也可以實(shí)現(xiàn)異構(gòu)跨平臺(tái)的數(shù)據(jù)同步.
MySQL的高可用方案也比較多,比較常見(jiàn)的有主從復(fù)制、MHA、MMM等.另外不同的MySQL廠商也提供了不同的基于MySQL的集群Cluster方案且都有生產(chǎn)實(shí)施案例,如GaleraCluster、Percona的PXC和MySQL官方的Cluster等,都可以實(shí)現(xiàn)MySQL的高可用集群和讀寫分離.另外MySQL也有眾多的中間件如MyCat、OneProxy等可以很容易地實(shí)現(xiàn)讀寫分離和分庫(kù)分表、分布式等方案.
一般IT系統(tǒng)架構(gòu)使用Redis主要兩大用途:共享Session存儲(chǔ)和緩存數(shù)據(jù).Redis的高可用架構(gòu)一般主要兩種:哨兵模式的主從和Cluster集群.
上圖為Redis的哨兵模式,通過(guò)哨兵監(jiān)控,實(shí)現(xiàn)故障后自動(dòng)推舉master.Redis? Cluster是Redis3.0以后推出的,截止目前生產(chǎn)應(yīng)用的也已經(jīng)比較多.
3、文件高可用
在系統(tǒng)架構(gòu)中,一般文件服務(wù)器作為單獨(dú)的服務(wù)進(jìn)行部署,主要存放文件、圖片、App應(yīng)用上傳的附件等.有的時(shí)候也把靜態(tài)資源放到文件服務(wù)器中.
有的公司會(huì)選擇自建文件服務(wù)器,也有的會(huì)選擇云服務(wù),如阿里云的OSS等.我所在的公司主要考慮到數(shù)據(jù)和文件的保密性,采取了自建文件服務(wù)器的方式,主要采用了FastDFS這一開(kāi)源框架進(jìn)行搭建.
采用三臺(tái)服務(wù)器交叉部署三組Tracker+Storage,為公司所有IT系統(tǒng)提供靜態(tài)資源(主要包括文件、圖片)讀寫服務(wù).
上面主要介紹的軟硬方面的高可用和硬件備件庫(kù)等,接下來(lái)介紹災(zāi)備平臺(tái)的另一個(gè)重要的組成部分——備份策略.系統(tǒng)只實(shí)現(xiàn)高可用還是不夠的,尤其是災(zāi)難性故障的時(shí)候,包括數(shù)據(jù)被篡改,只有高可用,沒(méi)有備份集也是無(wú)濟(jì)于事.一些核心系統(tǒng)如果沒(méi)有有效的備份,那么在災(zāi)難性故障面前將真的是災(zāi)難性.
備份策略總的大概分為:備份周期、存儲(chǔ)位置、恢復(fù)策略、驗(yàn)證策略四大部分.
1、備份對(duì)象
備份策略首選要確定備份對(duì)象,并且根據(jù)優(yōu)先級(jí)逐步實(shí)施.
備份對(duì)象涵蓋IT系統(tǒng)的方方面面,從前端應(yīng)用到后端數(shù)據(jù)庫(kù),從系統(tǒng)層面的虛擬機(jī)備份到服務(wù)器上的具體某一個(gè)文件,都是我們備份的對(duì)象.一般來(lái)說(shuō)備份虛擬機(jī)和備份應(yīng)用是有重復(fù)的地方,但是多管齊下,做到最可靠,這樣的代價(jià)就是由于重復(fù)備份集存儲(chǔ),提高了IT的存儲(chǔ)成本.
2、備份周期
備份周期一般以周為單位,周三和周天全備,其它時(shí)間增量備份.全備+增量備份可以節(jié)省一部分資源,也提高了恢復(fù)的速度.虛擬機(jī)層面一般采用虛擬機(jī)全備的方式.另外將備份刪除策略定在備份周期里.根據(jù)系統(tǒng)的重要性和要求,定期刪除一些過(guò)期的備份集,釋放存儲(chǔ)資源.
3、存儲(chǔ)位置
備份集的存放本著多處存放的原則.一般在本地服務(wù)器存放一份,機(jī)房?jī)?nèi)備份服務(wù)器或是NAS存放一份,異地機(jī)房存放一份,根據(jù)備份集對(duì)象數(shù)據(jù)的保密性,有選擇的在云端存放一份.多地存放,降低了備份集丟失的可能性.
4、恢復(fù)策略
恢復(fù)策略包括恢復(fù)方案和恢復(fù)腳本.二者結(jié)合,要求準(zhǔn)確有效的說(shuō)明備份集的恢復(fù)方法和方式,并且需要記錄恢復(fù)的大概時(shí)間.
5、驗(yàn)證策略
有備份,就一定要驗(yàn)證,而且要定期驗(yàn)證備份集中的每一個(gè)備份的可用性.制定并實(shí)施持續(xù)完整的備份驗(yàn)證策略,是保證備份集可用的最佳途徑.在驗(yàn)證備份集的時(shí)候,要根據(jù)恢復(fù)策略的腳本和方案進(jìn)行恢復(fù)驗(yàn)證,并且記錄驗(yàn)證時(shí)間.做到故障后心中有數(shù).
應(yīng)急演練作為災(zāi)備平臺(tái)的一部分,主要模擬一些災(zāi)難性故障的響應(yīng)措施.例如服務(wù)器宕機(jī),該如何通知匯報(bào),如何進(jìn)行排故恢復(fù)等規(guī)章流程和制度的演練.
驗(yàn)證策略以時(shí)間為標(biāo)準(zhǔn)驗(yàn)證每一個(gè)備份集的準(zhǔn)確可用性.應(yīng)急演練時(shí)根據(jù)系統(tǒng)的優(yōu)先程度,對(duì)重要的核心系統(tǒng)進(jìn)行應(yīng)急演練,避免出現(xiàn)故障手忙腳亂.
災(zāi)備平臺(tái)的建立和實(shí)施是一個(gè)漫長(zhǎng)持久的過(guò)程,可以先從最簡(jiǎn)單的備份開(kāi)始.手中有備份,一起故障皆可從容面對(duì).
原文來(lái)自微信公眾號(hào):DBAPlus社群
轉(zhuǎn)載請(qǐng)注明本頁(yè)網(wǎng)址:
http://www.snjht.com/jiaocheng/2378.html