XenServer

ストレージリポジトリを管理する

このセクションでは、ライブVDIマイグレーションを含む、ストレージリポジトリ (SR) の継続的な管理に必要なさまざまな操作について説明します。

SRを削除する

ストレージリポジトリ (SR) は、一時的または永続的に削除できます。

デタッチ: ストレージデバイスとプールまたはホスト間の関連付けを解除します (PBDのプラグを抜く)。SR (およびそのVDI) はアクセスできなくなります。VDIの内容と、VMがVDIにアクセスするために使用するメタ情報は保持されます。デタッチは、たとえばメンテナンスのためにSRを一時的にオフラインにする場合に使用できます。デタッチされたSRは後で再アタッチできます。

忘却: 物理ディスク上のSRの内容は保持されますが、VMをそのVDIに接続する情報は完全に削除されます。たとえば、SRの内容を削除せずに、SRを別のXenServer®ホストに再アタッチできます。

破棄: 物理ディスクからSRの内容を削除します。

注:

SMBストレージを使用する場合、SMB SRをデタッチする前にストレージから共有を削除しないでください。

破棄または忘却の場合、SRに接続されているPBDはホストからプラグを抜く必要があります。

  1. PBDのプラグを抜いて、対応するXenServerホストからSRをデタッチします。

    xe pbd-unplug uuid=pbd_uuid
    <!--NeedCopy-->
    
  2. sr-destroy コマンドを使用してSRを削除します。このコマンドはSRを破棄し、XenServerホストデータベースからSRと対応するPBDを削除し、物理ディスクからSRの内容を削除します。

    xe sr-destroy uuid=sr_uuid
    <!--NeedCopy-->
    
  3. sr-forget コマンドを使用してSRを忘却します。このコマンドはXenServerホストデータベースからSRと対応するPBDを削除しますが、実際のSRの内容は物理メディア上にそのまま残します。

    xe sr-forget uuid=sr_uuid
    <!--NeedCopy-->
    

注:

SRに対応するソフトウェアオブジェクトがガベージコレクションされるまでに時間がかかる場合があります。

SRを導入する

以前に忘却された SRを再導入するには、PBDを作成します。SRをアクティブ化するために、PBDを適切なXenServerホストに手動で接続します。

次の例では、lvmoiscsiタイプのSRを導入します。

  1. 既存のSRをプローブして、そのUUIDを特定します。

    xe sr-probe type=lvmoiscsi device-config:target=192.168.1.10 \
        device-config:targetIQN=192.168.1.10:filer1 \
        device-config:SCSIid=149455400000000000000000002000000b70200000f000000
    <!--NeedCopy-->
    
  2. sr-probeコマンドから返された既存のSRのUUIDを導入します。新しいSRのUUIDが返されます。

    xe sr-introduce content-type=user name-label="Example Shared LVM over iSCSI SR" \
        shared=true uuid=valid_sr_uuid type=lvmoiscsi
    <!--NeedCopy-->
    
  3. SRに付随するPBDを作成します。新しいPBDのUUIDが返されます。

    xe pbd-create type=lvmoiscsi host-uuid=valid_uuid sr-uuid=valid_sr_uuid \
        device-config:target=192.168.0.1 \
        device-config:targetIQN=192.168.1.10:filer1 \
        device-config:SCSIid=149455400000000000000000002000000b70200000f000000
    <!--NeedCopy-->
    
  4. PBDを接続してSRをアタッチします。

    xe pbd-plug uuid=pbd_uuid
    <!--NeedCopy-->
    
  5. PBD接続のステータスを確認します。成功した場合、currently-attachedプロパティはtrueになります。

    xe pbd-list sr-uuid=sr_uuid
    <!--NeedCopy-->
    

注:

リソースプール内の各ホストに対して、ステップ3から5を実行します。これらの手順は、XenCenterの「ストレージリポジトリの修復」機能を使用しても実行できます。

ライブLUN拡張

容量要件を満たすために、XenServerホストにプロビジョニングされたLUNのサイズを増やすために、ストレージアレイに容量を追加する必要がある場合があります。ライブLUN拡張により、VMのダウンタイムなしでLUNのサイズを増やすことができます。

ストレージアレイに容量を追加した後、次のように入力します。

xe sr-scan sr-uuid=sr_uuid
<!--NeedCopy-->

このコマンドはSRを再スキャンし、追加の容量が追加されて利用可能になります。

この操作はXenCenterでも利用できます。サイズ変更するSRを選択し、再スキャンをクリックします。

警告:

  • LUNを縮小または切り詰めることはできません。ストレージアレイ上のLUNサイズを縮小すると、データ損失につながる可能性があります。
  • GFS2 SRのサイズ変更には時間がかかる場合があります。サイズ変更中は、プールにホストを追加したり、他のSR操作を実行したりできない場合があります。

