Logical Domains 1.2 管理ガイド

仮想ディスクバックエンド

仮想ディスクバックエンドは、仮想ディスクのデータの格納場所です。バックエンドには、ディスク、ディスクスライス、ファイル、またはボリューム (ZFS、SVM、VxVM など) を使用できます。バックエンドは、バックエンドをサービスドメインからエクスポートする際に slice オプションを設定するかどうかに応じて、フルディスクまたは 1 つのスライスディスクのいずれかとしてゲストドメインに表示されます。デフォルトでは、仮想ディスクバックエンドは読み取りおよび書き込み可能なフルディスクとして排他的でない状態でエクスポートされます。

物理ディスクまたはディスクの LUN

物理ディスクまたはディスク LUN は、常にフルディスクとしてエクスポートされます。この場合、仮想ディスクドライバ (vds および vdc) は仮想ディスクからの入出力を転送し、物理ディスクまたはディスク LUN へのパススルーとして動作します。

slice オプションを設定せずにそのディスクのスライス 2 (s2) に対応するデバイスをエクスポートすると、物理ディスクまたはディスク LUN はサービスドメインからエクスポートされます。slice オプションを指定してディスクのスライス 2 をエクスポートすると、ディスク全体ではなくこのスライスのみがエクスポートされます。

Procedure物理ディスクを仮想ディスクとしてエクスポートする

  1. 物理ディスクを仮想ディスクとしてエクスポートします。

    たとえば、物理ディスク c1t48d0 を仮想ディスクとしてエクスポートするには、そのディスクのスライス 2 (c1t48d0s2) をエクスポートする必要があります。


    primary# ldm add-vdsdev /dev/dsk/c1t48d0s2 c1t48d0@primary-vds0
    
  2. このディスクをゲストドメインに割り当てます。

    たとえば、ディスク pdisk をゲストドメイン ldg1 に割り当てます。


    primary# ldm add-vdisk pdisk c1t48d0@primary-vds0 ldg1
    
  3. ゲストドメインが起動されて Solaris OS が実行されたら、そのディスクがアクセス可能であり、フルディスクであることを確認します。

    フルディスクとは、8 つのスライスを持つ通常のディスクのことです。

    確認するディスクが c0d1 の場合、次のようになります。


    ldg1# ls -1 /dev/dsk/c0d1s*
    /dev/dsk/c0d1s0
    /dev/dsk/c0d1s1
    /dev/dsk/c0d1s2
    /dev/dsk/c0d1s3
    /dev/dsk/c0d1s4
    /dev/dsk/c0d1s5
    /dev/dsk/c0d1s6
    /dev/dsk/c0d1s7

物理ディスクスライス

物理ディスクスライスは、常に 1 つのスライスディスクとしてエクスポートされます。この場合、仮想ディスクドライバ (vds および vdc) は仮想ディスクから入出力を転送し、物理ディスクスライスへのパススルーとして動作します。

物理ディスクスライスは、対応するスライスデバイスをエクスポートすることで、サービスドメインからエクスポートされます。デバイスがスライス 2 と異なる場合は、slice オプションの指定の有無にかかわらず、自動的に 1 つのスライスディスクとしてエクスポートされます。デバイスがディスクのスライス 2 である場合は、slice オプションを設定して、スライス 2 のみを 1 つのスライスディスクとしてエクスポートする必要があります。このようにしないと、ディスク全体がフルディスクとしてエクスポートされます。

Procedure物理ディスクスライスを仮想ディスクとしてエクスポートする

  1. 物理ディスクのスライスを仮想ディスクとしてエクスポートします。

    たとえば、物理ディスク c1t57d0 のスライス 0 を仮想ディスクとしてエクスポートするには、そのスライス (c1t57d0s0) に対応するデバイスを次のようにエクスポートする必要があります。


    primary# ldm add-vdsdev /dev/dsk/c1t57d0s0 c1t57d0s0@primary-vds0
    

    スライスは常に 1 つのスライスディスクとしてエクスポートされるため、slice オプションを指定する必要はありません。

  2. このディスクをゲストドメインに割り当てます。

    たとえば、ディスク pslice をゲストドメイン ldg1 に割り当てます。


    primary# ldm add-vdisk pslice c1t57d0s0@primary-vds0 ldg1
    
  3. ゲストドメインが起動されて Solaris OS が実行されたら、ディスク (c0d13 など) を表示して、そのディスクがアクセス可能であることを確認できます。


    ldg1# ls -1 /dev/dsk/c0d13s*
    /dev/dsk/c0d13s0
    /dev/dsk/c0d13s1
    /dev/dsk/c0d13s2
    /dev/dsk/c0d13s3
    /dev/dsk/c0d13s4
    /dev/dsk/c0d13s5
    /dev/dsk/c0d13s6
    /dev/dsk/c0d13s7

    デバイスは 8 つありますが、そのディスクは 1 つのスライスディスクであるため、使用できるのは 1 番めのスライス (s0) のみです。

