Citrix Hypervisor

シンプロビジョニングされた共有GFS2ブロックストレージ

シンプロビジョニングは、事前にVDIの仮想サイズすべてを割り当てるのではなく、仮想ディスクにデータが書き込まれるたびにディスクストレージ領域をVDIに割り当てることによって、ストレージ領域をよりうまく利用します。シンプロビジョニングを使用すると、共有ストレージアレイに必要な領域と総所有コスト(TCO)を大幅に削減できます。

共有ブロックストレージのシンプロビジョニングは、次の場合に特に役立ちます:

  • 領域の使用効率を高める必要がある場合。イメージが散在し密に割り当てられていない場合。
  • ストレージアレイ上の1秒あたりの入出力操作数を減らす必要がある場合。GFS2ストレージリポジトリは、共有ブロックストレージ上のストレージ読み取りキャッシュをサポートする、一級のストレージリポジトリです。
  • 複数の仮想マシンで基本イメージを共用する場合。共用することで個々の仮想マシンのイメージは限られた領域を有効活用できます。
  • スナップショットを使用する場合で、各スナップショットがイメージであり、各イメージが散在する場合。
  • お使いのストレージはNFSをサポートしておらず、ブロックストレージのみをサポートしています。ストレージがNFSをサポートしている場合は、GFS2の代わりにNFSを使用することをお勧めします。
  • 2TiBを超えるサイズのVDIを作成する場合。GFS2ストレージリポジトリは、最大16TiBのVDIをサポートします。

この種類のストレージリポジトリでは、iSCSIまたはHBA LUN上に作成されたファイルシステムと同様にディスクが表示されます。GFS2ストレージリポジトリに保存されているVDIは、QCOW2イメージ形式で保存されます。

前提条件

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

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

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

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

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

    詳しくは、「Citrixテクノロジで使用される通信ポート」を参照してください。

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

  • クラスター化されたプールには、ほかのトラフィックには使用されないボンディングネットワークを使用することを強くお勧めします。

  • リソースプール内にCitrix Hypervisorのすべてのサーバーが表示されている、ブロックベースのストレージデバイスがある。

共有GFS2ストレージリポジトリを使用できるようクラスター化プールを設定する

共有GFS2ストレージを使用するには、Citrix Hypervisorのリソースプールがクラスター化されたプールである必要があります。GFS2ストレージリポジトリを作成する前に、プールでクラスタリングを有効にしてください。

注:

クラスター化プールは、クラスター化されていないプールと動作が異なります。クラスターの動作について詳しくは、「クラスター化プール」を参照してください。

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

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

  1. ボンディングネットワークを作成して、クラスタリングネットワークとして使用します。

    注:

    クラスター化されたプールには専用のボンディングネットワークを使用することを強くお勧めします。このネットワークはそれ以外のトラフィックには使用しないでください。

    プールマスターにするCitrix Hypervisorサーバーで、以下の手順を実行します:

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

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

      xe pool-param-set name-label="New 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= / pif-uuids=,,,

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

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

        xe bond-create network-uuid= pif-uuids=, / ,, / 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=
  4. プールでクラスタリングを有効にします。リソースプール内のCitrix Hypervisorサーバーで次のコマンドを実行します:

    xe cluster-pool-create network-uuid=

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

クラスター化プールとGFS2ストレージリポジトリの間にストレージのマルチパスが設定されていることを確認してください。詳しくは、「ストレージのマルチパス」を参照してください。

共有GFS2ストレージリポジトリを作成する

iSCSIまたはHBA LUNに共有GFS2ストレージリポジトリを作成できます。

iSCSI経由の共有GFS2ストレージリポジトリを作成する

XenCenterを使用すると、iSCSIストレージリポジトリ上にGFS2を作成できます。詳しくは、XenCenter製品ドキュメントの「ソフトウェアiSCSIストレージ」を参照してください。

または、xe CLIを使用してiSCSIストレージリポジトリ上にGFS2を作成することもできます。

次の表は、GFS2ストレージリポジトリ用のdevice-configパラメーターの一覧です:

パラメーター名 説明 必須か?
provider ブロックプロバイダ実装。この場合は、iscsi はい
target ホストするiSCSIファイラのIPアドレスまたはホスト名 はい
targetIQN ストレージリポジトリをホストするiSCSIファイラのIQNターゲット はい
SCSIid デバイスのSCSI ID はい

xe sr-probe-extコマンドを使用すると、これらのパラメーターに使用するための値を見つけることができます。

xe sr-probe-ext type= host-uuid= device-config:= sm-config:=
  1. 次のコマンドを実行して起動します:

    xe sr-probe-ext type=gfs2 device-config:provider=iscsi

    コマンドからの出力では、追加のパラメーターを指定するように求められ、各ステップで使用できる値のリストが示されます。

  2. このコマンドを繰り返して、毎回新しいパラメーターを追加します。

  3. コマンド出力がThe following SRs were found:で始まる場合、xe sr-createコマンドを実行するときにストレージリポジトリを格納するのに指定したdevice-configパラメーターを使用できます。

