JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris ZFS 管理ガイド     Oracle Solaris 10 8/11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  Oracle Solaris ZFS ファイルシステム (概要)

2.  Oracle Solaris ZFS 入門

3.  Oracle Solaris ZFS ファイルシステムと従来のファイルシステムの相違点

4.  Oracle Solaris ZFS ストレージプールの管理

5.  Oracle Solaris ZFS ルートファイルシステムのインストールとブート

Oracle Solaris ZFS ルートファイルシステムのインストールとブート (概要)

ZFS インストール機能

ZFS をサポートするための Oracle Solaris インストールと Live Upgrade の要件

Oracle Solaris リリースの要件

一般的な ZFS ストレージプール要件

ZFS ストレージプールのディスク容量要件

ZFS ストレージプールの構成要件

ZFS ルートファイルシステムのインストール (Oracle Solaris 初期インストール)

ミラー化された ZFS ルートプールを作成する方法 (インストール後)

ZFS ルートファイルシステムのインストール (Oracle Solaris フラッシュアーカイブインストール)

ZFS ルートファイルシステムのインストール (JumpStart インストール)

ZFS 用の JumpStart キーワード

ZFS 用 JumpStart プロファイルの例

ZFS の JumpStart に関する問題

ZFS ルートファイルシステムへの移行または ZFS ルートファイルシステムの更新 (Live Upgrade)

Live Upgrade で ZFS に移行する際の問題

Live Upgrade を使用して ZFS ルートファイルシステム (ゾーンが含まれていない) を移行または更新する

ゾーンが含まれているシステムを Live Upgrade を使用して移行またはアップグレードする (Solaris 10 10/08)

UFS 上にゾーンルートを持つ UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する方法 (Solaris 10 10/08)

ZFS 上にゾーンルートを持つ ZFS ルートファイルシステムを構成する方法 (Solaris 10 10/08)

ZFS 上にゾーンルートを持つ ZFS ルートファイルシステムにアップグレードまたはパッチを適用する方法 (Solaris 10 10/08)

ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 5/09 以降)

サポートされているゾーンルート構成を持つ ZFS の情報 (Solaris 10 5/09 以降)

ZFS ルートファイルシステムとゾーンルートを持つ ZFS BE を作成する方法 (Solaris 10 5/09 以降)

ゾーンルートを持つ ZFS ルートファイルシステムにアップグレードまたはパッチを適用する方法 (Solaris 10 5/09 以降)

ゾーンルートを持つ UFS ルートファイルシステムを ZFS ルートファイルシステムに移行する方法 (Solaris 10 5/09 以降)

スワップデバイスおよびダンプデバイスの ZFS サポート

ZFS スワップデバイスおよびダンプデバイスのサイズを調整する

ZFS ダンプデバイスの問題のトラブルシューティング

ZFS ルートファイルシステムからのブート

ミラー化された ZFS ルートプールの代替ディスクからブートする

SPARC: ZFS ルートファイルシステムからブートする

x86: ZFS ルートファイルシステムからブートする

正常なブートを妨げる ZFS マウントポイントの問題の解決 (Solaris 10 10/08)

ZFS マウントポイントの問題を解決する方法

ZFS ルート環境での回復のためのブート

ZFS フェイルセーフモードをブートする方法

代替メディアから ZFS をブートする方法

ZFS ルートプールまたはルートプールのスナップショットを回復する

ZFS ルートプールのディスクを置き換える方法

ルートプールのスナップショットを作成する方法

ZFS ルートプールを再作成しルートプールのスナップショットを復元する方法

フェイルセーフブートからルートプールのスナップショットをロールバックする方法

6.  Oracle Solaris ZFS ファイルシステムの管理

7.  Oracle Solaris ZFS のスナップショットとクローンの操作

8.  ACL および属性を使用した Oracle Solaris ZFS ファイルの保護

9.  Oracle Solaris ZFS 委任管理

10.  Oracle Solaris ZFS の高度なトピック

