對于我的存儲環(huán)境,我總是努力維持至少6個(gè)月的增長(cháng)空間。擁有一個(gè)合適的容量規劃制度,就能夠預測資本支出和運維支出,也使得數據中心的空間、電力以及供應鏈物流的規劃更為有效。你最不希望發(fā)生的事是凌晨接到電話(huà),說(shuō)生產(chǎn)負荷已經(jīng)超出基礎架構的性能或容量的能力。這里有個(gè)例子,說(shuō)明容量規劃做得多么糟糕。

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