クラスター化プール
クラスタリングは、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
詳しくは、「Citrixテクノロジで使用される通信ポート」を参照してください。
-
既存のプールをクラスタリングする場合は、高可用性が無効になっていることを確認してください。クラスタリングが有効になった後、高可用性を再度有効にできます。
- クラスター化されたプールには、ほかのトラフィックには使用されないボンディングネットワークを使用することを強くお勧めします。
必要な場合は、XenCenterを使用してプールにクラスタリングを設定することもできます。詳しくは、XenCenter製品ドキュメントを参照してください。
xe CLI(コマンドラインインターフェイス)を使用してクラスター化プールを作成するには:
-
ボンディングネットワークを作成して、クラスタリングネットワークとして使用します。
注:
クラスター化されたプールには専用のボンディングネットワークを使用することを強くお勧めします。このネットワークはそれ以外のトラフィックには使用しないでください。
プールマスターにするCitrix Hypervisorサーバーで、以下の手順を実行します:
-
Citrix Hypervisorサーバーのコンソールを開きます。
-
次のコマンドを使用して、リソースプールに名前を付けます:
xe pool-param-set name-label="New Pool" uuid=<pool_uuid>
-
次のコマンドを使用して、NICボンディングで使用するネットワークを作成します:
xe network-create name-label=bond0
これにより、新しいネットワークのUUIDが返されます。
-
次のコマンドを使用して、ボンディングに使用するPIFのUUIDを見つけます:
xe pif-list
-
アクティブ/アクティブモード、アクティブ/パッシブモード、または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サーバーをプールに追加すると、ネットワークとボンディングの情報が自動的に追加するサーバーに複製されます。
詳しくは、「ネットワーク」を参照してください。
-
-
少なくとも3台のCitrix Hypervisorサーバーのリソースプールを作成します。
プールメンバー(マスターではない)であるCitrix Hypervisorの各サーバーで、次の手順を繰り返します:
- Citrix Hypervisorサーバーのコンソールを開きます。
-
次のコマンドを使用して、Citrix Hypervisorサーバーをプールマスターのプールに参加させます:
xe pool-join master-address=master_address master-username=administrators_username master-password=password
master-address
パラメーターの値は、プールマスターであるCitrix Hypervisorサーバーの完全修飾ドメイン名に設定する必要があります。password
にはプールマスターのインストール時に設定した管理者パスワードを指定します。
詳しくは、「ホストとリソースプール」を参照してください。
-
このネットワークに属するすべてのPIFについて、
disallow-unplug=true
を設定します。-
次のコマンドを使用して、ネットワークに属するPIFのUUIDを見つけます:
xe pif-list
-
リソースプール内のCitrix Hypervisorサーバーで次のコマンドを実行します:
xe pif-param-set disallow-unplug=true uuid=<pif_uuid>
-
-
プールでクラスタリングを有効にします。リソースプール内のCitrix Hypervisorサーバーで次のコマンドを実行します:
xe cluster-pool-create network-uuid=<network_uuid>
前の手順で作成したボンディングしたネットワークのUUIDを入力します。
クラスター化プールを破棄する
クラスター化されたプールは破棄できます。クラスター化されたプールを破棄した後もプールは引き続き存在しますが、クラスター化されなくなり、GFS2ストレージリポジトリを使用できなくなります。
クラスター化されたプールを破棄するには、次のコマンドを実行します:
xe cluster-pool-destroy cluster-uuid=<uuid>
クラスター化プールを管理する
クラスター化プールを管理する場合は、次の方法で、プールがクォーラムを失うリスクを軽減できます。
ホストが正常にシャットダウンされるようにする
ホストは、正常にシャットダウンされると、再起動されるまで一時的にクラスターから削除されます。ホストは、シャットダウンされている間はクラスターのクォーラム値にカウントされません。そのホストがないことで他のホストがクォーラムを失うことはありません。
ただし、ホストは、強制的または予期せずにシャットダウンされた場合、オフラインになる前にクラスターから削除されることはありません。このホストは、クラスターのクォーラム値にカウントされます。シャットダウンされると、他のホストがクォーラムを失う可能性があります。
メンテナンスモードを使用する
ホスト上で何かを実行することでホストがクォーラムを失う可能性がある場合は、その前に、ホストをメンテナンスモードにしてください。ホストがメンテナンスモードの場合、実行中の仮想マシンはプール内の別のホストに移行されます。また、そのホストがプールマスターであった場合、その役割はプール内の別のホストに渡されます。操作によってメンテナンスモードのホストが自己隔離した場合でも、仮想マシンを失うことや、プールへのXenCenterの接続が失われることはありません。
メンテナンスモードのホストは、以降もクラスターのクォーラム値にカウントされます。
ホストがメンテナンスモードの場合は、クラスター化プールに含まれるそのホストのIPアドレスのみを変更できます。ホストのIPアドレスを変更すると、そのホストはクラスターから離れることになります。IPアドレスが正常に変更されると、そのホストはクラスターに再び参加します。ホストがクラスターに再び参加した後、メンテナンスモードを解除できます。
自己隔離しているかオフラインになっているホストを回復する
自己隔離されているホストを回復することは重要です。これらのクラスターメンバーは、オフラインになっている間は、クラスターのクォーラム数にカウントされ、接続可能なクラスターメンバーの数が減少します。この状況では、後続のホスト障害が発生することでクラスターがクォーラムを失い完全にシャットダウンされるリスクが高まります。
クラスター内にオフラインのホストがあると、特定の操作を実行できなくなります。クラスター化プールでは、プールのメンバーすべてがプールメンバーシップのすべての変更に同意しないと、変更は成功しません。クラスターメンバーが接続不可の場合は、Citrix Hypervisorにより、クラスターメンバーシップを変更する操作(ホストの追加や削除など)が行えなくなります。
ホストを停止とマークする
オフラインのホストを回復できない場合は、それらをクラスターに対して停止とマークすることができます。ホストを停止とマークすると、それらがクラスターから永続的に削除されます。ホストが停止としてマークされると、それらはクォーラム値にカウントされなくなります。
制約
- クラスター化プールでは、プールあたり16台までのホストのみがサポートされます。
- クラスタートラフィックの場合、少なくとも2つの異なるネットワークスイッチを使用するボンディングネットワークを使用する必要があります。このネットワークを他の目的に使用しないでください。
- XenCenterを使用してクラスターネットワークのIPアドレスを変更するには、クラスタリングとGFS2を一時的に無効にする必要があります。
- クラスターが稼働中で、クラスターに実行中の仮想マシンがある間は、クラスタリングネットワークのボンディングを変更しないでください。この操作により、クラスターが隔離される可能性があります。
- クラスタリングが有効になっているホストが少なくとも1つ含まれるクラスタリングネットワークで、IPアドレスの競合(IPアドレスが同じホストが複数存在)が発生した場合、競合しているホストが隔離されないことがあります。この問題を解決するには、IPアドレスの競合を解決します。