vCLS:vSphereの「招かれざる客」をマスターする。システム管理者のための運用ガイド

VMware tutorial - IT technology blog
VMware tutorial - IT technology blog

vCenterに突如現れたvCLSとは?

システムを vSphere 7.0 Update 1 以換にアップグレードすると、vCLS-xxxx... という名前の見覚えのない仮想マシンがいくつか出現することに気づくでしょう。これらにはIPアドレスがなく、ディスク容量も100MB〜2GB程度で、何より自分で作成した覚えがないはずです。

その正体は vSphere Cluster Services (vCLS) です。従来、DRSやHAなどのコア機能は vCenter に完全に依存していました。もし vCenter がダウンすると、これらの機能も即座に停止してしまいました。この致命的な弱点を解消するために、VMware はクラスター管理ロジックを vCenter から切り離しました。そして、それらを ESXi ホスト上で直接動作する超小型の Agent VM に集約したのです。これにより、vCenter との接続が切れても、クラスターは自律的に安定した状態を維持できるようになりました。

一部のノードを VMware から Proxmox に移行するテストを行った際、Proxmox は Corosync を通じてクォーラムを非常にスマートに管理していると感じました。しかし、vSphere のような巨大なエコシステムにおいて、vCLS は完全な分散アーキテクチャへと進化するための不可欠なステップと言えます。

なぜvCLSが時に厄介な存在になるのか?

その目的は非常に素晴らしいものですが、実務において vCLS は以下の2つの理由で管理者を悩ませることがあります。

  • Datastoreの勝手な占有: vCLS はデフォルトで、利用可能と判断した任意の Datastore を選択します。場合によっては、高速なデータベース専用 LUN や、容量が枯渇しそうなディスクに勝手に居座ってしまうことがあります。
  • メンテナンス時の障害: ESXi ホストをメンテナンスモードにする際や、古い Datastore を削除しようとする際、これらの vCLS VM が vMotion エラーを起こしたり、頑なに移動を拒んだりすることがあります。

vCLS VMを指定したDatastoreに移動する方法

vCLS を「好きな場所にいさせる」のではなく、専用の小さな Datastore にまとめておくのが私の推奨です。10GB 程度のパーティションがあれば、システムを整理しておくのに十分です。手順は以下の通りです。

  1. vSphere Client インターフェースで クラスター (Cluster) にアクセスします。
  2. 設定 (Configure) タブに移動し、vSphere Cluster Services セクションの Datastores を選択します。
  3. Edit Allowed Datastores をクリックします。
  4. ここで、vCLS の配置を許可する Datastore、または拒否する Datastore を選択します。

経験則:DRS サービスが常に迅速にレスポンスできるよう、低レイテンシの共有ストレージを優先的に選択してください。

必殺技「Retreat Mode」:必要に応じてvCLS VMを完全に削除する

クラスターの廃止や、EAM (ESX Agent Manager) のエラーを修正するために、vCLS VM を一掃しなければならない場合があります。これらは通常の「ディスクから削除」では消せません。vCenter が数秒後には自動的に復活させてしまうからです。

解決策は Retreat Mode を有効にすることです。これは、技術的な処理のためにすべてのクラスターサービスを一時停止するよう vCenter に命令する方法です。

クラスターIDを正確に取得する方法

各クラスターには固有の識別子があります。対象のクラスターを選択し、ブラウザのアドレスバーを確認してください。domain-c<数字> という形式の文字列(例:domain-c8)を探します。

詳細設定からRetreat Modeを有効にする

  1. 管理ツリーの最上位にある vCenter Server を選択します。
  2. 設定 (Configure) タブから 詳細設定 (Advanced Settings) を選択します。
  3. 設定の編集 (Edit Settings) をクリックし、以下の構造で新しいキーを追加します:
# domain-c8 を実際のクラスターIDに置き換えてください
config.vcls.clusters.domain-c8.enabled = false

保存して数秒後、vCLS VM はまるで最初から存在しなかったかのように消え去ります。メンテナンス終了後は、上記の値を true に戻すだけで、DRS と HA の機能が復旧します。

PowerCLIを使ってステータスを素早く確認する

数十ものクラスターがある大規模なシステムを管理している場合、手動でクリックするのは苦行です。私はよく以下の PowerCLI スクリプトを使用して、実行中のすべての vCLS VM を素早くスキャンします。

# vCenterに接続
Connect-VIServer -Server vcenter.yourdomain.com

# vCLS仮想マシンとその保存場所をリストアップ
Get-VM | Where-Object {$_.Name -like "vCLS-*"} | Select-Object Name, PowerState, Host, Datastore

# クラスターの健全性ステータスを確認
$clusters = Get-Cluster
foreach ($cluster in $clusters) {
    Write-Host "クラスター: $($cluster.Name) - ステータス: $($cluster.ExtensionData.VclsConfigStatus)"
}

トラブルシューティング:vCenterがvCLSの消失を報告する場合

仮想マシンは動いているのに、vCenter が “vCLS VMs are missing” というエラーを出すことがあります。これは多くの場合、ESX Agent Manager (EAM) サービスがハングアップしていることが原因です。 vCenter Appliance 全体を再起動して15〜20分待つ代わりに、SSH 経由で EAM サービスだけを再起動してみてください。

# root権限でVCSAにSSH接続
service-control --restart vmware-eam

コマンド実行後、vCenter はクラスターを再スキャンし、Agent VM を自動的に再照合します。それでも解決しない場合は、「Retreat Mode」を併用して(一度オフにしてからオンにする)、システムに再構成を強制してください。

おわりに

vCLS は現代の仮想化基盤において不可欠な要素です。専用の Datastore への誘導方法を理解しておくことで、メンテナンス時の不必要なトラブルを避けることができます。これらの小さな Agent VM が、システムのアップタイム計画を邪魔しないようにしましょう。

vCLS が原因で Datastore の削除が止まってしまった経験はありますか?ぜひコメント欄であなたの体験を共有してください。システム管理者の皆さんの運用がスムーズにいくことを願っています!

Share: