Citrix管理程序

高可用性

Citrix Hypervisorサーバーは障害により接続不能になったり停止したりすることがあります。Citrix管理程序の高可用性機能には、これらの障害に備え、安全に回復するための一連の自動化オプションが用意されています。たとえば、ネットワークの物理的な切断やホストのハードウェア障害が考えられます。

概要

高可用性により,ホストが接続不能になったり不安定になったりしたときに,そのホストで実行されている仮想マシンが確実にシャットダウンされて別のホストで再起動されます。仮想マシンをシャットダウンして別のホストで再起動することで,その仮想マシンが(手作業または自動的に)新しいホストで起動されないようにします。その後いずれかの時点で,元のホストが回復されます。このシナリオでは,同じ仮想マシンの2つのインスタンスが異なるホスト上で動作する可能性があり,それに伴い仮想マシンディスクが破損してデータが失われる可能性が高くなります。

プールマスターが接続不能になったり不安定になったりしたときに,高可用性により,プールの管理機能を回復することもできます。高可用性によりプルの管理機能が自動的に復元されます。手動での介入は必要ありません。

オプションで,高可用性により,状態が良いと認識されているホストで手動での介入なしで仮想マシンを再起動するプロセスを自動化することもできます。複数の仮想マシンが特定の順番で起動して,特定の仮想マシン上のサービスが起動してからほかの仮想マシンが起動するようにスケジュールを設定することもできます。これにより,依存仮想マシン(依存SQLサーバーなど)よりもインフラストラクチャ仮想マシン(DHCPサーバーなど)が先に起動するように設定できます。

警告:

高可用性は,マルチパス化したストレジとボンディングしたネットワクと合わせて使用します。マルチパス化したストレージとボンディングしたネットワークは、高可用性を設定する前に構成してください。マルチパス化したストレージとネットワークボンディングを使用しない場合、インフラストラクチャでの問題発生時にホストが予期せず再起動されることがあります(自己隔離)。

すべてのグラフィックソリューション(NVIDIA vGPU,英特尔GVT-d,英特尔GVT-G, AMD MxGPU,およびvGPUパススルー)は,高可用性を利用する環境で使用できます。ただし,これらのグラフィックソリュ,ションを使用する仮想マシンは,高可用性で保護できません。これらの仮想マシンは,適切な空きリソースを持つホストがある間は,ベストエフォート方式で再起動できます。

オバコミット

ユーザー定義のホスト障害数の後に,いずれかの場所で現在実行中の仮想マシンを再起動できない場合,プールはオーバーコミットされます。

オーバーコミットは,プール全体に障害後の仮想マシンの実行に必要な十分な空きメモリがない場合に発生する可能性があります。また,軽微な設定変更により,意図したとおりに仮想マシンが保護されなくなる場合もあります:たとえば,仮想ブロックデバイス(VBD)とネットワークの設定を変更すると,どのホストでどの仮想マシンを再起動できるかが変更される可能性があります。Citrix Hypervisorですべての要因を予測して,高可用性機能による保護が正しく反映されるかどうかをチェックすることはできません。ただし,高可用性を維持できなくなった場合は,非同期的なアラ,トが送信されます。

Citrix Hypervisorでは,プール内の複数のホストに障害が発生した場合にどのような対処を行うかというフェ邮箱ルオ邮箱バ邮箱プランが動的に保持されます。理解するべき重要な概念は許容されるホスト障害数の値です。この値は高可用性構成の一部として定義されます。許容されるホスト障害数の値で,サビスを中断せずに許容される障害の回数が決まります。たとえば,64のホストで構成されるリソスプルで,許容される障害数が3に設定されているとします。この場合,プールでは,3台のホストの障害は許容し,他のホストで仮想マシンを再起動するフェイルオーバープランを計算します。プランが見からない場合,プルはオバコミットされたと見なされます。フェ邮箱ルオ邮箱バ邮箱プランは、仮想マシンの追加や起動などのライフサイクル操作や移行に応じて動的に再計算されます。プールへの新しい仮想マシンの追加など、プールがオーバーコミット状態になるような変更を加えると、アラートが送信されます(XenCenter経由またはメールで)。

オバコミットの警告

仮想マシンを起動または一時停止しようとしてプールがオーバーコミット状態になった場合は,警告アラートが表示されます。この警告はXenCenterに表示されるほか,管理APIではメッセージインスタンスとしても使用できます。メルアドレスを構成してある場合は、そのメールアドレスにメッセージが送信されるように設定することもできます。その後、操作をキャンセルするか、そのまま続行することができます。処理を続行すると、リソースプールがオーバーコミット状態になります。さまざまな再起動優先度の仮想マシンで消費されているメモリ量が、プール全体およびホストごとに表示されます。

