はじめに

こんにちは、うしぃです。
前回は、「サーバーって何?」ということで、世の中のサーバーとその役割についてお話しさせていただきました。
今回は、製作実習でサーバーを作ったお話をさせていただきます。

サーバー作ります、、、

先にも述べたとおり、私は、サーバーを作りました。
入社して、部署に配属され、SE として初めての課題「自作サーバーの製作」。
この課題を部品の調達から始めたのですが、サーバーを作るにはどんなパーツが必要なのか、
製作するサーバーのスペックはどうするかなど、パーツの購入までに調べて学ぶことが多くありました。
初めに、サーバーを構成しているパーツにはどのようなものがあるのか調べると、
次のようなものが挙がりました。(表 1)

表 1 サーバーの構成パーツ

表 1 の通り、サーバーは市販のパーツを使う限りは意外と少ないパーツで構成されています。
しかし、実現したいサーバーのスペックを考えた際には、考慮しなければいけないことがたくさんあります。
・マザーボードに必要なスペック
・CPU の処理能力
・メモリや HDD の容量
・電源の供給電力量が各パーツの使用電力量の合計を満たしているか


これらは、私にとって非常に難関で、躓いたポイントでもありました。


※私が躓いたパーツ選定 TOP 3

1 位:CPU の選定
   →CPU を 2 つ搭載することにしました。その理由は“コア数を稼ぐため!”です。
    コア数が多いと、同時に複数のプログロラムを展開できるため、多いに越したことはありません。
    また、今後の記事で触れる予定の「仮想環境」を構築する際にも、このコア数が関係してきます。

2 位:メモリの選定
   →メモリには、“ECC 機能”が付いたものを選ぼうとしていたのですが、マザーボード側が
     ECC 対応かどうかわからず、悩みました。
   ※サーバー用途のマザーボードなら大体は対応しているようです。

3 位:マザーボードの選定
   →CPU の数を 1 つにするか、2 つにするかということで二転三転したり、
それに伴いECC メモリに対応しているのかも確認し直したりしました。
    加えて、サーバー用途となると、取り扱っているお店も少なく、さらに在庫もないといったこともあり、苦労しました、、、
     ※在庫確認はお早めに!

また、文字だけでは分かり難いので、サーバーの構成パーツを、図を用いて表してみます。(図 1)

図 1 サーバーを構成するパーツ群

これらのパーツを適切に組み込んでいくことで、やっとサーバーの「」が出来上がるのです。
ここで、「」という表現を用いた理由としては、このままでは世の中で使われているサーバーとしての機能は何一つ持っていないためです。

前回の記事を見ていただいた方はピンと来たのではないでしょうか?
そうです、この「」に「アプリ」をインストールし、設定することで、やっとサーバーが完成するのです。

※アプリをインストールする前に OS (Linux や Windows など)環境を構築する必要があります。

補足

◆CPU を “Xeon® E5” にした理由
 Intel® 社製 CPU ”Xeon®” は、サーバー向けCPUで、 “E7”、”E5”、”E3” という 3 つの Family があります。
 私が”E5” Family の CPU を選んだ理由としては、

 ・同時に 2 つの CPU を搭載したい(E3 Family は 1 台のサーバーに 1 つしか搭載できない)
  →E5 を選んだ方がコア数を多くできる。
 ・使用できる PCI Express のレーン数を多くしたい
  →私が担当している”Mellanox 社” の製品には、PCI Express という接続規格のスロットに差し込み、使用する製品があります。
    技術検証の際には、この PCI Express のレーンを多く使えた方が良いので、”E5” が適していました。
   ※レーン数は、データの通り道というイメージです。レーン数が多いほど道幅が広く、多くのデータが通れます。(図 2)
   ※E5 は合計で 40 レーン、E3 は合計で 16 レーン使うことができます。

図 2 PCI Expressのレーン数のイメージ

◆ECC (Error Check and Correct) メモリについて
 ・メモリに記録されたデータのエラーを「検出」・「修正」してくれる機能が ECC です。(図 3)
  ※修正できるのは1ビットまで。2 ビット以上は検出のみ可能。
  →サーバーは PC と違って、「サービス」を提供するのが仕事です。
    この仕事を安定的に行うためにも、データのエラーに対処してくれる ECC メモリがサーバーには必要となります。
  ※データのエラーは、電気的要因や物理的要因など様々な事象により生じます。
   このエラーはサーバーや PC のクラッシュの原因にもなります。

図 3 ECCメモリの役割イメージ

終わりに

今回は、サーバーの「箱」を実際に組み立てたことを題材に記事を書かせていただきました。
次回は、「」を「サーバー」に変える方法について、お話ししたいと思いますので、よろしくお願いします。

NVIDIA Networking(旧Mellanox 社)の概要

◇広帯域、低レイテンシーインターコネクトのリーディングカンパニー
・EDR 100 Gbps InfiniBand、/ 100 ギガビット Ethernet
・アプリケーションのデータ処理時間を大幅に削減
・データセンタサービス基盤の ROI を劇的に向上