Procedureスライス 2 をエクスポートする

  1. スライス 2 (ディスク c1t57d0s2 など) をエクスポートするには、slice オプションを指定する必要があります。このようにしないと、ディスク全体がエクスポートされます。


    # ldm add-vdsdev options=slice /dev/dsk/c1t57d0s2 c1t57d0s2@primary-vds0
    

ファイルおよびボリューム

ファイルまたはボリューム (たとえば ZFS または SVM からの) は、slice オプションの指定の有無に応じて、フルディスクまたは 1 つのスライスディスクのいずれかとしてエクスポートされます。

フルディスクとしてエクスポートされるファイルまたはボリューム

slice オプションを設定しない場合、ファイルまたはボリュームはフルディスクとしてエクスポートされます。この場合、仮想ディスクドライバ (vds および vdc) は仮想ディスクから入出力を転送し、仮想ディスクのパーティション分割を管理します。最終的には、このファイルまたはボリュームは、仮想ディスクのすべてのスライスのデータ、およびパーティション分割とディスク構造の管理に使用されるメタデータを含むディスクイメージになります。

空のファイルまたはボリュームをフルディスクとしてエクスポートすると、未フォーマットのディスク、つまり、パーティションのないディスクとしてゲストドメインに表示されます。このため、ゲストドメインで format(1M) コマンドを実行して、使用可能なパーティションを定義し、有効なディスクラベルを書き込む必要があります。ディスクが未フォーマットの間、この仮想ディスクへの入出力はすべて失敗します。


注 –

Solaris 10 5/08 OS より前のリリースでは、空のファイルが仮想ディスクとしてエクスポートされると、システムによってデフォルトのディスクラベルが書き込まれ、デフォルトのパーティションが作成されていました。Solaris 10 5/08 OS リリースではこの処理は行われなくなったため、ゲストドメインで format(1M) を実行してパーティションを作成する必要があります。


Procedureファイルをフルディスクとしてエクスポートする

  1. サービスドメインから、ファイル (fdisk0 など) を作成して仮想ディスクとして使用します。


    service# mkfile 100m /ldoms/domain/test/fdisk0
    

    ファイルのサイズによって、仮想ディスクのサイズが定義されます。この例では、100M バイトの空のファイルを作成して、100M バイトの仮想ディスクを取得しています。

  2. 制御ドメインから、ファイルを仮想ディスクとしてエクスポートします。


    primary# ldm add-vdsdev /ldoms/domain/test/fdisk0 fdisk0@primary-vds0
    

    この例では、slice オプションを設定していないため、ファイルはフルディスクとしてエクスポートされます。

  3. 制御ドメインから、ディスクをゲストドメインに割り当てます。

    たとえば、ディスク fdisk をゲストドメイン ldg1 に割り当てます。


    primary# ldm add-vdisk fdisk fdisk0@primary-vds0 ldg1
    
  4. ゲストドメインが起動されて Solaris OS が実行されたら、そのディスクがアクセス可能であり、フルディスクであることを確認します。

    フルディスクとは、8 つのスライスを持つ通常のディスクのことです。

    次の例は、ディスク c0d5 を表示して、そのディスクがアクセス可能であり、フルディスクであることを確認する方法を示しています。


    ldg1# ls -1 /dev/dsk/c0d5s*
    /dev/dsk/c0d5s0
    /dev/dsk/c0d5s1
    /dev/dsk/c0d5s2
    /dev/dsk/c0d5s3
    /dev/dsk/c0d5s4
    /dev/dsk/c0d5s5
    /dev/dsk/c0d5s6
    /dev/dsk/c0d5s7

1 つのスライスディスクとしてエクスポートされるファイルまたはボリューム

slice オプションを設定すると、ファイルまたはボリュームは 1 つのスライスディスクとしてエクスポートされます。この場合、仮想ディスクには 1 つのパーティション (s0) のみが含まれ、このパーティションが直接ファイルまたはボリュームバックエンドにマップされます。ファイルまたはボリュームには仮想ディスクに書き込まれるデータのみが含まれ、パーティション情報やディスク構造などの追加データは含まれません。