ホストを隔離する

サーバーの障害は,ネットワーク接続の損失により,または管理スタックの問題が発生したときに発生する可能性があります。このような場合,Citrix Hypervisorサーバーは自己隔離を行って,仮想マシンが2台のサーバーで同時に実行されないようにします。隔離されたホストは直に再起動され,そのホスト上で実行中のすべての仮想マシンが停止します。リソースプール内のほかのホストは,これらの仮想マシンの停止を検出し,設定されている再起動優先度に従って仮想マシンを再起動します。隔離されたホストが再起動すると,リソスプルへの復帰を試行します。

注:

クラスター化プール内のホストは,リソースプール内の半分以上のほかのホストと通信できないときに,自己隔離を行うこともできます詳しくは,”クラスタ化プルを参照してください。

設定要件

高可用性機能を使用するために必要な条件:

  • Citrix Hypervisorのリソスプル。高可用性機能では、単一リソースプール内のホストレベルの障害に対する高可用性が提供されます。

    注:

    高可用性は3台以上のCitrix Hypervisorサーバーが動作するプールで使用することをお勧めします。詳しくは,”CTX129721—心跳丢失时的高可用性行为を参照してください。

  • ハトビトストレジリポジトリとして,356 mb以上のiSCSI, NFS,またはファイバチャネルLUNを少なくとも1つ含む共有ストレージ。高可用性メカニズムによりハトビトストレジリポジトリに次の2のボリュムが作成されます:

    4mbハトビトボリュム:ハトビトの実行に使用されます。

    256 mbメタデータボリューム:マスターがフェールオーバーした場合にプールマスターメタデータの格納に使用されます。

    注:

    信頼性を向上させるため,高可用性ハートビートディスクとして専用のNFSまたはiSCSIストレージリポジトリを使用することをお勧めします。このストレジリポジトリは,ほかの目的で使用しないでください。

    プールがクラスター化されている場合,ハートビートストレージリポジトリはGFS2ストレージリポジトリでなければなりません。

    小伙子で認証した場合,SMBまたはiSCSIを使用して接続されたストレージはハートビートストレージリポジトリとして使用できません。

    NetAppまたはEqualLogic当年のストレージリポジトリを使用する場合は,ハートビートストレージリポジトリに使用するアレイにNFSまたはiSCSIの論理ユニット番号を手作業で準備する必要があります。

  • すべてのホストの静的ipアドレス。

    警告:

    高可用性を有効にしているときにサーバーのIPアドレスを変更すると,高可用性によりホストのネットワークに障害が発生したとみなされます。ipアドレスを変更したことでホストが隔離されて,起動できない状態になることがあります。この状況を改善するには,host-emergency-ha-disableコマンドを使用して高可用性を無効にし,pool-emergency-reset-masterを使用してプルマスタをリセットしてから,高可用性を再度有効にします。

  • 信頼性を最大限に高めるために,専用のボンディングされたインターフェイスを高可用性管理ネットワークとして使用することをお勧めします。

高可用性で仮想マシンを保護するには、その仮想マシンがアジャ以及ルである必要があります。仮想マシンの条件:

  • 仮想ディスクが共有ストレジ上にある。共有ストレジは種類を問いません。iSCSI, NFS,またはファイバチャネルの論理ユニット番号のみがストレージハートビートの必須条件ですが,仮想ディスクストレージとしても使用できます。

  • ラ邮箱ブマ邮箱グレ邮箱ションを使用可能。

  • ロカルdvdドラ。

  • 仮想ネットワク。

注:

高可用性を有効にする場合はプール内のサーバーで管理インターフェイスをボンディングし,ハートビートストレージリポジトリにはマルチパスストレージを使用することを強くお勧めします。

コマンドラインインターフェイスから仮想局域网およびボンディングされたインターフェイスを作成する場合,作成されても接続されず,アクティブにならない場合があります。この場合,仮想マシンがアジャeルでないため,高可用性機能で保護されません。CLIのpif-plugコマンドを使用して,仮想局域网とボンディング论坛をアクティブにすると仮想マシンがアジャイルになります。xe diagnostic-vm-statuscliコマンドを使用して,仮想マシンがアジャereplicationルではない正確な理由を判定することもできます。このコマンドは配置制約を分析し,必要に応じて是正措置を取ることができます。

構成設定を再起動する

