2016年3月28日月曜日

Shuttle DS81を買ってESXi 6.0をインストールした話② (ESXi Custom Image作成~インストール完了まで)

前回、DS81の起動まで成功したので、引き続きOSインストールを行う。複数の仮想化サーバを構築したいので、ESXi 6.0をインストールすることにする。

ESXi Custom Imageの作成

DS81のNICは「Realtek 8168」という種類のようだが、これは通常のESXiのインストールメディアにはドライバーが組み込まれていない。ESXiはインストール時にNICが1つも見つからない場合、インストール画面が先に進めなくなる仕様となっているため、事前にドライバーを組み込んだインストールイメージを作る必要がある。これをCustom Imageという。

Custom Image作成は、以下のサイトのPowerCLIベースのツールを利用する。私が利用した際は、「Version 2.4.3 (2015-09-11)」となっていた。

・ESXi-Customizer-PS
http://www.v-front.de/p/esxi-customizer-ps.html

前述のとおりPowerCLIベースのツールであるため、PowerCLIもダウンロードしてインストールしておく。

・vSphere PowerCLI 6.3
https://developercenter.vmware.com/web/dp/tool/vsphere_powercli/6.3

Realtekのドライバは以下からダウンロードする。

・Realtek NIC on vSphere 6
http://www.vdicloud.nl/2015/02/07/realtek-nic-on-vsphere-6/
ファイル名:net51-drivers-1.0.0-1vft.510.0.0.799733.x86_64

以上で必要なものは揃った。

後はPowerCLIを起動して、以下の構文でESXi-Customizer-PSを実行するだけでよい。なお、インターネットからISOをダウンロードしつつドライバを組み込んでCustom Image化するので、インターネット接続できる端末にて実行すること。

   .\ESXi-Customizer-PS-v2.4.ps1 <バージョン> -pkgDir <ドライバ保存フォルダ>

   <バージョン>
    -v50 : Create the latest ESXi 5.0 ISO
    -v51 : Create the latest ESXi 5.1 ISO
    -v55 : Create the latest ESXi 5.5 ISO
    -v60 : Create the latest ESXi 6.0 ISO

   <ドライバ保存フォルダ>
    Realtekのファイルを保存したフォルダを指定。

以下に実際に実行した結果を記載する。

   .\ESXi-Customizer-PS-v2.4.ps1 -v60 -pkgDir c:\mydoc\vib\


以下のとおり、Realtekのドライバーが組み込まれているのがわかる。

-----------------------------------------------
Loading Offline bundles and VIB files from C:\mydoc\vib\ ...
   Loading C:\mydoc\vib\net51-drivers-1.0.0-1vft.510.0.0.799733.x86_64.vib ... [OK]
      Add VIB net51-drivers 1.0.0-1vft.510.0.0.799733
 [New AcceptanceLevel: CommunitySupported] [OK, added]
-----------------------------------------------

成功すると、ESXi-Customizer-PSと同じフォルダに「ESXi-6.0.0-20160302001-standard-customized.iso」というファイルが出力される。6.0のどのバージョンになるか気になったので、インストール後にバージョン確認をすると、以下のとおりISO作成時点の最新版となっているようだった。

   [root@esx01:~] vmware -vl
   VMware ESXi 6.0.0 build-3620759
   VMware ESXi 6.0.0 Update 2

ブート可能なUSBメモリの作成

Shuttle DS81にESXiをインストールするため、USBからのインストールをすることにする。検索するといくつかフリーソフトがあるようだが、今回は「Rufus」を使うことにする。

・Rufus
http://rufus.akeo.ie/

このツールを使って、以下の様な設定でブート用USBメモリを作成した。


何やらエラーが出たが、よくわからないので「はい」を選択しておく。その後は特に問題なく、USBへの書き込みが完了した。


ESXiインストール

後はESXiのインストールとなるのだが、起動する前に、先ほど作ったUSBメモリを背面のUSB3.0ポートに指しておく。起動直後に「DEL」キーを押しBIOSに入り、Boot順位変更の画面を表示する。この際にUSBメモリが選択可能となっているはずなので、順位を一番上に変更しておく。

