コンテンツにスキップ

フェイルオーバー

フェイルオーバーは、マシンが故障した場合に Understudy がネットワーク内の他のマシンから引き継ぐ仕組みです。フェイルオーバーは 4 つの方法でトリガーできます:

  • マシンがタイムアウトしたときに自動的に(自動フェイルオーバーについて詳しくは Failover Timeout を参照)
  • リモートトランスポートコマンドによる手動
  • Session ウィジェットのボタンによる手動
  • Failover API 経由

マシンを Understudy に手動でフェイルオーバーするには、故障したマシンの横にある replace ボタンを押します。

置き換えられるマシンは「failed」になります。故障したマシンを置き換える Understudy は、役割やフィードを含め、故障したマシンの特性を引き継ぎます。マトリックスルーティングが構成されている場合、Understudy は自動的にルーティングコマンドをマトリックスに送り、出力を故障したマシンから Understudy へ切り替えます。マトリックスルーティングは、Understudy が新しい役割用に構成されるとすぐに送られます。

Designer は、マシンがなぜ置き換えられたのかを知ることはできず、障害条件が何かを推測することもできません。そのため Designer は、故障したマシンの現在の状態について推測できないため、そのマシンとの通信をすべて無視します。failed とマークされている間、故障したマシンからのそれ以上の通信はセッションの他の部分に受け入れられません。

故障したマシンはネットワークデータの送信を停止するように指示されますが、マシンの故障の仕方によっては、Designer はそのメッセージが受信され実行される保証はできません(たとえばネットワーク関連の障害など)。

Live Update は、ショーファイルの編集をセッション内のすべてのマシンに配布する役割を持つ d3net ネットワークレイヤーです。

フェイルオーバー中、故障したマシンでは、不良状態の間に編集を送受信しないよう Live Update が切断されます。

Actor と Director では、フェイルオーバー時の Live Update の動作が異なります。

Actor のフェイルオーバーと Live Update
Section titled “Actor のフェイルオーバーと Live Update”

Actor がフェイルオーバーされると、そのマシンで Live Update が無効になります。代わりに引き継ぐ Understudy は Live Update セッションに残り、通常どおり編集を受信し続けます。

Director のフェイルオーバーと Live Update
Section titled “Director のフェイルオーバーと Live Update”

Dedicated または Non-Dedicated の Director がフェイルオーバーされると、そのマシンとセッション内のすべてのマシンで Live Update が無効になります。これは、Director がセッション内のすべての Live Update データのマーシャリングを担っており、不良状態にある場合は Understudy がこの責任を確実に引き継げないためです。

どのマシンで行われた編集も、セッションが再起動されるまで他のどのマシンにも転送されなくなります。そのため、Live Update が再接続できるようになるまで、これらの編集は避けるべきです。

以前に置き換えられたマシンは、Session ウィジェットでそのマシンの横にある「restore」を押すことで、元の役割に復元できます。

故障したマシンはいつ復元できるか?

Section titled “故障したマシンはいつ復元できるか?”

replace と restore の間に何が起こるかは、障害の性質によって異なります。フェイルオーバーが発生した状況によっては、故障したマシンで Designer を再起動せずに、Designer を再起動した後に、またはマシンを再起動した後に復元できる場合があります。マシンの状態に少しでも疑いがある場合は、復元する前にサーバーをオフにして再度オンにすることをお勧めします。

Understudy は引き受けた役割を放棄し、Understudy として再構成されます。次に、(マトリックスルーティングが構成されている場合)マトリックスルーティングコマンドを送り、出力を復元されたマシンに戻します。

代行 Director で編集が行われ、その後置き換えられたマシンがセッションに戻された場合、代行 Director ですでに行われた編集は、プロジェクト同期の一部としてセッションに参加するマシンに同期されます。これは、その時点でキャプチャされた変更のみです。

Understudy が複数のマシンをターゲットにしていてマシンを置き換えた場合、Disguise は、正当な理由(たとえば別のマシンが故障し、その Understudy にそのマシンを置き換えさせる必要がある場合など)がない限り、ショーの途中で故障したマシンに復元することを推奨しません。

マシンの役割を再構成し、ネットワーク経由でマトリックスコマンドを送る行為は、すでに非正常かもしれないシステムにおける通常のショー運用外の追加作業であり、そのため必要な場合を除いて推奨されません。

適切であれば、故障したマシンを調査・修復してセッションに戻すことができますが、Understudy が別の役割を引き継ぐ必要が生じるまでは置き換えられたままにします。必要が生じたら、戻したマシンを復元し、新たに故障したマシンを置き換えられます。これが必要になるシナリオは極めてまれです。