自宅に仮想化基盤を構築してみたときのお話

#前提
この記事では私が仮想マシンを使った勉強のために自前で構築した仮想化基盤に関するお話です。
いくつか登場するソフトウェアやハードは最新のではなく古いものが使われています。

#事の始まり
私のお仕事には、新しい機能や技術を使うために技術的検証をするというお仕事がよくあります。
過去には自動化という観点でAnsibleやVagrantを使ってサーバの構築や設定の自動化をするようなことがありました。
この場合、弊社の仮想化基盤をリモートで操作するわけですが、何かと制約も多いため勉強のために自由に使える仮想化基盤が欲しいと当時の私は考えました。
物は試しと、自宅の余りものマシンにESXiを突っ込んで仮想化基盤をお試し構築してみたけど、リソースが貧弱で満足できず、某オークションサイトにてラックマウントサーバをぽちってしまう。

#幸運かなラックマウントサーバを手に入れてしまった
仮想マシンを動かす方法としては、OSが稼働しているマシンにVirtualBoxやQEMUなどをインストールして、そこに仮想マシンを稼働させるホスト型ハイパーバイザと、専用のOSなし物理筐体を用意しESXiなどのソフトウェアを利用するベアメタル型ハイパーバイザがあります。
前者の場合は普段使っているマシンに専用ソフトを導入すれば仮想マシンの構築ができるという面でコスパはいいですが、OSが稼働している分、仮想マシンで使えるリソースが少なくなります。
後者の場合はOSが稼働していない分、リソースも確保でき処理速度の低下も少ない利点があります。
今回は複数のインスタンスを稼働させ検証する必要があり、単純にメモリ数とコア数がそれなりに必要という理由からです。
ハイスペックなマシンを買えば数年前の当時でもオクタコアやヘキサコア以上のCPUもありました。
いろいろ調べた結果として、かなりの型落ちですがサーバ・ワークステーション向けの6コアのCPUを2個搭載しているラックマントサーバが複数出品されていたので、それを粘って落札することに。
最終的にはグラボを増設したりしましたが、物理筐体の送料を除くと諭吉さん１枚以下で環境をそろえることができました。

#マイ仮想化基盤のマシン構成
本体：HPE ProLiant DL360p Generation 8
プロセッサー：インテル Xeon プロセッサー E5-2640×2 (合計12コア,24スレッド)
メモリー：16GB
グラフィック：NVIDIA Quadro K620

今回はESXiを導入したので管理画面から見るとこんな感じです。
![ESXI.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2342210/facb90e6-7ce3-109d-c08d-4e31c60b2dc7.png)

#ESXiを導入するにあたって苦労した話（過去談含む）
ESXiのサポート状況を[こちら](https://www.vmware.com/resources/compatibility/search.php "www.vmware.com")で検索することができます。


古いパソコンや自作パソコンを使ってESXiを動かそうとするといくつか壁にぶち当たります。
前者の場合は「Unsupported CPU」の壁、サポートしていないCPUの場合は警告が表示されてインストールができません。
今回はこの壁にぶち当たらず試していませんが、これには対処法もあり
1.ブートメディアでESXiを起動
2.ESXiブートメニューが表示されたあとの5秒以内に[SHIFT + 0]を入力する。
3.ブートオプションとして"allowLegacyCPU=true"を追加する。
この方法でインストールできるみたいです。
よほど古いCPUでない限りはこの問題にぶち当たる機会もないかと思われます。

私が使っているHPE ProLiant DL360p Gen8は公式によるとESXi6.5が最終サポートですが、VMWare本家で手に入るカスタムインストールメディアを使って自己責任で7.0を入れています。
VMware_ESXi_7.0.0_16324942_HPE_700.0.0.10.5.5.46_Jun2020.iso
↑これをCDに焼いてインストールできることを確認済みです。
本家の[こちら](https://customerconnect.vmware.com/jp/downloads/details?downloadGroup=OEM-ESXI70-HPE&productId=974 "customerconnect.vmware.com")から入手できます。
最新のバージョンを試せないのがちょっと残念なところではありますが自分でカスタムインストールメディアを作らなくていいのはよいところ。

ここからは過去談ですが、、、
以前、自作マシンにESXiをインストールしようとしてネットワークドライバの壁にぶち当たりました。
この場合はインストールメディアの中にドライバが内包されていないので自分でカスタムインストールメディアを作ることになります。
カスタムインストールメディアの作り方は本家を調べれば出てきますが、肝心なドライバに関しては物理nicの製造元が配布していない場合が多くドライバが見つからない場合が多いです。
そんなときは自己責任ですが、、、
[ここ](https://vibsdepot.v-front.de/wiki/index.php/List_of_currently_available_ESXi_packages "vibsdepot.v-front.de")あたりで有志の方々が作ってくださったドライバを入れて解決する方法もあります。

これでたいていの場合はインストールができるようになるかと思われます。

#マイ仮想化基盤を持ってみての感想
1.よい点
自分以外誰も使っていないので心置きなくいじり倒せることができて幸せになれる。
運用等でも使われている仮想化基盤を操作するときは当たり前ですが、人様に影響を与えないように注意しながら慎重に操作する必要もあり、あれこれ実験するとなるとさらに注意が必要となります。
其の点、自分だけの専用基盤を持つことは周りを気にせず実験できるので学習しやすくドキドキしやすい心臓にも優しいです。
なんかの拍子に不具合が発生しても再構築が気軽にできるのも良い点です。

複数の仮想マシンを稼働させ別々の作業ができる。
各々の仮想マシンの用途によりますが、低予算の仮想化基盤でも12コアくらいコアがあると最大12台くらいの仮想マシンを稼働させることができるので、仮想マシン毎に違う検証が多くできる。
コア数の多いCPUはお値段も高いので低予算で何とかしたい場合かつ、とにかく仮想マシンを多く立てたい場合は中古のラックマウントサーバを手に入れたほうが割安な気がします。

2.悩ましい点
騒音と夏場の気温
これらに関してはラックマウントサーバだからっといったところでしょうか。
冷却ファンの音がドライヤーの音並みに騒がしいです。
静穏PCやノートパソコン等で構築すれば解決できるでしょう。
夏場はエアコンを強めに設定して部屋の温度を冷やしてあげないとすぐに冷却ファンの回転数が最大になり耳に冷却ファンの騒音が焼き付いてしまいます。
冬場はいい暖房元になるので良いのですが、、、、。

3.悪い点
電気代と相談する必要あり
ラックマウントサーバの場合、電源が冗長構成にされていたりするのでフル機能を活かそうとするとかなりの電気を消費します。
私の持っているサーバも1台でデスクトップ2台分くらいの電気代を消費しています。
某マイニングパソコンではないですが365日稼働させれば電気代は恐ろしいことになるでしょう。
私の場合は土日限定稼働させています。

仮想化基盤自体を業務以外で使う機会はあまりないと思われますので、マイ仮想化基盤を持って勉強という名のお遊びをしてみるのはいかがでしょうか？