Go to main content
Oracle® Solaris 11.3 での ZFS ファイルシステムの管理

印刷ビューの終了

更新: 2016 年 11 月
 
 

代替ルート場所で ZFS プールを使用する

プールは、本質的にホストシステムに結び付けられています。ホストシステムでは、プールに関する情報を管理しているので、プールが使用できなくなったときにそのことを自動的に検出することができます。この情報は、通常の操作では有効な情報ですが、代替メディアからブートするときまたはリムーバブルメディアにプールを作成するときには障害になることがあります。この問題を解決するために、ZFS には「代替ルート場所」プール機能が用意されています。代替ルートプール場所はシステムのリブート後は維持されません。すべてのマウントポイントはプールのルートに相対的であるように変更されます。

代替のルート場所で ZFS プールを作成する

代替場所でプールを作成する理由としてもっとも一般的なのは、リムーバブルメディアでの使用です。このような場合には、必要なファイルシステムは通常 1 つだけなので、ターゲットシステムでユーザーが選択した場所にマウントする必要があります。zpool create –R オプションを使用してプールが作成されると、ルートファイルシステムのマウントポイントは、代替ルートの値に相当する / に自動的に設定されます。

次の例では、morpheus という名前のプールが代替ルート場所としての /mnt に作成されます。

# zpool create -R /mnt morpheus c0t0d0
# zfs list morpheus
NAME                   USED  AVAIL  REFER  MOUNTPOINT
morpheus              32.5K  33.5G     8K  /mnt

ファイルシステムが 1 つだけで (morpheus)、そのマウントポイントがプールの代替ルート場所 /mnt であることに注意してください。ディスクに格納されているマウントポイントは、実際に / になっています。/mnt のフルパスは、プール作成のこの初期コンテキストでのみ解釈されます。そのあと、このファイルシステムをエクスポートし、–R alternate-root-value 構文を使用して別のシステム上の任意の代替ルート場所の下にインポートできます。

# zpool export morpheus
# zpool import morpheus
cannot mount '/': directory is not empty
# zpool export morpheus
# zpool import -R /mnt morpheus
# zfs list morpheus
NAME                   USED  AVAIL  REFER  MOUNTPOINT
morpheus              32.5K  33.5G     8K  /mnt

代替ルート場所でプールをインポートする

代替ルート場所を使って、プールをインポートすることもできます。この機能は、回復を行う状況で利用できます。つまり、マウントポイントを現在のルートマウントポイントのコンテキストではなく、修復を実行できるように一時的なディレクトリとして解釈するような状況で利用できます。前のセクションで説明したとおり、この機能はリムーバブルメディアをマウントするときにも使用できます。

次の例では、morpheus という名前のプールが代替ルートマウントポイントとしての /mnt にインポートされます。この例では、morpheus がすでにエクスポート済みであることを前提としています。

# zpool import -R /a pool
# zpool list morpheus
NAME   SIZE   ALLOC  FREE    CAP  HEALTH  ALTROOT
pool  44.8G    78K  44.7G     0%  ONLINE  /a
# zfs list pool
NAME   USED  AVAIL  REFER  MOUNTPOINT
pool  73.5K  44.1G    21K  /a/pool

一時的な名前でプールをインポートする

代替ルート場所でのプールのインポートに加えて、一時的な名前でプールをインポートできます。特定の共有ストレージまたは回復状況では、この機能により、同じ永続的な名前を持つ 2 つのプールを同時にインポートできます。これらのプールのいずれかを一時的な名前でインポートする必要があります。

次の例で、rpool プールは、代替ルート場所で一時的な名前を使用してインポートされます。永続的なプール名がすでにインポートされているプールと競合するため、プール ID によって、またはデバイスを指定してインポートする必要があります。

# zpool import
pool: rpool
id: 16760479674052375628
state: ONLINE
action: The pool can be imported using its name or numeric identifier.
config:

rpool     ONLINE
c8d1s0  ONLINE
# zpool import -R /a -t altrpool 16760479674052375628
# zpool list
NAME      SIZE  ALLOC  FREE  CAP  DEDUP  HEALTH  ALTROOT
altrpool   97G  22.4G   74G  23%  1.00x  ONLINE  /a
rpool     465G  75.1G  390G  16%  1.00x  ONLINE  -

zpool create –t オプションを使用して一時的な名前を持つプールを作成することもできます。