ライブVDI移行

ライブVDI移行により、管理者はVMをシャットダウンすることなく、VMの仮想ディスクイメージ (VDI) を再配置できます。この機能により、次のような管理操作が可能になります。

  • VMを安価なローカルストレージから、高速で回復力のあるアレイバックストレージに移動する。
  • VMを開発環境から本番環境に移動する。
  • ストレージ容量によってVMが制限されている場合に、ストレージの階層間を移動する。
  • ストレージアレイのアップグレードを実行する。

制限事項と注意事項

ライブVDI移行には、以下の制限事項と注意事項が適用されます

  • ターゲットリポジトリには十分なディスク容量が必要です。

XenCenterを使用して仮想ディスクを移動するには

  1. リソースペインで、仮想ディスクが保存されているSRを選択し、ストレージタブをクリックします。

  2. 仮想ディスクリストで、移動したい仮想ディスクを選択し、移動をクリックします。

  3. 仮想ディスクの移動ダイアログボックスで、VDIを移動したいターゲットSRを選択します。

    注:

    SRに別の仮想ディスクを格納するのに十分な空き容量があることを確認してください。利用可能なSRのリストに、利用可能な空き容量が表示されます。

  4. 移動をクリックして仮想ディスクを移動します。

xe CLIのリファレンスについては、vdi-pool-migrateを参照してください。

SR間でのコールドVDI移行(オフライン移行)

VMに関連付けられたVDIは、メンテナンス要件や階層型ストレージ構成に対応するため、あるSRから別のSRへコピーできます。XenCenterを使用すると、VMとそのすべてのVDIを同じSRまたは別のSRにコピーできます。XenCenterとxe CLIを組み合わせて、個々のVDIをコピーできます。

xe CLIのリファレンスについては、vm-migrateを参照してください。

VMのすべてのVDIを別のSRへコピーする

XenCenterのVMコピー機能は、選択したVMのすべてのVDIを同じSRまたは別のSR上にコピーを作成します。ソースVMとVDIは、デフォルトでは影響を受けません。コピーを作成するのではなく、VMを選択したSRに移動するには、「仮想マシンのコピー」ダイアログボックスで「元のVMを削除」オプションを選択します。

  1. VMをシャットダウンします。
  2. XenCenterで、VMを選択し、次に、VM > VMのコピーオプションを選択します。
  3. 目的のターゲットSRを選択します。

個々のVDIを別のSRへコピーする

xe CLIとXenCenterを組み合わせることで、SR間で個々のVDIをコピーできます。

  1. VMをシャットダウンします。

  2. 移動するVDIのUUIDを特定するためにxe CLIを使用します。VMにDVDドライブがある場合、そのvdi-uuidnot in databaseとしてリストされ、無視できます。

    xe vbd-list vm-uuid=valid_vm_uuid
    <!--NeedCopy-->
    

    注:

    vbd-listコマンドはVBDとVDIの両方のUUIDを表示します。VBD UUIDではなくVDI UUIDを記録するようにしてください。

  3. XenCenterで、VM Storageタブを選択します。移動する各VDIについて、VDIを選択し、Detachボタンをクリックします。この手順は、vbd-destroyコマンドを使用しても実行できます。

    注:

    VDI UUIDをデタッチするためにvbd-destroyコマンドを使用する場合、まずVBDのパラメータother-config:ownertrueに設定されているか確認してください。このパラメータをfalseに設定します。vbd-destroyコマンドをother-config:owner=trueと共に発行すると、関連するVDIも破棄されます。

  4. vdi-copyコマンドを使用して、移動するVM VDIを目的のSRにコピーします。

    xe vdi-copy uuid=valid_vdi_uuid sr-uuid=valid_sr_uuid
    <!--NeedCopy-->
    
  5. XenCenterで、VM Storageタブを選択します。Attachボタンをクリックし、新しいSRからVDIを選択します。この手順は、vbd-createコマンドを使用しても実行できます。

  6. 元のVDIを削除するには、XenCenterで元のSRのStorageタブを選択します。元のVDIは、VMフィールドが空の値で表示されます。Deleteボタンを使用してVDIを削除します。

ローカルFibre Channel SRを共有SRに変換する

xe CLIとXenCenterのRepair Storage Repository機能を使用して、ローカルFC SRを共有FC SRに変換します。

  1. リソースプール内のすべてのホストをXenServer 9にアップグレードします。

  2. プール内のすべてのホストがSRのLUNを適切にゾーニングしていることを確認します。各ホストにLUNが存在することを確認するためにsr-probeコマンドを使用する方法の詳細については、Probe an SRを参照してください。

  3. SRを共有に変換します。

    xe sr-param-set shared=true uuid=local_fc_sr
    <!--NeedCopy-->
    
  4. SRはXenCenterでホストレベルからプールレベルに移動され、共有されていることを示します。SRには、現在プール内のすべてのホストに接続されていないことを示す赤い感嘆符が付けられます。

  5. SRを選択し、ストレージ > ストレージリポジトリの修復 オプションを選択します。

  6. 修復 をクリックして、プール内の各ホストのPBDを作成し、接続します。