なお、私の場合、流用したSSDに、以前のESXi環境がインストールされていたため、意図的にSSDをBoot対象から消しておいた。

後はBIOSを保存して再起動すると、USBメモリからインストーラが起動するはず。NICも正常に認識していれば成功となる。

まとめ

久しぶりにCPUやメモリを自分で組み立ててPCを作るのは、なかなか楽しい経験だった。また、ESXiのCustom Imageの作成やUSBメモリからのブート方法を試す良い機会だった。

現在このPCはWindows、Linuxだけでなく、メーカーから提供されている評価版製品や仮想ルーター等をインストールして遊んでいる。検証で遊ぶ分にはCPU・メモリ・ディスク速度の性能はまったく問題はない。しいて言えば、ディスク容量が256GBと少ないので、将来的にはmSATAの増設を実施するかもしればい。

2016年3月26日土曜日

Shuttle DS81を買ってESXi 6.0をインストールした話① (組み立て~起動まで)

古いノートPCにVMware ESXi 6.0をインストールして、お遊び用の仮想化サーバとして利用していたのだが、以下問題があった。

 ・低すぎるスペック(Core 2 Duoの2コアのCPU・4GBのメモリ)
 ・起動中はアイドル状態でもかなり本体が熱い

特に熱問題は火事につながるのではないかと心配になるほどだったので、いっそのことPCを1個新調することにした。

機器選定

機器選定を実施するにあたり、3つの条件があった。

 ①大きなデスクトップPCを置くスペースは確保できないので、「省スペース」であること
 ②古いノートPCで使用していた2.5インチのSSDを流用できること
 ③低コストであること(目標は5万円以下)

上記を満たすものをAmazonで探すと、最終的な候補は以下となった。

 ①Intel NUC Kit NUC5i3RYH
  ・CPU:Core i3-5010U
  ・対応メモリ:DDR3L SODIMM 1.35V、1333、1600、1866MHz対応、16GB MAX
  ・対応ストレージ:2.5インチHDDorSSD 9.5mm厚対応/M.2 SSD
  ・大きさ/重量:13.7 x 10 x 12.5 cm / 408g
  ・消費電力:65W
  ・38,831円

 ②Shuttle SH170R6
  ・CPU:LGA1151対応 (第6世代 Intel Coreプロセッサー対応 最大TDP95W)
  ・対応メモリ:DDR4 2133 DIMM 4スロット (最大容量64GB) デュアルチャンネル×2
  ・対応ストレージ:3.5インチHDDorSSD x 2、M.2スロット
  ・大きさ/重量:216 (幅)× 332 (奥行き)× 198 (高さ)mm / 3.5kg
  ・消費電力:300W
  ・33,980円

 ③Shuttle DS81
  ・CPU:LGA1150対応CPU(TDP65W迄) Haswell Refresh対応
  ・対応メモリ:DDR3 1333/1600 SO-DIMM、2スロット,デュアルチャンネル (最大容量16GB)
  ・対応ストレージ:2.5インチHDDorSSD、mSATA
  ・大きさ/重量:165(幅)×190(奥行き)×43(高さ)mm / 1.63kg
  ・消費電力:90W
  ・22,680円

①は最初から最も小さくコンパクトになるが、CPUの選択ができず、性能から考えるとややコストパフォマンスが悪い。②は拡張性十分だが筐体が大きすぎる(特に5インチベイがあるので、幅が普通のデスクトップと同等)し、それに高価。③は対応するCPUに制約はあるものの、コストが安く大きさもちょうどよい。

ということで、③のShuttle DS81にて省スペースPCを組み上げることにした。また、DS81にはPCでは珍しく、オンボードで1Gb Ethernetが2ポートもあるので、将来的に面白い使い方ができそうということも選定理由となった。

Shuttle DS81に必要なパーツ選定

