ナビゲーションリンクをスキップ
印刷ビューの終了
| Oracle VM Server for SPARC 3.0 管理ガイド Oracle VM Server for SPARC (日本語)

検索範囲:

- このドキュメント
- ライブラリ全体

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

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

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

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

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

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

| 注意 - 仮想ディスクを構成する際には、各仮想ディスクが物理ディスク、ディスクスライス、ファイル、ボリュームなどの個別の物理 (バックエンド) リソースを参照していることを確認してください。 FibreChannel や SAS などの一部のディスクは、2 つの異なるパスから同じディスクを参照できることを意味する「デュアルポート」の特徴を備えています。異なるドメインに割り当てられたパスが同じ物理ディスクを参照していないことを確認してください。

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. ゲストドメインが起動されて Oracle 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 つのスライスディスクとしてエクスポートする必要があります。このようにしないと、ディスク全体がフルディスクとしてエクスポートされます。

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

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

   たとえば、物理ディスク `c1t57d 0` のスライス 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. ゲストドメインが起動されて Oracle 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 をエクスポートする方法

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

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

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

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

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

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

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

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

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

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. ゲストドメインが起動されて Oracle 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

### ZFS ボリュームをフルディスクとしてエクスポートする方法

1. フルディスクとして使用する ZFS ボリュームを作成します。

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

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

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

2. 制御ドメインから、その ZFS ボリュームに対応するデバイスをエクスポートします。

       primary# ldm add-vdsdev /dev/zvol/dsk/ldoms/domain/test/zdisk0 \
       zdisk0@primary-vds0

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

3. 制御ドメインから、ボリュームをゲストドメインに割り当てます。

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

       primary# ldm add-vdisk zdisk0 zdisk0@primary-vds0 ldg1

4. ゲストドメインが起動されて Oracle Solaris OS が実行されたら、そのディスクがアクセス可能であり、フルディスクであることを確認します。

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

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

       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

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

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

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

### ZFS ボリュームを 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. ゲストドメインが起動されて Oracle 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

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

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

- Oracle VM Server for SPARC 3.0 ソフトウェアで `ldm` `set-vdsdev` コマンドを使用して、1 つのスライスディスクとしてエクスポートするすべてのボリュームに `slice` オプションを設定します。このコマンドの詳細は、`ldm`(1M) マニュアルページを参照してください。

- 次の行を、サービスドメインの `/etc/system` ファイルに追加します。

      set vds:vd_volume_force_slice = 1

  注 - この調整可能なオプションを設定すると、すべてのボリュームが強制的に 1 つのスライスディスクとしてエクスポートされ、ボリュームをフルディスクとしてエクスポートできなくなります。

#### 各種のバックエンドのエクスポート方法のサマリー

バックエンド | スライスオプションなし | スライスオプションを設定
--- | --- | ---
ディスク (ディスクスライス 2) | フルディスク1 | 1 つのスライスディスク2
ディスクスライス (スライス 2 以外) | 1 つのスライスディスク3 | 1 つのスライスディスク
ファイル | フルディスク | 1 つのスライスディスク
ボリューム (ZFS、Solaris Volume Manager、VxVM を含む) | フルディスク | 1 つのスライスディスク

1 ディスク全体をエクスポートします。

2 スライス 2 のみをエクスポートします。

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

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

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

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

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

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

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

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

Copyright © 2007, 2013, Oracle and/or its affiliates. All rights reserved. 著作権について |