第3章 XenServerのホストとリソース プール
3.11. ホストの電源投⼊
3.11.1. リモートからのホストの電源投⼊
XenServerホストの電源投⼊機能を使⽤すると、XenCenterやCLIを使ってリモートのホストの電源 を投⼊したり切断(シャットダウン)したりできます。
ホストの電源投⼊機能を有効にするには、以下のいずれかの電源管理ソリューションが必要です。
•
Wake-on-LANが有効なネットワークカード。
•
Dell Remote Access Card(DRAC)。XenServerでDRACを使⽤するには、Dellサプリメンタ
ルパックをインストールしておく必要があります。DRACをサポートするには、DRACのサーバー にRACADMコマンドラインユーティリティをインストールして、DRACおよびそのインターフェイ スを有効にする必要があります。通常、RACADMはDRAC管理ソフトウェアに含まれています。詳 しくは、Dell社のDRACドキュメントを参照してください。•
Hewlett-Packard Integrated Lights-Out(iLO)。XenServerでiLOを使⽤するには、その
サーバー上のiLOを有効にして、インターフェイスをネットワークに接続する必要があります。詳 しくは、HP社のiLOドキュメントを参照してください。• XenServerホストの電源を投⼊または切断するための、Xen APIに基づいたカスタムスクリプト。
詳しくは、項3.11.3. 「XenServerホストの電源投⼊機能のカスタムスクリプトを作成する」を参 照してください。
電源を⾃動的に投⼊または切断できるようにXenServerホストを設定するには、以下の操作を⾏いま す。
1. プール内のホストがリモートからの電源制御をサポートしていること(つまりWake-on-LAN機 能、DRACまたはiLOカード、またはカスタムスクリプトが設定されていること)を確認します。
2. CLIまたはXenCenterを使⽤して、ホスト電源投⼊機能を有効にします。
3.11.2. CLIを使⽤してホストの電源投⼊を管理する
ホスト電源投⼊機能は、CLIまたはXenCenterで管理できます。ここでは、CLIを使⽤する⽅法につ いて説明します。
ホスト電源投⼊機能は、ホストレベル(つまり各XenServerホスト)で有効になります。
この機能を有効にすると、CLIやXenCenterからホストの電源を⼊れることができます。
3.11.2.1. CLIを使⽤してホスト電源投⼊を有効にするには
1. 次のコマンドを実⾏します。xe host-set-power-on-mode host=<host uuid>\
power-on-mode=("" , "wake-on-lan",
"iLO", "DRAC","custom") power-on-config=key:value
iLOおよびDRACでは、キー(key)としてpower_on_ip、power_on_user、および
power_on_password_secretを指定します。キーpower_on_password_secretを指定するこ とで、パスワードを安全に格納することができます。
3.11.2.2. CLIを使⽤してホストの電源をリモートから投⼊するには
1. 次のコマンドを実⾏します。xe host-power-on host=<host uuid>
3.11.3. XenServerホストの電源投⼊機能のカスタムスクリプトを作成する
デフォルトでサポートされるプロトコル(Wake-On-RingやIntel Active Management Technology など)をサポートしないXenServerホストの電源をリモートから投⼊するには、カスタムのLinux Pythonスクリプトを作成します。ただし、iLO、DRAC、およびWake-On-LANソリューション⽤の カスタムスクリプトを作成することもできます。
ここでは、XenServer APIコールhost.power_onのキー/値ペアを使⽤したカスタムスクリプトの 作成について説明します。
カスタムスクリプトは、XenServerの電源の制御が必要なときにコマンドラインから実⾏する必要が あります。また、XenCenterでスクリプトの実⾏を指定し、XenCenter UI機能を使⽤して操作する こともできます。
XenServer APIについては、 Citrix Webサイトで公開されている[Citrix XenServer Management API](英⽂)を参照してください。
警告︓
/etc/xapi.d/plugins/
ディレクトリにインストールされるデフォルトのスクリ プトを編集することはできません。新しく作成したスクリプトをこのディレクトリ に追加することはできますが、XenServerに付属のスクリプトは編集しないでくだ さい。3.11.3.1. キー/値ペア
ホスト電源投⼊機能を使⽤するには、host.power_on_modeキーとhost.power_on_configキーを 設定します。ここでは、これらのキーで使⽤する値について説明します。
次のAPIコールを使⽤すると、これらのフィールドを⼀度に設定することもできます。
void host.set_host_power_on_mode(string mode, Dictionary<string,string> config) 3.11.3.1.1. host.power_on_mode
•
定義︓電源管理ソリューションの種類(Dell DRACなど)を指定するキー/値ペアを含みます。
•
設定可能な値︓
• 空⽂字。電源管理を無効にします。
• iLO。HP iLOを⽰します。
• DRAC。Dell DRACを⽰します。DRACを使⽤するには、Dellサプリメンタルパックをインス トールしておく必要があります。
• wake-on-lan。Wake on LANを⽰します。
• そのほかの名前(カスタムの電源投⼊スクリプトの指定)。このオプションでは、カスタムの電 源管理スクリプトを指定できます。
•
種類︓⽂字列
3.11.3.1.2. host.power_on_config
•
定義︓電源投⼊モードを指定するキー/値ペアを含みます。iLOおよびDRACに関する追加情報を指
定します。•
設定可能な値︓
• 電源管理ソリューションの種類としてiLOまたはDRACを指定する場合は、このキーで以下のい ずれかの値を指定します。
• power_on_ip。電源管理カードとの通信で使⽤されるIPアドレスです。iLOまたはDRACが構 成されたネットワークインターフェイスのドメイン名を⼊⼒することもできます。
• power_on_user。管理プロセッサに関連付けられたiLOまたはDRACのユーザー名です。⼯場 出荷時のものから変更されている場合があります。
• power_on_password_secret。セキュリティを保護するシークレット機能を使⽤してパス ワードを指定します。
• "power_on_password_secret"でパスワードを指定するには、事前にパスワードシークレット を作成しておく必要があります。
•
種類︓マップ(⽂字列,⽂字列)
3.11.3.2. サンプルスクリプト
このサンプルスクリプトでは、XenServer APIをインポートし、⾃⾝をカスタムスクリプトとして定 義し、さらにリモートから制御するホストに特定のパラメータを渡します。カスタムスクリプトで は、常にsession、remote_host、およびpower_on_configパラメータを定義する必要がありま す。
このスクリプトの結果は、実⾏に失敗した場合のみ表⽰されます。
import XenAPI
def custom(session,remote_host, power_on_config):
result="Power On Not Successful"
for key in power_on_config.keys():
result=result+'' key=''+key+''
value=''+power_on_config[key]
return result
注︓
作成したスクリプトは、拡張⼦.pyで/etc/xapi.d/pluginsディレクトリに保存しま す。