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