近幾年來有越來越多企業用戶們,在儲存系統中開始搭配採購快閃儲存的選項。有一些使用者會把需要高效能的資料,如整個 database、或負載較重的 table、log,直接置於快閃儲存中,這樣就不用考慮我們即將討論的快閃應用技術了。
這是最簡單、也最方便的做法,相對的成本也會比較高,但有時卻會產生另外一個問題:就是原本預期/以為負載較重的那些資料表,事實上並不是,將其存放在快閃儲存中,結果並沒有獲得預期的效益。不過這就是另外一個問題,不在本文討論的範圍內。
其它在儲存系統中應用快閃的方式,就不外乎自動分層 (Auto-tiering) 與快閃快取 (Flash Cache) 這兩種了,從理論上看,這兩種技術所帶來的效益類似,但實際上這兩種技術截然不同,也由於各家廠商的建置方式不同,因此適合的應用場景也就不同。
先來看看自動分層,從磁碟機轉速的歷史角度來看,我們就可以很容易理解自動分層的理論基礎。15Krpm、10Krpm、7,200rpm、 與 5,400rpm 等不同轉速的磁碟機,有不同的存取效能與成本,於是經常被存取的「活躍性資料」或「熱資料」,應該要被放在較高轉速的磁碟機,或是被稱為一級 (Tier 1) 儲存上,使它們可以被更快的存取到;很少被存取的「不活躍性資料」或「冷資料」,就應該要被放在較低轉速的磁碟機,或是被稱為二級 (Tier 2) 儲存上。一般來說,企業裡有超過 70% 的資料都是不活躍的。
自動分層就是一種依據資料熱度,自動地將其在不同層級的儲存媒體間移動的技術。早期自動分層的資料移動單位通常是資料卷 ( LUN),資料移動時間依據通常是以月或年為單位;例如本年(月)的資料在下一個年度(月)時自動將這個資料卷移動到較低的儲存層級去。這個時期的資料移動通常是由高層級由低層級移動,極少會是反向移動的。
快閃儲存雖然沒有轉速,但由於其存取速度百倍於傳統的 15Krpm 磁碟機,於是它們就被稱為零級 (Tier 0) 儲存。當零級的快閃儲存加入之後,原本以資料卷、以日或月為單位的自動層級也開始進化。資料移動的精細度增加,變成以資料區塊 (block) 為單位;資料熱度監控的精細度也增加,變成以數小時為單位;同時資料也會開始依據其熱度而雙向移動。
儲存系統會在某一給定的時間內,監控從數十分鐘到數個小時之間資料區塊被存取的情形,在監控時段到達後,依據其資料區塊的熱度,將活躍性(熱)資料移往較高層級的儲存媒體(快閃),將不活躍(冷)資料移往較低層級儲存媒體(磁碟)。這種自動分層的理論依據是預測在過去數小時內的熱資料,在未來的數小時(或明天的同一個時段)內,它(應該)也會是熱資料。然而這種被動預測熱資料區塊的方式,並不是在每一個應用場景都是有效的。
現在廠商們則推出更新自動分層方式,在先前的技術上加入主動性,偵測連續的數個到數十個 I/O,一旦發現它是熱資料區塊就將其往快閃儲存移動,這是一種將近於即時的熱資料分析方式,它使得儲存系統對熱資料的反應可以更即時、也更快。
下文接「如何應用快閃儲存之二:快閃快取」。
