仮想マシンの起動、再起動時のサービス起動の待ち合わせ制御について説明します。
「 (1)機能概要 」
「 (3)用途別の設定方法について 」
「 (4)その他 」
サービス起動の待ち合わせ制御の機能では、vSphere 環境または Hyper-V 環境の仮想マシンに対して、起動、再起動時にゲストOS上の任意のサービスの起動を待ち合わせる制御を簡易な設定で可能にします。
本機能は、以下のようなケースで利用することができます。
マシン起動後に行う制御や作業において、起動対象マシン上の特定のサービスが確実に起動済みの必要がある場合。
複数マシンに対する起動操作を行うときに、依存関係の機能も本機能と合わせて利用し、依存先マシンの特定のサービスの起動完了を確認した後に依存元のマシンを起動を行うような順序制御を行いたい場合。
依存関係の機能については「 1.8.4. 依存関係による起動/停止順序の制御について 」 を参照してください。
サービス起動の待ち合わせ制御は、次の図のように、対象マシンを起動/再起動した後、対象のサービスの起動が完了するまで待ち合わせの処理を行います。対象のサービスについて以下の起動状態の判断を行います。(Hyper-VはWindowsのみ)
Windows の場合:対象マシン上のサービスコントロールマネージャが対象サービスを開始状態と判断している。
Linux の場合: 対象マシン上のsystemdが対象サービスをactive 状態と判断している。
また、サービスの起動チェックで仮想マシンに接続するために、仮想マシンのゲストOSに登録されているアカウントを使用します(詳細は後述の「 (2)サービス起動の待ち合わせ制御のために必要な設定や準備 」 、「 (3)用途別の設定方法について 」 の説明参照)。VMware環境では任意のアカウントを使用するように指定することが可能ですが、Hyper-V環境では管理者アカウントのAdministratorしか使用できないため注意してください。
なお、仮想マシンサーバ経由で制御を行うため、管理サーバと対象の仮想マシン間で通信ができなくても本機能を利用することが可能です。
サービス起動の待ち合わせ制御の機能を使用するためには、以下の準備が必要です。各項目について設定場所が複数ありますが、使い分けの方法については後述にて記載する用途別の設定方法の説明を参照してください。
制御用アカウントの用意・設定
スクリプトを配布・実行するために使用するアカウントを用意します。対象マシン上ではアカウントが登録済みでスクリプトの実行が可能な権限を所有している必要があります。Hyper-Vの場合は、前述のとおり、Administratorのみが利用可能です。
SigmaSystemCenter上ではアカウントの設定は次のいずれかが必要です。両方に設定がある場合はマシンプロパティの設定が優先されて使用されます。
対象マシンリソース([リソース]ビュー)のマシンプロパティの[アカウント情報]タブ
タイプが"IB", プロトコルが"OsAuth"のアカウントの登録が必要です。
対象ホスト([運用]ビュー)のホストプロファイルのローカルアカウント設定
アカウントの設定に[OSの操作]のチェックがオンである必要があります。
ホストプロファイルのアカウントの設定に[OSの操作]の指定がある場合、新規リソース割り当てなど固有情報反映の処理が行われる操作時に指定アカウントが対象の仮想マシンのゲストOSに追加されます。管理者アカウント以外を指定する場合はホストプロファイルにSysprep応答ファイルの指定も別途必要なので注意してください。また、管理者アカウントの場合、指定可能なアカウント名がAdministratorかrootのみとなります。詳細は、「 1.4.2. イメージ展開で適用可能な固有情報について 」 の「 (2)ホストプロファイル - OS種別 」 のローカルアカウント設定の説明を参照してください。
また、ホストプロファイルの設定は上記操作のタイミングでマシンプロパティ側のアカウントの設定に反映が行われます。
起動待ち対象のサービスの設定
起動待ち対象のサービスの設定をSigmaSystemCenterで行います。
対象サービスの設定について、以下の2つの設定場所があります。ホストプロファイルの方は後述のとおり利用可能な局面が限られるので注意してください。
対象マシンリソース([リソース]ビュー)のマシンの詳細表示における[全般]タブのサービス
まず、対象マシンに対してマシン収集を行い、対象マシン上のサービスの一覧情報を収集する必要があります。収集後、サービス一覧が[全般]タブのインストール済みソフトウェアの下に表示されます。対象サービスについて編集設定を行い、[マシン起動時に起動を待つ]のチェックをオンにすることで、起動待ち制御の対象とする指定を行います。
なお、マシン収集でサービスの一覧情報を収集するためには、上記1のアカウント情報が登録されている必要があります。
対象ホスト([運用]ビュー)のホストプロファイルの起動時実行サービス設定
新規リソース割り当てや再構成など固有情報反映の処理が行われる操作時にマシンプロパティ側のサービスの設定に反映されます。
マシンプロパティに登録する定義として使用されるため、実際のサービス起動の待ち合わせ制御では使用されません。本設定のみでマシンプロパティ側のサービスの設定が行われていない場合は、実際のサービス起動の待ち合わせ制御は行われないので注意してください。
前述の(2)で説明したサービス起動の待ち合わせ制御のための各設定項目について、新規に作成する仮想マシン用の設定を行う場合と作成済み仮想マシンに対して設定を行う場合で設定の方法が異なります。
これから新規(設定更新を含む)に作成する仮想マシン用の設定を行う場合
新規に作成する仮想マシン用の設定を行う場合は、次の図のとおり、あらかじめホストプロファイルに設定しておく使用方法となります。実際のサービス起動の待ち合わせ制御で使用されるマシン([リソース]ビュー)の各設定や対象マシンのアカウントはホストプロファイルの定義情報から仮想マシン作成時に自動登録されるため、仮想マシン作成後に追加で実施すべき作業はありません。
また、作成済みの仮想マシンに対して、ホストプロファイルのローカルアカウント設定や起動時実行サービスの変更を反映する場合は再構成の操作で可能です。ただし、固有情報反映の処理により、他のホストプロファイルの設定の再設定やOS再起動なども行われるため、注意してください。
なお、対象マシンに追加するアカウントが管理者アカウント以外の場合は、Sysprep応答ファイルの指定が必要ですが、あらかじめマスタVM上で登録済みのアカウントであれば、対象マシンにアカウントを追加する必要がないため、Sysprep応答ファイルの指定の必要はありません。
作成済み仮想マシンに対して設定を行う場合
既に作成済みの仮想マシンに対しては、次の図のように、マシンの設定を追加していく使い方となります。途中、マシン収集で対象マシン上のサービスの情報を収集する必要があります。
その他、各環境で以下の条件があります。
VMware環境
Windowsの場合、管理者アカウント(Administrator)以外のアカウントだと一部のサービスの情報が正常に収集できない現象を確認しています。待ち合わせの対象としたいサービスの情報が収集できない場合は、管理者アカウント(Administrator)を利用してください。
仮想マシンが起動し VMware Tools が機能している必要があります。
アカウントがログイン可能である必要があります。
アカウントの設定が無効またはパスワードが設定されていない場合は登録できません。
Hyper-V環境
仮想マシンサーバのOSはWindows Server 2012以降で利用可能です。
仮想マシンが起動し、Hyper-V統合サービスが機能している必要があります。
仮想マシンに対して「データ交換」の設定を有効化して、仮想マシンと仮想マシンサーバとの間のデータの情報共有ができるようにする必要があります。「 4.3.11. 仮想化基盤別の固有設定(構成パラメータ設定) 」 の「 (3)設定項目(Hyper-V) 」 に記載されているvm.services.kvpexchangeの説明を参照してください。
仮想マシンサーバ配下の複数の仮想マシンに設定されているIPアドレスが重複している場合、本機能を利用できません。
サービスの起動チェックのため、SigmaSystemCenterは仮想マシンサーバを経由して仮想マシン上のWMIを利用します。また、起動チェック時、仮想サーバから仮想マシンの1番目のNICに設定されたIPアドレスで仮想マシンと通信が行われるため、仮想サーバからは前述のIPアドレスに疎通している必要があります。
仮想マシンのゲストOSのファイアウォールの設定で、"Windows Management Instrumentation(WMI)" を有効にする必要があります。
制御用に使用するアカウントはAdministratorである必要があります。アカウントはログイン可能である必要があります。アカウントの設定が無効またはパスワードが設定されていない場合は利用できません。
なお、VMware環境でのサービス起動の待ち合わせ制御の詳細動作は、次の図のように、対象マシン上でのスクリプト(WaitForServiceStarted.ps1, WaitForDaemonStarted.sh)の実行により行われます。Hyper-V環境ではスクリプトは使用されず、仮想マシンサーバ経由での直接接続が行われて、チェック処理が実行されます。
上記スクリプトは、サービス起動の待ち合わせ制御の初回実行時に対象マシンへ配布が行われます。2回目以降は、配布済のスクリプトを利用して処理が実行されます。
VMware環境にてサービス起動の待ち合わせ制御で使用するスクリプトは以下の場所に配置されます。
Windows は %ALLUSERSPROFILE%\NEC\PVM\script\_cache
Linux は ${HOME}/.pvm/script/_cache