存儲的一個基本原則是不要將需要訪問的項目迅速放入難以再次獲取的位置:這就像是把速溶咖啡放倒保險箱里,自己給自己找麻煩。
有價值的數據不應該與常規數據一起保存在速度較低的磁盤驅動中。
熱數據——經常需要使用的信息——應該保存在速度較快的磁盤驅動上。但是這些驅動不應與舊數據混到一起。
磁盤驅動陣列供應商和存儲管理員對此已經有了幾年的了解,但是他們仍然需要解決下列問題:熱數據是如何被識別,并從快速存儲轉移到慢速存儲,以及應多久執行一次這樣的操作。
轉速
磁盤驅動有多種轉速和界面。其他東西都是一樣的,轉速是影響數據訪問時間的最重要因素。一個讀/寫磁頭必須移動到磁盤界面的正確軌道,然后等待磁盤轉動以獲取磁頭下的目標區域。
在不考慮轉速的情況下,移動滑件將讀/寫磁頭帶到目標軌道需要相同時間。一個轉速為15000rpm的磁盤會以三倍于5200rpm磁盤的速度把目標區域帶到磁頭以下。
同樣,一個15000rpm磁盤的容量也不及7200rpm磁盤,而7200rpm的磁盤容量也不及5200rpm磁盤。磁盤轉速越快,其容量越低,而成本越高。
開辟新道路
想象一下,如果一家公司將所有數據都保存到磁盤陣列上,且只有一種磁盤類型。有些數據被保存到這里是為了以防萬一,但是這些數據并不重要,且訪問頻度也不高又或者數據是因為出于遵守法規的原因被保存起來。
而有些數據訪問頻度較高且數據更新。這包括:
1. 一周或一月內的郵件。
2. 近三個月創建的PowerPoint。
3. 營銷附屬品,如白皮書。
4. HR員工記錄。
其他數據的訪問頻度更高,例如:
1. 客戶和結算數據庫。
2. HR新的聘用記錄。
3. 當前生產進程。
4. 營銷訂單進程。
因此,我們可在訪問速率和新舊程度的基礎上將數據收集到三個整體目錄中:高速,中速和慢速。也可以理解為訪問速率高的數據是高價值數據。
理想情況下,我們要把數量相對較少的熱數據放到較快的磁盤上,這樣的磁盤價格比較貴且容量比較低。訪問速度較低的數據可以放到高容量的7.2K Sata硬盤上。
困難的地方
看上去很簡單。但是問題在哪里呢?
問題來自三方面:數據不是靜態的;識別狀態很困難;移動起來也困難。
數據被創建,使用和作為參考來保存。這三個步驟組成了數據的生命周期。
新創建的數據可以保存到訪問較迅速的磁盤上,但是隨著訪問速率的降低,它占據了新數據需要的空間,因此應該將其轉到次級存儲層。在次級存儲層上,數據的訪問頻度較低,應轉移到較大的Sata層以便挪出空間。
我們是否應該雇傭存儲管理員來識別是否把數據放到了錯誤的存儲層并轉移這些數據呢?答案是否定的,因為這種操作應該自動的。
陣列或服務器中的系統軟件可以跟蹤文件和數據庫記錄的訪問頻率,然后將訪問速率較高的數據移動到驅動層,相反把訪問速率較低數據的存儲層級降低。
跟蹤訪問速率會帶來很重的負擔,數據的移動同樣要占用陣列資源。如果你要移動大量數據,那么應減少移動操作的次數。
切合實際的選擇
存儲陣列可以傳輸文件或數據塊。理想狀態下,數據庫中的數據塊應該根據訪問速率分配到不同磁盤層。
但是這需要數據庫對驅動層或是存儲陣列有所了解以便為數據庫存儲提供一個單獨池。
大型文件亦是如此。原則上,移動的數據單元越小,存儲陣列與訪問頻率和存儲層的匹配效率越高。
有些存儲陣列——例如戴爾Compellent——會跟蹤單獨數據塊的訪問速率,然后會對數據存儲層級進行動態分配。大量數據移到陣列中,而Compellent陣列操作系統需要多核X86處理器為此提供動力。
在自動化數據分層的存儲陣列中使用閃存固態硬盤會出現什么效果呢?
原則上,閃存只是另一個層級。不過為了延長閃存的使用壽命應減少將數據寫入閃存的次數。
分層已經成為了所有現代磁盤陣列的標準特性,如EMC的Fast。
最好是減少陣列中昂貴的快速存儲,轉而使用更便宜的大容量存儲保存訪問頻率不太高的數據,用成本居中的存儲保存中等價值的數據再用最高標準的快速存儲保存比較重要的數據。
原文鏈接:http://storage.it168.com/a2011/1020/1261/000001261522.shtml