對(duì)于我的存儲(chǔ)環(huán)境,我總是努力維持至少6個(gè)月的增長(zhǎng)空間。擁有一個(gè)合適的容量規(guī)劃制度,就能夠預(yù)測(cè)資本支出和運(yùn)維支出,也使得數(shù)據(jù)中心的空間、電力以及供應(yīng)鏈物流的規(guī)劃更為有效。你最不希望發(fā)生的事是凌晨接到電話,說(shuō)生產(chǎn)負(fù)荷已經(jīng)超出基礎(chǔ)架構(gòu)的性能或容量的能力。這里有個(gè)例子,說(shuō)明容量規(guī)劃做得多么糟糕。
我工作的公司使用NAS設(shè)備存儲(chǔ)用戶上載的文件,并供用戶瀏覽。NAS設(shè)備的容量對(duì)于工作負(fù)荷來(lái)說(shuō)是合適的,而且也能夠?qū)⑽募惒綇?fù)制到位于幾千英里的輔助NAS設(shè)備上。系統(tǒng)能夠充裕地存儲(chǔ)及提供文件服務(wù),異步復(fù)制的延遲也沒(méi)有超出RPO的要求,而且也能夠承受像磁盤(pán)損壞及系統(tǒng)重建這樣的事情。我們維持著6個(gè)月的增長(zhǎng)空間,確保容量有充分的緩沖,以便能夠消化高流量的沖擊和計(jì)劃中的有機(jī)增長(zhǎng)。
設(shè)備工作正常,就是太貴了。就是因?yàn)樘F,所以公司不愿意再買(mǎi)更多的設(shè)備了,而且公司了解到,通過(guò)創(chuàng)建自己的存儲(chǔ)引擎,可以設(shè)計(jì)一種更為經(jīng)濟(jì)的方案。
新的存儲(chǔ)引擎是一項(xiàng)令人興奮的技術(shù),能夠以一種非常經(jīng)濟(jì)的方式建立可伸縮的應(yīng)用存儲(chǔ)基礎(chǔ)架構(gòu)。它運(yùn)行在非常便宜的存儲(chǔ)設(shè)備上,是為存儲(chǔ)和提供文件服務(wù)的任務(wù)而特別設(shè)計(jì)的,效率很高。花了一年多的時(shí)間才完成,存儲(chǔ)引擎現(xiàn)在已經(jīng)完成了編碼,并已經(jīng)在若干綜合性的工作負(fù)荷下進(jìn)行了測(cè)試。唯一要做的是確保在真實(shí)的應(yīng)用負(fù)荷下能夠正常工作,并能夠在這種規(guī)模下正確地存儲(chǔ)和提供文件服務(wù)。在存儲(chǔ)引引擎最后的測(cè)試階段,我們決定以最安全的方式進(jìn)行推進(jìn),即將文件同時(shí)存儲(chǔ)在新的存儲(chǔ)引擎和NAS設(shè)備上。一旦我們確信新的存儲(chǔ)引擎能夠正確地工作,并完全值得信任能夠處理進(jìn)來(lái)的文件內(nèi)容,將不再向AS設(shè)備寫(xiě)入文件。
正好在這段時(shí)間,公司網(wǎng)站極為火爆,在所有方面都有爆炸性的增長(zhǎng)。隨著越來(lái)越多的人使用我們的網(wǎng)站,向網(wǎng)站上載的文件數(shù)也急劇增多。對(duì)業(yè)務(wù)而言非常好,尤其因?yàn)槲覀冋跍y(cè)試的新存儲(chǔ)引擎存儲(chǔ)文件的成本比NAS方案要低得多。我們已經(jīng)停止購(gòu)買(mǎi)新的NAS設(shè)備,就指望著存儲(chǔ)引擎能夠盡快就位。然而不幸的是,一些錯(cuò)誤延緩了對(duì)新存儲(chǔ)引擎信任的確認(rèn),而網(wǎng)站人氣的增加很快達(dá)到了剩余NAS設(shè)備的負(fù)荷及復(fù)制能力的極限。由于沒(méi)有將購(gòu)買(mǎi)新的NAS設(shè)備納人流程,我們不得不重新平衡NAS設(shè)備的工作負(fù)荷,減少異步復(fù)制的頻率,以增加可用于存儲(chǔ)和提供文件服務(wù)的資源。而這樣一來(lái),就在RPO上造成了缺口。我們的狀態(tài)很糟糕,一方面NAS設(shè)備已經(jīng)超出了能夠充裕運(yùn)行的范圍,另一方面仍然還有源源不斷的需求。我們已經(jīng)停止購(gòu)買(mǎi)新的NAS設(shè)備,指望著能夠完全切換到新的存儲(chǔ)引擎上,而存儲(chǔ)引擎卻無(wú)法就位。
然后,一個(gè)磁盤(pán)壞掉了。由于RAID的重建,導(dǎo)致了NAS設(shè)備的利用率突然升高,而存儲(chǔ)系統(tǒng)已經(jīng)無(wú)法應(yīng)付生產(chǎn)和復(fù)制的工作負(fù)荷。我們禁掉了向出現(xiàn)壞磁盤(pán)的設(shè)備的寫(xiě)入,而讓其他系統(tǒng)承擔(dān)寫(xiě)入負(fù)荷。即使這樣做了之后,網(wǎng)站建設(shè)數(shù)據(jù)讀取的性能仍然受到了影響。更為不幸的是,我們?nèi)∠水惒綇?fù)制的作業(yè),這樣在第二地點(diǎn)就沒(méi)有完整的數(shù)據(jù)集可用了。所以,在受損磁盤(pán)的RAID組重建期間,不得不禁掉從中讀取數(shù)據(jù)的操作。幸好,RAID組重建成功,而且數(shù)據(jù)沒(méi)有損失。我們從中學(xué)到了非常有價(jià)值的教訓(xùn)??偸且_保有足夠的空間以應(yīng)對(duì)突然的爆炸性增長(zhǎng),以及軟件開(kāi)發(fā)方面出現(xiàn)的延遲。假如我們將6個(gè)月的增長(zhǎng)空間堅(jiān)持維持到新存儲(chǔ)引擎完成生產(chǎn)測(cè)試階段,就能輕松應(yīng)對(duì)這次事件。
本文地址:http://www.khwajamoinuddinchishty.com//article/3340.html