クラスター化プール

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

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

クォーラム

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

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

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

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

自己隔離

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

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

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

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

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

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

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

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

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

  • クラスター化プール内のすべてのCitrix Hypervisorサーバーには、少なくとも2GiBのコントロールドメインメモリが必要です。

  • クラスター内のすべてのホストは、クラスターネットワークに静的IPアドレスを使用する必要があります。

  • クラスタリングを使用するのは、プールが3つ以上のホストを含む場合だけにすることをお勧めします。これは、2つのホストを含むプールではプール全体の自己隔離で問題が発生しやすいためです。

  • プール内のホスト間にファイアウォールがある場合は、ホストが次のポートを使用してクラスターネットワーク上で通信できることを確認してください:
    • TCP:8892、21064
    • UDP:5404、5405

    詳しくは、Communication Ports Used by Citrix Technologiesを参照してください。

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

必要な場合は、XenCenterを使用してプールにクラスタリングを設定することもできます。詳しくは、XenCenter製品ドキュメントを参照してください。

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

  1. ボンディングネットワークを作成して、クラスタリングネットワークとして使用します。プールマスターにするCitrix Hypervisorサーバーで、以下の手順を実行します:

    1. Citrix Hypervisorサーバーのコンソールを開きます。

    2. 次のコマンドを使用して、リソースプールに名前を付けます:

      xe pool-param-set name-label="New Pool" uuid=<pool_uuid>
      
    3. 次のコマンドを使用して、NICボンディングで使用するネットワークを作成します:

      xe network-create name-label=bond0
      

      これにより、新しいネットワークのUUIDが返されます。

    4. 次のコマンドを使用して、ボンディングに使用するPIFのUUIDを見つけます:

      xe pif-list
      
    5. アクティブ/アクティブモード、アクティブ/パッシブモード、またはLACPボンディングモードのいずれかで、ボンディングしたネットワークを作成します。使用するボンディングモードに応じて、以下のいずれかのアクションを実行します:

      • アクティブ/アクティブモードのボンディング(デフォルト)を作成するには、bond-createコマンドを使用します。このコマンドでは、作成したネットワークのUUIDと、ボンディングするPIFのUUIDを、コンマで区切って指定します。

         xe bond-create network-uuid=<network_uuid> /
              pif-uuids=<pif_uuid_1>,<pif_uuid_2>,<pif_uuid_3>,<pif_uuid_4>
        

        ボンディングを構成するNICの数に応じて、2つまたは4つのUUIDを指定してください。これにより、ボンディングのUUIDが返されます。

      • アクティブ/パッシブモードまたはLACPモードのボンディングを作成するには、上記と同じ構文にmodeパラメータを追加して、lacpまたはactive-backupを指定します:

         xe bond-create network-uuid=<network_uuid> pif-uuids=<pif_uuid_1>, /
              <pif_uuid_2>,<pif_uuid_3>,<pif_uuid_4> /
              mode=balance-slb | active-backup | lacp
        

    プールマスターでボンディングしたネットワークを作成した後、他のCitrix Hypervisorサーバーをプールに追加すると、ネットワークとボンディングの情報が自動的に追加するサーバーに複製されます。

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

  2. 少なくとも3台のCitrix Hypervisorサーバーのリソースプールを作成します。

    プールメンバー(マスターではない)であるCitrix Hypervisorの各サーバーで、次の手順を繰り返します:

    1. Citrix Hypervisorサーバーのコンソールを開きます。
    2. 次のコマンドを使用して、Citrix Hypervisorサーバーをプールマスターのプールに追加します:

      xe pool-join master-address=master_address master-username=administrators_username master-password=password
      

      master-addressパラメーターの値は、プールマスターであるCitrix Hypervisorサーバーの完全修飾ドメイン名に設定する必要があります。passwordにはプールマスターのインストール時に設定した管理者パスワードを指定します。

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

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

    1. 次のコマンドを使用して、ネットワークに属するPIFのUUIDを見つけます:

      xe pif-list
      
    2. リソースプール内のCitrix Hypervisorサーバーで次のコマンドを実行します:

      xe pif-param-set disallow-unplug=true uuid=<pif_uuid>
      
  4. プールでクラスタリングを有効にします。リソースプール内のCitrix Hypervisorサーバーで次のコマンドを実行します:

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

    前の手順で作成したボンディングしたネットワークのUUIDを入力します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

制約

  • クラスター化プールでは、プールあたり16台までのホストのみがサポートされます。
  • ネットワークが管理とクラスタリングの両方に使用されている場合は、クラスターを再作成せずに管理ネットワークを分離することはできません。
  • XenCenterを使用してクラスターネットワークのIPアドレスを変更するには、クラスタリングとGFS2を一時的に無効にする必要があります。
  • クラスターが稼働中で、クラスターに実行中の仮想マシンがある間は、クラスタリングネットワークのボンディングを変更しないでください。この操作により、クラスターが隔離される可能性があります。
  • クラスタリングが有効になっているホストが少なくとも1つ含まれるクラスタリングネットワークで、IPアドレスの競合(IPアドレスが同じホストが複数存在)が発生した場合、競合しているホストが隔離されないことがあります。この問題を解決するには、IPアドレスの競合を解決します。