11.  Oracle Solaris ZFS のトラブルシューティングとプールの回復

A.  Oracle Solaris ZFS バージョンの説明

索引

ZFS ルートプールまたはルートプールのスナップショットを回復する

ここでは、次のタスクを実行する方法について説明します。

ZFS ルートプールのディスクを置き換える方法

次の理由により、ルートプールのディスクの置き換えが必要になることがあります。

ミラー化ルートプール構成では、代替メディアからのブートを行わずにディスク交換を試みることができます。zpool replace コマンドを使用すれば、障害が発生したデバイスを置き換えることができます。あるいは追加ディスクがある場合には、zpool attach コマンドを使用できます。追加ディスクの接続やルートプールディスクの切り離しの例については、この節に含まれる手順を参照してください。

一部のハードウェアでは、故障したディスクを交換するための zpool replace 操作を試みる前に、ディスクをオフラインにして構成解除する必要があります。例:

# zpool offline rpool c1t0d0s0
# cfgadm -c unconfigure c1::dsk/c1t0d0
<Physically remove failed disk c1t0d0>
<Physically insert replacement disk c1t0d0>
# cfgadm -c configure c1::dsk/c1t0d0
# zpool replace rpool c1t0d0s0
# zpool online rpool c1t0d0s0
# zpool status rpool
<Let disk resilver before installing the boot blocks>
SPARC# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t0d0s0
x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t9d0s0

一部のハードウェアでは、交換用ディスクの装着後にそのディスクをオンラインにしたり再構成を行なったりする必要がありません。

交換用ディスクからのブートをテストできるように、また、交換用ディスクに障害が発生した場合に既存のディスクから手動でブートできるように、現在のディスクと新しいディスクのブートデバイスのパス名を特定する必要があります。次の手順の例では、現在のルートプールディスク (c1t10d0s0) のパス名は次のとおりです。

/pci@8,700000/pci@3/scsi@5/sd@a,0

交換用ブートディスク (c1t9d0s0) のパス名は次のとおりです。

/pci@8,700000/pci@3/scsi@5/sd@9,0
  1. 交換用ディスク (新しいディスク) を物理的に接続します。
  2. 新しいディスクに SMI ラベルが付けられていてスライス 0 があることを確認してください。

    ルートプールに使用するディスクのラベルを変更する方法については、次のサイトを参照してください。

    http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide

  3. 新しいディスクをルートプールに接続します。

    次に例を示します。

    # zpool attach rpool c1t10d0s0 c1t9d0s0
  4. ルートプールのステータスを確認します。

    例:

    # zpool status rpool
      pool: rpool
     state: ONLINE
    status: One or more devices is currently being resilvered.  The pool will
            continue to function, possibly in a degraded state.
    action: Wait for the resilver to complete.
     scrub: resilver in progress, 25.47% done, 0h4m to go
    config:
    
            NAME           STATE     READ WRITE CKSUM
            rpool          ONLINE       0     0     0
              mirror-0     ONLINE       0     0     0
                c1t10d0s0  ONLINE       0     0     0
                c1t9d0s0   ONLINE       0     0     0
    
    errors: No known data errors
  5. 新しいディスクからブートできることを確認します。

    たとえば、SPARC システムの場合、次のような構文を使用します。

    ok boot /pci@8,700000/pci@3/scsi@5/sd@9,0
  6. 新しいディスクからシステムがブートした場合は、古いディスクを切り離します。

    例:

    # zpool detach rpool c1t10d0s0
  7. デフォルトのブートデバイスをリセットすることによって、新しいディスクから自動的にブートするようシステムをセットアップします。
    • SPARC - eeprom コマンドまたは setenv コマンドを SPARC ブート PROM から使用します。

    • x86 - システム BIOS を再構成します。

ルートプールのスナップショットを作成する方法

回復に利用できるようにルートプールのスナップショットを作成することができます。ルートプールのスナップショットを作成するための最適な方法は、ルートプールの再帰的なスナップショットを実行することです。

