クラスター化プール

クラスタリングは、GFS2ストレージリポジトリを使用するリソースプールに必要な、追加機能を提供します。GFS2について詳しくは、「ストレージを構成する」を参照してください。

クラスターは、クラスター化されていないプールよりも密接に接続され協調する、XenServerホストのプールです。クラスター内のホストは、選択したネットワーク上で互いに一定の通信を維持します。クラスター内のすべてのホストは、クラスター内のすべてのホストの状態を認識しています。このホスト協調により、クラスターはGFS2ストレージリポジトリのコンテンツへのアクセスを制御できます。

クォーラム

クラスター内の各ホストは、クラスター内のホストの少なくとも半分(それ自体を含む)と常に通信している必要があります。この状態は、クォーラムを持つホストと呼ばれます。

奇数のプールのクォーラム値は、クラスター内のホストの合計数に1を加えたものの半分です:(n+1)/2。偶数のプールのクォーラム値は、クラスター内のホストの合計数の半分です:n/2。

偶数のプールの場合は、実行中のクラスターを正確に半分に分けることができます。実行中のクラスターは、クラスターのどちらの半分が自己隔離し、クラスターのどちらの半分がクォーラムを持つかを決定します。偶数のクラスター化プールにコールドスタートから電源を投入する場合は、ホストがクォーラムを持つ前に、(n/2)+1台のホストを使用できるようにする必要があります。ホストがクォーラムを持つと、クラスターがアクティブになります。

ホストがクォーラムを持たない場合、そのホストは自己隔離します。

自己隔離

ホストは、クォーラムを持たないことを検出すると、数秒で自己隔離します。ホストは自己隔離すると、すぐに再起動します。ホストはハードシャットダウンを行うので、ホスト上で実行されているすべての仮想マシンが強制終了されます。高可用性を使用するクラスター化プールでは、XenServerは、ほかのプールメンバーでのその再起動構成に従って仮想マシンを再起動します。自己隔離されたホストは再起動され、クラスターに再び参加しようとします。

クラスター内の稼働中ホストの数がクォーラム値より小さくなると、残りのすべてのホストがクォーラムを失います。

理想的なシナリオでは、クラスター化プールには、クォーラムに必要な数より多くの稼動中ホストが常に存在し、XenServerが隔離することはありません。このシナリオをより実現可能にするには、クラスター化プールの設定時に次の推奨事項を考慮してください:

  • 適切なハードウェア冗長性を確保します。

  • クラスターネットワークに専用のボンディングネットワークを使用します。ボンディングされたNICが必ず同じL2セグメント上にあるようにします。詳しくは、「ネットワーク」を参照してください。

  • プールとGFS2ストレージリポジトリとの間のストレージマルチパスを構成します。詳しくは、「ストレージのマルチパス」を参照してください。

  • クラスター化プールで高可用性を構成します。クラスター化プールでは、ハートビートストレージリポジトリはGFS2ストレージリポジトリである必要があります。詳しくは、「高可用性」を参照してください。

クラスター化プールを作成する

開始前に、次の前提条件が満たされていることを確認してください:

  • クラスター化プール内のすべてのXenServerホストには、少なくとも2GiBのコントロールドメインメモリが必要です。
  • クラスター内のすべてのホストは、クラスターネットワークに静的IPアドレスを使用する必要があります。
  • Citrixでは、3つ以上のホストを含むプールでのみクラスタリングを使用することをお勧めしています。これは、2つのホストを含むプールではプール全体の自己隔離で問題が発生しやすいためです。
  • プール内のホスト間にファイアウォールがある場合は、ホストが次のポートを使用してクラスターネットワーク上で通信できることを確認してください:
    • TCP:8892、21064
    • UDP:5404、5405

    詳しくは、「Citrixの技術が使用する通信ポート」を参照してください。

  • 既存のプールをクラスタリングする場合は、高可用性が無効になっていることを確認してください。クラスタリングが有効になった後、高可用性を再度有効にできます。

XenCenterを使用してプールにクラスタリングを設定できます。詳しくは、XenCenterのオンラインヘルプを参照してください。

xe CLI(コマンドラインインターフェイス)を使用してクラスター化プールを作成するには:

  1. リソースプールを作成します。

    詳しくは、「ホストとリソースプール」を参照してください。

  2. ボンディングネットワークを作成するか既存のボンディングネットワークを選択して、クラスタリングネットワークとして使用します。

    詳しくは、「ネットワーク」を参照してください。

  3. プール内のXenServerホスト上でコンソールを開きます。

  4. このネットワークに属するすべてのPIFについて、disallow-unplug=trueを設定します:

    xe pif-param-set disallow-unplug=true uuid=<pif_uuid>
    
  5. プールでクラスタリングを有効にする:

    xe cluster-pool-create network-uuid=<network_uuid>
    

クラスター化プールを管理する

クラスター化プールを管理する場合は、次の方法で、プールがクォーラムを失うリスクを軽減できます。

ホストが正常にシャットダウンされるようにする

ホストは、正常にシャットダウンされると、再起動されるまで一時的にクラスターから削除されます。ホストは、シャットダウンされている間はクラスターのクォーラム値にカウントされません。そのホストがないことで他のホストがクォーラムを失うことはありません。

ただし、ホストは、強制的または予期せずにシャットダウンされた場合、オフラインになる前にクラスターから削除されることはありません。このホストは、クラスターのクォーラム値にカウントされます。シャットダウンされると、他のホストがクォーラムを失う可能性があります。

メンテナンスモードを使用する

ホスト上で何かを実行することでホストがクォーラムを失う可能性がある場合は、その前に、ホストをメンテナンスモードにしてください。ホストがメンテナンスモードの場合、実行中の仮想マシンはプール内の別のホストに移行されます。また、そのホストがプールマスタであった場合、その役割はプール内の別のホストに渡されます。操作によってメンテナンスモードのホストが自己隔離した場合でも、仮想マシンを失うことや、プールへのXenCenterの接続が失われることはありません。

メンテナンスモードのホストは、以降もクラスターのクォーラム値にカウントされます。

ホストがメンテナンスモードの場合は、クラスター化プールに含まれるそのホストのIPアドレスのみを変更できます。ホストのIPアドレスを変更すると、そのホストはクラスターから離れることになります。IPアドレスが正常に変更されると、そのホストはクラスターに再び参加します。ホストがクラスターに再び参加した後、メンテナンスモードを解除できます。

自己隔離しているかオフラインになっているホストを回復する

自己隔離されているホストを回復することは重要です。これらのクラスターメンバーは、オフラインになっている間は、クラスターのクォーラム数にカウントされ、接続可能なクラスターメンバーの数が減少します。この状況では、後続のホスト障害が発生することでクラスターがクォーラムを失い完全にシャットダウンされるリスクが高まります。

クラスター内にオフラインのホストがあると、特定の操作を実行できなくなります。クラスター化プールでは、プールのメンバーすべてがプールメンバーシップのすべての変更に同意しないと、変更は成功しません。クラスターメンバーが接続不可の場合は、XenServerにより、クラスターメンバーシップを変更する操作(ホストの追加や削除など)が行えなくなります。

ホストを停止とマークする

オフラインのホストを回復できない場合は、それらをクラスターに対して停止とマークすることができます。ホストを停止とマークすると、それらがクラスターから永続的に削除されます。ホストが停止としてマークされると、それらはクォーラム値にカウントされなくなります。

制約

  • クラスター化プールでは、プールあたり16台までのホストのみがサポートされます。
  • ネットワークが管理とクラスタリングの両方に使用されている場合は、クラスターを再作成せずに管理ネットワークを分離することはできません。
  • DHCPの使用は避けてください。稼動中のクラスター上で動的IPアドレスを変更すると、まれにデータが失われる可能性があります。
  • XenCenterを使用してクラスターネットワークのIPアドレスを変更するには、クラスタリングとGFS2を一時的に無効にする必要があります。
  • クラスターが稼働中で、クラスターに実行中の仮想マシンがある間は、クラスタリングネットワークのボンディングを変更しないでください。この操作により、クラスターが隔離される可能性があります。