VMware ESXi活用ガイド:パフォーマンス最適化からSSH有効化までの実践テクニック
当ブログでは、これまでESXについてあまり深く取り上げてきませんでした。今回はその埋め合わせとして、ESXiに関する実用的なノウハウをたっぷりとご紹介します。ESXiで仮想マシンをクローンする方法に関するチュートリアルに続き、今度はVMwareの魅力をさらに掘り下げていきましょう。
ESXiは無償で提供されているベアメタル型ハイパーバイザーであり、最も高価かつ高機能な仮想化ソリューション「ESX」へとつながる最初のステップです。
念のため整理しておくと、VMwareにはホームユーザー向けの「VMware Player」や「Workstation」があります。また、ESXの機能を小規模でお手軽に体験できる無料版として「VMware Server」も存在します。そして本題の「ESXi」ですが、これは意図的にいくつかの機能制限が組み込まれています。レースゲームにおける隠しボーナスのようなものと考えてください。ESXiのポテンシャルを最大限に引き出すには、ひと工夫が必要です。それがこの記事の目的です。

はじめに一言
筆者はVMwareの専門家ではなく、あくまで熱心なユーザーの一人です。とはいえ、これまでの記事が皆さんのお役に立てるはずです。さらに詳しく知りたい方のために、記事の後半にある「参考資料」セクションで優良な情報源を紹介しています。それでは始めましょう。
ゲストOSのパフォーマンス最適化
仮想マシンを最高速度で動作させることは非常に重要です。特に、複数の仮想マシンが限られたリソースを奪い合う環境では、システム使用量を最適な形で配分・バランスさせたいところです。機能を損なうことなく、最高のパフォーマンスを実現することを目指します。
これを実現するには、仮想マシンの詳細プロパティを編集します。なお、GUIで表示されるすべてのパラメータは、仮想マシンの構成ファイル(.vmx)を直接編集することでも設定可能です。ここではGUIでの操作方法を紹介し、コマンドラインについては別のチュートリアルで扱います。
特に重要なパラメータは以下の通りです。
Nxフラグの公開/非表示
Nxフラグを公開すると、ホスト間のVMotion互換性が向上します。ただしVMotionは有償機能のため、利用する予定がないのであれば、Nxフラグを非表示にすることでゲストOSのパフォーマンスを改善できます。すべての環境に万能な設定というものは存在しないため、ご自身のマシンに適用すべきかどうかを必ず確認してください。
準仮想化(Paravirtualization)
準仮想化に対応したゲストOSは、大幅にパフォーマンスが向上して動作します。ただし、ゲストOS自身が準仮想化環境で動作していることを認識できる必要があります。一部のOSはこの方式での起動を拒否しますし、影響を受けないOSもあります。この場合、Linuxが最有力候補となるでしょう。
準仮想化を利用するには、ゲストOS側が対応している必要があります。具体的には、カーネルが準仮想化およびVMIオプションを有効にしてコンパイルされている必要があります。
CONFIG_PARAVIRT=Y
CONFIG_VMI=Y
一般的に、最近のLinuxカーネルはデフォルトでこれらのオプションが有効になっています。ただし注意点として、ESXiの準仮想化は32ビットゲストのみ対応しているため、選択の際はその点を考慮してください。
ハードウェアページテーブル仮想化
Hardware Page Table Virtualizationも、正しく使えばパフォーマンス向上につながる機能です。CPUの種類やワークロードによって効果が異なるため、導入前に検証することをおすすめします。このオプションも他と同様、「詳細設定」メニューの中にあります。
スワップファイルの配置場所
スワップファイルの配置場所は、パフォーマンスに大きな影響を与える要素です。ディスクアレイが遅い場合、複数の仮想マシンを同時に稼働させると、特にスワップが発生した際に深刻なパフォーマンス低下を招きます。IOの競合を減らすためには、複数のスワップファイルを複数のストレージデバイスに分散させるのが有効です。デフォルトではESXiはホスト側の設定を使用しますが、最高のパフォーマンスを求めるなら専用のデータストアを用意するのも一案です。
ブートディレイの設定
CDやISOイメージからゲストOSをインストールしたい場合、ブート優先順位を変更して、ハードディスクやネットワークよりもCD-ROMを優先させる必要があります。しかし、ESXiのBIOSはデフォルトで待ち時間がないため、意図したタイミングで操作できず苦労することがあります。
ご安心ください。構成オプションでマシンのブートディレイ(起動待ち時間)を手動で指定できます。さらに、次回起動時にBIOSセットアップ画面を強制的に表示させることも可能なので、用途に応じて活用しましょう。
その他の詳細オプション
もし必要な機能やオプションが見当たらない場合は、仮想マシンの構成ファイルに手動で行を追加できます。データストアを掘って該当する.vmxファイルを探す必要はありません。ただし、スクリプト化や自動化を計画しているなら、.vmxファイルを直接編集する習慣をつけておくと良いでしょう。
仮想マシンのプロパティウィンドウで「オプション」→「詳細」→「全般」と進むと、「構成パラメータ」というボタンがあります。これが目的の項目です。
構成パラメータウィンドウはシンプルな名前と値のテーブル形式になっており、ほぼすべてのVMwareオプションをここに入力できます。実験的な機能も試せますが、ベンダーサポートの契約内容に影響する可能性がある点には注意が必要です。新しい行は追加できますが、管理インターフェース上から削除はできない点にも留意してください。こうした操作は、特殊なニーズを持つ上級ユーザー向けと言えるでしょう。
また、「リソース」セクションでは、CPU、メモリ、ディスクに関するさまざまな設定が可能です。例えば、CPUが対応しておりBIOSで機能が有効になっている場合、ハイパースレッディングの共有モードを選択できます。プロセッサアフィニティを設定すれば、特定の仮想マシンを特定のプロセッサでのみ実行するよう強制することもできます。適切なチューニングは大きなパフォーマンス向上をもたらしますが、誤った設定は作業環境を簡単に台無しにしかねません。
例えば、大量の子プロセスをforkするアプリケーションを常時実行する仮想マシンを1コアに固定すると、パフォーマンスが低下する可能性があります。同様に、並列コンパイルやワークフローの並列実行も、ハイパースレッディングやCPUアフィニティの設定に大きく左右されます。設定変更の際は十分に検討してください。
時刻同期(Time Sync)
仮想マシンの時刻同期を有効または無効にしたい理由は多々あります。Kerberosチケットの認証、ソフトウェアアップデート、プログラムのライセンス認証、複数ホスト間でのcronジョブの厳密な実行順序の管理など、挙げればきりがありません。
このため、NTP構成を細かく調整できます。NTPサービスの開始・停止、NTPサーバーの指定、ポート番号の選択などが可能です。多くの場合はデフォルト設定で十分ですが、要件に応じて変更してください。
ESXiサーバーへのSSH接続を有効にする
これはおそらく最も重要なTipsです。実際のマシンで作業したためスクリーンショットはありませんが、理論上は別のESXi上にゲストとしてESXiをインストールして画面を撮ることも可能でした。信じていただければ幸いです。なお、画像付きの類似チュートリアルへのリンクも記事末尾に掲載しています。
ESXiには2つの仮想コンソールがあります(典型的なLinuxでは7つあります)。Alt + F1/F2キーの組み合わせで切り替えてアクセスできます。VC2は疑似GUIの管理コンソール、VC1はサーバーログのtail表示のようなものです。表面上、コマンドラインは存在しないことになっています。
しかし、この画面で「unsupported」と入力すると、コマンドラインが表示されます。これが第一歩です。次にSSHを有効にします。手順は通常のLinuxマシンとは少し異なります。
まず、テキストエディタ(vi)で /etc/inetd.conf を開きます。「ssh」の行を探してコメントアウトを解除し、ファイルを保存して終了します。次に、inetdを再起動して設定を再読み込みし、SSH有効の状態で起動させる必要があります。
inetdを再起動するには、まずプロセステーブルから該当プロセスを特定します。
ps -a | grep inetd
inetdのプロセスID(PID)を確認したら、以下のコマンドで再起動します。
kill -1 <pid>
注意:これはサポート対象外の機能です。実施前にITサポート部門やベンダーに相談してください。保証が無効になる恐れがあります。とはいえ、無料かつ非サポートの製品を使っている以上、大きな問題にはならないはずです。
参考資料
以下のTipsの一部はESX専用のものですが、ESXiユーザーにとっても役立つはずです。また、古いバージョンのVMware製品に関する記述も含まれていますが、じっくり読む価値は十分にあります。
- vm-help.com(筆者が知る中で最良かつ最も包括的な情報源)
- How to access the VMware ESXi hidden console(素晴らしいチュートリアル、スクリーンショット付き)
- VMware Remote Command Line Reference Guide(PDFへの直接リンク)
- Guide to VMware ESX Server 3
- How to administer VMware ESX Server
まとめ
このガイドを読んだだけでVMwareの達人になれるわけではありません。しかし、GUIの中に隠された分かりにくいオプションや機能、パフォーマンスチューニングの手法、より効率的な仮想マシン管理の方法について理解を深めることはできるでしょう。グラフィカルな操作は便利である反面、長期的には生産性の低下につながることがあります。そんなときこそ、コマンドラインコンソールとSSHがその不足を補ってくれるのです。
今回は、VMware仮想化製品を使いこなすための貴重なTipsを多数ご紹介しました。今後は、その他の一般的なシナリオや利用モデルについて取り上げ、最終的にはスクリプティングやコマンドライン限定モードについても掘り下げていく予定です。
それでは、快適な仮想化ライフをお楽しみください。
-
Notepad++を使いこなす!知っておきたい5つの便利テクニック
Notepad++は、Windows向けの最高のテキストエディタと言っても過言ではありません。その機能は非常に豊富で、すべてを紹介するには何本もの記事が必要なほどです。そこで本記事では、この多機能かつ洗練されたテキストエディタの驚異的なパワーを順番にご紹介していきます。もうテキストファイルやスクリプト、HTMLファイルの編集にメモ帳やワードパッドを使う必要はありません。それでは、Notepad++を最大限に活用するための最初の5つのテクニックを見ていきましょう。1. コードに合わせて言語を設定するNotepad++の強力な機能のひとつが、コードの色分け(シンタックスハイライト)です。C言語、M
-
VMware Workstation 14 徹底レビュー ― 高機能・拡張性は魅力的だが、価格がネック
数週間前、私たちはVMware Player 14をテストしました。シンプルで多用途、しかも堅牢な一方で、期待していたほど機能が豊富ではないという印象を受けました。そこで今回は、上位版にあたるWorkstationを試してみます。実のところ、無料のPlayerは、より強力で、その分価格も高くなるVMware Workstation Proの「技術デモ」的な位置づけの製品なのです。 実用的で万能型の仮想化ソフトをお探しなら、通常はOracle VirtualBoxとVMware Workstationという2つの主要製品が候補に挙がります。私は何年も前にWorkstationを何度か購入したこと