次の手順に従って、再帰的なルートプールスナップショットを作成し、そのスナップショットをリモートシステムでプール内のファイルおよびスナップショットとして保存します。ルートプールで障害が発生した場合には、NFS を使ってリモートデータセットをマウントし、そのスナップショットファイルを受信して作成し直したプール内に格納することができます。また、ルートプールスナップショットをリモートシステムのプール内の実際のスナップショットとして保存することもできます。修復対象のシステムを Oracle Solaris OS ミニルートからブートする一方で ssh を構成または rsh を使用する必要があるので、リモートシステムとのスナップショットの送受信は、やや複雑です。

ルートプールスナップショットのリモートでの格納と回復については、次のサイトを参照してください。

http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide

ファイルまたはスナップショットとしてリモートに格納されたスナップショットの内容を確認することは、ルートプールを回復する際の重要なステップです。プールの構成が変更された場合や Solaris OS をアップグレードした場合など、定期的にいずれかの方法を使ってスナップショットを作成し直すべきです。

次の手順では、zfsBE ブート環境からシステムをブートします。

  1. リモートシステム上で、スナップショットを格納するためのプールとファイルシステムを作成します。

    次に例を示します。

    remote# zfs create rpool/snaps
  2. ファイルシステムをローカルシステムと共有します。

    次に例を示します。

    remote# zfs set sharenfs='rw=local-system,root=local-system' rpool/snaps
    # share
    -@rpool/snaps   /rpool/snaps   sec=sys,rw=local-system,root=local-system   "" 
  3. ルートプールの再帰的なスナップショットを作成します。
    local# zfs snapshot -r rpool@snap1
    local# zfs list -r rpool
    NAME                        USED  AVAIL  REFER  MOUNTPOINT
    rpool                      7.84G  59.1G   109K  /rpool
    rpool@snap1                  21K      -   106K  -
    rpool/ROOT                 4.78G  59.1G    31K  legacy
    rpool/ROOT@snap1               0      -    31K  -
    rpool/ROOT/s10zfsBE        4.78G  59.1G  4.76G  /
    rpool/ROOT/s10zfsBE@snap1  15.6M      -  4.75G  -
    rpool/dump                 1.00G  59.1G  1.00G  -
    rpool/dump@snap1             16K      -  1.00G  -
    rpool/export                 99K  59.1G    32K  /export
    rpool/export@snap1           18K      -    32K  -
    rpool/export/home            49K  59.1G    31K  /export/home
    rpool/export/home@snap1      18K      -    31K  -
    rpool/swap                 2.06G  61.2G    16K  -
    rpool/swap@snap1               0      -    16K  -
  4. ルートプールのスナップショットをリモートシステムに送信します。

    たとえば、ルートプールのスナップショットをファイルとしてリモートプールに送信するには、次のような構文を使用します。

    local# zfs send -Rv rpool@snap1 > /net/remote-system/rpool/snaps/rpool.snap1
    sending from @ to rpool@snap1
    sending from @ to rpool/ROOT@snap1
    sending from @ to rpool/ROOT/s10zfsBE@snap1
    sending from @ to rpool/dump@snap1
    sending from @ to rpool/export@snap1
    sending from @ to rpool/export/home@snap1
    sending from @ to rpool/swap@snap1

    ルートプールのスナップショットをスナップショットとしてリモートプールに送信するには、次のような構文を使用します。

    local# zfs send -Rv rpool@snap1 | ssh remote-system zfs receive -Fd -o canmount=off tank/snaps
    sending from @ to rpool@snap1
    sending from @ to rpool/ROOT@snap1
    sending from @ to rpool/ROOT/s10zfsBE@snap1
    sending from @ to rpool/dump@snap1
    sending from @ to rpool/export@snap1
    sending from @ to rpool/export/home@snap1
    sending from @ to rpool/swap@snap1

ZFS ルートプールを再作成しルートプールのスナップショットを復元する方法

