シンプロビジョニングされた共有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

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

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

  • リソースプール内に 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=<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を入力します。

共有GFS2ストレージリポジトリへのストレージのマルチパスを設定する

重要:

マルチパスを有効にする前に、以下の事項を確認してください:

  • ストレージサーバーで複数のターゲットが使用できる。

    たとえば、iSCSIストレージバックエンドの特定のポータルに対して「sendtargets」を照会した場合、以下のように複数のターゲットが返されます:

    iscsiadm -m discovery –type sendtargets –portal 192.168.0.161 192.168.0.161:3260,1 iqn.strawberry:litchie 192.168.0.204:3260,2 iqn.strawberry:litchie

  • (iSCSIの場合のみ)コントロールドメイン(dom0)で、マルチパスのストレージにより使用されるサブネットごとにIPアドレスが構成されている。

    ストレージへのパスごとにNICがあり、各NICにIPアドレスが構成されていることを確認してください。たとえば、ストレージにアクセスする4つのパスを作成する場合は、それぞれにIPアドレスが構成された4つのNICが必要です。

  • (HBAの場合のみ)複数のHBAがスイッチファブリックに接続されている。

XenCenterを使用してストレージのマルチパスを設定できます。詳しくは、XenCenter製品ドキュメントの「ストレージのマルチパス」を参照してください。

または、xe CLIを使用してストレージのマルチパスを設定するには、クラスター化プール内のすべてのCitrix Hypervisorサーバーで次の手順を実行します:

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

  2. 次のコマンドを使用して、サーバー上のすべてのPBDをアンプラグします:

    xe pbd-unplug uuid=<pbd_uuid>
    
  3. 次のコマンドを使用して、other-config:multipathingパラメーターの値をtrueに設定します:

    xe host-param-set other-config:multipathing=true uuid=<server_uuid>
    
  4. 次のコマンドを使用して、other-config:multipathhandleパラメーターの値をdmpに設定します:

    xe host-param-set other-config:multipathhandle=dmp uuid=<server_uuid>
    
  5. サーバー上でシングルパスモードで動作しているストレージリポジトリのマルチパスを有効にするには、次の操作を行います:

    • そのストレージリポジトリ上の仮想ディスクを使用している、実行中の仮想マシンを移行またはサスペンドします。

    • そのストレージリポジトリのPBDをマルチパスで再接続するために、アンプラグして再プラグします:

       xe pbd-unplug uuid=<pbd_uuid>
       xe pbd-plug uuid=<pbd_uuid>
      

詳しくは、「ストレージのマルチパス」を参照してください。

共有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=<type> host-uuid=<host_uuid> device-config:=<config> sm-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=<type> host-uuid=<host_uuid> device-config:=<config> sm-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ストレージには次の制約があります:

  • VDIがGFS2ストレージリポジトリ上にある仮想マシンでは、ストレージライブマイグレーションによる仮想マシンの移行はサポートされていません。
  • FCoEプロトコルは、GFS2ストレージリポジトリではサポートされていません。
  • トリミングとマッピング解除は、GFS2ストレージリポジトリではサポートされていません。
  • GFS2ストレージリポジトリおよびこれらのストレージリポジトリ上のディスクでは、パフォーマンス測定値は利用できません。
  • 変更ブロック追跡は、GFS2 SRに格納されているVDIではサポートされません。
  • 2TiBを超えるVDIをVHDまたはOVA(Open Virtual Appliance)やOVF(オープン仮想化フォーマット)でエクスポートすることはできません。ただし、VDIが2TiBを超える仮想マシンは、XVA形式でエクスポートできます。
  • クラスター化プールでは、プールあたり16台までのホストのみがサポートされます。
  • ネットワークが管理とクラスタリングの両方に使用されている場合は、クラスターを再作成せずに管理ネットワークを分離することはできません。
  • XenCenterを使用してクラスターネットワークのIPアドレスを変更するには、クラスタリングとGFS2を一時的に無効にする必要があります。
  • クラスターが稼働中で、クラスターに実行中の仮想マシンがある間は、クラスタリングネットワークのボンディングを変更しないでください。この操作により、クラスターが隔離される可能性があります。
  • クラスタリングが有効になっているホストが少なくとも1つ含まれるクラスタリングネットワークで、IPアドレスの競合(IPアドレスが同じホストが複数存在)が発生した場合、競合しているホストが隔離されないことがあります。この問題を解決するには、IPアドレスの競合を解決します。