次のVM起動までの間
4. メンバホストでxe pool-joinコマンドを実⾏し、それらのホストを新しいプールに追加しま す。
8.12. マシン障害に対処する
ここでは、さまざまな障害からの回復⽅法について詳しく説明します。ここで説明するすべての障害 回復シナリオでは、項8.9. 「XenServerホストと仮想マシンのバックアップと復元」で説明されて いるいずれかの⽅法でバックアップされていることを前提としています。
8.12.1. メンバホストの障害
⾼可⽤性機能が無効なリソースプールでは、プールマスタがメンバホストからの定期的なハートビー トメッセージを監視して、メンバホストに発⽣する障害を検出します。ハートビートが600秒受信さ れない場合、プールマスタはメンバホストに障害が発⽣していると認識します。この状態から回復さ せる⽅法には、2つあります。
• 動作していないメンバホストの問題を解決して起動します(物理的に再起動するなど)。メンバホ ストとプールマスタとの接続が復元されると、そのメンバホストが動作中であることがプールマス タにより再度マーク付けされます。
• メンバホストをシャットダウンし、xe host-forgetコマンドを使⽤してそのメンバの情報をプー ルマスタから消去します。メンバホストの情報をプールマスタから消去すると、そのメンバホスト 上で実⾏されていたすべての仮想マシンは「オフライン」としてマーク付けされ、ほかの
XenServerホスト上で再起動可能になります。障害が発⽣したXenServerホストが正しくオフライ ンとして認識されないと、仮想マシンデータが破損することがあるため注意してください。ま た、xe host-forgetコマンドでプールを単⼀ホストの複数のプールに分割しないでください。こ れを⾏うと、分割したプールがすべて同じ共有ストレージを使⽤するために、仮想マシンデータが 破損することがあります。
警告︓
• プールから消去したホストをアクティブなホストとして再度使⽤する場合 は、XenServerソフトウェアを新規にインストールしてください。
• ⾼可⽤性が有効なリソースプールでは、xe host-forgetコマンドを使⽤しない でください。まず⾼可⽤性を無効にしてからホストを消去し、その後で⾼可⽤性 を有効にします。
メンバーXenServerホストに障害が発⽣した後で、そのホスト上の仮想マシンの状態が「実⾏中」と して認識されることがあります。そのメンバXenServerホストが停⽌していることが確実である場合 は、xe vm-reset-powerstateコマンドを使⽤して、仮想マシンの電源状態を強制的に「停⽌」
(
halted
)に設定してください。詳しくは、項A.4.26.28. 「vm-reset-powerstate」を参照して ください。警告︓
このコマンドの使⽤を誤ると、データが破損することがあります。このため、必要 な場合にのみこのコマンドを使⽤してください。
ほかのXenServerホスト上で仮想マシンを起動できるようにするには、仮想マシンストレージのロッ クを解除する必要もあります。ストレージリポジトリ上の各ディスクは、同時に複数のホストで使⽤
することはできません。このため、停⽌したホストにより使⽤されていたディスクをほかの XenServerホストで使⽤できるようにするには、ストレージのロックを解除します。これを⾏うに は、プールマスタ上で、仮想マシンのディスクを格納している各ストレージリポジトリに対して以下 のスクリプトを実⾏します。
/opt/xensource/sm/resetvdis.py
<host_UUID> <SR_UUID> [master]<literal>master</literal>を指定するのは、そのXenServerホストが障害発⽣時にストレージリ ポジトリマスタ(プールマスタ、またはローカルストレージを使⽤するホスト)であった場合のみで す。̶̶
警告︓
このコマンドを実⾏する前に、そのホストが停⽌していることを確認してくださ い。このコマンドの使⽤を誤ると、データが破損することがあります。
このスクリプトを実⾏する前にほかのXenServerホスト上で仮想マシンを起動しようとすると、次の エラーメッセージが表⽰されます。
VDI <UUID> already attached RW
8.12.2. プールマスタの障害
リソースプールの各メンバには、必要に応じてプールマスタの役割を引き継ぐための情報がすべて格 納されています。プールマスタに障害が発⽣した場合、以下の処理が⾏われます。
1. ⾼可⽤性が有効なリソースプールでは、ほかのホストがプールマスタとして⾃動的に選出されま す。
2. ⾼可⽤性が無効な場合、各メンバはプールマスタが回復するのを待機します。
この時点でプールマスタが回復した場合、プール内のメンバとの通信が再確⽴され、通常の状態に戻 ります。
プールマスタが完全に機能を停⽌している場合は、任意のメンバホスト上でxe
pool-emergency-transition-to-masterコマンドを実⾏します。選択したメンバホストがプールマスタとしての動作
を開始したら、xe pool-recover-slavesコマンドを実⾏します。これにより、ほかのすべてのメン バホストが新しいプールマスタとの通信を開始します。停⽌したプールマスタのハードウェアの問題が解決した場合、または新しいサーバーに交換した場合 は、XenServerソフトウェアをインストールして、プールに追加できます。通常、リソースプール内 のXenServerホストは同種であるため、新しいサーバーをプールマスタとして指定し直す必要はあり ません。
プールマスタとして動作するXenServerホストが変更された場合、デフォルトのプールストレージリ ポジトリに適切な値が設定されていることを確認する必要もあります。これを⾏うには、xe
pool-param-listコマンドを使⽤して、
default-SRパラメータに正しいストレージリポジトリが指定さ れていることを確認します。8.12.3. リソースプールの障害
リソースプール全体に障害が発⽣した場合は、プールデータベースを最初から作成し直さなければな りません。このような事態を避けるためにも、xe pool-dump-databaseコマンド(項A.4.15.3.
「pool-dump-database」を参照)を使⽤して、プールメタデータを定期的にバックアップしておく
ことが必要です。リソースプール全体の障害から回復するには
1. ホストにXenServerソフトウェアを新規にインストールします。この時点では、リソースプール を作成しません。
2. プールマスターとして動作するホストに対してxe
pool-restore-databaseコマンド(項 A.4.15.11. 「pool-restore-database」を参照)を使⽤し、バックアップからプールデータ
ベースを復元します。3. XenCenterでプールマスタに接続し、すべての共有ストレージおよび仮想マシンが使⽤可能に なっていることを確認します。
4. 新規インストールした残りのメンバホストをプールに追加して、適切なホスト上で仮想マシンを 起動します。
8.12.4. 設定エラーによる障害に対処する
ホストに物理的な障害がない場合でも、ソフトウェアやホスト設定の問題により障害が発⽣すること があります。
ホストのソフトウェアおよび設定を復元するには 1. 次のコマンドを実⾏します。
xe host-restore host=<host> file-name=<hostbackup>
2. ホストをインストールCDから起動して、[Restore from backup]を選択します。
8.12.5. 物理マシンの障害
物理ホストマシンに障害が発⽣した場合は、以下の適切な⼿順に従って回復します。
警告︓
障害が発⽣したホスト上で実⾏されていた仮想マシンは、プールのデータベースで は
Running
(「実⾏中」)としてマーク付けされます。これは、同じ仮想マシンが 複数のホスト上で起動して重⼤なディスク損傷が発⽣することを防ぐための安全上 の機能です。管理者は、マシン(および仮想マシン)がオフラインになっているこ とを確認してから、次のコマンドを実⾏して仮想マシンの電源状態を
Halted
(「停⽌」)状態に変更できます。xe vm-reset-powerstate vm=<vm_uuid> --force
これにより、XenCenterまたはCLIを使⽤して、その仮想マシンを起動できるよう になります。
障害が発⽣したプールマスタをメンバホストを実⾏したまま交換する 1. 次のコマンドを実⾏します。
xe pool-emergency-transition-to-master xe pool-recover-slaves
2. コマンドの実⾏に成功したら、仮想マシンを再起動します。
すべてのホストに障害が発⽣したリソースプールを復元するには 1. 次のコマンドを実⾏します。
xe pool-restore-database file-name=<backup>
警告︓
このコマンドは、適切な名前を持つNICが適切な数だけそのホストにインストール されている場合にのみ成功します。
2. ターゲットマシンで元のマシンと異なるストレージ設定が使⽤されている場合(異なるIPアドレ スでのブロックミラーなど)は、pbd-destroyコマンドの次にpbd-createコマンドを実⾏し てストレージ設定を再作成します。これらのコマンドについては、項A.4.13. 「PBD(仮想ネッ
トワーク)コマンド」を参照してください。
3. ストレージ設定を再作成したら、pbd-plugコマンドを使⽤するか、XenCenterの[ストレー
ジ]>[修復]を選択してそのストレージ設定を使⽤します。
4. すべての仮想マシンを再起動します。
仮想マシンストレージを使⽤できないときに仮想マシンを復元するには 1. 次のコマンドを実⾏します。
xe vm-import filename=<backup> metadata=true
2. メタデータのインポートに失敗した場合は、次のコマンドを実⾏します。
xe vm-import filename=<backup> metadata=true --force
このコマンドにより、仮想マシンメタデータの復元が「最⼤限の努⼒」で試⾏されます。
3. すべての仮想マシンを再起動します。