この手順では、次の条件を前提としています。

手順はすべてローカルシステム上で実行します。

  1. インストール DVD またはネットワークからブートします。
    • SPARC - 次のいずれかのブート方法を選択します。

      ok boot net -s
      ok boot cdrom -s

      -s オプションを使用しない場合は、インストールプログラムを終了する必要があります。

    • x86 - DVD またはネットワークからブートするオプションを選択します。その後、インストールプログラムを終了します。

  2. ルートプールのスナップショットをファイルとしてリモートシステムに送信した場合、リモートスナップショットファイルシステムをマウントします。

    例:

    # mount -F nfs remote-system:/rpool/snaps /mnt

    ネットワークサービスを構成していない場合は、remote-system の IP アドレスを指定する必要があります。

  3. ルートプールのディスクが置き換えられ、ZFS で使用可能なディスクラベルを含んでいない場合は、ディスクのラベルを変更する必要があります。

    ディスクのラベル変更の詳細は、次の Web サイトを参照してください。

    http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide

  4. ルートプールを再作成します。

    例:

    # zpool create -f -o failmode=continue -R /a -m legacy -o cachefile=
    /etc/zfs/zpool.cache rpool c1t1d0s0
  5. ルートプールのスナップショットを復元します。

    この手順には時間がかかることがあります。次に例を示します。

    # cat /mnt/rpool.0804 | zfs receive -Fdu rpool

    -u オプションを使用すると、復元されたアーカイブは zfs receive 処理の完了時にマウントされません。

    リモートシステムのプールに格納された実際のルートプールのスナップショットを復元するには、次のような構文を使用します。

    # rsh remote-system zfs send -Rb tank/snaps/rpool@snap1 | zfs receive -F rpool
  6. ルートプールのデータセットが復元されていることを確認します。

    次に例を示します。

    # zfs list
  7. ルートプールの BE に bootfs プロパティーを設定します。

    次に例を示します。

    # zpool set bootfs=rpool/ROOT/zfsBE rpool
  8. 新しいディスクにブートブロックをインストールします。
    • SPARC:

      # installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c1t1d0s0
    • x86:

      # installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c1t1d0s0
  9. システムをリブートします。
    # init 6

フェイルセーフブートからルートプールのスナップショットをロールバックする方法

この手順では、ルートプールの既存のスナップショットを利用できることを前提としています。この例は、それらはローカルシステム上で使用可能となっています。

# zfs snapshot -r rpool@snap1
# zfs list -r rpool
NAME                        USED  AVAIL  REFER  MOUNTPOINT
rpool                      7.84G  59.1G   109K  /rpool
rpool@snap1                  21K      -   106K  -
rpool/ROOT                 4.78G  59.1G    31K  legacy
rpool/ROOT@snap1               0      -    31K  -
rpool/ROOT/s10zfsBE        4.78G  59.1G  4.76G  /
rpool/ROOT/s10zfsBE@snap1  15.6M      -  4.75G  -
rpool/dump                 1.00G  59.1G  1.00G  -
rpool/dump@snap1             16K      -  1.00G  -
rpool/export                 99K  59.1G    32K  /export
rpool/export@snap1           18K      -    32K  -
rpool/export/home            49K  59.1G    31K  /export/home
rpool/export/home@snap1      18K      -    31K  -
rpool/swap                 2.06G  61.2G    16K  -
rpool/swap@snap1               0      -    16K  -
  1. システムをシャットダウンし、フェイルセーフモードでブートします。
    ok boot -F failsafe
    ROOT/zfsBE was found on rpool.
    Do you wish to have it mounted read-write on /a? [y,n,?] y
    mounting rpool on /a
    
    Starting shell.
  2. ルートプールの各スナップショットをロールバックします。
    # zfs rollback rpool@snap1
    # zfs rollback rpool/ROOT@snap1
    # zfs rollback rpool/ROOT/s10zfsBE@snap1
  3. リブートしてマルチユーザーモードにします。
    # init 6