シンプロビジョニングされた共有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(コマンドラインインターフェイス)を使用してクラスター化プールを作成するには:
-
ボンディングネットワークを作成して、クラスタリングネットワークとして使用します。プールマスターにする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ストレージリポジトリへのストレージのマルチパスを設定する
重要:
マルチパスを有効にする前に、以下の事項を確認してください:
ストレージサーバーで複数のターゲットが使用できる。
たとえば、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サーバーで次の手順を実行します:
-
Citrix Hypervisorサーバーのコンソールを開きます。
-
次のコマンドを使用して、サーバー上のすべてのPBDをアンプラグします:
xe pbd-unplug uuid=<pbd_uuid>
-
次のコマンドを使用して、
other-config:multipathing
パラメーターの値をtrue
に設定します:xe host-param-set other-config:multipathing=true uuid=<server_uuid>
-
次のコマンドを使用して、
other-config:multipathhandle
パラメーターの値をdmp
に設定します:xe host-param-set other-config:multipathhandle=dmp uuid=<server_uuid>
-
サーバー上でシングルパスモードで動作しているストレージリポジトリのマルチパスを有効にするには、次の操作を行います:
-
そのストレージリポジトリ上の仮想ディスクを使用している、実行中の仮想マシンを移行またはサスペンドします。
-
そのストレージリポジトリの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>
-
次のコマンドを実行して起動します:
xe sr-probe-ext type=gfs2 device-config:provider=iscsi
コマンドからの出力では、追加のパラメーターを指定するように求められ、各ステップで使用できる値のリストが示されます。
-
このコマンドを繰り返して、毎回新しいパラメーターを追加します。
-
コマンド出力が
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>
-
次のコマンドを実行して起動します:
xe sr-probe-ext type=gfs2 device-config:provider=hba
コマンドからの出力では、追加のパラメーターを指定するように求められ、各ステップで使用できる値のリストが示されます。
-
このコマンドを繰り返して、毎回新しいパラメーターを追加します。
-
コマンド出力が
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ストレージリポジトリ上にある仮想マシンでは、ストレージライブマイグレーションによる仮想マシンの移行はサポートされていません。また、VDIを別のタイプのストレージリポジトリからGFS2ストレージリポジトリに移行することもできません。
- FCoEプロトコルは、GFS2ストレージリポジトリではサポートされていません。
- トリミングとマッピング解除は、GFS2ストレージリポジトリではサポートされていません。
- CHAP(Challenge Handshake Authentication Protocol:チャレンジハンドシェイク認証プロトコル)は、GFS2ストレージリポジトリではサポートされていません。
- GFS2ストレージリポジトリおよびこれらのストレージリポジトリ上のディスクでは、パフォーマンス測定値は利用できません。
- 変更ブロック追跡は、GFS2 SRに格納されているVDIではサポートされません。
-
2TiBを超えるVDIをVHDまたはOVA(Open Virtual Appliance)やOVF(オープン仮想化フォーマット)でエクスポートすることはできません。ただし、VDIが2TiBを超える仮想マシンは、XVA形式でエクスポートできます。
- クラスター化プールでは、プールあたり16台までのホストのみがサポートされます。
- クラスタートラフィックの場合、少なくとも2つの異なるネットワークスイッチを使用するボンディングネットワークを使用する必要があります。このネットワークを他の目的に使用しないでください。
- XenCenterを使用してクラスターネットワークのIPアドレスを変更するには、クラスタリングとGFS2を一時的に無効にする必要があります。
- クラスターが稼働中で、クラスターに実行中の仮想マシンがある間は、クラスタリングネットワークのボンディングを変更しないでください。この操作により、クラスターが隔離される可能性があります。
- クラスタリングが有効になっているホストが少なくとも1つ含まれるクラスタリングネットワークで、IPアドレスの競合(IPアドレスが同じホストが複数存在)が発生した場合、競合しているホストが隔離されないことがあります。この問題を解決するには、IPアドレスの競合を解決します。