服務器升級硬件篇——內存
當我們在購買服務器時,通常只考慮了當時的預算以及配置,卻忽略了日后升級配件的費用和一些問題。我們一般情況下不用太在意內存顆粒,幾乎所有的服務器廠商都會建議用戶采用自身服務器品牌的內存進行更換升級(51CTO推薦文章:服務器升級硬件篇——CPU)。
大家都知道服務器內存與普通PC機的內存有所區別,一般都帶有ECC校驗功能。通常情況下我們會選擇與服務器品牌相同的內存品牌。但是實際上內存都是由現代,美光,爾必達,三星等廠商為服務器廠商生產的。
不同品牌的內存條
不同的內存條
升級時候還有一點不能忽略,除了選擇同樣頻率的內存,既DDR3-1333Mhz,DDR2-667Mhz等。還應注意,服務器內存通常來說是成組購買升級的。既每個內存通道內,盡量要使用相同品牌、相同顆粒、相同頻率、相同電壓、相同校驗技術(chipkill,ecc)、相同型號(udimm rdimm)的內存條。
這點尤其重要,否則服務器可能會報錯。
服務器內存與普通內存有什么區別?
#p#
內存校驗技術
一般來說也就是后面兩種區別較大,通常來說服務器內存都帶有校驗技術,而普通PC機內存是不具備的。相對傳統的ECC校驗技術,chipkill又是何方神圣呢?
“探路者”探測器登陸火星
在十幾年前,相傳在遙遠的火星上出現了名為“探路者”的怪物……
IBM引入大型機的技術為美國航天局(NASA)的"探路者"探測器赴火星探險而研制了Chipkill。它是IBM公司為了彌補目前服務器內存中ECC技術的不足而開發的,是一種新的ECC內存保護技術。
ECC內存技術雖然可以同時檢測和糾正單一比特錯誤,但如果同時檢測出兩個以上比特的數據錯誤,則無能為力。但基于Intel處理器架構的服務器的CPU性能以幾何級的倍數提高,而硬盤驅動器的性能同期只提高了5倍,因此為了保證正常運行,服務器需要大量的內存來臨時保存從CPU上讀取的數據。這樣大的數據訪問量就導致單一內存芯片在每次訪問時通常要提供4(32位)或8(64位)字節以上的數據。一次性讀取這么多數據,出現多位數據錯誤的可能性會大大提高,而ECC又不能糾正雙比特以上的錯誤,這樣就很可能造成全部比特數據的丟失,系統就會很快崩潰。IBM的Chipkill技術是利用內存的子結構方法來解決這一難題的。
隨著技術的發展,這些年已經出現了關于內存更多的保障技術。#p#
熱備內存—Sparing
熱備內存技術
進行內存熱備時,做熱備份的內存在正常情況下是不使用的,也就是說系統是看不到這部分內存容量的。每個內存通道中有一個DIMM不被使用,預留為熱備內存。芯片組中設置有內存校驗錯誤次數的閾值, 即每單位時間發生錯誤的次數。當工作內存的故障次數達到這個“容錯閾值”,系統開始進行雙重寫動作,一個寫入主內存,一個寫入熱備內存,當系統檢測到兩個內存數據一致后,熱備內存就代替主內存工作,故障內存被禁用,這樣就完成了熱備內存接替故障內存工作的任務,有效避免了系統由于內存故障而導致數據丟失或系統宕機。這個做熱備的內存容量應大于等于所在通道的最大內存條的容量,以滿足內存數據遷移的最大容量需求。#p#
內存鏡像—Mirroring
內存鏡像是將內存數據做兩個拷貝,分別放在主內存和鏡像內存中。系統工作時會向兩個內存中同時寫入數據,因此使得內存數據有兩套完整的備份。由于采用通道間交叉鏡像的方式,所以每個通道都有一套完整的內存數據拷貝。
在系統芯片組中設置有 “容錯閾值”。如果任意內存達到了“容錯閾值”,其所在通道就被標示出來,另一個通道單獨工作。但仍然保持雙通道的內存帶寬。
內存鏡像技術
內存鏡像有效避免了由于內存故障而導致數據丟失。從上圖中可看出,鏡像內存和主內存互成對角線分布,如果其中一個通道出現故障不能繼續工作,另一個通道仍然具有故障通道的內存數據,有效防止了由于內存通道故障導致的數據丟失,極大提升了服務器可靠性。鏡像內存的容量要大于等于主內存容量,當系統工作時,鏡像內存不會被系統識別。因此在投資方面,做內存鏡像數據保護的投資是沒有內存保護功能的一倍。
隨著芯片組的發展,和內存通道技術的改變,熱備內存和內存鏡像實現的方式也在做著改變。像上文介紹的方式已經不適用于Nehalem這代產品的三通道內存和四通道內存產品了。而以上的兩種方式為了實現更高的可靠性都會給整個系統帶來在內存方面較大的花費,以及由此帶來的整個內存系統可用數量下降。
#p#
關于UDIMM和RDIMM
UDIMM(Unbuffered Dual In-Line Memory Modules)無緩沖雙信道內存模塊。控制器輸出來的地址和控制的信號直接到達DIMM的DRAM芯片上。
UDIMM的最大配置
不能支持服務器滿配內存,也就是說不能達到最高容量。使用UDIMM內存時最大使用每通道只能用2個插槽,但支持3通道,所以只能每邊插6條,一共12條內存,不能滿配。性能相對會有下降,但是對于預算控制,是個不錯的選擇。
RDIMM(Registered Dual In-line Memory Module)帶寄存器的雙信道內存模塊。控制器輸出的地址和控制信號經過Reg寄存后輸出到DRAM芯片,控制器輸出的時鐘信號經過PLL后到達各DRAM芯片。
RDIMM的最大配置
Registered內存本身有兩種工作模式,即Registered模式和Buffered模式。在支持Registered工作模式的主板上工作時,Registered內存工作于Registered模式,這時主板上的地址信號和控制信號會比數據信號先一個時鐘周期到達DIMM,送入Register芯片后會在其中停留一個時鐘周期,然后在下一個時鐘信號的上升沿從Register輸出,與此時從主板上到達DIMM的數據信號一起同時傳送到SDRAM。
當Registered內存工作在普通的主板上時,為Buffered工作模式,這時所有的信號也基本上是同時到達DIMM再同時傳送到SDRAM,Register芯片這時在功能上只相當于一個簡單的Buffer,其輸入到輸出之間是直通的,只簡單的起到改善地址信號和控制信號的作用,時序上與Unbuffered內存是一樣的。比起UDIMM來由于有了寄存器,所以RDIMM處理速度各方面性能都有不少提升,有2種工作模式,適合不同的主板,并且RDIMM支持最高配置,不會受到內存插的數量限制。
【編輯推薦】