什么才是檔案存儲的經(jīng)濟現(xiàn)實?
vivian 發(fā)表于:13年06月13日 16:28 [編譯] DOIT.com.cn
許多人都認為檔案管理應該非常便宜。畢竟,你對性能沒什么要求,所以成本應該不會很高。
但是,這些人卻忽略了檔案存儲幾個影響方案成本的重要方面。
在任何存儲金字塔的圖解里,檔案管理都處于金字塔的底層位置。檔案存儲對容積要求極大和但對性能需求極少。它就是你存放數(shù)據(jù)的地方,而且你可能還需要時不時對其進行訪問。
檔案存儲在概念上很簡單,但是細節(jié)操作卻很麻煩。
檔案基本要素
當你在思考檔案存儲的方案時,就需要提出幾個基本問題,如:
我想要什么樣的性能(把數(shù)據(jù)推入檔案,從檔案中調(diào)出數(shù)據(jù))?
需要存入多少數(shù)據(jù)?
我對此檔案存儲的依賴性要多強(或說我可以承受多大的風險)?換言之,數(shù)據(jù)有多重要?
這些問題的答案可以為你的檔案存儲方案指明道路。但是很多人沒有想明白這些問題的答案會在經(jīng)濟方面對檔案存儲產(chǎn)生什么影響。
例如,如果我需要一個在數(shù)據(jù)丟失方面風險極低的方案,需要花多少錢?如果我可以承受更多的數(shù)據(jù)丟失風險,那么可以減少多少錢?數(shù)據(jù)復示性能對成本影響有多大?如果我對數(shù)據(jù)的需求不是特別著急,那么降低性能需求后是否可以減少成本?
這些都是我們在設計檔案存儲方案時要考慮的事情。希望了解自己所做的決定會產(chǎn)生什么后果,這是人之常情。但是人們真地了解所做決定的經(jīng)濟現(xiàn)實嗎?
一分錢一分貨
我妻子帶著我看了一個名叫“Love It or List It”的電視節(jié)目。參與節(jié)目錄制的家庭要重新布置目前的家,同時要尋找可能的新家。在節(jié)目最后,他們要決定--留在原來的家,重新布置或者賣掉原來的家再買個新房子。
令我覺得有趣的是,在整個過程中,所有參與家庭要列出一張家庭優(yōu)選項目。例如,如果他們是搬離這個原址,是否能夠買到一個更大的房子?或者,如果他們放棄打掉廚房承重墻的愚蠢想法,那么可否在愿望清單里添上其他什么東西?
這些參與節(jié)目的人都是被迫思考優(yōu)先項目的問題。所以他們才會以理智的方式進行取舍。他們的決定取決于實際的經(jīng)濟情況。其中一些人確實認為自己可以完成愿望清單所有項目的購置。
后來,我似乎遇到了這樣的情況--人們想要異常廉價的檔案存儲,廉價到有些荒謬。但同時,他們不愿意接受廉價方案背后,數(shù)據(jù)風險會丟失的事實。他們堅持認為數(shù)據(jù)中心里可以使用廉價檔案存儲,而且不會有什么數(shù)據(jù)丟失的風險。
許多人自以為檔案存儲就是廉價的,易于創(chuàng)建的。而且數(shù)據(jù)會一直保存在那里,不會發(fā)生變化。他們忘記了檔案存儲也是一分錢一分貨的道理。
通常情況下,如果你想要更多數(shù)據(jù)以及更快的數(shù)據(jù)調(diào)用能力,同時數(shù)據(jù)丟失的風險還要最低,那么你就得付出同樣的成本。
經(jīng)濟現(xiàn)實
為了解釋清楚需要取舍的要素,讓我們先看看各種存儲方案以及它們的失誤頻率。
最常見的風險是硬錯誤率,是指某個部分無法讀取之前已被讀取的比特量。這種硬錯誤率因存儲方案的不同而不同。
Henry Newman寫了一篇很好的文章,其中的一個表格就列出各種存儲媒介的硬錯誤率,以及這種錯誤率對PB級別的數(shù)據(jù)意味著什么。也就是說,在出現(xiàn)讀取錯誤之前,可從存儲媒介中讀取多少數(shù)據(jù)。Henry的第一個表格如下表所示:
可以用一種替代方式來考慮這一數(shù)據(jù),即思考如果以全速讀取數(shù)據(jù),需要多少時間遇到不可讀區(qū)域。
Henry的第二個表格展示的內(nèi)容是:當你使用一個或一個以上的設備,而且以最快速度讀取數(shù)據(jù)時,需要多久的時間就會遇到一個讀取錯誤。表二顯示了他統(tǒng)計的數(shù)據(jù),而且他還為250臺設備和300臺設備的計算結(jié)果增加了兩列。
這兩個表格顯示出當你使用SATA或SAS磁盤時,你遠東不可讀區(qū)域的最大容積值約為1PB,最小容積值約為110TB。即便有了這個統(tǒng)計數(shù)據(jù),你遇到硬錯誤的時候仍然很難進行估算,因為硬錯誤對配置的依賴性非常大。
遇到一個硬錯誤通常意味著RAID控制器認為驅(qū)動壞了,需要重建。為了訪問你想讀取的數(shù)據(jù),你需要等待重建才能實現(xiàn)。重建所需的時間可能非常長,而且依然取決于配置。
在此期間,需要讀取所有其他的驅(qū)動,這樣就會增加遇到另一個硬錯誤的可能性,還可能會丟掉RAID群組。結(jié)果便是,你需要對檔案數(shù)據(jù)做多個備份。
Henry在其文中指出副本的數(shù)量是一個開放性的問題。但是,最少也得準備兩個到三個副本。“最少”二字意味著在存儲硬件中你需要準備兩到三倍于這個檔案容積的空間。如果你的檔案占了1PB,那你就要準備2-3PB的存儲空間。
便宜的檔案存儲是怎樣的呢?能實現(xiàn)0.25$/GB的檔案存儲嗎?
答案是檔案的存儲價格可以接近這個價格,但是同時存在風險。要想顯著減少風險,你需要兩到三個副本。0.25$/GB的檔案存儲成本會突然上升到0.50$/GB或0.75$/GB。這些還只是硬件成本。
你需要某類文件系統(tǒng)來保存這些數(shù)據(jù)。就低端配置而言,你只需創(chuàng)建兩到三個不一樣的使用免費文件系統(tǒng)的存儲池。然后,你可以把檔案數(shù)據(jù)放到一個副本上,并使用rsync確保數(shù)據(jù)被復制到另一個存儲池。
如果你遇到一個硬讀取錯誤該怎么辦呢?這會觸發(fā)RAID重建。你可以使用其他副本保存這些數(shù)據(jù),但是這需要提前編程。而且你還要確保余下的副本是正確的。換言之,你要自己完成所有的編程和維護工作。而且這些工作全都是免費的,是嗎?
如果是其他角度的話,還有文件系統(tǒng),許多文件系統(tǒng)是專屬的或者有商業(yè)支持,所以可為你處理這方面的事項。在這些文件系統(tǒng)中,數(shù)據(jù)被復制,用來確保存儲池中分布了兩到三個副本。出現(xiàn)硬讀取錯誤事件時,文件系統(tǒng)可以讀取數(shù)據(jù)的其他副本,同時重建后臺。后臺重建完成后,它就會對發(fā)到其他副本的數(shù)據(jù)進行核查。不過,系統(tǒng)仍舊要讀取數(shù)據(jù),所以我們再次增加了出現(xiàn)硬讀取錯誤的幾率。
后臺會因此增加大量工作。所以你得弄個這樣的文件系統(tǒng)來減輕負載。
結(jié)語
檔案存儲不是你所以為的那么簡單。你要問問自己進行檔案存儲的目的是什么,需要存儲的數(shù)據(jù)量是多少。最重要的是,你需要知道檔案數(shù)據(jù)的重要性。這幾個問題的答案對檔案的經(jīng)濟現(xiàn)實有極大影響。
你不能在機械旋轉(zhuǎn)磁盤上進行大體積的檔案存儲,而且還只準備一個副本,且希望數(shù)據(jù)不會丟失。表一中的硬錯誤率已經(jīng)對這一點表明清楚。
如果你不在乎會遇到有些數(shù)據(jù)無法讀取的情況,那么你可以購買硬盤做一個數(shù)據(jù)備份,或許可以達到廉價的效果。
但是,如果你的數(shù)據(jù)很重要,而且你又擔心出現(xiàn)無法恢復的讀取操作,那你就需要一個以上的副本。這也意味著你需要的硬件比你原以為的要多。例如,如果你想要一個1PB的檔案,你就需要2PB,3PB或更多空間。如果1PB的存儲硬件需要0.25$/GB,那么存儲三個數(shù)據(jù)副本所需的成本是0.75$/GB。
硬讀取錯誤率的影響以及所需的數(shù)據(jù)副本數(shù)量是很多人都不想面對的的經(jīng)濟現(xiàn)實。人們的期望是:檔案數(shù)據(jù)所需性能低,所以成本也低。但事實上,如果你想在機械旋轉(zhuǎn)磁盤上存儲大型檔案數(shù)據(jù),而且還要及時讀取這些數(shù)據(jù),且要減少數(shù)據(jù)丟失的風險,那么你就需要多個數(shù)據(jù)副本。這樣所需的成本就會超出你的預期--但是這就是檔案存儲的現(xiàn)實。