Logical Domains 1.2 管理ガイド

第 6 章 仮想ディスクの使用

この章では、Logical Domains ソフトウェアで仮想ディスクを使用する方法について説明します。

この章の内容は次のとおりです。

仮想ディスクの概要

仮想ディスクには、2 つの構成要素があります。ゲストドメインに表示される仮想ディスク自体と、データの格納先であり仮想 I/O の終端である仮想ディスクバックエンドです。仮想ディスクバックエンドは、仮想ディスクサーバー (vds) ドライバによって、サービスドメインからエクスポートされます。vds ドライバは、論理ドメインチャネル (LDC) を使用して、ハイパーバイザを介してゲストドメインの仮想ディスククライアント (vdc) ドライバと通信します。最終的には、仮想ディスクはゲストドメイン内の /dev/[r]dsk/cXdYsZ デバイスとして表示されます。

仮想ディスクバックエンドは、物理的でも論理的でもかまいません。物理デバイスには、次のものを含めることができます。

論理デバイスは、次のいずれかにすることができます。

図 6–1 Logical Domains での仮想ディスク

この図は、ゲストドメインおよびサービスドメインの構成要素を含めた仮想ディスクの要素が、論理ドメインチャネルを介してどのように通信するかを示しています。

仮想ディスクの管理

この節では、ゲストドメインへの仮想ディスクの追加、仮想ディスクオプションとタイムアウトオプションの変更、およびゲストドメインからの仮想ディスクの削除について説明します。仮想ディスクオプションの説明については、「仮想ディスクバックエンドオプション」 を参照してください。仮想ディスクのタイムアウトの説明については、「仮想ディスクのタイムアウト」 を参照してください。

Procedure仮想ディスクを追加する

  1. 仮想ディスクバックエンドをサービスドメインからエクスポートします。


    # ldm add-vdsdev [options={ro,slice,excl}] [mpgroup=mpgroup] \
    backend volume-name@service-name
    
  2. このバックエンドをゲストドメインに割り当てます。


    # ldm add-vdisk [timeout=seconds] [id=disk-id] disk-name volume-name@service-name ldom
    

    id プロパティーを設定して、新しい仮想ディスクデバイスの ID を指定できます。デフォルトでは ID 値は自動的に生成されるため、OS で既存のデバイス名に一致させる必要がある場合に、このプロパティーを設定します。「仮想ディスクの識別子とデバイス名」 を参照してください。


    注 –

    バックエンドは、ゲストドメイン (ldom) がバインドされたときに、実際にサービスドメインからエクスポートされ、ゲストドメインに割り当てられます。


Procedure仮想ディスクバックエンドを複数回エクスポートする

仮想ディスクバックエンドは、同じ仮想ディスクまたは別の仮想ディスクサーバーのいずれかを介して複数回エクスポートできます。仮想ディスクバックエンドのエクスポートされたインスタンスは、それぞれ同じゲストドメインまたは別のゲストドメインのいずれかに割り当てることができます。

仮想ディスクバックエンドを複数回エクスポートする場合は、排他 (excl) オプションを指定してエクスポートしないでください。excl オプションを指定すると、バックエンドのエクスポートは 1 回のみ許可されます。ro オプションを指定すると、バックエンドは読み取り専用デバイスとして問題なく複数回エクスポートできます。


注意 – 注意 –

仮想ディスクバックエンドが複数回エクスポートされる際は、ゲストドメインで動作中のアプリケーションおよびその仮想ディスクを使用中のアプリケーションが、同時の書き込みアクセスを調整および同期化して、データの一貫性を確保する役割を果たします。


次の例では、同じ仮想ディスクサービスを介して 2 つの異なるゲストドメインに同じ仮想ディスクを追加する方法について説明します。

  1. 次のコマンドを使用して、サービスドメインから仮想ディスクバックエンドを 2 回エクスポートします。


    # ldm add-vdsdev [options={ro,slice}] backend volume1@service-name
    # ldm add-vdsdev -f [options={ro,slice}] backend volume2@service-name
    

    2 つめの ldm add-vdsdev コマンドでは、-f オプションを使用して、バックエンドの 2 回目のエクスポートを強制実行します。両方のコマンドに同じバックエンドパスを使用する場合や、仮想ディスクサーバーが同じサービスドメインに存在する場合に、このオプションを使用します。

  2. 次のコマンドを使用して、エクスポートされたバックエンドを各ゲストドメインに割り当てます。

    ldom1ldom2 には、異なる disk-name を指定できます。


    # ldm add-vdisk [timeout=seconds] disk-name volume1@service-name ldom1
    # ldm add-vdisk [timeout=seconds] disk-name volume2@service-name ldom2

Procedure仮想ディスクオプションを変更する

  1. サービスドメインからバックエンドがエクスポートされたあとに、次のコマンドを使用して仮想ディスクオプションを変更できます。


    # ldm set-vdsdev options=[{ro,slice,excl}] volume-name@service-name
    

Procedureタイムアウトオプションを変更する

  1. 仮想ディスクがゲストドメインに割り当てられたあとに、次のコマンドを使用して仮想ディスクのタイムアウトを変更できます。


    # ldm set-vdisk timeout=seconds disk-name ldom
    

