VMwareのHotAdd(ホットアド)機能とは?設定手順、vNUMAへの影響、注意点まで徹底解説

VMwareのHotAdd

VMware vSphere(ESXi)環境を運用しているインフラエンジニアやシステム管理者にとって、突発的なシステムのリソース不足は常に頭を悩ませる重大な課題です。
「急激なアクセス増加で仮想マシンのCPU使用率が100%に張り付いているが、サービスは絶対に止められない」「月末のバッチ処理でメモリが枯渇しているが、メンテナンス時間を確保できない」

このような緊急事態の救世主となるのが、VMwareの「HotAdd(ホットアド)」機能です。この機能を使えば、システムを稼働させたまま無停止でリソースを拡張し、即座にボトルネックを解消できます。
しかし、HotAddは「とりあえず全仮想マシンで有効にしておけば安心」という単純な機能ではありません。 実は、不必要に有効化することで「vNUMA(最適化技術)」が無効になり、逆に著しいパフォーマンス低下を引き起こすという隠れたリスクを孕んでいます。

この記事では、HotAddの基本概念から具体的な設定手順、ゲストOSの対応要件に加え、現場のインフラエンジニアが絶対に知っておくべき「vNUMAへの影響」や「ライセンス違反の罠」などの運用上の注意点まで、どこよりも深く踏み込んで徹底解説します。

1. VMwareのHotAdd(ホットアド)機能の概要と導入メリット

仮想マシンを無停止でリソース追加(ゼロダウンタイム)

HotAdd機能とは、稼働中の仮想マシン(VM)をシャットダウンさせることなく、動的にCPUやメモリのリソースを追加できる機能のことです。

通常、仮想マシンにvCPU(仮想CPU)やRAMなどのリソースを追加するには、OSを一度パワーオフ(シャットダウン)して構成を変更し、再度起動する手順を踏む必要があります。しかし、クリティカルなデータベースサーバーや、24時間365日の稼働が求められるECサイトのWebサーバーなどでは、数分のダウンタイムすら許容されないケースが多々あります。

事前にHotAdd機能を有効化しておけば、OSを起動したまま無停止でスケールアップ(※1)を実行し、逼迫したリソース状況をリアルタイムに改善することが可能になります。

※1 スケールアップ: サーバー単体の性能(CPUコア数やメモリ容量など)を拡張して、システム全体の処理能力を向上させるアプローチのこと。

【比較表】ホットプラグ(HotPlug)との違いを整理

VMwareの公式ドキュメントや管理画面(vSphere Client)において、HotAddとよく似た言葉に「HotPlug(ホットプラグ)」が登場します。両者は混同されがちですが、厳密には対象となるコンポーネントに明確な違いがあります。

用語対象となる主なリソース機能の概要
HotAdd(ホットアド)CPU(vCPU)、メモリ(RAM)コンピューティングリソースの**「追加」**のみを指す(減らすことは不可)。
HotPlug(ホットプラグ)仮想NIC、仮想ディスク(VMDK)、USBストレージや周辺機器の**「追加」および「取り外し」**を指す。

実務の現場では「CPUのHotAdd」「メモリのHotPlug」と同義で語られることも多いですが、リソースの種別によってvSphere Client上の設定項目が分かれているという点をしっかりと覚えておきましょう。

2. CPU・メモリのHotAddを有効化するための前提条件

HotAddは、ボタン一つで無条件に使える魔法の機能ではありません。この機能を利用するためには、仮想化基盤(ハイパーバイザ)と仮想マシン(ゲストOS)の双方で、以下の3つの重要な前提条件をクリアしている必要があります。

① ESXiホストと仮想マシン(VM)のシステム要件

まず、ベースとなるVMware vSphere環境が適切に構成されている必要があります。

  • ハードウェアバージョン: 仮想マシンのハードウェア互換性が「vSphere 5.0(VMバージョン8)以降」であること。※最新のパフォーマンスを享受するため、原則として最新バージョンへのアップグレードを推奨します。
  • ライセンス要件: vSphereのAdvancedエディション以上のライセンスが適用されていること(※ご利用中のvSphereのバージョン・エディション体系に依存します)。
  • 制限事項: 仮想マシンに128個を超えるvCPUがすでに割り当てられている場合、それ以上のCPU HotAddはサポートされません。

