この章では、Logical Domains ソフトウェアで仮想ディスクを使用する方法について説明します。
この章の内容は次のとおりです。
仮想ディスクには、2 つの構成要素があります。ゲストドメインに表示される仮想ディスク自体と、データの格納先であり仮想 I/O の終端である仮想ディスクバックエンドです。仮想ディスクバックエンドは、仮想ディスクサーバー (vds) ドライバによって、サービスドメインからエクスポートされます。vds ドライバは、論理ドメインチャネル (LDC) を使用して、ハイパーバイザを介してゲストドメインの仮想ディスククライアント (vdc) ドライバと通信します。最終的には、仮想ディスクはゲストドメイン内の /dev/[r]dsk/cXdYsZ デバイスとして表示されます。
仮想ディスクバックエンドは、物理的でも論理的でもかまいません。物理デバイスには、次のものを含めることができます。
物理ディスクまたはディスク論理ユニット番号 (LUN)
物理ディスクスライス
論理デバイスは、次のいずれかにすることができます。
ZFS、UFS などのファイルシステムのファイル
ZFS、VxVM、SolarisTM Volume Manager (SVM) などのボリュームマネージャーからの論理ボリューム
サービスドメインからアクセス可能な任意のディスク疑似デバイス
この節では、ゲストドメインへの仮想ディスクの追加、仮想ディスクオプションとタイムアウトオプションの変更、およびゲストドメインからの仮想ディスクの削除について説明します。仮想ディスクオプションの説明については、「仮想ディスクバックエンドオプション」 を参照してください。仮想ディスクのタイムアウトの説明については、「仮想ディスクのタイムアウト」 を参照してください。
仮想ディスクバックエンドをサービスドメインからエクスポートします。
# ldm add-vdsdev [options={ro,slice,excl}] [mpgroup=mpgroup] \ backend volume-name@service-name |
このバックエンドをゲストドメインに割り当てます。
# ldm add-vdisk [timeout=seconds] [id=disk-id] disk-name volume-name@service-name ldom |
id プロパティーを設定して、新しい仮想ディスクデバイスの ID を指定できます。デフォルトでは ID 値は自動的に生成されるため、OS で既存のデバイス名に一致させる必要がある場合に、このプロパティーを設定します。「仮想ディスクの識別子とデバイス名」 を参照してください。
バックエンドは、ゲストドメイン (ldom) がバインドされたときに、実際にサービスドメインからエクスポートされ、ゲストドメインに割り当てられます。
仮想ディスクバックエンドは、同じ仮想ディスクまたは別の仮想ディスクサーバーのいずれかを介して複数回エクスポートできます。仮想ディスクバックエンドのエクスポートされたインスタンスは、それぞれ同じゲストドメインまたは別のゲストドメインのいずれかに割り当てることができます。
仮想ディスクバックエンドを複数回エクスポートする場合は、排他 (excl) オプションを指定してエクスポートしないでください。excl オプションを指定すると、バックエンドのエクスポートは 1 回のみ許可されます。ro オプションを指定すると、バックエンドは読み取り専用デバイスとして問題なく複数回エクスポートできます。
仮想ディスクバックエンドが複数回エクスポートされる際は、ゲストドメインで動作中のアプリケーションおよびその仮想ディスクを使用中のアプリケーションが、同時の書き込みアクセスを調整および同期化して、データの一貫性を確保する役割を果たします。
次の例では、同じ仮想ディスクサービスを介して 2 つの異なるゲストドメインに同じ仮想ディスクを追加する方法について説明します。
次のコマンドを使用して、サービスドメインから仮想ディスクバックエンドを 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 回目のエクスポートを強制実行します。両方のコマンドに同じバックエンドパスを使用する場合や、仮想ディスクサーバーが同じサービスドメインに存在する場合に、このオプションを使用します。
次のコマンドを使用して、エクスポートされたバックエンドを各ゲストドメインに割り当てます。
ldom1 と ldom2 には、異なる disk-name を指定できます。
# ldm add-vdisk [timeout=seconds] disk-name volume1@service-name ldom1 # ldm add-vdisk [timeout=seconds] disk-name volume2@service-name ldom2 |
サービスドメインからバックエンドがエクスポートされたあとに、次のコマンドを使用して仮想ディスクオプションを変更できます。
# ldm set-vdsdev options=[{ro,slice,excl}] volume-name@service-name |
仮想ディスクがゲストドメインに割り当てられたあとに、次のコマンドを使用して仮想ディスクのタイムアウトを変更できます。
# ldm set-vdisk timeout=seconds disk-name ldom |
次のコマンドを使用して、ゲストドメインから仮想ディスクを削除します。
# ldm rm-vdisk disk-name ldom |
次のコマンドを使用して、サービスドメインからの対応するバックエンドのエクスポートを停止します。
# 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 ドメインに、rootdisk と pdisk という 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 つのスライス (s0 ~ s7) を持つ通常のディスクとしてドメインに表示されます。このようなディスクは、format(1M) コマンドを使用して表示できます。ディスクのパーティションテーブルは、fmthard(1M) または format(1M) コマンドのいずれかを使用して変更できます。
また、フルディスクは OS インストールソフトウェアからも表示でき、OS のインストール先のディスクとして選択できます。
どのバックエンドも、フルディスクとしてエクスポートできます。ただし、1 つのスライスディスクとしてのみエクスポート可能な物理ディスクスライスは除きます。
バックエンドを 1 つのスライスディスクとしてドメインにエクスポートすると、8 つのスライス (s0 ~ s7) を持つ通常のディスクとしてドメインに表示されます。ただし、使用できるのは 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= 引数にコンマ区切りのリストとして指定します。有効なオプションは、ro、slice、および excl です。
読み取り専用 (ro) オプションは、バックエンドが読み取り専用デバイスとしてエクスポートされることを指定します。その場合、ゲストドメインに割り当てられるこの仮想ディスクに対しては読み取り操作のアクセスのみが可能で、仮想ディスクへの書き込み操作は失敗します。
排他 (excl) オプションは、サービスドメインのバックエンドを仮想ディスクとして別のドメインにエクスポートするときに、仮想ディスクサーバーによって排他的に開かれる必要があることを指定します。バックエンドが排他的に開かれると、サービスドメインのほかのアプリケーションがこのバックエンドにアクセスすることはできません。これによって、サービスドメインで動作するアプリケーションが、ゲストドメインでも使用されているバックエンドを誤って使用することはなくなります。
ドライバには excl オプションを受け入れないものもあるため、一部の仮想ディスクバックエンドを排他的に開くことが許可されません。excl オプションが物理ディスクおよびスライスで機能することはわかっていますが、このオプションはファイルでは機能しません。ディスクボリュームなどの擬似デバイスでは機能する場合と機能しない場合があります。バックエンドのドライバで排他的オープンが受け入れられない場合、バックエンドの excl オプションは無視され、バックエンドは排他的に開かれません。
excl オプションによって、サービスドメインで動作中のアプリケーションが、ゲストドメインにエクスポートされるバックエンドにアクセスできなくなるため、次の場合は excl オプションを設定しないでください。
ゲストドメインの動作中に format(1M)、luxadm(1M) などのコマンドを使用して物理ディスクを管理できるようにする場合は、これらの物理ディスクをエクスポートする際に excl オプションを指定しないでください。
RAID、ミラー化ボリュームなどの SVM ボリュームをエクスポートする場合は、excl オプションを設定しないでください。このようにしないと、RAID またはミラー化ボリュームのコンポーネントに障害が発生した場合に、SVM で一部の復旧処理の開始が妨げられる可能性があります。詳細は、「SVM での仮想ディスクの使用」 を参照してください。
Veritas Volume Manager (VxVM) がサービスドメインにインストールされていて、Veritas Dynamic Multipathing (VxDMP) が物理ディスクに対して有効な場合は、excl オプション (デフォルトではない) を指定せずに物理ディスクをエクスポートする必要があります。このようにしないと、仮想ディスクサーバー (vds) が物理ディスクデバイスを開くことができないため、エクスポートは失敗します。詳細は、「VxVM のインストール時の仮想ディスクの使用」 を参照してください。
同じ仮想ディスクバックエンドを同じ仮想ディスクサービスから複数回エクスポートする場合の詳細は、「仮想ディスクバックエンドを複数回エクスポートする」 を参照してください。
デフォルトでは、バックエンドは排他的ではない状態で開かれます。このため、バックエンドが別のドメインにエクスポートされている間でも、サービスドメインで動作中のアプリケーションはこのバックエンドを使用できます。これは、Solaris 10 5/08 OS リリースから導入された新しい動作です。Solaris 10 5/08 OS より前のリリースでは、ディスクバックエンドは常に排他的に開かれ、バックエンドを排他的でない状態で開くことはできませんでした。
通常、バックエンドは、その種類に応じてフルディスクまたは 1 つのスライスディスクのいずれかとしてエクスポートされます。slice オプションを指定すると、バックエンドは強制的に 1 つのスライスディスクとしてエクスポートされます。
このオプションは、バックエンドの raw コンテンツをエクスポートする場合に便利です。たとえば、データを格納済みの ZFS または SVM ボリュームがある場合に、ゲストドメインでこのデータにアクセスするには、slice オプションを使用して ZFS または SVM ボリュームをエクスポートする必要があります。
このオプションの詳細は、「仮想ディスクバックエンド」 を参照してください。
仮想ディスクバックエンドは、仮想ディスクのデータの格納場所です。バックエンドには、ディスク、ディスクスライス、ファイル、またはボリューム (ZFS、SVM、VxVM など) を使用できます。バックエンドは、バックエンドをサービスドメインからエクスポートする際に slice オプションを設定するかどうかに応じて、フルディスクまたは 1 つのスライスディスクのいずれかとしてゲストドメインに表示されます。デフォルトでは、仮想ディスクバックエンドは読み取りおよび書き込み可能なフルディスクとして排他的でない状態でエクスポートされます。
物理ディスクまたはディスク LUN は、常にフルディスクとしてエクスポートされます。この場合、仮想ディスクドライバ (vds および vdc) は仮想ディスクからの入出力を転送し、物理ディスクまたはディスク LUN へのパススルーとして動作します。
slice オプションを設定せずにそのディスクのスライス 2 (s2) に対応するデバイスをエクスポートすると、物理ディスクまたはディスク LUN はサービスドメインからエクスポートされます。slice オプションを指定してディスクのスライス 2 をエクスポートすると、ディスク全体ではなくこのスライスのみがエクスポートされます。
物理ディスクを仮想ディスクとしてエクスポートします。
たとえば、物理ディスク c1t48d0 を仮想ディスクとしてエクスポートするには、そのディスクのスライス 2 (c1t48d0s2) をエクスポートする必要があります。
primary# ldm add-vdsdev /dev/dsk/c1t48d0s2 c1t48d0@primary-vds0 |
このディスクをゲストドメインに割り当てます。
たとえば、ディスク pdisk をゲストドメイン ldg1 に割り当てます。
primary# ldm add-vdisk pdisk c1t48d0@primary-vds0 ldg1 |
ゲストドメインが起動されて 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 つのスライスディスクとしてエクスポートする必要があります。このようにしないと、ディスク全体がフルディスクとしてエクスポートされます。
物理ディスクのスライスを仮想ディスクとしてエクスポートします。
たとえば、物理ディスク c1t57d 0 のスライス 0 を仮想ディスクとしてエクスポートするには、そのスライス (c1t57d0s0) に対応するデバイスを次のようにエクスポートする必要があります。
primary# ldm add-vdsdev /dev/dsk/c1t57d0s0 c1t57d0s0@primary-vds0 |
スライスは常に 1 つのスライスディスクとしてエクスポートされるため、slice オプションを指定する必要はありません。
このディスクをゲストドメインに割り当てます。
たとえば、ディスク pslice をゲストドメイン ldg1 に割り当てます。
primary# ldm add-vdisk pslice c1t57d0s0@primary-vds0 ldg1 |
ゲストドメインが起動されて 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) のみです。
スライス 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) を実行してパーティションを作成する必要があります。
サービスドメインから、ファイル (fdisk0 など) を作成して仮想ディスクとして使用します。
service# mkfile 100m /ldoms/domain/test/fdisk0 |
ファイルのサイズによって、仮想ディスクのサイズが定義されます。この例では、100M バイトの空のファイルを作成して、100M バイトの仮想ディスクを取得しています。
制御ドメインから、ファイルを仮想ディスクとしてエクスポートします。
primary# ldm add-vdsdev /ldoms/domain/test/fdisk0 fdisk0@primary-vds0 |
この例では、slice オプションを設定していないため、ファイルはフルディスクとしてエクスポートされます。
制御ドメインから、ディスクをゲストドメインに割り当てます。
たとえば、ディスク fdisk をゲストドメイン ldg1 に割り当てます。
primary# ldm add-vdisk fdisk fdisk0@primary-vds0 ldg1 |
ゲストドメインが起動されて 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 |
slice オプションを設定すると、ファイルまたはボリュームは 1 つのスライスディスクとしてエクスポートされます。この場合、仮想ディスクには 1 つのパーティション (s0) のみが含まれ、このパーティションが直接ファイルまたはボリュームバックエンドにマップされます。ファイルまたはボリュームには仮想ディスクに書き込まれるデータのみが含まれ、パーティション情報やディスク構造などの追加データは含まれません。
ファイルまたはボリュームが 1 つのスライスディスクとしてエクスポートされると、システムは擬似的なディスクのパーティション分割のシミュレーションを行います。これにより、そのファイルまたはボリュームはディスクスライスとして表示されます。ディスクのパーティション分割のシミュレーションが行われるため、そのディスクに対してパーティションは作成しないでください。
ZFS ボリュームを作成して、1 つのスライスディスクとして使用します。
次の例は、ZFS ボリューム zdisk0 を作成して、1 つのスライスディスクとして使用する方法を示しています。
service# zfs create -V 100m ldoms/domain/test/zdisk0 |
ボリュームのサイズによって、仮想ディスクのサイズが定義されます。この例では、100M バイトのボリュームを作成して、100M バイトの仮想ディスクを取得しています。
制御ドメインから、その ZFS ボリュームに対応するデバイスをエクスポートします。このボリュームが 1 つのスライスディスクとしてエクスポートされるように slice オプションを設定します。
primary# ldm add-vdsdev options=slice /dev/zvol/dsk/ldoms/domain/test/zdisk0 \ zdisk0@primary-vds0 |
制御ドメインから、ボリュームをゲストドメインに割り当てます。
次の例は、ボリューム zdisk0 をゲストドメイン ldg1 に割り当てる方法を示しています。
primary# ldm add-vdisk zdisk0 zdisk0@primary-vds0 ldg1 |
ゲストドメインが起動されて 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 つのスライスディスクとしてエクスポートするには、次のいずれかを実行する必要があります。
LogicalDomains1.3 ソフトウェアで ldm set-vdsdev コマンドを使用して、1 つのスライスディスクとしてエクスポートするすべてのボリュームに slice オプションを設定します。このコマンドの詳細は、ldm(1M) マニュアルページを参照してください。
次の行を、サービスドメインの /etc/system ファイルに追加します。
set vds:vd_volume_force_slice = 1 |
この調整可能なオプションを設定すると、すべてのボリュームが強制的に 1 つのスライスディスクとしてエクスポートされ、ボリュームをフルディスクとしてエクスポートできなくなります。
バックエンド |
スライスオプションなし |
スライスオプションを設定 |
---|---|---|
ディスク (ディスクスライス 2) | ||
ディスクスライス (スライス 2 以外) |
1 つのスライスディスク |
|
ファイル |
フルディスク |
1 つのスライスディスク |
ボリューム (ZFS、SVM、VxVM など) |
フルディスク |
1 つのスライスディスク |
この節では、ファイルおよびディスクスライスを仮想ディスクとしてエクスポートする場合のガイドラインを示します。
ループバックファイル (lofi) ドライバを使用すると、ファイルを仮想ディスクとしてエクスポートできます。ただし、これを行うと別のドライバ層が追加され、仮想ディスクのパフォーマンスに影響を及ぼします。代わりに、フルディスクまたは 1 つのスライスディスクとしてファイルを直接エクスポートすることができます。「ファイルおよびボリューム」 を参照してください。
仮想ディスクとしてスライスを直接的に、または SVM ボリュームを介すなどして間接的にエクスポートするには、prtvtoc(1M) コマンドを使用して、スライスが物理ディスクの最初のブロック (ブロック 0) で開始されていないことを確認します。
物理ディスクの最初のブロックから始まるディスクスライスを直接的または間接的にエクスポートする場合は、物理ディスクのパーティションテーブルを上書きして、そのディスクのすべてのパーティションにアクセスできないようにすることもできます。
さまざまなサービスドメインを介して仮想ディスクバックエンドにアクセスできる場合は、仮想ディスクマルチパスを構成して、サービスドメインがダウンしても、ゲストドメイン内の仮想ディスクにアクセス可能にすることができます。さまざまなサービスドメインを介してアクセス可能な仮想ディスクバックエンドの例として、複数のサービスドメインに接続されたネットワークファイルシステム (NFS) サーバー上または共有物理ディスク上のファイルがあります。
仮想ディスクマルチパスを有効にするには、別のサービスドメインから仮想ディスクバックエンドをエクスポートし、同じマルチパスグループ (mpgroup) に追加する必要があります。仮想ディスクバックエンドがエクスポートされると、mpgroup は名前で識別され、構成されます。
次の図は、仮想ディスクマルチパスの構成方法を示しています。この例では、foo というマルチパスグループを使用して仮想ディスクを作成しています。そのバックエンドには、第一サービスドメインと代替サービスドメインの 2 つからアクセスできます。
仮想バックエンドを第一サービスドメインからエクスポートします。
# ldm add-vdsdev mpgroup=foo backend-path1 volume@primary-vds0 |
backend-path1 は、第一サービスドメインから仮想ディスクバックエンドへのパスです。
同じ仮想バックエンドを代替サービスドメインからエクスポートします。
# ldm add-vdsdev mpgroup=foo backend-path2 volume@alternate-vds0 |
backend-path2 は、代替サービスドメインから仮想ディスクバックエンドへのパスです。
backend-path1 および backend-path2 は、同じ仮想ディスクバックエンドへのパスですが、それらのエクスポート元は異なる 2 つのドメイン (第一と代替) です。これらのパスは、第一サービスドメインおよび代替サービスドメインの構成に応じて、同じ場合もあれば、異なる場合もあります。volume 名はユーザーが選択します。これは、両方のコマンドで同じ場合もあれば、異なる場合もあります。
仮想ディスクをゲストドメインにエクスポートします。
# ldm add-vdisk disk-name volume@primary-vds0 ldom |
仮想ディスクバックエンドを複数のサービスドメインを介して複数回エクスポートしていますが、ゲストドメインに割り当てて、いずれかのサービスドメインを介して仮想ディスクバックエンドに関連付ける仮想ディスクは 1 つのみです。
仮想ディスクをマルチパスで構成し、ゲストドメインを起動すると、仮想ディスクは関連付けられているサービスドメイン (この例では第一サービスドメイン) を介してバックエンドにアクセスします。このサービスドメインが利用できなくなると、仮想ディスクは、同じマルチパスグループに属する別のサービスドメインを介してバックエンドへのアクセスを試みます。
マルチパスグループ (mpgroup) を定義する場合、同じ mpgroup に属する仮想ディスクバックエンドは、事実上同じ仮想ディスクバックエンドにする必要があります。異なる仮想ディスクのバックエンドを同じ mpgroup に追加すると、予期しない動作が生じ、それらのバックエンドに格納されているデータが消失または破損する可能性があります。
コンパクトディスク (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 を要求するインストール手順は省略する必要がある場合があります。または、要求されたメディアにアクセスするための代替パスを指定する必要があります。
サービスドメインから、ボリューム管理デーモンの vold(1M) が動作中でオンラインかどうかを確認します。
service# svcs volfs STATE STIME FMRI online 12:28:12 svc:/system/filesystem/volfs:default |
次のいずれかを実行します。
ボリューム管理デーモンが動作中またはオンラインでない場合は、手順 3 に進みます。
手順 1 の例に示すように、ボリューム管理デーモンが動作中でオンラインの場合は、次の手順を実行します。
/etc/vold.conf ファイルを編集して、次の文字列で始まる行をコメントアウトします。
use cdrom drive.... |
vold.conf(4) マニュアルページを参照してください。
CD または DVD ドライブに CD または DVD を挿入します。
サービスドメインから、ボリューム管理ファイルシステムサービスを再起動します。
service# svcadm refresh volfs service# svcadm restart volfs |
サービスドメインから、CD-ROM デバイスのディスクパスを検出します。
Solaris 10 OS の場合、cdrw -l コマンドを実行します。
service# cdrw -l Looking for CD devices... Node Connected Device Device type ----------------------+--------------------------------+----------------- /dev/rdsk/c1t0d0s2 | MATSHITA CD-RW CW-8124 DZ13 | CD Reader/Writer |
OpenSolaris OS の場合、rmmount -l コマンドを実行します。
service# rmmount -l /dev/dsk/c1t0d0s2 cdrom,cdrom0,cd,cd0,sr,sr0,OpenSolaris,/media/OpenSolaris |
CD または DVD ディスクデバイスをフルディスクとしてエクスポートします。
primary# ldm add-vdsdev /dev/dsk/c1t0d0s2 cdrom@primary-vds0 |
エクスポートされた CD または DVD をゲストドメインに割り当てます。
次の例は、エクスポートされた CD または DVD をドメイン ldg1 に割り当てる方法を示しています。
primary# ldm add-vdisk cdrom cdrom@primary-vds0 ldg1 |
CD または DVD は複数回エクスポートし、異なるゲストドメインに割り当てることができます。詳細は、「仮想ディスクバックエンドを複数回エクスポートする」 を参照してください。
ここでは、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 |
仮想ディスクサーバーデバイスを追加して、ISO イメージをエクスポートします。
この例では、ISO イメージは /export/images/sol-10-u8-ga-sparc-dvd.iso です。
# ldm add-vdsdev /export/images/sol-10-u8-ga-sparc-dvd.iso dvd-iso@primary-vds0 |
ゲストドメインを停止します。
この例では、論理ドメインは ldom1 です。
# ldm stop-domain ldom1 LDom ldom1 stopped |
ISO イメージの仮想ディスクを論理ドメインに追加します。
この例では、論理ドメインは ldom1 です。
# ldm add-vdisk s10-dvd dvd-iso@primary-vds0 ldom1 |
ゲストドメインを再起動します。
この例では、論理ドメインは 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 ドメインが起動されたばかりであることが表示されています。
ゲストドメインに接続します。
# 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 .. |
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 です。
ゲストドメインを起動して、ISO イメージからインストールします。
この例では、/virtual-devices@100/channel-devices@200/disk@1 ディスクの f スライスから起動します。
{0} ok boot /virtual-devices@100/channel-devices@200/disk@1:f |
デフォルトでは、仮想ディスクバックエンドへのアクセスを提供するサービスドメインが停止すると、ゲストドメインから対応する仮想ディスクへのすべての入出力がブロックされます。サービスドメインが動作していて、仮想ディスクバックエンドへの入出力要求が処理されている場合、入出力は自動的に再開されます。
ただし、サービスドメインの停止状態が長すぎる場合には、ファイルシステムまたはアプリケーションにとって、入出力処理がブロックされるよりも、入出力処理が失敗してエラーが報告される方が望ましい場合があります。現在は、仮想ディスクごとに接続タイムアウト時間を設定することが可能になり、ゲストドメインの仮想ディスククライアントとサービスドメインの仮想ディスクサーバー間の接続確立に使用できます。タイムアウト時間に達した場合、サービスドメインが停止し、仮想ディスククライアントと仮想ディスクサーバー間の接続が再確立されていない間中、保留中の入出力および新規の入出力は失敗します。
このタイムアウトは、次のいずれかを実行すると設定できます。
ldm add-vdisk コマンドを使用します。
ldm add-vdisk timeout=seconds disk-name volume-name@service-name ldom |
ldm set-vdisk コマンドを使用します。
ldm set-vdisk timeout=seconds disk-name ldom |
タイムアウトは秒単位で指定します。タイムアウトを 0 に設定すると、タイムアウトは無効になり、サービスドメインの停止中は入出力がブロックされます (デフォルトの設定および動作)。
また、ゲストドメインの /etc/system ファイルに次の行を追加すると、タイムアウトを設定できます。
set vdc:vdc_timeout=seconds |
この調整可能なオプションを設定すると、ldm CLI を使用して設定されたタイムアウトが上書きされます。また、この調整可能なオプションはゲストドメインのすべての仮想ディスクのタイムアウトを設定します。
物理 SCSI ディスクまたは LUN をフルディスクとしてエクスポートする場合、対応する仮想ディスクでは、ユーザー SCSI コマンドインタフェース uscsi(7I) および多重ホストディスク制御操作 mhd(7i) がサポートされます。バックエンドとしてファイルまたはボリュームを含む仮想ディスクなど、その他の仮想ディスクでは、これらのインタフェースはサポートされません。
そのため、SCSI コマンド (SVM metaset、Solaris Cluster shared devices など) を使用するアプリケーションまたは製品機能は、バックエンドとして物理 SCSI ディスクを含む仮想ディスクのみを使用するゲストドメインで使用できます。
SCSI 操作は、仮想ディスクバックエンドとして使用される物理 SCSI ディスクまたは LUN を管理するサービスドメインによって効果的に実行されます。特に、サービスドメインは SCSI の予約を行います。このため、サービスドメインおよびゲストドメインで動作するアプリケーションは、同じ物理 SCSI ディスクに対して SCSI コマンドを発行するべきではありません。そうでないと、ディスクが予期しない状態になる可能性があります。
format(1M) コマンドは、ドメイン上に存在するすべての仮想ディスクを認識します。ただし、1 つのスライスディスクとしてエクスポートされた仮想ディスクの場合、format コマンドでは、仮想ディスクのパーティションテーブルを変更できません。label などのコマンドは失敗しますが、書き込もうとするディスクラベルが仮想ディスクにすでに関連付けられているラベルに類似している場合は除きます。
バックエンドが SCSI ディスクである仮想ディスクでは、すべての format(1M) サブコマンドがサポートされています。バックエンドが SCSI ディスクでない仮想ディスクでは、repair、defect など、一部の format(1M) サブコマンドがサポートされていません。この場合、format(1M) の動作は、Integrated Drive Electronics (IDE) ディスクの動作に類似しています。
この節では、ゲストドメインにエクスポートされる仮想ディスクバックエンドを格納するために ZFS (Zettabyte File System) を使用する方法について説明します。ZFS は、仮想ディスクバックエンドを作成および管理するための便利で強力なソリューションです。ZFS では次のことを実行できます。
ZFS ボリュームまたは ZFS ファイルにディスクイメージを格納する
ディスクイメージのバックアップにスナップショットを使用する
ディスクイメージの複製と、追加ドメインのプロビジョニングに複製を使用する
ZFS の使用法の詳細は、『Solaris ZFS 管理ガイド』 を参照してください。
次の説明および例で示す primary ドメインは、ディスクイメージが格納されるサービスドメインでもあります。
ディスクイメージを格納するには、まずサービスドメインに ZFS ストレージプールを作成します。たとえば、次のコマンドでは、primary ドメインにディスク c1t50d0 が格納された ZFS ストレージプール ldmpool が作成されます。
primary# zpool create ldmpool c1t50d0 |
次のコマンドは、ゲストドメイン ldg1 にディスクイメージを作成します。このゲストドメイン用に ZFS ファイルシステムを作成し、このゲストドメインのすべてのディスクイメージをそのファイルシステムに格納します。
primary# zfs create ldmpool/ldg1 |
ディスクイメージは、ZFS ボリュームまたは ZFS ファイルに格納できます。ZFS ボリュームは、サイズにかかわらず、zfs create -V コマンドを使用すると迅速に作成できます。一方、ZFS ファイルは、mkfile コマンドを使用して作成する必要があります。このコマンドの完了まで少し時間がかかることがあります。特に、作成するファイルが非常に大きいときに時間がかかり、多くはディスクイメージの作成時に該当します。
ZFS ボリュームと ZFS ファイルはいずれも、スナップショットや複製など、ZFS 機能の利点を利用できますが、ZFS ボリュームは疑似デバイス、ZFS ファイルは通常のファイルです。
ディスクイメージを、Solaris OS のインストール先の仮想ディスクとして使用する場合は、次のものを収容できる容量を確保してください。
インストールされるソフトウェア - 約 6G バイト
スワップパーティション - 約 1G バイト
システムデータを格納するための特別なスペース - 1G バイト以上
したがって、Solaris OS 全体をインストールするためのディスクイメージのサイズは、8G バイト以上になります。
次の手順を実行します。
ZFS ボリュームまたは ZFS ファイルに 10G バイトのイメージを作成します。
ZFS ボリュームまたは ZFS ファイルを仮想ディスクとしてエクスポートします。ZFS ボリュームまたは ZFS ファイルをエクスポートする構文は同じですが、バックエンドへのパスは異なります。
エクスポートされた ZFS ボリュームまたは ZFS ファイルをゲストドメインに割り当てます。
ゲストドメインが起動すると、ZFS ボリュームまたは ZFS ファイルは、Solaris OS のインストールが可能な仮想ディスクとして表示されます。
たとえば、ZFS ボリュームに 10G バイトのディスクイメージを作成します。
primary# zfs create ldmpool/ldg1/disk0 primary# mkfile 10g /ldmpool/ldg1/disk0/file |
ZFS ボリュームを仮想ディスクとしてエクスポートします。
primary# ldm add-vdsdev /dev/zvol/dsk/ldmpool/ldg1/disk0 ldg1_disk0@primary-vds0 |
ZFS ファイルを仮想ディスクとしてエクスポートします。
primary# ldm add-vdsdev /ldmpool/ldg1/disk0/file ldg1_disk0@primary-vds0 |
ZFS ボリュームまたは ZFS ファイルをゲストドメイン (次の例では ldg1) に割り当てます。
primary# ldm add-vdisk disk0 ldg1_disk0@primary-vds0 ldg1 |
ディスクイメージが ZFS ボリュームまたは ZFS ファイルに格納されている場合は、ZFS スナップショットコマンドを使用して、このディスクイメージのスナップショットを作成できます。
ディスクイメージに現在格納されているデータの一貫性を確保するため、ディスクイメージのスナップショットを作成する前に、ゲストドメインでそのディスクが現在使用されていないことを確認してください。ゲストドメインで確実にディスクが使用中ではない状態にするには、いくつかの方法があります。次のいずれかの手順を実行します。
ゲストドメインを停止し、バインドを解除します。これはもっとも安全な対処方法であり、また、ゲストドメインの起動ディスクとして使用されているディスクイメージのスナップショットを作成する場合に実行可能な唯一の方法です。
ゲストドメインで使用されていて、スナップショットの対象になるディスクのスライスのマウントを解除し、ゲストドメインで使用中のスライスがない状態にすることもできます。
この例では、ZFS レイアウトのため、ディスクイメージの格納場所が ZFS ボリュームまたは ZFS ファイルのどちらであっても、ディスクイメージのスナップショットを作成するコマンドは同じです。
ディスクイメージのスナップショットを作成したら、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 を保持しません。
元のドメインをバインドし、起動します。
sys-unconfig コマンドを実行します。
sys-unconfig コマンドが完了すると、このドメインは停止します。
ドメインを停止し、バインドを解除します。ドメインを再起動しないでください。
ドメインの起動ディスクイメージのスナップショットを作成します。
次に例を示します。
primary# zfs snapshot ldmpool/ldg1/disk0@unconfigured |
この時点でのスナップショットは、未構成システムの起動ディスクイメージです。
このイメージを複製して新規ドメインを作成します。このドメインの最初の起動時に、システムを構成するように求められます。
この節では、論理ドメイン環境でのボリュームマネージャーの使用法について説明します。
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 ボリューム d0 が primary ドメインから domain1 にエクスポートされる場合、domain1 の構成にはいくつかの手順が追加で必要になります。
primary# metainit d0 3 1 c2t70d0s6 1 c2t80d0s6 1 c2t90d0s6 primary# ldm add-vdsdev options=slice /dev/md/dsk/d0 vol3@primary-vds0 primary# ldm add-vdisk vdisk3 vol3@primary-vds0 domain1 |
domain1 がバインドされて起動されると、エクスポートされたボリュームが /dev/dsk/c0d2s0 のように表示され、そのボリュームが使用可能になります。
domain1# newfs /dev/rdsk/c0d2s0 domain1# mount /dev/dsk/c0d2s0 /mnt domain1# echo test-domain1 > /mnt/file |
domain1 が停止してバインドが解除されると、domain1 からの仮想ディスクに格納されたデータは SVM ボリューム d0 を介して primary ドメインから直接アクセスできます。
primary# mount /dev/md/dsk/d0 /mnt primary# cat /mnt/file test-domain1 |
RAID またはミラー SVM ボリュームが別のドメインで仮想ディスクとして使用される場合は、排他 (excl) オプションを設定せずにエクスポートする必要があります。このようにしないと、SVM ボリュームのいずれかのコンポーネントで障害が発生したときに、metareplace コマンドまたはホットスペアを使用した SVM ボリュームの復旧が開始されません。metastat コマンドはそのボリュームを再同期化中と判断しますが、再同期化は進行していません。
たとえば、/dev/md/dsk/d0 は excl オプションを使用して別のドメインに仮想ディスクとしてエクスポートされた 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 |
システムに 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 ストレージプール (zpool) は、この zpool の一部であるすべてのストレージデバイスを認識する任意のドメインにインポートできます。ドメインが、これらのすべてのデバイスを仮想デバイスまたは実デバイスのどちらで認識するかは関係ありません。
仮想ディスクは、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 サポートについては、Symantec 社の VxVM ドキュメントを参照してください。