Shuttle DS81はベアボーンキットであり、CPU・メモリ・ディスクはすべて別に入手が必要。今回は仮想化サーバ用途なのでグラフィック性能は必要なく、重い処理をさせる予定もないので、CPUはCore i3を選定した。逆にメモリは仮想サーバが増えれば増えるほど必要となるので、最大の16GB(8GB x 2)で組むことにした。ディスクはもともと古いノートPCで使用していた256GBの2.5インチSSDを流用する。

後は細かい備品として、ディスプレイ出力用のHDMIケーブル(ディスプレイは所有していないので、一時的にテレビで初期設定する想定)、初期設定用USBキーボード、冷却ファンのホコリフィルターを購入。結果として明細は以下のとおりとなった。


 ・本体:Shuttle DS81 ¥ 22,680
 ・CPU:Intel Core i3-4170 3.70GHz LGA1150 ¥ 14,469
 ・メモリ:SP シリコンパワー 8GB×2枚組 DDR3-1600 PC3-12800 SO-DIMM ¥ 8,990
 ・USBキーボード:サンワサプライ SKB-L1UBK ¥ 496
 ・HDMIケーブル:エレコム  1.5m ブラック \ 712
 ・冷却ファンフィルター :SilverStone SST-FF141 \ 545
 -----------------
 ・合計:\ 47,892

予算ちょうど。Amazonやヨドバシ.comで注文したら、2日以内に全部家に届くというすごい時代。

DS81の組み立て

ものが集まったので、組み立てを行うことにする。

1. DS81開封

DS81を箱から出すと、内容物は以下のとおりだった。


 ・本体
 ・ACアダプター
 ・取付用金具
 ・ネジ
 ・熱伝導グリス
 ・CPUスロットカバー
 ・各言語のマニュアル
 ・DVD

DS81の背面。1Gb Ethernet x 2、シリアルポート x 2、ディスプレイポート x 2、HDMI x 1、USB x 4(2つはUSB3.0対応)という、通常のデスクトップPCでは見かけない面白いインタフェース構成。シリアルポートの使い道がまったく思いつかない。


2. 分解

CPUやメモリを取るつけるため、蓋を開けて分解していく。蓋は後ろのネジを2箇所緩めれば簡単に開く。



蓋を開けた直後はファンと2.5インチベイしか見えない状態なので、さらに分解していく。

最終的にはCPUスロットとメモリスロットにアクセスできるようになった。


3. CPU取り付け

CPUの固定具を開け、CPUを起き、固定具にて固定するだけ。



固定後に熱伝導グリスを塗ってからファンを取り付ける。熱伝導グリスの塗り方は諸説あるし、塗り方を変えてもあまり温度に変化がないという記事も見かけたりする。結果的に私は均等に塗ろうとして失敗。あきらめてファンを取り付けたが、現状支障はなさそうということを伝えておく。


4. メモリ取り付け

斜め45度でスロットに差し込み倒すだけ。とても簡単。


5.SSD取り付け

2.5インチベイに付属のネジを使って止めるだけ。電源とSATAケーブルは初期状態で使える位置に出ているので、それを差し込む。


6. 蓋取り付け

最後に蓋を取り付けて完成。蓋のネジは取り外ししやすいように、手で回せるネジに変えておいた(本当は付属の金具取り付け用のネジのようだが、大きさはちょうどよい)。


なお、DS81は上部の穴から吸い込み、側面から熱を逃がす作りとなっているので、フィルターを購入して上部の穴に付けておいた。

起動

完成したのでいよいよ起動させてみる。ディスプレイは持っていないのでテレビにHDMIで繋げ、今回のために購入した激安キーボードを接続して電源をONする。マウスは不要なので接続しない。BIOSに入りたかったのだがキーがわからず、もともとSSDにインストールしていたESXiが起動してしまう失敗を数回繰り返した後、DELキーでBIOSに入ることに成功。

BIOSではCPUもメモリもきちんと認識していた。


一旦、ここまで。次回はESXi 6.0のCustom Image作成からインストール完了までを記載する。


