存儲數據分級的方式
來源:中國數字音視網 作者:cofee 編輯:數字音視工程 2010-09-08 00:00:00 加入收藏 咨詢

所在單位: | * |
姓名: | * |
手機: | * |
職位: | |
郵箱: | * |
其他聯系方式: | |
咨詢內容: | |
驗證碼: |
|
眾所周知,當數據量達到一定的級別之后,通過提高設備性能或者增加設備,效果往往不會很明顯。一方面存儲設備的性能有優劣之分,如磁帶的性能就比不上硬盤的性能。另一方面,用戶數據使用的頻率也是不同的。如訂單等信息可能需要經常用到,而視頻監控信息可能一年都不會訪問一次。在這種情況下,如果能夠將用戶經常需要用到的數據放到硬盤上,而將使用頻率低的數據放到性能欠佳的磁帶設備上。那么就可以提高數據查詢的命中率,從而提高數據查詢與處理的效率。
一、利用離線存儲來提高設備的使用壽命。
存儲在磁帶設備上的數據一般可能很少用到。如企業需要對數據庫等應用軟件的數據進行備份。此時可以將數據備份到磁帶設備上。根據慣例,一般一天24個小時這個磁帶設備可能就只需要半個小時。在這種情況下,如果磁帶設備仍然一天24個小時運行著,那么是相當浪費的。不僅會浪費電源,而且還會影響磁帶設備的使用壽命。
而如果在分級存儲中采用離線存儲的話,那么就可以解決這個問題。離線存儲簡單的說,就是平時磁帶設備是處于休眠狀態。當需要用到的時候,可以將磁帶設備喚醒。然后往磁帶設備上讀取或者寫入數據。等到操作完成之后,磁帶系統就會自動再轉為休閑狀態。設計的好的話,可以將磁帶設備的運行時間控制在最短時間之內,如一個小時之內。從而可以提高設備的使用壽命。
通常情況下,離線存儲主要是用在對在線存儲的數據進行備份,以防范可能發生的數據災難。為此在分級存儲中,也將離線存儲叫做備份級別的存儲。這里需要注意的是,離線存儲介質上的數據在讀寫時是按順序進行的。當需要數據讀取時,需要將帶子卷到頭,然后再進行定位。當需要對已寫入的數據進行修改時,所有的數據都需要全部進行改寫。所以離線海量存儲的效率是比較低的。但是其最大的優點就是可以以比較低的成本實現海量存儲。
為此離線存儲并不適合所有的情況。通常情況下,離線存儲主要用來存儲那些不經常使用的數據,如數據備份等等。而且一般在分級存儲中結合使用離線存儲,用來提高設備的使用效率。
二、考慮如何有效的對數據進行分級?
為什么有時候采用數據分級存儲策略能夠提高比較好的效果,而有時候效果又不明顯呢?筆者認為,這其中有一個很重要的原因是數據分級策略的指標不合適。也就是說,將什么魚放養在哪個魚塘中,是由存儲系統根據一定規則來決定的。如果這個規則設置不當,如只根據魚的大小來決定,那么同一個魚塘中就可能會有各種各樣的魚。此時就不利于數據的查詢與管理。可見,這個分級的規則相當的關鍵。
筆者建議,在使用數據分級存儲產品的時候,最好能夠選擇那些基于多指標的數據分級策略。
也就是說,根據基于數據的生命周期、上次訪問的時間、大小、訪問頻率等等多個參數對數據的價值進行分級。具體的來說,在數據分級時需要考慮到如下內容。
一是最好在數據創建的時候就能夠確定數據的級別。因為如果數據一創建就能夠預測其訪問特性而進行適當的分級,就能夠減少不必要的數據轉移而帶來的麻煩。這也就是說,在日常管理中我們可以對于一些數據進行手工的分級,而不需要讓系統來進行分級。如根據以前的經驗,可以預測用戶對于近1個月的郵件數據需要經常訪問。那么就可以指定,對于最近一個月的數據指定為級別高的數據。而其他時間的郵件數據則根據一定的規則讓系統自動進行判斷。手工指定與系統自動判斷結合,往往可以起到不錯的效果。
二是根據數據的靜態特征和動態特征來進行分級也能夠起到不錯的效果。如可以通過以下方式來判斷文件是靜態的還是動態的。一是根據文件系統的靜態特征(如文件大小的分布),二是根據文件系統的宏觀訪問規律(如大小文件的訪問次數分布),三是根據根據文件之間的訪問關聯特征(如同一作業中的一個文件被訪問,則可能會帶動其他文件也被訪問),四是文件個性的訪問模式(如是否具有訪問的局限性)。在實際工作中,可以根據這些特征對文件進行手工的歸類。也可以在選購的時候,判斷系統中是否有對應的分級策略。
三、如何有效降低遷移過程中的沖突?
分級存儲另一個特點,就是會根據數據的訪問級別,在不同設備之間進行數據的遷移。如剛開始一些數據是存儲在硬盤或者磁盤陣列中的。后來分級存儲系統發現其已經有近半年沒有被訪問了,此時就會將數據從硬盤或者磁盤陣列中遷移到磁帶中。這種遷移也叫做降級遷移(將數據從性能高的設備中遷移到性能低的設備中)。相反,當用戶在一段時間內突然頻繁訪問存放在磁帶中的數據,此時分級存儲系統就會將數據從磁帶中遷移到硬盤或者磁盤陣列中,這就叫做升級遷移(數據有慢速存儲設備和低一級存儲設備往快速存儲設備或者高一級存儲設備遷移)。
這里需要注意,在遷移的過程中可能會發生沖突。根據筆者的經驗,一般來說在降級遷移中設備的輸入輸出沖突并不是很嚴重。但是在升級遷移中,則必須要考慮數據遷移帶來的I/Q沖突。因為根據測試發現,數據遷移發生的時候,基本上是對應設備I/Q最密集的時候。為此在分級系統設計的時候,必須要考慮到,如何才能夠最大程度的降低數據遷移過程中的I/Q沖突,降低對其他用戶數居訪問的不利影響。現在常用的一種手段是盡量保證只在磁帶與磁盤陣列之間進行數據的升級遷移。因為相對來說,可以通過增加硬盤的數量來增加數據輸入輸出的吞吐量,從而降低I/Q沖突。而減少在磁帶與單塊硬盤之間的數據遷移操作。根據筆者的測試發現,及時性能最高的硬盤,在發生數據升級遷移的過程中,不可避免的會遇到I/O沖突的情況。
在數據遷移的過程中,除了要考慮數據沖突之外,還需要注意數據的一致性。根據現在的技術,最常用的手段是通過讀寫鎖來確保數據的一致性。系統的遷移進程會為當前的數據塊申請讀寫鎖,以保證遷移進程與寫操作進程之間的數據一致性。通常情況下,則也是選擇分級存儲產品中必須要考慮一個指標。
以上提到的這三個內容,不僅僅是大家在部署的時候需要注意的問題,而且在選購產品的時候,也可以以這些標準來進行評估。
評論comment