Procedure仮想ディスクを削除する

  1. 次のコマンドを使用して、ゲストドメインから仮想ディスクを削除します。


    # ldm rm-vdisk disk-name ldom
    
  2. 次のコマンドを使用して、サービスドメインからの対応するバックエンドのエクスポートを停止します。


    # ldm rm-vdsdev volume-name@service-name
    

仮想ディスクの識別子とデバイス名

ldm add-vdisk コマンドを使用してドメインに仮想ディスクを追加する際に、id プロパティーを設定して、その仮想ディスクのデバイス番号を指定できます。


# ldm add-vdisk [id=disk-id] disk-name volume-name@service-name ldom

ドメインの各仮想ディスクには、ドメインがバインドされるときに割り当てられる一意のデバイス番号があります。id プロパティーを設定して仮想ディスクを明示的なデバイス番号で追加した場合、指定したデバイス番号が使用されます。デバイス番号を指定しなかった場合、使用可能なもっとも小さいデバイス番号が自動的に割り当てられます。その場合、割り当てられるデバイス番号は、仮想ディスクがドメインに追加された方法によって異なります。仮想ディスクに最終的に割り当てられたデバイス番号は、ドメインがバインドされるときに ldm list-bindings コマンドの出力で確認できます。

仮想ディスクが構成されたドメインで Solaris OS を実行している場合、そのドメインでは、各仮想ディスクは c0dn ディスクデバイスとして表示されます。n は仮想ディスクのデバイス番号です。

次の例では、ldg1 ドメインに、rootdiskpdisk という 2 つの仮想ディスクがあります。rootdisk のデバイス番号は 0 (disk@0) で、ドメインではディスクデバイス c0d0 として表示されます。pdisk のデバイス番号は 1 (disk@1) で、ドメインではディスクデバイス c0d1 として表示されます。


primary# ldm list-bindings ldg1
...
DISK
    NAME             VOLUME                      TOUT DEVICE  SERVER         MPGROUP
    rootdisk         dsk_nevada@primary-vds0          disk@0  primary
    pdisk            c3t40d1@primary-vds0             disk@1  primary
...

注意 – 注意 –

デバイス番号が仮想ディスクに明示的に割り当てられていない場合、ドメインのバインドがいったん解除されたあとで再びバインドされると、デバイス番号が変更されることがあります。その場合、ドメインで実行している OS によって割り当てられたデバイス名も変更され、システムの既存の構成が損なわれることがあります。これは、たとえば、仮想ディスクがドメインの構成から削除されたときに起こる場合があります。


仮想ディスクの表示

バックエンドが仮想ディスクとしてエクスポートされると、ゲストドメインにフルディスクまたは 1 つのスライスディスクとして表示可能になります。表示形式は、バックエンドの種類およびバックエンドのエクスポート時に使用したオプションによって異なります。

フルディスク

バックエンドをフルディスクとしてドメインにエクスポートすると、8 つのスライス (s0s7) を持つ通常のディスクとしてドメインに表示されます。このようなディスクは、format(1M) コマンドを使用して表示できます。ディスクのパーティションテーブルは、fmthard(1M) または format(1M) コマンドのいずれかを使用して変更できます。

また、フルディスクは OS インストールソフトウェアからも表示でき、OS のインストール先のディスクとして選択できます。

どのバックエンドも、フルディスクとしてエクスポートできます。ただし、1 つのスライスディスクとしてのみエクスポート可能な物理ディスクスライスは除きます。

1 つのスライスディスク

バックエンドを 1 つのスライスディスクとしてドメインにエクスポートすると、8 つのスライス (s0s7) を持つ通常のディスクとしてドメインに表示されます。ただし、使用できるのは 1 番めのスライス (s0) のみです。このようなディスクは、format(1M) コマンドで表示できますが、ディスクのパーティションテーブルは変更できません。

また、1 つのスライスディスクは OS インストールソフトウェアからも表示でき、OS のインストール先のディスクとして選択できます。この場合、UNIX ファイルシステム (UFS) を使用して OS をインストールするときは、ルートパーティション (/) のみを定義し、このパーティションがすべてのディスク領域を使用する必要があります。

どのバックエンドも、1 つのスライスディスクとしてエクスポートできます。ただし、フルディスクとしてのみエクスポートできる物理ディスクは除きます。


注 –

Solaris 10 10/08 OS より前のリリースでは、1 つのスライスディスクは、1 つのパーティションを持つディスクとして表示されていました (s0)。このようなディスクは、format(1M) コマンドを使用して表示できませんでした。また、OS インストールソフトウェアからも表示できず、OS をインストール可能なディスクデバイスとして選択することができませんでした。


仮想ディスクバックエンドオプション

仮想ディスクのバックエンドをエクスポートする際には、さまざまなオプションを指定できます。これらのオプションは、ldm add-vdsdev コマンドの options= 引数にコンマ区切りのリストとして指定します。有効なオプションは、roslice、および excl です。

読み取り専用 (ro) オプション

読み取り専用 (ro) オプションは、バックエンドが読み取り専用デバイスとしてエクスポートされることを指定します。その場合、ゲストドメインに割り当てられるこの仮想ディスクに対しては読み取り操作のアクセスのみが可能で、仮想ディスクへの書き込み操作は失敗します。

