クイックスタート:5分で構築するAuto DeployステートレスESXi
vCenterとDHCP/TFTPサーバーさえ用意すれば、物理ストレージに一切触れることなく、ベアメタルサーバーをネットワーク経由で直接ESXiとして起動できます。
ステップ1:vCenterでAuto Deployサービスを有効化する
vCenter UI > 管理 > システム設定 > サービスにアクセスします。Auto Deployサービスを探し、スタートアップの種類を自動に変更して開始をクリックします。
ステップ2:PowerCLIでImage ProfileとDeploy Ruleを作成する
管理端末でPowerShellを開き、vCenterに接続した上で、VMware Customer ConnectからダウンロードしたESXi Offline Bundleをインポートします。
# vCenter Serverに接続
Connect-VIServer -Server vcenter.lab.local -User [email protected] -Password 'YourSecretPassword!'
# ESXi Offline Bundleをインポート
Add-EsxSoftwareDepot -DepotUrl "C:\Depot\VMware-ESXi-8.0U2-depot.zip"
# デポ内のプロファイル一覧を確認
Get-EsxImageProfile | Select-Object Name
# 指定IP範囲にImage Profileを割り当てるDeploy Ruleを作成
New-DeployRule -Name "Production-ESXi-Boot" `
-Item "ESXi-8.0U2-standard" `
-Pattern "ipv4=192.168.10.100-192.168.10.150"
# Deploy Ruleを有効化
Add-DeployRule -DeployRule "Production-ESXi-Boot"
ステップ3:TFTPブートファイルを指定するDHCP Option 66 / 67の設定
vCenter > Auto Deployタブを開き、TFTP Boot ZipファイルをダウンロードしてTFTPサーバーのルートディレクトリに展開します。続いて、DHCPサーバーでPXE設定を定義します。
# /etc/dhcp/dhcpd.conf の設定例(Linux DHCP)
subnet 192.168.10.0 netmask 255.255.255.0 {
range 192.168.10.100 192.168.10.150;
option routers 192.168.10.1;
option domain-name-servers 192.168.10.2;
# TFTPサーバーとAuto Deployのブートローダーを指定
next-server 192.168.10.5;
filename "undionly.kpxe.vmw-hardwired"; # レガシーBIOS用
# filename "snponly64.efi.vmw-hardwired"; # UEFIブート用
}
物理サーバーの電源を入れ、ネットワークブートを選択します。サーバーはIPアドレスを取得後、TFTPからブートローダーを読み込み、vCenterからイメージを取得して約2〜3分で自動的にクラスターへ参加します。
VMware Auto Deployのアーキテクチャと動作フロー
従来、Dell PowerEdge R740など数十台のノードにパッチを適用する際、iDRAC経由でISOをマウントして丸一日費やすこともありました。Auto Deployを活用すれば、全サーバーをステートレス(Stateless)モードで稼働させ、OSをRAM上に直接読み込ませることができます。USBメモリやSDカードを挿入したり、各サーバーのOS専用に高価なSAS/SATAドライブを用意したりする必要もありません。
1. 3つの基本要素
- Auto Deploy Server:vCenter Server Appliance(VCSA)に統合されている標準サービス。サーバーからのHTTPブート要求を受け取り、ルールを照合して適切なイメージを配布します。
- Image Builder:ESXi Image Profileをパッケージングするツール。BroadcomやMellanoxのNICドライバー、ベンダー固有のRAIDコントローラーなどを事前に組み込んでデプロイできます。
- Host Profile:標準構成の設計テンプレート(vSwitch、VLAN、データストア、NTP、rootアカウントなど)。ホストの起動完了直後に、vCenterが自動的にこのプロファイルを適用します。
2. ステートレスPXEブートの実行フロー
- PXEブロードキャスト:サーバーの電源投入時、NICがDHCP Discoverパケットを送信します。
- ブートパラメータの払い出し:DHCPサーバーがIPアドレスとともに、TFTPアドレス(Option 66)とブートローダー名(Option 67)を応答します。
- iPXEのロード:サーバーがTFTPサーバーからブートローダーファイルをダウンロードします。
- HTTPハンドシェイク:ブートローダーがvCenter Auto Deployへ直接HTTPリクエストを送信します。
- Deploy Ruleの照合:Auto DeployがMACアドレス、IPアドレス、ハードウェアモデルなどを照合し、適用すべきImage ProfileとHost Profileを決定します。
- ストリーミングとクラスター参加:ESXiイメージ(約350MB〜500MB)がRAM上へ直接ストリーミングされます。vCenterがHost Profileを自動適用し、ホストを指定クラスターへ追加します。
高度な設定:Stateless CachingとStateful Install
完全なステートレス運用はメンテナンス性に優れる反面、重大なリスクがあります。サーバー再起動時に管理ネットワークやvCenterに障害が発生していると、OSを読み込めなくなります。そのため本番環境では、以下の2つのバックアップ構成の導入を検討してください。
1. Stateless Caching(エンタープライズ向け推奨構成)
通常時はvCenterのAuto Deploy経由でのブートを優先します。同時に、イメージと構成情報のキャッシュをローカルディスクやUSBに保存しておきます。起動時にvCenterがオフラインであっても、ローカルキャッシュから自動起動して正常に稼働を継続できます。
# Stateless CachingポリシーとともにHost ProfileとクラスターをDeploy Ruleに割り当て
$cluster = Get-Cluster "Production-Cluster-01"
$profile = Get-VMHostProfile "Gold-Standard-Profile"
New-DeployRule -Name "Production-Stateless-Cache" `
-Item "ESXi-8.0U2-standard", $cluster, $profile `
-Pattern "ipv4=192.168.10.100-192.168.10.150"
Add-DeployRule -DeployRule "Production-Stateless-Cache"
Host Profile側では、システムイメージのキャッシュ構成(System Image Cache Configuration)を開き、ホストでステートレスキャッシュを有効にする(Enable stateless caching on the host)にチェックを入れるだけで設定できます。
2. Stateful Install(ステートフルインストール)
このモードでは、Auto Deployを初回プロビジョニング時の自動インストーラーとしてのみ利用します。PXE経由でイメージを受け取った後、ESXiがローカルハードディスクに永続インストールされます。次回以降の起動時は、従来通りローカルディスクから直接ブートします。
本番環境で6ヶ月間運用して得られた実践ノウハウ
1. データセンター全体の一斉再起動時におけるブートストーム(Boot Storm)対策
広域停電からの復旧時は最も負荷がかかります。40台のサーバーが一斉に起動して約400MBのイメージを同時に取得すると、管理ネットワークのトラフィックは数分で16GB超まで急増し、スイッチの帯域逼迫やVCSAのCPU枯渇を引き起こすリスクがあります。
効果的な解決策:
- 拠点やブランチオフィスが存在する場合は、Auto Deploy用のリバースプロキシキャッシュ(Reverse Proxy Caching)を導入する。
- 各ノードのBIOS/BMCで起動遅延(Power-On Delay)を30〜60秒ずつずらして設定する。
2. リモートSyslogとコアダンプの構成必須化
RAM上で動作するため、PSOD(パープルスクリーン)や突然の再起動が発生すると、メモリ上のログはすべて消失します。Host Profile内であらかじめSyslogサーバーへのログ転送とNetwork Core Dumpを設定しておくことが必須です。
# ESXi CLIで集中Syslogを確認・設定
esxcli system syslog config get
esxcli system syslog config set --loghost='tcp://syslog.lab.local:514'
esxcli system syslog reload
# Network Core Dump Serverを設定
esxcli system coredump network set --interface-name vmk0 --server-ipv4 192.168.10.5 --server-port 6500
esxcli system coredump network set --enable true
3. 定期的な構成ドリフト(Compliance Check)の実行
NTPサーバーの変更やvSwitchサブネットの修正など、Host Profileを更新した際は、クラスター全体でコンプライアンススキャンを実行して構成の乖離(ドリフト)が発生しているホストを特定します。
# クラスター内の全ホストに対してコンプライアンススキャンを実行
$hosts = Get-Cluster "Production-Cluster-01" | Get-VMHost
$compliance = Test-VMHostProfileCompliance -VMHost $hosts
# 構成ドリフトが発生している非準拠ホストを抽出
$compliance | Where-Object { $_.Status -ne "Compliant" } | Select-Object VMHost, Status

