VMware ESXiのプライベートクラウド環境を自作する【その2】

こんにちは。WEBチームの[twitter:@k2w4t4h]です。

今回は前回に引き続きまして、プライベートクラウドを自作するお話です。

前回までの記事はこちら
第1回目 VMware ESXiのプライベートクラウド環境を自作する【その1】 - スマートフォンアプリ開発会社のエンジニアブログ


2.メモリ

CPUの話で正直喋ってしまったんですが、メモリの中には、

ECCECCでないか
・BufferedかUnbufferedか

の2×2の4パターンが存在します。

ECCECCでないか

まず、どちらがスタンダードなのかというと、非ECCメモリです。普通に売られているメモリはまず間違いなくECCメモリではありません。

ECCメモリは1ビットのエラー訂正機能、もしくは3ビットのエラー検出機能を持っています。非ECCメモリは1ビットのエラー検出機能を持っています。


ECCメモリか普通のメモリかは簡単に見分けることが出来ます。

メモリの基板上に普通のメモリは片面8枚のメモリチップが実装されています。

これに対して、ECCメモリではエラー検出用に余分なビットを持っているため、片面に9枚のメモリチップが実装されています。


ガラパゴス社の文房具置き場には何故か文房具に混じって、ECCメモリが1枚置いてあり、たまにチップの枚数を数えて喜んでいる人がいます。


で、まあ当然どちらがサーバー用に好ましいかと言えば、ECCメモリの方が好ましいです。

サーバーは普通のPCと違い、メモリアクセスが多発しますので。

このECCメモリにコンシューマー向けCPUで対応していることが今回AMD系を選んだ理由です。

ECCメモリは普通のメモリの倍ほどの値段がしますが、最近はECCメモリも16ギガ買っても、24,000円ぐらいなので導入するべきだと思います。


BufferedかUnbufferedか

これもどちらがスタンダードかと問われれば、Unbufferedです。

Bufferedメモリは信号のタイミングを同期する機能を持っています。これはいつに役に立つかというと、メモリを大量に搭載するときに役に立ちます。

メモリを大量に搭載しようとすると、メモリコントローラーに近いメモリと遠いメモリの物理的な距離の差が大きくなります。

この距離の差がある一定以上になると、信号の到達するタイミングに致命的な差が生じ、メモリが正常に動作しなくなります。

そのため、大量に搭載されることを前提としたメモリには信号の同期を取る機構が組み込まれています。

これがBufferedメモリです。


サーバー用のマザーボードは一般用のマザーボードと異なり、Bufferedメモリを前提として作られているため、大量のメモリスロットを搭載しています。

実は最初に4パターンが存在すると書きましたが、あれは「理論的には」の話であって、実際には、BufferedにするのはECCにするのの何倍もコストがかかるので、BufferedでECCでないメモリというのは存在しません。

従って、メモリをランク付けすると、

Unbuffered Non-ECC Memory(普通のメモリ) → Unbuffered ECC Memory → Buffered ECC Memory

になります。


最後に

今回の場合はスロット4つの16ギガで全く問題なかったので、Bufferedメモリにはしませんでした。

しかも、大体のパソコンショップはせいぜいUnbufferedのECCメモリまでしか置いていないので、Bufferedのメモリが買いたければ、パソコン専門店を超えた専門店に行くか、取り寄せることになります。

また、最近は普通のATX規格の物も出てきましたが、サーバー用のマザーボードは大体ATX規格より大きいので、収納できるケースもかなり限られてきます。


最後に、今回のサーバー作成とはあまり関係ありませんが、一部のシングルソケットのXeonの対応しているBufferedメモリは規格が特殊なので、挑戦するときは気をつけてください。

やはり、サーバー用の部品での自作は結構リスキーではあります。


メモリだけでこの内容量なので、マザーボード以降は次に引き継ぎます。