排他 (excl) オプション

排他 (excl) オプションは、サービスドメインのバックエンドを仮想ディスクとして別のドメインにエクスポートするときに、仮想ディスクサーバーによって排他的に開かれる必要があることを指定します。バックエンドが排他的に開かれると、サービスドメインのほかのアプリケーションがこのバックエンドにアクセスすることはできません。これによって、サービスドメインで動作するアプリケーションが、ゲストドメインでも使用されているバックエンドを誤って使用することはなくなります。


注 –

ドライバには excl オプションを受け入れないものもあるため、一部の仮想ディスクバックエンドを排他的に開くことが許可されません。excl オプションが物理ディスクおよびスライスで機能することはわかっていますが、このオプションはファイルでは機能しません。ディスクボリュームなどの擬似デバイスでは機能する場合と機能しない場合があります。バックエンドのドライバで排他的オープンが受け入れられない場合、バックエンドの excl オプションは無視され、バックエンドは排他的に開かれません。


excl オプションによって、サービスドメインで動作中のアプリケーションが、ゲストドメインにエクスポートされるバックエンドにアクセスできなくなるため、次の場合は excl オプションを設定しないでください。

デフォルトでは、バックエンドは排他的ではない状態で開かれます。このため、バックエンドが別のドメインにエクスポートされている間でも、サービスドメインで動作中のアプリケーションはこのバックエンドを使用できます。これは、Solaris 10 5/08 OS リリースから導入された新しい動作です。Solaris 10 5/08 OS より前のリリースでは、ディスクバックエンドは常に排他的に開かれ、バックエンドを排他的でない状態で開くことはできませんでした。

スライス (slice) オプション

通常、バックエンドは、その種類に応じてフルディスクまたは 1 つのスライスディスクのいずれかとしてエクスポートされます。slice オプションを指定すると、バックエンドは強制的に 1 つのスライスディスクとしてエクスポートされます。

このオプションは、バックエンドの raw コンテンツをエクスポートする場合に便利です。たとえば、データを格納済みの ZFS または SVM ボリュームがある場合に、ゲストドメインでこのデータにアクセスするには、slice オプションを使用して ZFS または SVM ボリュームをエクスポートする必要があります。

このオプションの詳細は、「仮想ディスクバックエンド」 を参照してください。

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

仮想ディスクバックエンドは、仮想ディスクのデータの格納場所です。バックエンドには、ディスク、ディスクスライス、ファイル、またはボリューム (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) で開始されていないことを確認します。

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

仮想ディスクマルチパスの構成

さまざまなサービスドメインを介して仮想ディスクバックエンドにアクセスできる場合は、仮想ディスクマルチパスを構成して、サービスドメインがダウンしても、ゲストドメイン内の仮想ディスクにアクセス可能にすることができます。さまざまなサービスドメインを介してアクセス可能な仮想ディスクバックエンドの例として、複数のサービスドメインに接続されたネットワークファイルシステム (NFS) サーバー上または共有物理ディスク上のファイルがあります。

仮想ディスクマルチパスを有効にするには、別のサービスドメインから仮想ディスクバックエンドをエクスポートし、同じマルチパスグループ (mpgroup) に追加する必要があります。仮想ディスクバックエンドがエクスポートされると、mpgroup は名前で識別され、構成されます。

次の図は、仮想ディスクマルチパスの構成方法を示しています。この例では、foo というマルチパスグループを使用して仮想ディスクを作成しています。そのバックエンドには、第一サービスドメインと代替サービスドメインの 2 つからアクセスできます。

図 6–2 仮想ディスクマルチパスの構成

foo というマルチパスグループを使用して仮想ディスクを作成する方法を示しています。仮想ディスクのバックエンドには、第一サービスドメインと代替サービスドメインの 2 つからアクセスできます。

Procedure仮想ディスクマルチパスを構成する

  1. 仮想バックエンドを第一サービスドメインからエクスポートします。


    # ldm add-vdsdev mpgroup=foo backend-path1 volume@primary-vds0
    

    backend-path1 は、第一サービスドメインから仮想ディスクバックエンドへのパスです。

  2. 同じ仮想バックエンドを代替サービスドメインからエクスポートします。


    # ldm add-vdsdev mpgroup=foo backend-path2 volume@alternate-vds0
    

    backend-path2 は、代替サービスドメインから仮想ディスクバックエンドへのパスです。


    注 –

    backend-path1 および backend-path2 は、同じ仮想ディスクバックエンドへのパスですが、それらのエクスポート元は異なる 2 つのドメイン (第一と代替) です。これらのパスは、第一サービスドメインおよび代替サービスドメインの構成に応じて、同じ場合もあれば、異なる場合もあります。volume 名はユーザーが選択します。これは、両方のコマンドで同じ場合もあれば、異なる場合もあります。


  3. 仮想ディスクをゲストドメインにエクスポートします。


    # ldm add-vdisk disk-name volume@primary-vds0 ldom
    

    注 –

    仮想ディスクバックエンドを複数のサービスドメインを介して複数回エクスポートしていますが、ゲストドメインに割り当てて、いずれかのサービスドメインを介して仮想ディスクバックエンドに関連付ける仮想ディスクは 1 つのみです。


仮想ディスクマルチパスの結果