ディスカードを使用して、バッキングアレイ上のブロックベースストレージの領域を再利用する

スペース再利用機能を使用して、シンプロビジョニングされたLUN上の未使用ブロックを解放できます。スペースが解放された後、ストレージアレイはこの再利用されたスペースを再利用できます。

注:

スペース再利用機能は、一部の種類のストレージアレイでのみ利用可能です。お使いのアレイがこの機能をサポートしているか、特定の構成が必要かどうかを確認するには、ハードウェア互換性リスト およびストレージベンダー固有のドキュメントを参照してください。

XenCenterを使用してスペースを再利用するには:

  1. インフラストラクチャ ビューを選択し、SRに接続されているホストまたはプールを選択します。

  2. ストレージ タブをクリックします。

  3. リストからSRを選択し、解放されたスペースを再利用 をクリックします。

  4. 操作を確定するには、はい をクリックします。

  5. 操作のステータスを表示するには、通知、次に イベント をクリックします。

詳細については、XenCenterで F1 を押してオンラインヘルプにアクセスしてください。

xe CLIを使用してスペースを再利用するには、次のコマンドを使用します。

xe host-call-plugin host-uuid=host_uuid \
    plugin=trim fn=do_trim args:sr_uuid=sr_uuid

注記:

  • この操作は、アレイ上のシンプロビジョニングされたLUNに基づくLVMベースのSRでのみ利用可能です。ローカルSSDも領域再利用の恩恵を受けることができます。
  • 領域再利用は、NFSやEXT3/EXT4などのファイルベースのSRには必要ありません。これらのSRタイプでは、XenCenterで解放済み領域の再利用ボタンは利用できません。
  • ファイルベースのSRまたはシックプロビジョニングされたLVMベースのSRに対して領域再利用のxeコマンドを実行すると、コマンドはエラーを返します。
  • 領域再利用は集中的な操作であり、ストレージアレイのパフォーマンス低下につながる可能性があります。したがって、アレイで領域再利用が必要な場合にのみこの操作を開始してください。この作業は、アレイのピーク需要時間外にスケジュールすることをお勧めします。

スナップショット削除時の領域自動再利用

XenServerでスナップショットを削除すると、LVMベースのSRに割り当てられた領域は自動的に再利用され、VMの再起動は不要です。この操作は「オンライン結合」として知られています。オンライン結合は、すべての種類のSRに適用されます。

特定の状況では、自動領域再利用が進行できない場合があります。このようなシナリオでは、オフライン結合ツールを使用することをお勧めします。

  • VMのI/Oスループットが著しい場合
  • 一定期間後に領域が再利用されない場合

注記:

  • オフライン結合ツールを実行すると、実行される一時停止/再開操作により、VMにいくらかのダウンタイムが発生します。
  • ツールを実行する前に、不要になったスナップショットとクローンをすべて削除してください。このツールは、残りのスナップショット/クローンを考慮して、可能な限り多くの領域を再利用します。すべての領域を再利用したい場合は、すべてのスナップショットとクローンを削除してください。
  • VMディスクは、単一ホストの共有ストレージまたはローカルストレージのいずれかにある必要があります。両方の種類のストレージにディスクがあるVMは結合できません。

オフライン結合ツールを使用した領域の再利用

XenCenterを使用して非表示オブジェクトを有効にします。「表示」>「非表示」オブジェクトをクリックします。リソースペインで、UUIDを取得したいVMを選択します。UUIDは「一般」タブに表示されます。

リソース」ペインで、リソースプールコーディネーター(リストの最初のホスト)を選択します。「一般」タブにUUIDが表示されます。リソースプールを使用していない場合は、VMのホストを選択します。

  1. ホスト上でコンソールを開き、次のコマンドを実行します。

    xe host-call-plugin host-uuid=host-UUID \
        plugin=coalesce-leaf fn=leaf-coalesce args:vm_uuid=VM-UUID
    <!--NeedCopy-->
    

    例えば、VMのUUIDが9bad4022-2c2d-dee6-abf5-1b6195b1dad5でホストのUUIDがb8722062-de95-4d95-9baa-a5fe343898eaの場合、次のコマンドを実行します。

    xe host-call-plugin host-uuid=b8722062-de95-4d95-9baa-a5fe343898ea \
        plugin=coalesce-leaf fn=leaf-coalesce args:vm_uuid=9bad4022-2c2d-dee6-abf5-1b6195b1dad5
    <!--NeedCopy-->
    
  2. このコマンドは、VMを一時停止し(すでに電源がオフになっている場合を除く)、領域再利用プロセスを開始し、その後VMを再開します。