ファイルまたはボリュームが 1 つのスライスディスクとしてエクスポートされると、システムは擬似的なディスクのパーティション分割のシミュレーションを行います。これにより、そのファイルまたはボリュームはディスクスライスとして表示されます。ディスクのパーティション分割のシミュレーションが行われるため、そのディスクに対してパーティションは作成しないでください。

ProcedureZFS ボリュームを 1 つのスライスディスクとしてエクスポートする

  1. ZFS ボリュームを作成して、1 つのスライスディスクとして使用します。

    次の例は、ZFS ボリューム zdisk0 を作成して、1 つのスライスディスクとして使用する方法を示しています。


    service# zfs create -V 100m ldoms/domain/test/zdisk0
    

    ボリュームのサイズによって、仮想ディスクのサイズが定義されます。この例では、100M バイトのボリュームを作成して、100M バイトの仮想ディスクを取得しています。

  2. 制御ドメインから、その ZFS ボリュームに対応するデバイスをエクスポートします。このボリュームが 1 つのスライスディスクとしてエクスポートされるように slice オプションを設定します。


    primary# ldm add-vdsdev options=slice /dev/zvol/dsk/ldoms/domain/test/zdisk0 \
    zdisk0@primary-vds0
    
  3. 制御ドメインから、ボリュームをゲストドメインに割り当てます。

    次の例は、ボリューム zdisk0 をゲストドメイン ldg1 に割り当てる方法を示しています。


    primary# ldm add-vdisk zdisk0 zdisk0@primary-vds0 ldg1
    
  4. ゲストドメインが起動されて Solaris OS が実行されたら、ディスク (c0d9 など) を表示して、そのディスクがアクセス可能で、1 つのスライスディスク (s0) であることを確認できます。


    ldg1# ls -1 /dev/dsk/c0d9s*
    /dev/dsk/c0d9s0
    /dev/dsk/c0d9s1
    /dev/dsk/c0d9s2
    /dev/dsk/c0d9s3
    /dev/dsk/c0d9s4
    /dev/dsk/c0d9s5
    /dev/dsk/c0d9s6
    /dev/dsk/c0d9s7

ボリュームのエクスポートおよび下位互換性

Solaris 10 5/08 OS より前のリリースでは、slice オプションがなく、ボリュームは 1 つのスライスディスクとしてエクスポートされていました。ボリュームを仮想ディスクとしてエクスポートする構成である場合に、そのシステムを Solaris 10 5/08 OS にアップグレードすると、ボリュームは 1 つのスライスディスクではなくフルディスクとしてエクスポートされるようになります。アップグレード前の動作を保持して、ボリュームを 1 つのスライスディスクとしてエクスポートするには、次のいずれかを実行する必要があります。

各種のバックエンドのエクスポート方法の概要

バックエンド 

スライスオプションなし 

スライスオプションを設定 

ディスク (ディスクスライス 2) 

フルディスク [ディスク全体をエクスポートします。]

1 つのスライスディスク [スライス 2 のみをエクスポートします。]

ディスクスライス (スライス 2 以外) 

1 つのスライスディスク [スライスは常に 1 つのスライスディスクとしてエクスポートされます。]

1 つのスライスディスク 

ファイル 

フルディスク 

1 つのスライスディスク 

ボリューム (ZFS、SVM、VxVM など) 

フルディスク 

1 つのスライスディスク 

ファイルおよびディスクスライスを仮想ディスクとしてエクスポートする場合のガイドライン

この節では、ファイルおよびディスクスライスを仮想ディスクとしてエクスポートする場合のガイドラインを示します。

ループバックファイル (lofi) ドライバの使用

ループバックファイル (lofi) ドライバを使用すると、ファイルを仮想ディスクとしてエクスポートできます。ただし、これを行うと別のドライバ層が追加され、仮想ディスクのパフォーマンスに影響を及ぼします。代わりに、フルディスクまたは 1 つのスライスディスクとしてファイルを直接エクスポートすることができます。「ファイルおよびボリューム」 を参照してください。

ディスクスライスの直接的または間接的なエクスポート

仮想ディスクとしてスライスを直接的に、または SVM ボリュームを介すなどして間接的にエクスポートするには、prtvtoc(1M) コマンドを使用して、スライスが物理ディスクの最初のブロック (ブロック 0) で開始されていないことを確認します。

物理ディスクの最初のブロックから始まるディスクスライスを直接的または間接的にエクスポートする場合は、物理ディスクのパーティションテーブルを上書きして、そのディスクのすべてのパーティションにアクセスできないようにすることもできます。