2016年3月5日土曜日

Linuxで止めるべきサービスと止めないサービスの一覧

Linuxをインストールして一番最初の作業として、不要なサービスの停止がある。ディストリビューションやバージョンによってサービス名が微妙に異なったりするのだが、今回以下OSを新規インストールする機会があり、サービスの取捨選択を実施する必要があった。

 ・対象OS : Red Hat Enterprise Linux Server release 6.2 (Santiago)
 ・イントール方法 : 基本サーバ

私が設定した内容を以下に記載するが、サービス停止は考え方・ポリシー・好みによって、人によって判断が変わるので注意する。同じような情報はインターネット上に無数に存在するので、そちらも参考にした方がよい。

サービス一覧取捨選択結果

まずは以下コマンドで、起動時に自動で立ち上がるサービスを確認する。

# chkconfig --list | grep 3:on
※GUI環境を使う場合は、grep 5:onなどに変える

上記の出力結果にて、onのままにするもの・offにするものを以下のように選択した。

--------------------------
abrt-ccpp       0:off   1:off   2:off   3:on    4:off   5:on    6:off
abrt-oops       0:off   1:off   2:off   3:on    4:off   5:on    6:off
abrtd           0:off   1:off   2:off   3:on    4:off   5:on    6:off
→OFF:自動バグ報告ツール (ABRT)。まったく不要というわけではないが、使用方法がよくわからない

acpid           0:off   1:off   2:on    3:on    4:on    5:on    6:off
→OFF:電源管理デーモン。仮想マシンで常時起動で問題ない

atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
→ON:at実行ツール。使うことがあるかもしれないのでON

auditd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
→ON:操作ログの収集・監査をするためのデーモン。操作ログが不要な場合はOFFでもよさげ

autofs          0:off   1:off   2:off   3:on    4:on    5:on    6:off
→ON:ファイルシステムの自動マウント機能。OSの機能として必須

cpuspeed        0:off   1:on    2:on    3:on    4:on    5:on    6:off
→OFF:CPU電力管理デーモン。仮想マシンでは不要

crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
→ON:定期タスク実行ツール。OSの機能として必須

cups            0:off   1:off   2:on    3:on    4:on    5:on    6:off
→OFF:印刷は特に想定しないのでOFF

haldaemon       0:off   1:off   2:off   3:on    4:on    5:on    6:off
→OFF:ハードウェア情報収集。同等の機能がudev等に引き継がれておりOFFにしてしまって問題なさそう

ip6tables       0:off   1:off   2:on    3:on    4:on    5:on    6:off
→OFF:IPv6用ファイアウォール。IPv6は利用していない

iptables        0:off   1:off   2:on    3:on    4:on    5:on    6:off
→OFF:IPv4用ファイアウォール。特にセキュリティ上必要ではないのでOFF
 (本当はきちんと設定して有効にした方がよい)

irqbalance      0:off   1:off   2:off   3:on    4:on    5:on    6:off
→ON:割り込み要求(IRQ)を複数CPUで分散するためのデーモン

kdump           0:off   1:off   2:off   3:on    4:on    5:on    6:off
→OFF:カーネルのクラッシュダンプ取得機能。商用で使うサーバーでなければOFF

lvm2-monitor    0:off   1:on    2:on    3:on    4:on    5:on    6:off
→ON:LVM利用時の監視用デーモン。通常LVMは使用しているのでON

mdmonitor       0:off   1:off   2:on    3:on    4:on    5:on    6:off
→OFF:ソフトウェアRAIDの監視機能

messagebus      0:off   1:off   2:on    3:on    4:on    5:on    6:off
→OFF:D-Busと呼ばれるアプリケーション間の通信を使う場合はONだが、通常OFFで問題なさそう

netfs           0:off   1:off   2:off   3:on    4:on    5:on    6:off
→OFF:NFSの自動マウント・アンマウント昨日。NFSサーバー用途として利用しないのでOFF

network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
→ON:ネットワーク接続するために必須