② ゲストOS側の対応状況(Windows / Linux)

ハイパーバイザ(ESXi)側でリソースを追加しても、内部で動いているゲストOSが「動的なハードウェアの追加」を認識できなければ意味がありません。

  • Windows Serverの場合
  • Windows Server 2016、2019、2022の Datacenter / Standard エディションは、CPUおよびメモリのHotAddをネイティブ(標準)にサポートしています。
  • ※注意:Windows 10などのクライアントOSや、古いバージョンの特定エディションでは動作に制限がかかる場合があります。
  • Linux OS(RHEL / CentOS / Ubuntuなど)の場合
  • Red Hat Enterprise Linux (RHEL) 6.x以降など、モダンなカーネルを持つLinuxディストリビューションは広く対応しています。
  • ※注意:Linuxの場合、追加後に手動でOS側のリソース再スキャンコマンド(例:echo 1 > /sys/devices/system/cpu/cpuX/online)を実行しなければ認識されないケースも存在します。

③ VMware Toolsの導入とステータス確認の重要性

最も見落としがちで重要な前提条件が「VMware Toolsの最新版インストール」です。

VMware Tools: 仮想マシンのグラフィックやネットワークのパフォーマンスを最適化し、ハイパーバイザとの連携機能を提供する必須のユーティリティ群。

VMware ToolsがゲストOSにインストールされ、vSphere Client上でステータスが「実行中」になっていないと、ハイパーバイザからのHotAdd命令をOSが正しく受け取れません。作業を開始する前に、必ずステータスが正常であることを確認してください。

3. VMware環境でのHotAdd設定・リソース追加の具体的な手順

要件を満たしていることを確認したら、実際にHotAdd機能を利用してみましょう。作業は大きく「事前の有効化(パワーオフ必須)」「実際の追加作業(パワーオン時)」の2つのフェーズに分かれます。

【手順1】HotAdd機能の事前有効化(※パワーオフ必須)

最大の注意点は、「HotAdd機能そのものを有効にする設定」は、仮想マシンが停止(パワーオフ)している状態で行わなければならないということです。稼働中のVMに対して、いきなり有効化することはできません。

  1. vCenter Server(またはESXiホスト)のvSphere Clientにログインします。
  2. 対象の仮想マシンを右クリックし、「パワーオフ」を実行してシステムを停止します。
  3. 再度仮想マシンを右クリックし、「設定の編集」を選択します。
  4. 「仮想ハードウェア」タブを開きます。
  5. 「CPU」の項目を展開し、「CPUホットプラグ」セクションの「この仮想マシンでのみ CPU のホットアドを有効にします」にチェックを入れます。
  6. 同様に「メモリ」の項目を展開し、「メモリのホットプラグ」セクションの「この仮想マシンでのみメモリのホットアドを有効にします」にチェックを入れます。
  7. 「OK」をクリックして設定を保存し、仮想マシンを「パワーオン」します。

これで、次回以降はシステムを止めずにリソースを追加する準備が整いました。

【手順2】稼働中の仮想マシンへのCPU・メモリ追加実行(パワーオン時)

事前設定が完了していれば、リソースが枯渇した緊急時に、無停止で拡張作業を行えます。

  1. 稼働中の仮想マシンを右クリックし、「設定の編集」を選択します。
  2. 「CPU」または「メモリ」の数値を、現在の割り当てよりも多い数値(必要な容量)に変更します。(※数値を減らすことはできません)。
  3. 「OK」をクリックします。
  4. ゲストOSにリモートデスクトップ(RDP)やSSHでログインし、タスクマネージャー(Windows)や top free -m コマンド(Linux)を実行して、リソースが即座に拡張されていることを確認します。

機能を意図的に無効化(False)にする高度な設定方法