注記:」:

オフラインの結合ツールを実行する前に、VMを手動でシャットダウンまたは一時停止することをお勧めします。VMのシャットダウンまたは一時停止は、XenCenterまたはXenServer CLIのいずれかを使用して行うことができます。実行中のVMで結合ツールを実行すると、ツールは自動的にVMを一時停止し、必要なVDI結合操作を実行し、VMを再開します。アジャイルVMは別のホストで再起動する可能性があります。

結合する仮想ディスクイメージ (VDI) が共有ストレージ上にある場合、オフラインの結合ツールをプールコーディネーター上で実行する必要があります。

結合するVDIがローカルストレージ上にある場合、オフラインの結合ツールをローカルストレージが接続されているホスト上で実行します。

ディスクI/Oの操作

ディスクI/OスケジューラとディスクI/O優先度設定を構成して、ディスクのパフォーマンスを変更できます。

注:」:

このセクションで説明されているディスクI/O機能は、GFS2、NFS、またはSMB3ストレージには適用されません。

ディスクI/Oスケジューラを調整する

一般的なパフォーマンスのために、デフォルトのディスクスケジューラnoneがすべての新しいSRタイプに適用されます。noneスケジューラは、同じデバイスにアクセスする競合するVMに対して最も公平なパフォーマンスを提供します。

  1. ディスクスケジューラを次のコマンドを使用して調整します。

    xe sr-param-set other-config:scheduler=<option> uuid=<sr_uuid>
    <!--NeedCopy-->
    

    <option> の値は、次のいずれかの用語になります: nonebfq、または mq-deadline

  2. スケジューラパラメータを有効にするには、対応するPBDを抜き差しします。

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

ディスクI/O要求の優先順位付けを適用するには、デフォルト設定を上書きし、bfq ディスクスケジューラをSRに割り当てます。

仮想ディスクI/O要求の優先順位付け

仮想ディスクには、オプションのI/O要求優先度設定があります。これらの設定を使用して、特定のVMのディスクへのI/Oを他のディスクよりも優先させることができます。

VBDのディスクI/O要求優先度パラメータを設定する前に、SRのディスクスケジューラが適切に設定されていることを確認してください。スケジューラパラメータはSR上で bfq に設定され、関連するPBDは抜き差しされている必要があります。スケジューラの調整方法については、「ディスクI/Oスケジューラの調整」を参照してください。

複数のホストが同じLUNにアクセスする共有SRの場合、優先度設定は同じホストからLUNにアクセスするVBDに適用されます。これらの設定は、プール内のホスト間では適用されません。

ホストはリモートストレージに要求を発行しますが、要求の優先順位付けはリモートストレージによって行われます。

ディスクI/O要求パラメータの設定

これらの設定は、次のパラメータを指定して xe vbd-param-set コマンドを使用することで、既存の仮想ディスクに適用できます。

  • qos_algorithm_type - このパラメータは値 ionice に設定する必要があります。これは仮想ディスクでサポートされている唯一のアルゴリズムです。

  • qos_algorithm_param - このパラメータを使用してキーと値のペアを設定します。仮想ディスクの場合、qos_algorithm_paramsched キーを受け取り、値によっては class キーも必要とします。

    キー qos_algorithm_param:sched は次のいずれかの値を持つことができます。

    • sched=rt または sched=real-time - この値はスケジューリングパラメータをリアルタイム優先度に設定します。これには値を設定するための class パラメータが必要です。

    • sched=idle - この値は、スケジューリングパラメータをアイドル優先度に設定します。これは、値を設定するためのclassパラメータを必要としません。

    • sched=anything - この値は、スケジューリングパラメータをベストエフォート優先度に設定します。これは、値を設定するためのclassパラメータを必要とします。

    キーqos_algorithm_param:classは、次のいずれかの値を持つことができます。

    • 次のいずれかのキーワード: highest, high, normal, low, lowest

    • 0から7までの整数。ここで、7が最高の優先度で、0が最低の優先度です。例えば、優先度5のI/Oリクエストは、優先度2のI/Oリクエストよりも優先されます。

例えば、次のCLIコマンドは、仮想ディスクのVBDをリアルタイム優先度5を使用するように設定します。

xe vbd-param-set uuid=<vbd_uuid> qos_algorithm_type=ionice
xe vbd-param-set uuid=<vbd_uuid> qos_algorithm_params:sched=rt
xe vbd-param-set uuid=<vbd_uuid> qos_algorithm_params:class=5
xe sr-param-set uuid=<sr_uuid> other-config:scheduler=bfq
xe pbd-unplug uuid=<pbd_uuid>
xe pbd-plug uuid=<pbd_uuid>
<!--NeedCopy-->
ストレージリポジトリを管理する