nfslock         0:off   1:off   2:off   3:on    4:on    5:on    6:off
→OFF:NFSサーバー用途として利用しないのでOFF

portreserve     0:off   1:off   2:on    3:on    4:on    5:on    6:off
→ON:TCP/IPのポートを管理するデーモンのようだが、よくわからないのでON

postfix         0:off   1:off   2:on    3:on    4:on    5:on    6:off
→OFF:メール送信機能は使わない

qpidd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
→OFF:Apache Qpidというアプリケーション間の通信規格を使うためのデーモンだが、使うことはなさそう

rhnsd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
→OFF:Red Hat Network Daemon。定期的にRed Hat Networkに接続して更新確認をする

rhsmcertd       0:off   1:off   2:off   3:on    4:on    5:on    6:off
→OFF:Red Hatサブスクリプションマネージャーデーモン。いったん止めておく

rpcbind         0:off   1:off   2:on    3:on    4:on    5:on    6:off
→OFF:NFSサーバー用途として利用しないのでOFF
→ON:NFSクライアントを使い場合があるのでON (2016/5/8 修正)

rpcgssd         0:off   1:off   2:off   3:on    4:on    5:on    6:off
→OFF:NFSv4にKerberos認証の機能を提供するデーモン。NFSサーバー用途として利用しないのでOFF

rpcidmapd       0:off   1:off   2:off   3:on    4:on    5:on    6:off
→OFF:NFSv4にて利用するらしい。NFSサーバー用途として利用しないのでOFF

rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
→ON:RHEL6.0から導入された新しいsyslog。OSの機能として必須

sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
→ON:SSH接続するために必須

sysstat         0:off   1:on    2:on    3:on    4:on    5:on    6:off
→ON:OSリソース状態確認ツール。役に立つことがありそうなのでON(不要ならOFFでもOK)

udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
→ON:新規ハードウェア等を自動で検知する。NIC追加時などに役立つことがあるのでON
--------------------------

不要サービス停止の設定方法

offにするサービスについて、以下のとおりコマンドを流し込み一気に設定する。

--------------------------
chkconfig abrt-ccpp off
chkconfig abrt-oops off
chkconfig abrtd off
chkconfig acpid off
chkconfig cpuspeed off
chkconfig cups off
chkconfig haldaemon off
chkconfig ip6tables off
chkconfig iptables off
chkconfig kdump off
chkconfig mdmonitor off
chkconfig messagebus off
chkconfig netfs off
chkconfig nfslock off
chkconfig postfix off
chkconfig qpidd off
chkconfig rhnsd off
chkconfig rhsmcertd off
chkconfig rpcbind off
chkconfig rpcgssd off
chkconfig rpcidmapd off
--------------------------

最終的な設定結果は以下のようにシンプルになった。

--------------------------
# chkconfig --list | grep 3:on
atd             0:off   1:off   2:off   3:on    4:on    5:on    6:off
auditd          0:off   1:off   2:on    3:on    4:on    5:on    6:off
autofs          0:off   1:off   2:off   3:on    4:on    5:on    6:off
crond           0:off   1:off   2:on    3:on    4:on    5:on    6:off
irqbalance      0:off   1:off   2:off   3:on    4:on    5:on    6:off
lvm2-monitor    0:off   1:on    2:on    3:on    4:on    5:on    6:off
network         0:off   1:off   2:on    3:on    4:on    5:on    6:off
portreserve     0:off   1:off   2:on    3:on    4:on    5:on    6:off
rsyslog         0:off   1:off   2:on    3:on    4:on    5:on    6:off
sshd            0:off   1:off   2:on    3:on    4:on    5:on    6:off
sysstat         0:off   1:on    2:on    3:on    4:on    5:on    6:off
udev-post       0:off   1:on    2:on    3:on    4:on    5:on    6:off
--------------------------

これで一度リブートすれば、必要最低限なサービスで起動したLinuxができあがる。ここから必要に応じてyumやrpmでパッケージをインストールしたりして、必要な機能を足していくのが良い。