XenServer

ストレージリポジトリの管理

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

SRの削除

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

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

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

破棄: 物理ディスクから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をアクティブ化するために、適切なXenServerホストにPBDを手動でプラグインします。

次の例では、タイプ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. Move Virtual Disk」ダイアログボックスで、VDIの移動先となるターゲットSRを選択します。

    注記:

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

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

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

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

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

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ストレージタブを選択します。移動する各VDIについて、VDIを選択し、デタッチボタンをクリックします。この手順は、vbd-destroyコマンドを使用しても実行できます。

    注:

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

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

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

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

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

xe CLIとXenCenterのストレージリポジトリの修復機能を使用して、ローカルFC SRを共有FC SRに変換します。

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

  2. プール内のすべてのホストで、SRのLUNが適切にゾーニングされていることを確認します。各ホストにLUNが存在することを確認するためにsr-probeコマンドを使用する方法の詳細については、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を手動でシャットダウンまたは一時停止することをお勧めします。XenCenterまたはXenServer CLIを使用してVMをシャットダウンまたは一時停止できます。実行中のVMで結合ツールを実行すると、ツールは自動的にVMを一時停止し、必要なVDI結合操作を実行してからVMを再開します。アジャイルVMは別のホストで再起動する可能性があります。

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

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

ディスクI/Oの操作

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

注:

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

ディスクI/Oスケジューラーの調整

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

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

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

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

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

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

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

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

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

VBDのディスクI/O要求優先度パラメータを設定する前に、SRのディスクスケジューラが適切に設定されていることを確認してください。スケジューラパラメータはSR上で cfq に設定され、関連する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=cfq
xe pbd-unplug uuid=<pbd_uuid>
xe pbd-plug uuid=<pbd_uuid>
<!--NeedCopy-->
ストレージリポジトリの管理