👋

今更SandyBridge世代のサーバを使って、低予算でESXi検証環境を調達した話(機材選定編)

2022/08/06に公開

前置き

仕事ではSIerに従事している私だが、会社の環境がとにかく貧弱すぎる。プロキシでがちがちの不自由なネットワークに、貧弱な予算。一括償却の範囲内でしかサーバが買えず、検証環境を立ち上げることすら大変である。そこで、今更ながらSandyBridge世代のサーバを買って、格安で検証環境を立ち上げた話をする。今回は、実際の構築話ではなく、構築前の物品選定などを中心に話をする。

EbTとは

私の記事の中で、EbTというワードが多く出てくる(予定)。これは、Executive Beta Testerの略で、取引先の方が命名してくださったもの。率先してベータ環境を構築していくことで、エンジニアとしての成長を目指していくという意味合いが込められているらしい。EbT環境を持っておくと、社外で気軽に新環境に手を出すことができる。ここでも、格安でEbT環境を構築する方法を模索していく。

ESXiとは

EbT活動を行っていくにあたって、テスト用の環境を構築するというのはよくある話である。しかし、1台のPC(サーバ)に1つの環境を構築しているようでは、割に合わない。そこで、何台ものPCを1台のサーバにまとめてしまうことが一般的に行われる。これを仮想化と呼ぶ。

ESXiとは、仮想化ソリューションの一つである。VMWare ESXiまたはVMWare vShpre Hypervisorと呼ばれる。有償版と無償版が存在する。個人利用であれば基本的に無償で用いることができ、専用のOSを導入することで、オーバーヘッドの少ない快適な実験環境を構築できる。

仮想化方式には様々なものがあるが、ESXiはハイパーバイザ型と呼ばれるもので最もメジャーなものである。同一ジャンルの製品にHyper-Vがあるが、ハイパーバイザ(OS)部分のオーバヘッドが大きく、仮想化を行うのであれば、個人の範疇であればESXiを用いたほうが性能面やコスト面で優れる。

しかし、WindowsPCの上に仮想マシンを構築するような、ホスト型と違って、クライアントマシンと兼用することはできないため、新たに1台サーバを構築する必要がある。サーバを構築するにはイニシャルコストが必要であるので、EbT活動を行うにあたってできるだけ安価に実験環境を構築するために、界隈の皆さんは様々な努力を行っている。

ここでは、サーバ構築方法の1つである、「型落ちの旧式サーバに的を絞って、5万円以下くらいで環境を構築する」ことを目標にサーバ構築を行う。

サーバの選定

サーバの選定でまず問題となるのが、デスクトップサーバを選定するか、ラックサーバを選定するかという問題である。サーバを選定する以前に、そもそもデスクトップマシンや、NUCのような小型デスクトップを用いる方法もある。そこで、それぞれにおけるメリット、デメリットを上げる。

種類 メリット デメリット
デスクトップ(一般・小型) 最新CPU世代が選定しやすい
小型のものを選定しやすい
メモリ・ディスク枚数に制限
ノートPC 小型 価格・メモリ・ディスク容量・安定性すべてに難がある
サーバ(デスクトップ) より多くのメモリ(6枚)が搭載可能
SASディスクで格安、高性能なアレイを構築可能
動作音がやや気になる場合がある
サーバ(ラック) 多くのメモリ(12枚程度)と多くのディスク(6bay程度)を積める。平積み可能 動作音が大きい

メモリ、CPU、ディスクの拡張性を考えると、2U程度のラックサーバを購入するのが最もコストパフォーマンスがよい。世代にもよるが、2Uサーバは筐体・RAIDコントローラを搭載した状態で5000円程度から入手可能な場合もある。ただし、ファンの騒音が大きい場合が多く、何の対処もしない場合自宅での運用は厳しいだろう。しかし、大容量のディスクアレイが必要な実験や、128GBを超える大容量な仮想化サーバを構築したい場合などは、2Uサーバが最適である。

