2011年8月17日 星期三

以快取為基礎的I/O存取加速技術


以快取為基礎的I/O存取加速技術
傳統上,伺服器的資料存取一般可分為兩層:

(1)伺服器內由DRAM構成的主記憶體,提供少量極關鍵資料盡可能快速的存取。

(2)透過儲存網路連接、集中於一處或分散在多處的傳統硬碟,提供大多數資料的存放。

顯然的,將資料整個搬移到伺服器內由DRAM構成的主記憶體上存放,將能得到最快速的I/O效能,但受DRAM成本所限,即使是高階伺服器的主記憶體配置量,大多也只有上百到數百GB等級,能處理的資料量有限,而且透過這種方式取得的單位效能成本也過高。

因此在實際應用中便只能退而求其次,混合使用主記憶體與傳統硬碟,透過快取機制將一部份存取頻繁的資料放進記憶體,減少對傳統硬碟的存取,至於實際能得到的存取加速效果,則需視快取記憶體容量與快取命中率而定。

當以NAND Flash記憶體為基礎的固態硬碟(SSD)技術普及後,提供了一種單位成本較DRAM低、存取速度又遠高於傳統硬碟的儲存媒體,可作為兩者間的中介,也讓伺服器I/O加速技術有了更豐富的面貌。

由使用的儲存裝置類型來看,目前的I/O存取加速技術使用的儲存媒體主要有DRAM與NAND Flash記憶體兩種;而從部署方式來看,則可分為三種典型類型:

● 伺服器端:利用安裝在伺服器內的DRAM或SSD模組來加速存取,這種類型由於資料存放位置離運算核心最近,有助於降低存取延遲。缺點則是除非整合特別的機制,否則安裝在伺服器內的資源無法與其他伺服器共享。

● 網路端:在前端伺服器與後端儲存設備之間儲存通道中,置入內含大量DRAM或SSD的應用伺服器,利用這種應用伺服器中的DRAM或SSD作為快取,提高整個儲存網路的速度。透過儲存網路,一套這種應用伺服器即可服務多臺前端伺服器與後端儲存設備,管理上亦較為方便。

● 儲存端:利用安裝在磁碟陣列控制器內的DRAM或SSD模組來加速存取。透過儲存網路,一臺儲存設備內的DRAM或SSD即可為多臺前端伺服器提供服務,資源可共享與靈活的調配,亦便於統一管理。缺點是儲存設備內的DRAM或SSD模組,與前端伺服器的運算核心相距較遠,存取時需經過的環節較多,延遲問題相對較為嚴重。

三種典型的I/O加速技術部署方式
I/O加速技術的基礎,是以DRAM或NAND Flash記憶體等高速儲存媒體,來作為資料存取的快取或高速儲存層,依部署方式不同,可分為伺服器端、網路端與儲存設備端等三種類型,各有不同的特性與優缺點。


利用伺服器主記憶體加速I/O
基於「將關鍵資料移到更接近運算資源的儲存裝置,加速資料存取」的原則,利用伺服器DRAM主記憶體來加速I/O是由來已久的作法,如將部份DRAM作為快取記憶體便是一種典型的應用。

當DRAM價格逐漸降低、伺服器DRAM配置量不斷增大後,又出現了RAM Disk的作法,可將部份的主記憶體空間模擬為磁碟空間,以便直接將應用程式與資料搬移到記憶體中加速存取。

不過若要讓這種存取加速機制達到最佳化,必須從作業平臺與應用程式端加以整合,才能讓RAM Disk發揮最大效益。因此一些廠商提出了搭配特定應用程式的「In-Memory」存取技術,藉以因應高I/O負載需求的應用。

這類技術通常是配合大型資料庫使用,典型的產品如SAP的HANA In-Memory Appliance與Business Warehouse Accelerator等。藉由將資料搬移到主機的記憶體中,這類產品可得到相當驚人的I/O效能,資料庫查詢與分析速度數倍於傳統存取技術。

不過前述這類利用主記憶體的存取加速技術成本相對較高,僅能處理相對較小量的資料(一般大約是上百到數百GB等級),而且必須搭配特定的應用程式與環境運作,並非普遍通用於一般環境,只適合特定作業環境下、需要快速存取小量資料的應用。

利用網路加速設備提高存取速度
考慮到企業儲存環境早已進入網路化,因此比起部署在前端伺服器或後端儲存設備上的I/O加速技術,將加速技術部署在儲存網路中,顯然是一種更為便利、有效的作法。

已有一些廠商推出了專門針對加速SAN或NAS環境存取的網路設備,如針對SAN區塊存取環境有Dataram的XcelaSAN應用伺服器,針對NAS檔案存取環境則有Alacritech的ANX 1500應用伺服器、Avere的FXT應用伺服器等。

這類儲存網路加速應用伺服器,可看作是一種內含大量高速儲存媒體的閘道器,如Dataram XcelaSAN Model 100內含256GB的DRAM,Alacritech的ANX 1500含有48GB的DRAM與2~4TB的SSD,Avere的FXT系列則包含64GB或72GB的DRAM、1GB的NVRAM,以及512GB Flash記憶體或1.2TB/3.6TB的SAS硬碟。

將這些設備接上儲存網路,將其設定在前端伺服器與後端儲存設備間的存取通道上,便可利用這些設備內的大量高速儲存媒體作為快取記憶體,為網路上流通的資料提供快取功能,保存那些較活躍的資料,從而加速前、後端的存取。為確保這些中間節點設備故障時不會影響到前後端的資料存取,高可用性叢集架構是這類解決方案的基本配備。

相較於更換內含大量快取記憶體、可因應更高I/O負載應用的高階儲存設備,透過在儲存網路中插入前述這類專用於提供快取加速功能的應用伺服器,亦能有效改善既有儲存環境的效能,以較低的成本達到支撐更高I/O負載應用的目的。

沒有留言:

張貼留言