最近一段とメモリが安くなっている.
http://www.watch.impress.co.jp/akiba/hotline/20071006/p_mem.html
「今使ってるマザーボードは8G対応って書いてあるし,
メモリスロットも4つあるから5万円出せば8Gメモリのサーバってぇ寸法よ」
という目論見だったけれど,いろいろ実験及び調べてみたところうまくいかなかったので,わかったところまでをご紹介.どなたか私の屍を乗り越えて先に進んでください.
得た知見としては下記の通り.
メモリコントローラの最大バンク数について
フツーに売ってるインテルベースのマザーボードのチップセットのメモリコントローラは最大ランク数(バンク数)という概念が存在して,チップセット的にハンドリングできるメモリ上限とは別の制限がある.メモリモジュールのランク数はおおむね片面実装(チップが基盤の片面にだけくっついてるもの)のメモリなら1ランク,両面実装なら2ランクだと思っていい(はず).またチップセットの最大ランク数の調べ方は不明(どなたか教えてください).
AMDベースのシステムだとランクの概念がないらしいので,うまくいくかも知れない(未確認情報)
サーバ機のメモリコントローラは普通のチップセットのメモリコントローラとは別物
HPとかが売ってるIAベースのサーバ機が32Gとか積めるのはFB-DIMMというDDR2のチップベースの別メモリモジュールを使ってるからです.
FB-DIMMの説明については下記とかが詳しいです.
http://techon.nikkeibp.co.jp/article/WORD/20060309/114496/
http://ja.wikipedia.org/wiki/DIMM#Fully_Buffered_DIMM_.28FBDIMM.29
http://www.necel.com/amb/ja/market_needs.html
PCI Memory Remappingについて
PCI (Express?)の制限で,4G空間のうち1G分(?)が事前確保されており,3G以上積んでも事前確保分が天使の分け前としてなくなってしまう.この制限を外すにはMemory Remapingの設定をBIOSレベルで行う必要があるが,場合によってはOSが不安定になる.
daily dayflowerさんのところが異常に詳しいです.
OSについて
OS的にはx86-64対応OSが必要.
試したこと
いろいろやってみた結果,私のマザー(P5B)では2Gモジュール3枚挿し+Memory Remapingで6GまでBIOS上では認識できました(4枚挿しても6Gのまま).その後CentOS5のインストーラが動かなかったので,Memory Remapingを戻してインストール→Memory RemapingをOnにして立ち上げ直すことで,Linuxでも6Gを認識させられました.ただちょっと負荷をかけるとすぐOSが固まるので,6Gはひとまずあきらめました.
上記の経験を経て5Gメモリを安定的に使えるLinuxマシンを得ることが出来ました.
とりあえずXenのVMを6つほど立ち上げていろんな実験をやってますが,今までなら6台必要だったところ1台ですんでいるので,快適そのものです.
ただせっかく8G分メモリがあってもフルに活用できないのはとても悔しいので,もしどなたかFB-DIMMなしで8GメモリのLinuxが構築できたら,教えてください.
(おしまい)