デスクトップサーバは、ラックサーバとデスクトップPCの中間で、一般的なデスクトップPCと比べればファン音が気になるが、まだ我慢できるレベル。実験部屋が寝室と分かれている場合は気にならないだろう。横で寝るにはちょっと邪魔かもしれない。メモリも6枚程度搭載可能な場合が多く、HDDは4本程度が一般的。価格も5000~7000円程度で入手可能だから、一般的なEbT用途に向く。

一般的なデスクトップPCの転用もEbTではよくある話である。この場合、普通のPCを流用する人、ちょっとランクの高いワークステーションを流用する人、小型を狙ってNUCを流用する人とそれぞれの宗派がある。超省電力を狙うのであれば、一般PCやNICの流用一択になる。一般PCを流用する際は、ESXiの対応状況に注意が必要である。ESXiは、Intel、Broadcom系のNIC(ネットワークIF)しか認識しない。一般的なサーバはたいていの場合、IntelのNICを搭載しているから、この制限に当たらない場合が多く、EbT環境を構築しやすい。ESXi 6.xまでは、別途ドライバを導入する方法があったが、ESXi7.x系では利用できなくなったため、通常はIntel系のNICを搭載したマシンを利用するのがよい。非対応のNICを搭載しているマシンに、どうしてもESXiを導入したい場合は、ESXi 6.xを用いるか、Asix系のUSB-NICチップを搭載したUSB-NICを別途接続すれば回避できることがある。(BuffaloやElecomなどの、国内でよく手に入るUSB-NICはAsixチップを採用していることが多い。

VMWareは、Hardware Compatibility Listを公開している(https://www.vmware.com/resources/compatibility/search.php)。最近は、コミュニティ向けに非公式なリストも提供されるようになってきたので、PCを流用する際は確認してもいいだろう。(https://www.itmedia.co.jp/news/articles/2203/15/news072.html)

筆者は、以前は一般的なPC(Lenovo ThinkCenter M75q-1 tiny)でESXiを構築していたが、メモリ、ディスク、CPUすべてにおいて限界感が目立ってきたことから、サーバでの再構築を決めた。その際最もネックであったのがファンの騒音であったので、別途PWMコントローラを自作し、ファン音を低減することにした。

CPUとメモリの世代

EbT用途でまだギリギリ使える下限スペックは、sandybridge-ep系のCPUである。2世代Core-iシリーズとして一世を風靡したsandy世代だが、流石に今となってはだいぶ古い。しかし、もはや捨て値といえる1000円~2000円/台で購入でき、送料込みで5000円程度で入手可能なのは嬉しい。壊しても痛くない。後述の通り、メモリも格安で入手可能である。性能としては、8コア16スレッド程度のCPUが搭載可能なので、数台~10台程度の仮想PCの作成なら全く問題ない。ゲストOS(仮想PCのOS)にWindowsを用いることも十分可能である。

サーバPCを採用できるメリットの一つに、DDR3-RDIMMが搭載可能な筐体を選定できることが挙げられる。DDRメモリには様々な種類がある。まずはDDRの世代であり、これはDDR3などと記載されている部分の数字である。DDR3と書かれればDDR3世代のメモリ、DDR4であればDDR4、そして最近はDDR5世代が台頭してきているが、まだ普及には至っていない状況である。

次に、同じメモリ世代でも、パリティなし・パリティあり・パリティ+レジスタードメモリ搭載の3種類のメモリが存在する。パリティなし→あり→パリティ+レジストリメモリとランクアップするごとに、エラー訂正能力が上がる。通常のPCはパリティなしであり、大容量メモリになると価格が急上昇するため、DDR3マシンの場合最大32GB(8×4GB)、DDR4マシンの場合最大128GB(32×4GB)が一般的な限界といえる。一般的なサーバは、レジスタードメモリの搭載が可能であり、この場合、大容量・複数本の搭載をサポートしている。2Uラックサーバでは、1CPUあたり最大12枚の実装が一般的で、2CPUでは24枚装着できることもある。

レジスタードメモリは、一般的なPCに装着して使えないこともあり、中古市場価格が抑えめである。そこで、旧世代のDDR3世代のレジスタードメモリが搭載できる捨て値のサーバと、捨て値のメモリを入手することで、構築コストの低減を試みる。

サーバの選定

サーバは、次の2台を試した。

  • 富士通 RX300 S7
    RX300 S7は、RAIDコントローラを認識した瞬間にBIOSがフリーズするという現象に見舞われるようになってしまった。そこで、ソフトウエアRAIDを用いたバックアップサーバに転用したため、今回の話の対象外になってしまった。
    picture 6

  • 富士通 TX150 S8(画像は公式サイトより)
    普通のデスクトップサーバである。特に不具合もなかった。
    picture 7

どちらもsandy世代のサーバである。メモリはDDR3世代で、レジスタードメモリが使用可能である。RX300は2Uラックサーバであり、マザーボードに一部不具合があったため、実験は主にTX150を用いることになってしまった。

メモリの選定

DDR3-RDIMMを選定した。ヤフオクでPC3-12800Rと検索すると多くの出品物がある。入手当時の価格は64GB/1万円だった。ここでは、RX300の最大容量である192GB分調達した。

ディスクの選定

いろいろと購入して試したが、最終的には下記の構成に落ち着いた。

  • SAS 15k 300G *3 Raid5

SSDは搭載せずSASのみの構成とした。SAS 15kドライブはランダム性能が比較的高く、ヤフオクで4台で2400円(送料込み)で入手でコストパフォーマンスに優れる。内蔵RAIDで4台 RAID5構成で構築する予定であったが、1台不良品であったため3台構成とした。

調達価格

試行錯誤分を除いて、TX150を用いたシステム全体の価格は下記の通りであった(すべて送料込み)

  • HDD SAS 15k 300GB 4本 2550円
  • 本体 TX150 S8 5775円
  • RAIDカード SAS 9266-8i 2100円
  • メモリ PC3-1288R 96GB 約15000円
  • 交換用CPU(8C16T) 約1500円

この筐体は、元々RAID6に対応したコントローラが付属しているが、若干性能の高いSAS 9266-8iに交換してある。
システムの合計金額は三万円を切り、新品格安PCを購入するよりよっぽど低予算でサーバを構築できた。
ストレージがHDDのみであり容量もアンバランス感があるため、予算に余裕があれば1万円程度でSATA SSDを増設するとよい。

ESXiのカスタムイメージ

各サーバメーカでは、ESXiのカスタムイメージを公開している。VMWareのダウンロードページからダウンロードできるため、汎用のISOを利用せず、カスタムISOの利用が推奨される。例えばRAIDコントローラの状態取得であったり、ファンの制御が行えるなどの恩恵が得られる。
https://customerconnect.vmware.com/jp/downloads/info/slug/datacenter_cloud_infrastructure/vmware_vsphere/7_0#custom_iso

サーバの静音化

サーバは、一般的なPCと違ってファンコントロールを行うことができない(難しい)。しかし、PWMファンのPWM信号に割り込むことでファンの回転数制御を行うことができる。Amazonで1000円以下で売られているArduinoや、Raspberrypi Pico、ATTiny85等を用いて、適当に数10khzのPWMを生成することで、大抵のPWMファンを制御することができる。この方法を用いて、RX300、TX150双方ともにファン速度を低速に落とすことができた。

picture 1
picture 2
picture 3
picture 4
picture 5

その他の選択肢

ほかにも、下記のような構成例が考えられる。

  • Tninkcentre M75q-1 tiny gen2を用いて構築する
  • MinisforumのminiPCを用いて構築する。
  • Intel NICを搭載したマザーボードとRyzen CPUを用いて構築する
  • さらに予算を上げて、世代の新しいサーバを購入する

Discussion