仮想マシンは,高可用性機能によって“保護する”、“ベストエフォート”,または“保護しない”と分類されます。ha-restart-priorityの値は,仮想マシンを保護する,ベストエフォート,または保護しないのうちのいずれに分類するかを定義します。これらの各カテゴリにおいて,仮想マシンの再起動の動作はそれぞれ異なります。

保護する

高可用性機能によって,オフラインになった保護する仮想マシン,またはオフラインになっているそのホストを確実に再起動できます。これは,プ。

サーバー障害時に保護されている仮想マシンを再起動できない場合,高可用性機能は,プールに余分な容量があるときは仮想マシンの起動を試行します。余分な容量があるときは,仮想マシン起動の試行が成功する可能性があります。

ha-restart-priorityの値:重新启动

ベストエフォト

ベストエフォート仮想マシンのホストがオフラインになった場合,高可用性は,別のホストでベストエフォート仮想マシンの再起動を試行します。この試行は,保護されているすべての仮想マシンが正常に再起動された後にのみ行われます。高可用性は,ベストエフォト仮想マシンの再起動を1回のみ試行します。この試行が失敗すると,高可用性は仮想マシンの再起動をそれ以上試行しません。

ha-restart-priorityの値:的最优

保護しない

保護しない仮想マシン,またはそれが実行されているホストが停止しても,高可用性は仮想マシンの再起動を試行しません。

ha-restart-priorityの値:値は空文字です

注:

高可用性は,保護する仮想マシン,またはベストエフォート仮想マシンの再起動に使用するリソースを解放するために,実行中の仮想マシンを停止したり,移行したりすることはありません。

リソースプールで複数回のサーバー障害が発生し,許容障害数がゼロになった場合,保護されている仮想マシンの再起動は保証されません。そのような場合,システムアラトが生成されます。これ以降のサーバー障害では,再起動優先度が設定されたすべての仮想マシンは,感伤が設定されているものとして処理されます。

起動順序

起動順序は,障害が発生した場合,Citrix Hypervisorの高可用性機能が保護する仮想マシンを再起動しようとする順序です。各保護する仮想マシンの订单プロパティの値によって,起動順序が決定されます。

仮想マシンの订单プロパティは,高可用性,および仮想マシンを起動およびシャットダウンするほかの機能でも使用されます。保護する仮想マシンとして高可用性でマクされた仮想マシンだけでなく,すべての仮想マシンで订单プロパティを設定できます。ただし,高可用性が订单プロパティを使用するのは,保護する仮想マシンに対してのみです。

订单プロパティは整数値です。デフォルトの値は0(最優先)です。订单の値が0の保護する仮想マシンが,最初に高可用性によって再起動されます。订单プロパティの値が大きくなるほど,仮想マシンの再起動の順番は後になります。

仮想マシンの订单プロパティの値は、次のコマンドラeconf eンeconf eンタeconf eスで設定できます:

xe vm-param-set uuid=VM_UUID order=int 

XenCenterでは,仮想マシンの[高可用性オプション]パネルで[起動順序]を必要な値に設定することもできます。

Citrix Hypervisorプルの高可用性を有効にする

プルの高可用性を有効にするには,XenCenterまたはCLIを使用します。いずれの方法でも,仮想マシンに再起動優先度を設定して,プールがオーバーコミット状態になったときに優先的に再起動する仮想マシンを指定します。

警告:

  • 高可用性を有効にすると,プールからサーバーを削除するなど,仮想マシンのフェイルオーバープランを変更するような操作が無効になる場合があります。このような操作を行うために,一時的に高可用性を無効にするか,高可用性によって保護されている仮想マシンを保護しない状態にすることができます。

  • 高可用性が有効になっている場合,プルのクラスタリングは有効にできません。クラスタリングを有効にするには,一時的に高可用性を無効にします。クラスタ化されたプルで高可用性を有効にすることができます。クラスタ化されたプルでは,自己隔離などの一部の高可用性の動作が異なります。詳しくは,”クラスタ化プルを参照してください。

