シンプロビジョニングされた共有GFS2ブロックストレージ
シンプロビジョニングは、事前にVDIの仮想サイズすべてを割り当てるのではなく、仮想ディスクにデータが書き込まれるたびにディスクストレージ領域をVDIに割り当てることによって、ストレージ領域をよりうまく利用します。シンプロビジョニングを使用すると、共有ストレージアレイに必要な領域と総所有コスト(TCO)を大幅に削減できます。
共有ブロックストレージのシンプロビジョニングは、次の場合に特に役立ちます:
- 領域の使用効率を高める必要がある場合。イメージが散在し密に割り当てられていない場合。
- ストレージアレイ上の1秒あたりの入出力操作数を減らす必要がある場合。GFS2ストレージリポジトリは、共有ブロックストレージ上のストレージ読み取りキャッシュをサポートする、一級のストレージリポジトリです。
- 複数の仮想マシンで基本イメージを共用する場合。共用することで個々の仮想マシンのイメージは限られた領域を有効活用できます。
- スナップショットを使用する場合で、各スナップショットがイメージであり、各イメージが散在する場合。
- 2TiBを超えるサイズのVDIを作成する場合。GFS2ストレージリポジトリは、最大16TiBのVDIをサポートします。
- お使いのストレージはNFSまたはSMB3をサポートしておらず、ブロックストレージのみをサポートしています。ストレージがNFSまたはSMB3をサポートしている場合は、GFS2の代わりにそれらの種類のストレージリポジトリを使用することをお勧めします。
注:
クラスター化ネットワークが非管理VLAN上にある場合、クラスター化プール上でホストを追加または削除できないという既知の問題があるため、GFS2ストレージリポジトリをVLANで使用しないことをお勧めします。
この種類のストレージリポジトリでは、iSCSIまたはHBA LUN上に作成されたファイルシステムと同様にディスクが表示されます。GFS2ストレージリポジトリに保存されているVDIは、QCOW2イメージ形式で保存されます。
1. GFS2環境を計画する
データ損失のリスクなしに共有ブロックストレージ上でのシンプロビジョニングのメリットを提供するには、プールが高いレベルで信頼性と接続性を提供する必要があります。GFS2を使用するリソースプールのホスト同士が相互に高い信頼性をもって通信できる必要があります。これを実現するため、XenServerでは、クラスター化されたプールをGFS2ストレージリポジトリと連動させることが要求されます。また、できるだけ高い回復性と冗長性を提供できるように、環境の設計とXenServer機能の設定を行うこともお勧めします。
GFS2ストレージリポジトリと連動するようにXenServerプールを設定する前に、理想的なGFS2環境を実現するための以下の必須事項と推奨事項を確認してください:
-
推奨: ストレージのマルチパスを設定する
GFS2ストレージリポジトリを使用したクラスター化されたプールは、他の種類のプールやストレージリポジトリとはいくつかの動作が異なります。詳しくは、「制約」を参照してください。
2. 冗長なネットワークインフラストラクチャを構成する
ボンディングネットワークは、2つ以上のネットワークインターフェイスカードをリンクして、ネットワークトラフィック用の単一チャネルを作成します。クラスター化されたプールのトラフィックには、ボンディングネットワークを使用することをお勧めします。ただし、ボンディングネットワークを設定する前に、ネットワークハードウェア構成がボンディングネットワークの冗長性を促進するものであることを確認してください。組織や環境に合わせて、これらの推奨事項をできるだけ多く実装することを検討します。
以下のベストプラクティスにより、ネットワークスイッチに影響を与える可能性のあるソフトウェア、ハードウェア、または電源の障害に対する回復性が向上します。
- 同じスイッチ上のポートだけでなく、ボンディングネットワークで使用できる別の物理ネットワークスイッチがあることを確認してください。
- 個々のスイッチが、別々の独立した配電ユニット(Power Distribution Unit:PDU)から電力を引き出すようにします。
- 可能であれば、データセンターで、PDUを給電のさまざまなフェーズに配置するか、さまざまな電力会社が提供する給電にも配置します。
- 電源障害が発生した場合に、ネットワークスイッチやサーバーが引き続き動作できるように、または、正常なシャットダウンを実行できるように、無停電電源装置を使用することも検討してください。
3. 専用のボンディングネットワークを作成する
クラスター化されたプールのホスト同士が相互に高い信頼性で通信できることを確認する必要があります。このプールトラフィック用にボンディングネットワークを作成すると、クラスター化されたプールの回復性が向上します。
ボンディングネットワークは、2つ以上のNIC間にボンディングを作成します。このボンディングは、クラスター化されたプールがクラスターのハートビートトラフィックに使用できる単一の高性能チャネルとして機能します。このボンディングネットワークは他のトラフィックに使用しないことを強くお勧めします。管理トラフィックに使用するネットワークは別個のネットワークとしてこのプールに作成してください。
注:
プール内のホスト間にファイアウォールがある場合は、ホスト同士が以下のポートを使用してクラスターネットワーク上で通信できることを確認してください:
- TCP:8892、8896、21064
- UDP:5404、5405
詳しくは、「XenServerが使用する通信ポート」を参照してください。
ボンディングネットワークを作成して、クラスタリングネットワークとして使用するには:
- 新規ネットワークウィザードを開きます。
- ウィザードの最初のページで[ボンディングしたネットワーク]をクリックし、[次へ]をクリックします。
- [ボンディングメンバー]ページで、ボンディングを構成するNICを選択します。一覧で、ボンディングに追加するNICのチェックボックスをオンにします。最大で4つのNICを選択できます。チェックボックスをオフにして、NICの選択を解除します。
-
[ボンディングモード] で、ボンディングの種類を指定します:
- アクティブ/アクティブモードを指定するには、[アクティブ/アクティブ]を選択します。このボンディングにより、ボンディングされたNIC間でトラフィックが分散されます。ボンディング内の一方のNICに障害が発生した場合、サーバーのネットワークトラフィックは自動的に他方のNIC経由で転送されます。
- トラフィックが一方のNICのみで転送されるアクティブ/パッシブモードを指定するには、[アクティブ/パッシブ]をクリックします。このモードでは、ボンディングされたNICのうち一方のみがアクティブになり、そのNICがネットワークから切断されるなど、障害が発生した場合のみ2つ目のNICが使用されます。
- [LACP - 送信元のMACアドレスによる負荷分散] を選択してLACPボンディングを作成します。このボンディングでは、送信元の仮想マシンのMACアドレスに基づいてトラフィックの送信NICが選択されます。同一ホスト上でいくつかの仮想マシンが動作する環境では、このオプションによるトラフィック分散を使用します。仮想インターフェイス(VIF)の数がNICよりも少ない場合、このハッシュアルゴリズムは適していません。トラフィックを複数のNICに分散できないため、適切な負荷分散は提供されません。
- [LACP - 送信元/送信先のポートとIPによる負荷分散] を選択してLACPボンディングを作成します。このボンディングでは、送信元のIPアドレスとポート番号、および送信先のIPアドレスとポート番号に基づいてトラフィックがNIC間で分散されます。このオプションは、VIFの数がNICよりも少ない環境で仮想マシンからのトラフィック負荷を分散させる場合に適しています。
メモ:
- XenCenterでLACPボンディングのオプションを表示したりLACPボンディングを作成したりするには、ネットワークスタックとしてvSwitchを設定します。また、IEEE 802.3ad標準をサポートするスイッチを使用する必要があります。
- アクティブ/アクティブモードおよびアクティブ/パッシブモードのボンディングは、vSwitchおよびLinuxブリッジの両方で使用できます。
- ネットワークスタックとしてvSwitchを使用する場合は、最大で4つのNICを使用してボンディングを作成できます。ただし、Linuxブリッジがネットワークスタックの場合、ボンディングを構成できるNICは2つまでです。
- ジャンボフレームを使用する場合は、MTU(Maximum Transmission Unit)の値を1500から9216の範囲で指定します。
- [このネットワークを新規VMに自動的に追加する] チェックボックスをオンにすると、新規VMウィザードで作成する仮想マシンにこのネットワークが自動的に追加されます。
- [完了]をクリックすると、新しいネットワークが作成され、ウィザードが閉じます。
プールコーディネーターでボンディングネットワークを作成した後、他のXenServerホストをプールに追加すると、ネットワークとボンディングの情報が追加するサーバーに自動的に複製されます。
詳しくは「NICの構成」を参照してください。
メモ:
- XenCenterを使用してクラスターネットワークのIPアドレスを変更するには、クラスタリングとGFS2を一時的に無効にする必要があります。
- クラスターが稼働中で、クラスターに実行中の仮想マシンがある間は、クラスタリングネットワークのボンディングを変更しないでください。この操作により、クラスター内のホストがハード再起動(隔離)される可能性があります。
- クラスタリングが有効になっているホストが少なくとも1つ含まれるクラスタリングネットワーク上で、IPアドレスの競合(同じIPアドレスを持つホストが複数存在)が発生した場合、クラスタは正しく形成されず、必要なときにホストが隔離できなくなります。この問題を解決するには、IPアドレスの競合を解決します。
4. クラスター化されたプールを設定する
共有GFS2ストレージを使用するには、XenServerのリソースプールがクラスター化プールである必要があります。GFS2ストレージリポジトリを作成する前に、プールでクラスタリングを有効にしてください。
クラスター化プールを作成するには:
- ツールバーで [新規プール] をクリックして、[新規プール] ダイアログボックスを開きます。
- 新しいリソースプールの名前と、必要に応じて説明を入力します。名前がリソースペインに表示されます。
- [コーディネーター]ボックスの一覧で、プールコーディネーターとして動作するサーバーを選択します。
- [そのほかの追加メンバー]ボックスの一覧で、リソースプールに追加するサーバーを選択します。ここには、使用できるすべての管理対象サーバーが一覧表示されます。サーバーが一覧に表示されない場合は、[新規サーバーの追加]をクリックして追加できます。ただし、管理対象サーバーが一覧に含まれていない場合は、「リソースプールの要件」に記載されている要件を満たしていないことが理由である可能性もあります。
- [プールの作成]を選択するとリソースプールが作成され、ダイアログボックスが閉じます。
- [リソース] パネルでプールを選択し、[全般] タブの [プロパティ] を選択します。プールのプロパティウィンドウが開きます。
- [クラスタリング] タブで、[クラスタリングを有効にする] を選択し、クラスターネットワークとして作成した専用のボンディングネットワークを選択します。
- [OK] をクリックします。
5. ストレージのマルチパスを設定する
クラスター化プールと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マルチパスを有効にすることができます。詳しくは、「単一のターゲットのみを公開するアレイのiSCSIマルチパス」を参照してください。
-
(iSCSIの場合のみ)コントロールドメイン(dom0)で、マルチパスのストレージにより使用されるサブネットごとにIPアドレスが構成されている。
ストレージへのパスごとにNICがあり、各NICにIPアドレスが構成されていることを確認してください。たとえば、ストレージにアクセスする4つのパスを作成する場合は、それぞれにIPアドレスが構成された4つのNICが必要です。
-
(iSCSIの場合のみ)すべてのiSCSIターゲットおよびイニシエータで、固有のIQNが設定されている。
-
(iSCSIの場合のみ)iSCSIターゲットポートがポータルモードで動作している。
-
(HBAの場合のみ)複数のHBAがスイッチファブリックに接続されている。
-
可能であれば、複数の冗長スイッチを使用します。
マルチパスを有効にするには:
プール内のすべてのサーバーに対して次の手順を実行します:
- リソースペインでサーバーを選択して、保守モードに切り替えます。アクティブな仮想マシンの移行と既存のストレージのアンプラグが完了するまで少し時間がかかります。サーバーがプールコーディネーターの場合はCitrix Hypervisor Centerから切断され、新しいプールコーディネーターが選出されるまで一時的にリソースペインに表示されなくなることがあります。サーバーがサーバー保守モードアイコン()とともに [リソース] ペインに再表示されたら、次の手順に進みます。
- [全般]タブで[プロパティ]を選択して、[マルチパス]タブを選択します。
- マルチパスを有効にするには、[このサーバーのマルチパスを有効にする] チェックボックスをオンにします。マルチパスを無効にするには、このチェックボックスをオフにします。
- [OK]をクリックして新しい設定を適用し、ダイアログボックスを閉じます。XenCenterで新しいストレージ設定の保存が完了するまで少し時間がかかります。
- サーバーの保守モードを終了します。リソースペインでサーバーを右クリックして、[保守モードからの切り替え]を選択します。
プール内のすべてのホストでマルチパスを有効にしてください。実際のケーブル接続やサブネット設定(iSCSIの場合)は、各ホスト上のNICと一致している必要があります。
6. GFS2ストレージリポジトリを作成する
リソースプール内のすべてのXenServerホストが認識できるiSCSIまたはHBA LUN上に、共有GFS2ストレージリポジトリを作成します。GFS2でシンプロビジョニングされたLUNを使用することはお勧めしません。ただし、それでもこの構成を選択する場合は、XenServerが書き込むのに十分な領域がLUNにあることを常に確認する必要があります。
クラスター化されたプールには最大62個のGFS2ストレージリポジトリを追加できます。
ソフトウェアiSCSIストレージリポジトリを作成するには
注:
以下の手順を実行する前に、プールのすべてのホストでiSCSIイニシエータのIQNが適切に設定されていることを確認してください。詳しくは、「サーバープロパティの変更」を参照してください。
-
新規ストレージリポジトリウィザードを開きます。これを行うには、ツールバーの[新規ストレージ]をクリックします。または、次のいずれかを行います:
- 選択したプールまたはサーバーの[ストレージ]タブで、[新規SR]をクリックします。
- [ストレージ]メニューの[新規SR]をクリックします。
- リソースペインでサーバーまたはプールを右クリックして、[新規SR]を選択します。
- 物理ストレージの種類として、[ソフトウェアiSCSI]をクリックし、[次へ]をクリックします。
- [名前]ページでは、作成するストレージリポジトリの名前を入力します。デフォルトで、ストレージリポジトリの説明がウィザードで生成されます。この説明には、ウィザードの進行に従って選択した構成オプションの概要が含まれます。独自の説明を作成するには、[説明を自動生成する] チェックボックスをオフにして、[説明]ボックスに説明を入力します。[次へ] をクリックして続行します。
- [プロビジョニング] ページで、[シンプロビジョニング(GFS2)] を選択します。
-
[場所]ページでは、iSCSIターゲットの詳細を指定します:
-
ターゲットホスト:iSCSIターゲットのIPアドレスまたはDNS名です。コンマで区切られた値の一覧を指定することもできます。
-
CHAPの使用:これはGFS2ストレージリポジトリではサポートされていません。このオプションを選択しないでください。
-
ターゲットIQN:iSCSIターゲットIQNを指定するには、[IQNの検出]をクリックして[ターゲットIQN]の一覧からIQNを選択します。
重要:
iSCSIターゲットおよびリソースプール内のすべてのサーバーで、異なるIQNが設定されている必要があります。すべてのiSCSIターゲットおよびイニシエータで、固有のIQNが設定されている必要があります。重複したIQNを使用すると、データの破損またはアクセス拒否が発生したり、またはその両方が発生したりする可能性があります。
-
ターゲットLUN : ストレージリポジトリの作成先となるLUNを指定するには、[LUNの検出]をクリックします。[ターゲットLUN]ボックスの一覧からLUNを選択します。
各iSCSIストレージリポジトリは、全体が単一のLUNに含まれる必要があります。ストレージリポジトリは複数のLUNにまたがることはできません。LUNに既にストレージリポジトリが含まれる場合は、既存のストレージリポジトリを使用するか、既存のストレージリポジトリを新しいものと置き換えるかを選択します。既存のストレージリポジトリを置き換えると、ディスク上のデータが破棄されます。
-
- [完了]をクリックして新しいストレージリポジトリの設定を完了し、ウィザードを閉じます。
ハードウェアHBAストレージリポジトリを作成するには
-
新規ストレージリポジトリウィザードを開くには、次の操作のいずれかを実行します:
- ツールバーで、[新規ストレージ]を選択します。
- 選択したプールまたはサーバーの[ストレージ]タブで、[新規SR]を選択します。
- [ストレージ]メニューの[新規SR]を選択します。
- リソースペインでサーバーまたはプールを右クリックして、[新規SR]を選択します。
- 物理ストレージの種類として、[ハードウェアHBA]を選択し、[次へ]を選択します。
- [名前]ページでは、作成するストレージリポジトリの名前を入力します。デフォルトで、ストレージリポジトリの説明がウィザードで生成されます。この説明には、ウィザードの進行に従って選択した構成オプションの概要が含まれます。独自の説明を作成するには、[説明を自動生成する] チェックボックスをオフにして、[説明]ボックスに説明を入力します。[次へ]をクリックして[プロビジョニング]ページに進みます。
- [プロビジョニング] ページで、[シンプロビジョニング(GFS2)] を選択します。
- [次へ]をクリックして[場所]ページに進みます。
-
使用できるLUNが検索され、見つかったすべてのLUNが表示されます。一覧でLUNを選択して、[作成]をクリックします。
注:
選択したLUNに既存のストレージリポジトリが存在する場合は警告メッセージが表示されます。詳細を確認し、次のオプションのいずれかを選択します。
- 既存のストレージリポジトリを使用する場合は、[再接続]をクリックします。
- 既存のストレージリポジトリを消去してストレージリポジトリを作成する場合は、[フォーマット]をクリックします。
- 別のLUNを選択するには [キャンセル]をクリックして一覧でLUNを選択し直します。
- [結果]ページに新しいストレージリポジトリの情報が表示されます。情報を確認してから [完了]をクリックすると、ストレージリポジトリが作成されます。
制約
現在、共有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ストレージリポジトリではサポートされていません。
-
変更ブロック追跡は、GFS2 SRに格納されているVDIではサポートされません。
-
2TiBを超えるVDIをVHDまたはOVA(Open Virtual Appliance)やOVF(オープン仮想化フォーマット)でエクスポートすることはできません。ただし、VDIが2TiBを超える仮想マシンは、XVA形式でエクスポートできます。
-
GFS2でシンプロビジョニングされたLUNを使用することはお勧めしません。ただし、それでもこの構成を選択する場合は、XenServerが書き込むのに十分な領域がLUNにあることを常に確認する必要があります。
-
GFS2ストレージリポジトリでSAN重複排除を使用することはお勧めしません。ただし、この構成を意図して選択する場合は、XenServerが書き込むための領域が常に確保されるように、SAN使用率に対して適切な外部監視機能を使用する必要があります。
-
GFS2ファイルシステムを100TiBより大きくすることはできません。
-
プール内に62を超えるGFS2ストレージリポジトリを含めることはできません。
-
クラスター化プールでは、プールあたり16台までのホストのみがサポートされます。
-
クラスタートラフィックの場合、少なくとも2つの異なるネットワークスイッチを使用するボンディングネットワークを使用することを強くお勧めします。このネットワークを他の目的に使用しないでください。
-
XenCenterを使用してクラスターネットワークのIPアドレスを変更するには、クラスタリングとGFS2を一時的に無効にする必要があります。
-
クラスターが稼働中で、クラスターに実行中の仮想マシンがある間は、クラスタリングネットワークのボンディングを変更しないでください。この操作により、クラスター内のホストがハード再起動(隔離)される可能性があります。
-
クラスタリングが有効になっているホストが少なくとも1つ含まれるクラスタリングネットワーク上で、IPアドレスの競合(同じIPアドレスを持つホストが複数存在)が発生した場合、クラスタは正しく形成されず、必要なときにホストが隔離できなくなります。 この問題を解決するには、IPアドレスの競合を解決します。