仮想ディスクをマルチパスで構成し、ゲストドメインを起動すると、仮想ディスクは関連付けられているサービスドメイン (この例では第一サービスドメイン) を介してバックエンドにアクセスします。このサービスドメインが利用できなくなると、仮想ディスクは、同じマルチパスグループに属する別のサービスドメインを介してバックエンドへのアクセスを試みます。


注意 – 注意 –

マルチパスグループ (mpgroup) を定義する場合、同じ mpgroup に属する仮想ディスクバックエンドは、事実上同じ仮想ディスクバックエンドにする必要があります。異なる仮想ディスクのバックエンドを同じ mpgroup に追加すると、予期しない動作が生じ、それらのバックエンドに格納されているデータが消失または破損する可能性があります。


CD、DVD および ISO イメージ

コンパクトディスク (CD) またはデジタル多用途ディスク (DVD) のエクスポートは、通常のディスクと同じ方法で実行できます。CD または DVD をゲストドメインにエクスポートするには、CD または DVD デバイスのスライス 2 をフルディスクとして、つまり slice オプションを指定しないでエクスポートします。


注 –

CD または DVD ドライブ自体をエクスポートすることはできません。エクスポートできるのは、CD または DVD ドライブ内の CD または DVD のみです。このため、CD または DVD はエクスポート前にドライブ内に存在している必要があります。また、CD または DVD をエクスポートできるようにするには、その CD または DVD がサービスドメインで使用中になっていない必要があります。特に、ボリューム管理ファイルシステムの volfs(7FS) サービスが CD または DVD を使用していてはいけません。volfs によるデバイスの使用を解除する方法については、「CD または DVD をサービスドメインからゲストドメインにエクスポートする」 を参照してください。


ファイルまたはボリュームに CD または DVD の ISO (国際標準化機構) イメージが格納されている場合に、そのファイルまたはボリュームをフルディスクとしてエクスポートすると、ゲストドメインで CD または DVD として表示されます。

CD、DVD、または ISO イメージをエクスポートすると、自動的にゲストドメインで読み取り専用デバイスとして表示されます。ただし、ゲストドメインから CD の制御操作を実行することはできません。つまり、ゲストドメインから CD の起動、停止、または取り出しは実行できません。エクスポートされた CD、DVD、または ISO イメージを起動可能な場合は、対応する仮想ディスクでゲストドメインを起動できます。

たとえば、Solaris OS インストール DVD をエクスポートした場合は、その DVD に対応する仮想ディスク上のゲストドメインを起動し、その DVD からゲストドメインをインストールすることができます。これを行うには、ゲストドメインで ok プロンプトが表示されたときに次のコマンドを使用します。


ok boot /virtual-devices@100/channel-devices@200/disk@n:f

n は、エクスポートされた DVD を表す仮想ディスクのインデックスです。


注 –

Solaris OS インストール DVD をエクスポートし、その DVD に対応する仮想ディスク上でゲストドメインを起動してゲストドメインをインストールする場合、インストール中に DVD を変更することはできません。このため、異なる CD または DVD を要求するインストール手順は省略する必要がある場合があります。または、要求されたメディアにアクセスするための代替パスを指定する必要があります。


ProcedureCD または DVD をサービスドメインからゲストドメインにエクスポートする

  1. サービスドメインから、ボリューム管理デーモンの vold(1M) が動作中でオンラインかどうかを確認します。


    service# svcs volfs
    STATE          STIME    FMRI
    online         12:28:12 svc:/system/filesystem/volfs:default
  2. 次のいずれかを実行します。

    • ボリューム管理デーモンが動作中またはオンラインでない場合は、手順 5 に進みます。

    • 手順 1 の例に示すように、ボリューム管理デーモンが動作中でオンラインの場合は、次の手順を実行します。

    1. /etc/vold.conf ファイルを編集して、次の文字列で始まる行をコメントアウトします。


      use cdrom drive....

      vold.conf(4) マニュアルページを参照してください。

    2. CD または DVD ドライブに CD または DVD を挿入します。

    3. サービスドメインから、ボリューム管理ファイルシステムサービスを再起動します。


      service# svcadm refresh volfs
      service# svcadm restart volfs
      
  3. サービスドメインから、CD-ROM デバイスのディスクパスを検出します。


    service# cdrw -l
    Looking for CD devices...
       Node                   Connected Device                 Device type
    ----------------------+--------------------------------+-----------------
    /dev/rdsk/c1t0d0s2    | MATSHITA CD-RW  CW-8124   DZ13 | CD Reader/Writer
  4. CD または DVD ディスクデバイスをフルディスクとしてエクスポートします。


    primary# ldm add-vdsdev /dev/dsk/c1t0d0s2 cdrom@primary-vds0
    
  5. エクスポートされた CD または DVD をゲストドメインに割り当てます。

    次の例は、エクスポートされた CD または DVD をドメイン ldg1 に割り当てる方法を示しています。


    primary# ldm add-vdisk cdrom cdrom@primary-vds0 ldg1
    
CD または DVD の複数回のエクスポート

CD または DVD は複数回エクスポートし、異なるゲストドメインに割り当てることができます。詳細は、「仮想ディスクバックエンドを複数回エクスポートする」 を参照してください。