iSCSIターゲットの特定のLUNで共有GFS2ストレージリポジトリを作成するには、クラスター化プール内のサーバーで次のコマンドを実行します:

xe sr-create type=gfs2 name-label="Example GFS2 SR" --shared \ device-config:provider=iscsi device-config:targetIQN=target_iqns \ device-config:target=portal_address device-config:SCSIid=scsci_id

GFS2ファイルシステムのマウント時にiSCSIターゲットにアクセスできない場合、クラスタ化されたプール内の一部のホストが隔離される可能性があります。

iSCSIストレージリポジトリの操作について詳しくは、「ソフトウェアiSCSIのサポート」を参照してください。

HBAストレージリポジトリ上の共有GFS2を作成する

XenCenterを使用すると、HBAストレージリポジトリ上にGFS2を作成できます。詳しくは、XenCenter製品ドキュメントの「ハードウェアHBAストレージ」を参照してください。

または、xe CLIを使用してHBAストレージリポジトリ上にGFS2を作成することもできます。

次の表は、GFS2ストレージリポジトリ用のdevice-configパラメーターの一覧です:

パラメーター名 説明 必須か?
provider ブロックプロバイダ実装。この場合は、hba はい
SCSIid デバイスのSCSI ID はい

xe sr-probe-extコマンドを使用すると、SCSIidパラメーターに使用するための値を見つけることができます。

xe sr-probe-ext type= host-uuid= device-config:= sm-config:=
  1. 次のコマンドを実行して起動します:

    xe sr-probe-ext type=gfs2 device-config:provider=hba

    コマンドからの出力では、追加のパラメーターを指定するように求められ、各ステップで使用できる値のリストが示されます。

  2. このコマンドを繰り返して、毎回新しいパラメーターを追加します。

  3. コマンド出力がThe following SRs were found:で始まる場合、xe sr-createコマンドを実行するときにストレージリポジトリを格納するのに指定したdevice-configパラメーターを使用できます。

HBAターゲットの特定のLUNで共有GFS2ストレージリポジトリを作成するには、クラスター化プール内のサーバーで次のコマンドを実行します:

xe sr-create type=gfs2 name-label="Example GFS2 SR" --shared \ device-config:provider=hba device-config:SCSIid=device_scsi_id

HBAストレージリポジトリの操作について詳しくは、「ハードウェアホストバスアダプタ」を参照してください。

制約

現在、共有GFS2ストレージには次の制約があります:

  • シンプロビジョニングされたSRと同様、GFS2 SRの使用率が100%になると、仮想マシンからのそれ以上の書き込みは失敗します。これらの書き込みの失敗は、仮想マシン内の障害、データの破損、またはその両方につながる可能性があります。

  • XenCenterは、SRの使用量が80%に増加するとアラートを表示します。GFS2 SRにこのアラートが表示されていないか監視を行い、表示された場合は適切な処置を行ってください。GFS2 SRでは、使用率が高くなるとパフォーマンスが低下します。SRの使用量を80%以下に保つことをお勧めします。

  • VDIがGFS2ストレージリポジトリ上にある仮想マシンでは、ストレージ移行(ライブまたはオフライン)による仮想マシンの移行はサポートされていません。また、VDIを別のタイプのストレージリポジトリからGFS2ストレージリポジトリに移行することもできません。

  • FCoEトランスポートは、GFS2ストレージリポジトリではサポートされていません。

  • トリミングとマッピング解除は、GFS2ストレージリポジトリではサポートされていません。

  • CHAP(Challenge Handshake Authentication Protocol:チャレンジハンドシェイク認証プロトコル)は、GFS2ストレージリポジトリではサポートされていません。

  • MCSフルクローン仮想マシンでは、GFS2ストレージリポジトリは使用できません。

  • 同じMCSカタログで複数のGFS2ストレージリポジトリを使用することはサポートされていません。

  • GFS2ストレージリポジトリおよびこれらのストレージリポジトリ上のディスクでは、パフォーマンス測定値は利用できません。

  • 変更ブロック追跡は、GFS2 SRに格納されているVDIではサポートされません。

  • 2TiBを超えるVDIをVHDまたはOVA(Open Virtual Appliance)やOVF(オープン仮想化フォーマット)でエクスポートすることはできません。ただし、VDIが2TiBを超える仮想マシンは、XVA形式でエクスポートできます。

  • GFS2でシンプロビジョニングされたLUNを使用することはお勧めしません。ただし、それでもこの構成を選択する場合は、Citrix Hypervisorが書き込むのに十分な領域がLUNにあることを常に確認する必要があります。

  • プール内に62を超えるGFS2ストレージリポジトリを含めることはできません。

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