cliを使用して高可用性を有効にする

  1. リソスプルに,高可用性機能をサポトするストレジリポジトリが接続されていることを確認します。この機能をサポトするストレジリポジトリは、iSCSI、NFS、およびファ。これらのストレジリポジトリをcliを使用して構成する方法にいて詳しくは,”ストレジリポジトリ(sr)の管理を参照してください。

  2. 保護する各仮想マシンに再起動優先度を設定します。再起動優先度は次のコマンドで設定できます:

    Xe vm-param-set uuid=vm_uuid ha-restart-priority=restart order=1 
  3. 次のコマンドを実行して,プルの高可用性を有効にします。オプションでタ邮箱ムアウトを指定します:

    Xe pool-ha-enable heartbeat-sr-uuid =sr_uuid ha-config:timeout=timeout in seconds 

    タ,プ。高可用性を有効にするときにタイムアウトを指定しない場合、Citrix Hypervisorではデフォルトの60秒のタイムアウトが使用されます。タイムアウト期間内にすべてのCitrix Hypervisorサーバーがネットワークまたはストレージにアクセスできない場合は、自己隔離されて再起動されることがあります。

  4. コマンドpool-ha-compute-max-host-failures-to-tolerateを実行します。このコマンドは,保護対象のすべての仮想マシンに必要なリソースを維持したまま許容される最大ホスト障害数を返します。

    xe pool-ha-compute-max-host-failures-to-tolerate < !——NeedCopy >

    許容される失敗の数によって、通知が送信されるタ以及ミングが決まります。プルの状態が変化したときに,フェ。この計算を使用して,プールの容量と,保護されている仮想マシンの稼働を保証しながら許容できる障害の回数が特定されます。この計算値がha-host-failures-to-tolerateの指定値を下回ると,システムアラトが生成されます。

  5. ha-host-failures-to-tolerateパラメタを指定します。値は計算された値以下でなければなりません:

    Xe pool-param-set ha-host-failures-to- tolerance =2 uuid=pool-uuid 

cliを使用して仮想マシンから高可用性保護を削除する

特定の仮想マシンに対する高可用性機能を無効にするには,xe vm-param-setコマンドでha-restart-priorityパラメタに空文字列を指定します。ha-restart-priorityパラメタを設定しても,その仮想マシンに設定されている起動順序が変更されることはありません。ha-restart-priorityパラメタを適宜重新启动または的最优に設定することで,仮想マシンの高可用性を再度有効にすることができます。

到達不能なホストを復元する

何らかの理由でホストが高可用性ステートファイルにアクセスできない場合,そのホストは到達不可として認識されます。Citrix Hypervisor Hypervisorンストルを復元するには,host-emergency-ha-disableコマンドを使用して高可用性を無効にする必要があります:

Xe host-emergency-ha-disable——force 

プルマスタとして動作していたホストの場合,高可用性が無効になって起動します。プルメンバが再接続すると,高可用性が自動的に無効になります。プールメンバーとして動作していたホストがマスタに接続できない場合,次のいずれかの操作を行う必要があります:

  • ホストをプルマスタとして強制的にリブトする(xe pool-emergency-transition-to-master

    Xe pool-emergency-transition to master uuid=host_uuid 
  • ホストに新しいマスタの位置を教える(xe pool-emergency-reset-master):

    Xe pool-emergency-reset-master master-address=new_master_hostname 

すべてのホストが正常に再起動したら,高可用性を再度有効にします:

Xe pool-ha-enable heartbeat-sr-uuid=sr_uuid 

高可用性が有効なときにホストをシャットダウンする

ホストをシャットダウンまたは再起動するときは,ホストに障害が発生したと高可用性メカニズムに見なされないように特に注意してください。高可用性が有効なときにホストを完全にシャットダウンするには、XenCenterまたはCLIを使用して、ホストの無効化、ホストの退避、ホストのシャットダウンの順に実行する必要があります。高可用性が有効になっている環境でホストをシャットダウンするには、次のコマンドを実行します:

Xe host-disable host=host_name Xe host- withdraw uuid=host_uuid Xe host-shutdown host=host_name 

高可用性により保護されている仮想マシンをシャットダウンする

高可用性機能により保護されている仮想マシンが自動的に再起動するように設定されている場合,その設定を有効にしたまま仮想マシンをシャットダウンすることはできません。このような仮想マシンをシャットダウンするには,仮想マシンの高可用性を無効にしてからシャットダウン用のCLIコマンドを実行します。XenCenterを使用する場合は,保護されている仮想マシンの[シャットダウンボタンをクリックしたときに,高可用性による保護を無効にするためのダe .アログボックスが開きます。

注:

ただし,保護されている仮想マシン上で実行されているオペレーティングシステム内でシャットダウンを実行すると,ホスト障害が発生したときと同じように,自動的に再起動されます。この自動再起動により,オペレーターが間違えても,保護されている仮想マシンがシャットダウンされない事態を防ぐことができます。この仮想マシンをシャットダウンする場合は,その仮想マシンに設定されている高可用性機能による保護を最初に無効にします。

高可用性