Procedureprimary ドメインから ISO イメージをエクスポートしてゲストドメインをインストールする

ここでは、primary ドメインから ISO イメージをエクスポートし、それを使用してゲストドメインをインストールする手順について説明します。この手順では、primary ドメインとゲストドメインの両方が構成されていることを前提としています。

たとえば、次のように ldm list を実行すると、primary ドメインと ldom1 ドメインの両方が構成されていることが表示されます。


# ldm list
NAME             STATE    FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
primary          active   -n-cv   SP      4     4G       0.3%  15m
ldom1            active   -t---   5000    4     1G        25%  8m
  1. 仮想ディスクサーバーデバイスを追加して、ISO イメージをエクスポートします。

    この例では、ISO イメージは /export/images/sol-10-u5-ga-sparc-dvd.iso です。


    # ldm add-vdsdev /export/images/sol-10-u5-ga-sparc-dvd.iso dvd-iso@primary-vds0
    
  2. ゲストドメインを停止します。

    この例では、論理ドメインは ldom1 です。


    # ldm stop-domain ldom1
    LDom ldom1 stopped
  3. ISO イメージの仮想ディスクを論理ドメインに追加します。

    この例では、論理ドメインは ldom1 です。


    # ldm add-vdisk s10-dvd dvd-iso@primary-vds0 ldom1
    
  4. ゲストドメインを再起動します。

    この例では、論理ドメインは ldom1 です。


    # ldm start-domain ldom1
    LDom ldom1 started
    # ldm list
    NAME             STATE    FLAGS   CONS    VCPU  MEMORY   UTIL  UPTIME
    primary          active   -n-cv   SP      4     4G       0.4%  25m
    ldom1            active   -t---   5000    4     1G       0.0%  0s

    この例では、ldm list コマンドにより、ldom1 ドメインが起動されたばかりであることが表示されています。

  5. ゲストドメインに接続します。


    # telnet localhost 5000
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    
    Connecting to console "ldom1" in group "ldom1" ....
    Press ~? for control options ..
  6. ISO イメージが仮想ディスクとして追加されていることを確認します。


    {0} ok show-disks
    a) /virtual-devices@100/channel-devices@200/disk@1
    b) /virtual-devices@100/channel-devices@200/disk@0
    q) NO SELECTION
    Enter Selection, q to quit: q

    この例では、新しく追加されたデバイスは /virtual-devices@100/channel-devices@200/disk@1 です。

  7. ゲストドメインを起動して、ISO イメージからインストールします。

    この例では、/virtual-devices@100/channel-devices@200/disk@1 ディスクの f スライスから起動します。


    {0} ok boot /virtual-devices@100/channel-devices@200/disk@1:f
    

仮想ディスクのタイムアウト

デフォルトでは、仮想ディスクバックエンドへのアクセスを提供するサービスドメインが停止すると、ゲストドメインから対応する仮想ディスクへのすべての入出力がブロックされます。サービスドメインが動作していて、仮想ディスクバックエンドへの入出力要求が処理されている場合、入出力は自動的に再開されます。

ただし、サービスドメインの停止状態が長すぎる場合には、ファイルシステムまたはアプリケーションにとって、入出力処理がブロックされるよりも、入出力処理が失敗してエラーが報告される方が望ましい場合があります。現在は、仮想ディスクごとに接続タイムアウト時間を設定することが可能になり、ゲストドメインの仮想ディスククライアントとサービスドメインの仮想ディスクサーバー間の接続確立に使用できます。タイムアウト時間に達した場合、サービスドメインが停止し、仮想ディスククライアントと仮想ディスクサーバー間の接続が再確立されていない間中、保留中の入出力および新規の入出力は失敗します。

このタイムアウトは、次のいずれかを実行すると設定できます。

タイムアウトは秒単位で指定します。タイムアウトを 0 に設定すると、タイムアウトは無効になり、サービスドメインの停止中は入出力がブロックされます (デフォルトの設定および動作)。

また、ゲストドメインの /etc/system ファイルに次の行を追加すると、タイムアウトを設定できます。


set vdc:vdc_timeout=seconds

注 –

この調整可能なオプションを設定すると、ldm CLI を使用して設定されたタイムアウトが上書きされます。また、この調整可能なオプションはゲストドメインのすべての仮想ディスクのタイムアウトを設定します。


仮想ディスクおよび SCSI

物理 SCSI ディスクまたは LUN をフルディスクとしてエクスポートする場合、対応する仮想ディスクでは、ユーザー SCSI コマンドインタフェース uscsi(7I) および多重ホストディスク制御操作 mhd(7i) がサポートされます。バックエンドとしてファイルまたはボリュームを含む仮想ディスクなど、その他の仮想ディスクでは、これらのインタフェースはサポートされません。

そのため、SCSI コマンド (SVM metaset、Solaris Cluster shared devices など) を使用するアプリケーションまたは製品機能は、バックエンドとして物理 SCSI ディスクを含む仮想ディスクのみを使用するゲストドメインで使用できます。


注 –