セキュリティポリシーの厳格な環境や、後述するパフォーマンス低下を防ぐ目的で「強制的にHotAddを無効化したい」場合は、仮想マシンの構成ファイル(.vmx ファイル)のパラメータを直接編集します。

  • 設定場所: 「仮想マシン オプション」 > 「詳細」 > 「構成の編集」
  • 追加するパラメータ: 名前に devices.hotplug と入力し、値に false を設定します。
    これにより、vSphere ClientのGUI操作から意図せずホットプラグが実行される事故を未然に防ぐことができます。

4. 【重要】HotAddを有効にする際のデメリットと運用上の注意点

ここからが、プロのインフラエンジニアとして最も深く理解しておくべき核心部分です。「便利だからとりあえず全仮想マシンでHotAddを有効にしておこう」という安易な設計は、致命的なシステム障害やパフォーマンス劣化を招く恐れがあります。

vNUMAアーキテクチャの無効化によるパフォーマンス低下リスク

CPUのHotAdd機能を有効にすると、VMware vSphereは対象の仮想マシンにおいて「vNUMA(仮想Non-Uniform Memory Access)」を無効化してしまうという重要な仕様が存在します。

vNUMA: マルチプロセッサシステムにおいて、CPUとローカルメモリを適切にグループ化(NUMAノード)し、メモリアクセスの遅延(レイテンシ)を最小限に抑える高速化技術。

特に8 vCPU以上を割り当てるような巨大なデータベース仮想マシンの場合、vNUMAが機能することで高い処理性能を維持しています。しかし、HotAddを有効にすると、vSphereは「将来CPUが追加された時に、NUMAノードをどう再構成すべきか」を動的に計算することが難しいため、安全策としてvNUMAの最適化を最初からオフにしてしまいます。

結果として、CPUが遠いメモリ領域へアクセスする(リモートメモリアクセス)頻度が増え、CPUの処理性能が数%〜十数%も低下するリスクがあります。

ソケットとコアの構成変更に伴う「ライセンス違反」の罠

vCPUを追加する際、「ソケットあたりのコア数」の設定には細心の注意が必要です。

HotAddは基本的に「ソケット(物理的なCPUの受け皿)」を追加する挙動をとります。例えば、「1ソケット・8コア(計8 vCPU)」の仮想マシンに対し、HotAddで16 vCPUに増やした場合、構成は自動的に「2ソケット・8コア」となります。

ここで問題になるのが、Oracle DatabaseやMicrosoft SQL Serverなど「CPUソケット数単位で課金されるソフトウェアライセンス」を利用している場合です。意図せずソケット数が増えることで、深刻なライセンス違反(コンプライアンス違反)を引き起こし、後日莫大な追加費用を請求されるリスクがあります。具体的なアクションとして、必ずミドルウェアのライセンス体系を事前に確認してから実行してください。

USBデバイスの切断・再接続の仕様(瞬断リスク)

CPUのHotAddを実行した瞬間、その仮想マシンに接続されているすべてのUSBパススルーデバイスが一時的に切断され、即座に再接続されるという特有の挙動があります。

もし、ソフトウェアのライセンス認証にUSBドングル(ハードウェアキー)を使用しているサーバーの場合、この瞬断によってアプリケーションが強制終了する恐れがあります。

5. 混同注意!バックアップにおける「HotAdd転送モード」とは

検索エンジンで「vmware ホットアド」と検索すると、ArcserveやVeeamなどのバックアップソフトウェアに関する記事が多数ヒットします。しかし、これはここまで解説してきた「CPUやメモリのリソース追加」とは全く異なる概念です。

バックアップにおける「HotAdd転送モード(HotAdd Transport Mode)」とは、VADPを利用した高速なバックアップ転送方式の一つです。

VADP(vStorage APIs for Data Protection): VMware環境におけるバックアップを、LANに負荷をかけずに効率的に実行するための専用API。

