一. 為何要做多機(jī)房
二. 理論依據(jù) 根據(jù)不同行業(yè),以及CAP的三選二原則,支付、交易要求強(qiáng)一致(不允許出現(xiàn)臟數(shù)據(jù)),屬于CA,互聯(lián)網(wǎng)對強(qiáng)一致性要求不高,對可用性要求較高,一般都采用AP 弱一致性架構(gòu),也就是BSAE,BASE理論是eBay的架構(gòu)師Dan Pritchett在ACM上發(fā)表文章提出的,BASE是指基本可用(Basically Available)、軟狀態(tài)(Soft State)、最終一致性(Eventual Consistency),允許窗口期數(shù)據(jù)不一致。 三 具體實(shí)踐 1、新機(jī)房建設(shè)
選型、招標(biāo)、參觀機(jī)房、評審、商務(wù)談判、合同簽署、開通寬帶
設(shè)備選型、招標(biāo)、商務(wù)談判、合同簽署、設(shè)備采購,資產(chǎn)管理
網(wǎng)絡(luò)/VPN/標(biāo)簽等規(guī)劃、雙網(wǎng)卡綁定測試、模擬交換機(jī)/鏈路冗余測試、模擬VPN測試、防火墻冗余測試、負(fù)載均衡測試、專線網(wǎng)絡(luò)測試
自動裝機(jī)系統(tǒng)、自動化運(yùn)維系統(tǒng)、KVM虛擬化、賬號管理系統(tǒng)、DNS系統(tǒng)、資產(chǎn)管理、監(jiān)控系統(tǒng)、nginx、haproxy、keepalived、tomcat、redis、mq、zk、fastdfs、mysql、sqlserver、應(yīng)用代碼 2、切換數(shù)據(jù)中心方案設(shè)計(jì)
3、數(shù)據(jù)中心切換過程 遷移之前,確保新機(jī)房代碼是最新的,測試人員進(jìn)行回歸測試,DBA部署亦莊到武清的數(shù)據(jù)庫(sqlserver、mysql)、redis同步關(guān)系,文件系統(tǒng),mq等都類似。 第一天凌晨進(jìn)行第一波流量切換,切山東節(jié)點(diǎn)到武清機(jī)房,大約5%左右的流量,觀察服務(wù)狀況,沒有異常情況,用戶可正常下單。 第二天凌晨進(jìn)行第二波流量切換, 上海、江蘇、浙江、四川、河南、河北、福建大約50%左右的流量,繼續(xù)觀察服務(wù)狀況,沒有異常情況,用戶可正常下單。 第三天凌晨進(jìn)行全部切換,包括數(shù)據(jù)庫等,切到武清做主,數(shù)據(jù)直接寫武清的庫。運(yùn)維在DNSPOD上進(jìn)行,把其他剩余流量切換到武清,切換后,網(wǎng)絡(luò)工程師觀察亦莊是否還有流量進(jìn)入,因?yàn)镈NS有緩存,所以需要觀察一段時間,待到?jīng)]有流量進(jìn)入,開始進(jìn)行存儲層切換: 1、sqlserver,DBA利用手動故障轉(zhuǎn)移,將vip從亦莊機(jī)房切換搭武清機(jī)房,停掉亦莊的sqlserver,sqlserver切換結(jié)束。 2、redis,DBA利用批處理腳本關(guān)掉亦莊所有redis主庫實(shí)例,完成后,主庫自動切換到武清,亦莊所有redis實(shí)例不提供任何服務(wù), 不會有任何臟數(shù)據(jù)產(chǎn)生,運(yùn)維切換DNS,DNS生效后,redis切換結(jié)束。 3、mysql,和redis切換方式類似,DBA利用批處理腳本殺掉主庫,保證沒有臟數(shù)據(jù)進(jìn)來,運(yùn)維切換DNS,生效后,mysql切換結(jié)束。 以上全部遷移OK后,所有流量、數(shù)據(jù)、存儲都在新機(jī)房了,亦莊機(jī)房用于災(zāi)備。 四. 經(jīng)驗(yàn)總結(jié) 系統(tǒng)比較多,大大小小的100多個系統(tǒng),梳理過程中不夠謹(jǐn)慎 ,遺漏了一些問題, 操作過程中,亦莊到武清做了很多調(diào)整,沒有做好調(diào)研,整理了很多文檔,做了很多工作,有不細(xì)致的地方,有些工作需要確認(rèn),沒有落實(shí)到書面上,測試過程中有些不清楚的地方,欠缺溝通,信息不同步,準(zhǔn)備工作沒有準(zhǔn)備好,還有歷史遺漏原因。 遷移的過程中,有盲點(diǎn),有測試不到的地方, 支付, 物流,小服務(wù),全量push無法測試, 遷移后pay不可用, push不可用, dns解析問題導(dǎo)致部分緩存流量還在亦莊, 預(yù)案做的不充分,雖然有些問題,不過整體上來說,這次數(shù)據(jù)中心切換還算比較成功。 |
|