SCSI 操作は、仮想ディスクバックエンドとして使用される物理 SCSI ディスクまたは LUN を管理するサービスドメインによって効果的に実行されます。特に、サービスドメインは SCSI の予約を行います。このため、サービスドメインおよびゲストドメインで動作するアプリケーションは、同じ物理 SCSI ディスクに対して SCSI コマンドを発行するべきではありません。そうでないと、ディスクが予期しない状態になる可能性があります。


仮想ディスクおよび format(1M) コマンド

format(1M) コマンドは、ドメイン上に存在するすべての仮想ディスクを認識します。ただし、1 つのスライスディスクとしてエクスポートされた仮想ディスクの場合、format コマンドでは、仮想ディスクのパーティションテーブルを変更できません。label などのコマンドは失敗しますが、書き込もうとするディスクラベルが仮想ディスクにすでに関連付けられているラベルに類似している場合は除きます。

バックエンドが SCSI ディスクである仮想ディスクでは、すべての format(1M) サブコマンドがサポートされています。バックエンドが SCSI ディスクでない仮想ディスクでは、repairdefect など、一部の format(1M) サブコマンドがサポートされていません。この場合、format(1M) の動作は、Integrated Drive Electronics (IDE) ディスクの動作に類似しています。

仮想ディスクと ZFS の使用

この節では、ゲストドメインにエクスポートされる仮想ディスクバックエンドを格納するために ZFS (Zettabyte File System) を使用する方法について説明します。ZFS は、仮想ディスクバックエンドを作成および管理するための便利で強力なソリューションです。ZFS では次のことを実行できます。

ZFS の使用法の詳細は、『Solaris ZFS 管理ガイド』 を参照してください。

次の説明および例で示す primary ドメインは、ディスクイメージが格納されるサービスドメインでもあります。

サービスドメインでの ZFS プールの構成

ディスクイメージを格納するには、まずサービスドメインに ZFS ストレージプールを作成します。たとえば、次のコマンドでは、primary ドメインにディスク c1t50d0 が格納された ZFS ストレージプール ldmpool が作成されます。


primary# zpool create ldmpool c1t50d0

ZFS を使用したディスクイメージの格納

次のコマンドは、ゲストドメイン ldg1 にディスクイメージを作成します。このゲストドメイン用に ZFS ファイルシステムを作成し、このゲストドメインのすべてのディスクイメージをそのファイルシステムに格納します。


primary# zfs create ldmpool/ldg1

ディスクイメージは、ZFS ボリュームまたは ZFS ファイルに格納できます。ZFS ボリュームは、サイズにかかわらず、zfs create -V コマンドを使用すると迅速に作成できます。一方、ZFS ファイルは、mkfile コマンドを使用して作成する必要があります。このコマンドの完了まで少し時間がかかることがあります。特に、作成するファイルが非常に大きいときに時間がかかり、多くはディスクイメージの作成時に該当します。

ZFS ボリュームと ZFS ファイルはいずれも、スナップショットや複製など、ZFS 機能の利点を利用できますが、ZFS ボリュームは疑似デバイス、ZFS ファイルは通常のファイルです。

ディスクイメージを、Solaris OS のインストール先の仮想ディスクとして使用する場合は、次のものを収容できる容量を確保してください。

したがって、Solaris OS 全体をインストールするためのディスクイメージのサイズは、8G バイト以上になります。

ZFS によるディスクイメージの格納例

    次の手順を実行します。

  1. ZFS ボリュームまたは ZFS ファイルに 10G バイトのイメージを作成します。

  2. ZFS ボリュームまたは ZFS ファイルを仮想ディスクとしてエクスポートします。ZFS ボリュームまたは ZFS ファイルをエクスポートする構文は同じですが、バックエンドへのパスは異なります。

  3. エクスポートされた ZFS ボリュームまたは ZFS ファイルをゲストドメインに割り当てます。

ゲストドメインが起動すると、ZFS ボリュームまたは ZFS ファイルは、Solaris OS のインストールが可能な仮想ディスクとして表示されます。

ProcedureZFS ボリュームを使用してディスクイメージを作成する

  1. たとえば、ZFS ボリュームに 10G バイトのディスクイメージを作成します。


    primary# zfs create -V 10gb ldmpool/ldg1/disk0
    

ProcedureZFS ファイルを使用してディスクイメージを作成する

  1. たとえば、ZFS ボリュームに 10G バイトのディスクイメージを作成します。


    primary# zfs create ldmpool/ldg1/disk0
    primary# mkfile 10g /ldmpool/ldg1/disk0/file
    

ProcedureZFS ボリュームをエクスポートする

  1. ZFS ボリュームを仮想ディスクとしてエクスポートします。


    primary# ldm add-vdsdev /dev/zvol/dsk/ldmpool/ldg1/disk0 ldg1_disk0@primary-vds0
    

ProcedureZFS ファイルをエクスポートする

  1. ZFS ファイルを仮想ディスクとしてエクスポートします。


    primary# ldm add-vdsdev /ldmpool/ldg1/disk0/file ldg1_disk0@primary-vds0
    

ProcedureZFS ボリュームまたは ZFS ファイルをゲストドメインに割り当てる

  1. ZFS ボリュームまたは ZFS ファイルをゲストドメイン (次の例では ldg1) に割り当てます。


    primary# ldm add-vdisk disk0 ldg1_disk0@primary-vds0 ldg1
    

ディスクイメージのスナップショットの作成

ディスクイメージが ZFS ボリュームまたは ZFS ファイルに格納されている場合は、ZFS スナップショットコマンドを使用して、このディスクイメージのスナップショットを作成できます。

ディスクイメージに現在格納されているデータの一貫性を確保するため、ディスクイメージのスナップショットを作成する前に、ゲストドメインでそのディスクが現在使用されていないことを確認してください。ゲストドメインで確実にディスクが使用中ではない状態にするには、いくつかの方法があります。次のいずれかの手順を実行します。

この例では、ZFS レイアウトのため、ディスクイメージの格納場所が ZFS ボリュームまたは ZFS ファイルのどちらであっても、ディスクイメージのスナップショットを作成するコマンドは同じです。

Procedureディスクイメージのスナップショットを作成する

  1. たとえば、ldg1 ドメインに作成されたディスクイメージのスナップショットを作成します。


    primary# zfs snapshot ldmpool/ldg1/disk0@version_1
    

複製を使用して新規ドメインをプロビジョニングする

ディスクイメージのスナップショットを作成したら、ZFS 複製コマンドを使用してこのディスクイメージを複製できます。そのあと、複製されたイメージを別のドメインに割り当てることができます。起動ディスクイメージを複製することによって、新規ゲストドメイン用の起動ディスクが迅速に作成され、Solaris OS インストールプロセス全体を実行する必要はなくなります。

たとえば、作成された disk0 がドメイン ldg1 の起動ディスクである場合、次の手順を実行してこのディスクを複製し、ドメイン ldg2 の起動ディスクを作成します。


primary# zfs create ldmpool/ldg2
primary# zfs clone ldmpool/ldg1/disk0@version_1 ldmpool/ldg2/disk0

ldompool/ldg2/disk0 は、仮想ディスクとしてエクスポートして、新規の ldg2 ドメインに割り当てることができます。ドメイン ldg2 は、OS のインストールプロセスを実行しなくても、この仮想ディスクから直接起動することができます。

起動ディスクイメージの複製

起動ディスクを複製した場合、新しいイメージは元の起動ディスクと全く同一であり、イメージの複製前に起動ディスクに格納されていたホスト名、IP アドレス、マウントされているファイルシステムテーブル、システム構成、チューニングなどの情報が含まれています。

マウントされているファイルシステムテーブルは、元の起動ディスクイメージ上と複製されたディスクイメージ上で同じであるため、複製されたディスクイメージは、元のドメインの場合と同じ順序で新規ドメインに割り当てる必要があります。たとえば、起動ディスクイメージが元のドメインの 1 番めのディスクとして割り当てられていた場合は、複製されたディスクイメージを新規ドメインの 1 番めのディスクとして割り当てる必要があります。このようにしない場合、新規ドメインは起動できなくなります。

元のドメインが静的 IP アドレスで構成されていた場合、複製されたイメージを使用する新規ドメインは、同じ IP アドレスで始まります。この場合は、sys-unconfig(1M) コマンドを使用すると、新規ドメインのネットワーク構成を変更できます。この問題を回避するために、未構成のシステムのディスクイメージのスナップショットを作成することもできます。

元のドメインが動的ホスト構成プロトコル (DHCP) で構成されていた場合は、複製されたイメージを使用する新規ドメインも、DHCP を使用します。この場合、新規ドメインの起動時に、IP アドレスとそのネットワーク構成を自動的に受け取るため、新規ドメインのネットワーク構成を変更する必要はありません。


注 –

ドメインのホスト ID は起動ディスクには格納されませんが、ドメインの作成時に Logical Domains Manager によって割り当てられます。このため、ディスクイメージを複製した場合、その新規ドメインは元のドメインのホスト ID を保持しません。


Procedure未構成システムのディスクイメージのスナップショットを作成する

  1. 元のドメインをバインドし、起動します。

  2. sys-unconfig コマンドを実行します。

  3. sys-unconfig コマンドが完了すると、このドメインは停止します。

  4. ドメインを停止し、バインドを解除します。ドメインを再起動しないでください

  5. ドメインの起動ディスクイメージのスナップショットを作成します。

    次に例を示します。


    primary# zfs snapshot ldmpool/ldg1/disk0@unconfigured
    

    この時点でのスナップショットは、未構成システムの起動ディスクイメージです。

  6. このイメージを複製して新規ドメインを作成します。このドメインの最初の起動時に、システムを構成するように求められます。

論理ドメイン環境でのボリュームマネージャーの使用

この節では、論理ドメイン環境でのボリュームマネージャーの使用法について説明します。

ボリュームマネージャーでの仮想ディスクの使用

ZFS (Zettabyte File System)、Solaris ボリュームマネージャー (SVM)、または Veritas Volume Manager (VxVM) は、サービスドメインからゲストドメインに仮想ディスクとしてエクスポートできます。ボリュームは、1 つのスライスディスク (slice オプションが ldm add-vdsdev コマンドで指定されている場合) またはフルディスクのいずれかとしてエクスポートできます。


注 –

この節の残りの部分では、例として SVM ボリュームを使用します。ただし、説明は ZFS および VxVM ボリュームにも適用されます。


次の例に、ボリュームを 1 つのスライスディスクとしてエクスポートする方法を示します。