このモードでは、バックアップサーバー(プロキシVM)に対して、バックアップ対象となる仮想マシンの仮想ディスク(VMDKファイル)を一時的に「ホットアド(動的追加でマウント)」します。これにより、ネットワーク(LAN)を経由せず、ストレージ基盤の内部バスを使って超高速でデータを吸い上げることができます。

言葉は同じ「HotAdd」ですが、「リソースの恒久的な追加」と「バックアップ時の一時的なディスクマウント」という全く異なる目的であることを明確に切り分けて理解しておきましょう。

6. インフラエンジニア向け:HotAddのベストプラクティスとキャパシティ管理

VMwareのHotAdd機能は、突発的な負荷上昇からシステムを守る非常に強力な切り札です。しかし、vNUMAの無効化によるパフォーマンス低下や、事前の有効化にはダウンタイムが必要であるという制約を考慮すると、「キャパシティ計画に基づいたメリハリのある運用」が求められます。

規模別の推奨設定まとめ

仮想マシンの規模推奨されるHotAdd設定運用のベストプラクティス
小規模VM
(2〜4 vCPU程度)
有効化を推奨vNUMA無効化によるデメリットがほぼないため、リソース不足に備えて事前有効化し、柔軟性を確保する。
大規模VM・DB
(8 vCPU以上)
無効化を推奨vNUMAの最適化によるパフォーマンス向上を優先。リソース追加時は計画的なメンテナンス(ダウンタイム)を設け、パワーオフ状態で静的に拡張する。

この基準を社内のVMware運用ガイドラインに落とし込み、システムの安定性と柔軟性を両立させた仮想化基盤を構築してください。

7. 関連するよくある質問(Q&A)

最後に、VMwareのHotAdd運用において現場からよく寄せられる5つの疑問に回答します。

Q1. CPUのHotAdd設定を有効にしましたが、メモリのHotAddは無効のままです。両方を有効にしないと正常に動作しませんか?

A1. いいえ、問題ありません。CPUとメモリのHotAdd設定は完全に独立して動作します。CPUだけ、あるいはメモリだけを有効にして動的追加を利用することは可能です。システムの特性や要件に合わせて、必要な方だけを有効にしてください。

Q2. HotAddで追加したvCPUやメモリを、稼働中に「減らす(HotRemove)」ことはできますか?

A2. いいえ、稼働中の仮想マシンからCPUやメモリを「減らす」ことはできません。追加作業は無停止で可能ですが、一度割り当てたリソースを削減する場合は、必ず対象の仮想マシンをパワーオフ(シャットダウン)してから数値を変更する必要があります。

Q3. スナップショットを取得している仮想マシンに対して、HotAddでリソースを追加しても大丈夫ですか?

A3. 技術的には可能ですが、VMwareのベストプラクティスとしては強く非推奨とされています。スナップショットが存在する状態でリソースを動的変更すると、構成情報の不整合やバックアップ時の予期せぬエラーを引き起こす原因となります。必ずスナップショットを統合(削除)した上で追加作業を行ってください。

Q4. HotAddを実行し、vSphere Client上ではリソースが増えましたが、ゲストOS(Linux)上で認識されません。

A4. Linuxディストリビューションやカーネルのバージョンによっては、ハードウェアの動的変更を自動検知しない場合があります。その場合、LinuxOS上でroot権限を持ち、/sys/devices/system/cpu/ 配下の特定のディレクトリに対してオンライン化のコマンド(例: echo 1 > /sys/devices/system/cpu/cpuX/online)を手動で実行するか、OSの再起動が必要になります。

Q5. バックアップソフトの実行ログで「HotAddモードに失敗し、NBD(ネットワーク)モードでフォールバックしました」という警告が出ます。仮想マシンの設定を変更すべきですか?

A5. いいえ、この警告は「仮想マシンのCPU/メモリHotAdd設定」とは無関係です。バックアップソフトにおける「HotAdd転送モード」の失敗は、バックアッププロキシVMが、対象VMの保存されているデータストア(ストレージ)を正しく認識・マウントできていないことが原因です。SANやNFSなどのストレージ構成と、バックアップソフト側のプロキシ設定を見直してください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA