快取記憶體(Cache)是影響磁碟陣列效能的關鍵因素之一,命中率越高、容量越大,則系統從磁碟中搜尋、存取資料的頻率也越低,整體效能也越好。

但由於設計上的差異,不同廠商對快取記憶體的使用方式存在極大差異,許多產品帳面上的快取記憶體容量雖然相同,但實際可用的容量卻未必如規格上所呈現的。一般來說,會有幾種情況導致快取記憶體被占用:

主系統占用
一般來說,大部分磁碟陣列的控制機制主要是透過Windows Embedded、Linux Embedded或VxWorks之類的嵌入式作業系統,某些磁碟陣列的設計是讓系統核心與快取資料共享記憶體的方式,因此會在主記憶體中保留固定大小的區域,以便在開機後將系統載入。但如此一來,真正可用的快取記憶體容量,就會和帳面上的系統記憶體容量有所差距。如HP的EVA8000/8100系列每組控制器均配置有4GB記憶體,但其中2GB為系統使用,可用的快取記憶體只剩2GB。

至於採用獨立系統記憶體設計的機型,雖然沒有這個問題,不過架構上就會比較複雜。

鏡像備援
對講究系統可用度的企業來說,雙控制器的磁碟陣列是最基本的要求之一,兩組控制器可互為備援,以在某組控制器故障或失效時能接手工作。

但為了要能及時接手另一控制器的工作,且接手後還能維持資料讀寫不出狀況,即時保存另一控制器記憶體中的資料是必要的動作,如果漏失了快取中尚未寫入磁碟的資料,很可能會導致前端應用程式發生問題。所以雙控制器下的任一控制器必須把內建的快取記憶體一分為二,讓一半的記憶體用於保存另一控制器快取記憶體中的資料複本,整體可用的記憶體容量會降低一半。

舉例而言,如EMC CX3-40、HDS AMS500這類機型每個控制器都含有4GB的記憶體,所以雙控制器下的記憶體總容量是8GB。但由於兩組控制器的記憶體互為鏡像之故,因此實際可用的快取大小就只剩4GB。

某些機型的快取是採用讀/寫分離的設計,因此在雙控制器原本就只剩一半的可用記憶體,又再被切成讀/寫各分一半。好處是另一控制器只針對寫入區域的記憶體作鏡像。不過問題是寫入的可用記憶體,又會再縮小一半。

某些廠商的雙控制器備援採用特殊的設計,構成鏡像的不是主記憶體,而是獨立的NVRAM。透過NVRAM保存的資料索引即可回復原始資料,因此可以把整個記憶體空出。不過這必須配合特定作業系統。文⊙張明德

iThome歡迎讀者提問,請將你所遇到的各種企業IT疑難雜症,寄至iThome編輯部:QA@mail.ithome.com.tw

熱門新聞

Advertisement