ゲストドメインの仮想ディスク (たとえば /dev/dsk/c0d2s0) は関連付けられたボリューム (たとえば /dev/md/dsk/d0) に直接割り当てられ、ゲストドメインからの仮想ディスクに格納されたデータは、メタデータを追加せずに関連付けられたボリュームに直接格納されます。そのためゲストドメインからの仮想ディスクに格納されたデータは、関連付けられたボリュームを介してサービスドメインから直接アクセスすることもできます。

SVM での仮想ディスクの使用

RAID またはミラー SVM ボリュームが別のドメインで仮想ディスクとして使用される場合は、排他 (excl) オプションを設定せずにエクスポートする必要があります。このようにしないと、SVM ボリュームのいずれかのコンポーネントで障害が発生したときに、metareplace コマンドまたはホットスペアを使用した SVM ボリュームの復旧が開始されません。metastat コマンドはそのボリュームを再同期化中と判断しますが、再同期化は進行していません。

たとえば、/dev/md/dsk/d0excl オプションを使用して別のドメインに仮想ディスクとしてエクスポートされた RAID SVM ボリュームで、d0 にはいくつかのホットスペアデバイスが構成されているとします。d0 のコンポーネントに障害が発生すると、SVM は障害の発生したコンポーネントをホットスペアに交換して、ふたたび SVM ボリュームとの同期をとります。ただし、再同期化は開始されません。ボリュームは再同期化中として報告されますが、再同期化は進行していません。


# metastat d0
d0: RAID
    State: Resyncing
    Hot spare pool: hsp000
    Interlace: 32 blocks
    Size: 20097600 blocks (9.6 GB)
Original device:
    Size: 20100992 blocks (9.6 GB)
Device                                     Start Block  Dbase   State Reloc
c2t2d0s1                                           330  No       Okay  Yes
c4t12d0s1                                          330  No       Okay  Yes
/dev/dsk/c10t600C0FF0000000000015153295A4B100d0s1  330  No  Resyncing  Yes

このような状況で再同期化を完了するには、SVM ボリュームを仮想ディスクとして使用しているドメインを停止してバインドを解除する必要があります。そのあと、metasync コマンドを使用して、SVM ボリュームを再同期化できます。


# metasync d0

VxVM のインストール時の仮想ディスクの使用

システムに Veritas Volume Manager (VxVM) がインストールされていて、仮想ディスクとしてエクスポートする物理ディスクまたはパーティションで Veritas Dynamic Multipathing (DMP) が有効な場合は、excl オプション (デフォルトではない) を設定せずにそのディスクまたはパーティションをエクスポートする必要があります。そうしない場合、このようなディスクを使用するドメインをバインドする間に /var/adm/messages にエラーが出力されます。


vd_setup_vd():  ldi_open_by_name(/dev/dsk/c4t12d0s2) = errno 16
vds_add_vd():  Failed to add vdisk ID 0

コマンド vxdisk list で出力されるマルチパス化情報を調べると、Veritas DMP が有効であるかどうかを確認できます。次に例を示します。


# vxdisk list Disk_3
Device:    Disk_3
devicetag: Disk_3
type:      auto
info:      format=none
flags:     online ready private autoconfig invalid
pubpaths:  block=/dev/vx/dmp/Disk_3s2 char=/dev/vx/rdmp/Disk_3s2
guid:      -
udid:      SEAGATE%5FST336753LSUN36G%5FDISKS%5F3032333948303144304E0000
site:      -
Multipathing information:
numpaths:  1
c4t12d0s2  state=enabled

また、excl オプションを設定して仮想ディスクとしてエクスポートするディスクまたはスライスで Veritas DMP が有効になっている場合は、vxdmpadm コマンドを使用して DMP を無効にすることもできます。次に例を示します。


# vxdmpadm -f disable path=/dev/dsk/c4t12d0s2

仮想ディスクでのボリュームマネージャーの使用

この節では、仮想ディスクでのボリュームマネージャーの使用法について説明します。

仮想ディスクでの ZFS の使用

仮想ディスクは ZFS とともに使用できます。ZFS ストレージプール (zpool) は、この zpool の一部であるすべてのストレージデバイスを認識する任意のドメインにインポートできます。ドメインが、これらのすべてのデバイスを仮想デバイスまたは実デバイスのどちらで認識するかは関係ありません。

仮想ディスクでの SVM の使用

仮想ディスクは、SVM ローカルディスクセットで使用できます。たとえば、仮想ディスクは、ローカルディスクセットの SVM メタデバイス状態データベース metadb(1M) の格納またはローカルディスクセットでの SVM ボリュームの作成に使用できます。

バックエンドが SCSI ディスクであるすべての仮想ディスクは、SVM 共有ディスクセット metaset(1M) で使用できます。バックエンドが SCSI ディスクでない仮想ディスクは、SVM 共有ディスクセットに追加できません。バックエンドが SCSI ディスクでない仮想ディスクを SVM 共有ディスクセットに追加しようとすると、次のようなエラーが表示されて失敗します。


# metaset -s test -a c2d2
metaset: domain1: test: failed to reserve any drives

仮想ディスクでの VxVM の使用

ゲストドメインでの VxVM サポートについては、Symantec 社の VxVM ドキュメントを参照してください。