ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Oracle Solaris ZFS 管理ガイド Oracle Solaris 10 8/11 Information Library (日本語) |
1. Oracle Solaris ZFS ファイルシステム (概要)
3. Oracle Solaris ZFS ファイルシステムと従来のファイルシステムの相違点
4. Oracle Solaris ZFS ストレージプールの管理
5. Oracle Solaris ZFS ルートファイルシステムのインストールとブート
Oracle Solaris ZFS ルートファイルシステムのインストールとブート (概要)
ZFS をサポートするための Oracle Solaris インストールと Live Upgrade の要件
ZFS ルートファイルシステムのインストール (Oracle Solaris 初期インストール)
ミラー化された ZFS ルートプールを作成する方法 (インストール後)
ZFS ルートファイルシステムのインストール (Oracle Solaris フラッシュアーカイブインストール)
ZFS ルートファイルシステムのインストール (JumpStart インストール)
ZFS ルートファイルシステムへの移行または ZFS ルートファイルシステムの更新 (Live Upgrade)
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 マウントポイントの問題の解決 (Solaris 10 10/08)
6. Oracle Solaris ZFS ファイルシステムの管理
7. Oracle Solaris ZFS のスナップショットとクローンの操作
8. ACL および属性を使用した Oracle Solaris ZFS ファイルの保護
10. Oracle Solaris ZFS の高度なトピック
11. Oracle Solaris ZFS のトラブルシューティングとプールの回復
ここでは、次のタスクを実行する方法について説明します。
次の理由により、ルートプールのディスクの置き換えが必要になることがあります。
ルートプールが小さすぎるため、小さいディスクを大きいディスクに置き換えたい。
ルートプールのディスクに障害が発生している。非冗長プールでディスクに障害が発生してシステムがブートしない場合は、DVD やネットワークなどの代替メディアからブートしたあとでルートプールのディスクを置き換える必要があります。
ミラー化ルートプール構成では、代替メディアからのブートを行わずにディスク交換を試みることができます。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
ルートプールに使用するディスクのラベルを変更する方法については、次のサイトを参照してください。
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
次に例を示します。
# zpool attach rpool c1t10d0s0 c1t9d0s0
例:
# 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
たとえば、SPARC システムの場合、次のような構文を使用します。
ok boot /pci@8,700000/pci@3/scsi@5/sd@9,0
例:
# zpool detach rpool c1t10d0s0
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 ブート環境からシステムをブートします。
次に例を示します。
remote# zfs create rpool/snaps
次に例を示します。
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 ""
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 -
たとえば、ルートプールのスナップショットをファイルとしてリモートプールに送信するには、次のような構文を使用します。
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 ルートプールを回復できない。
ZFS ルートプールのスナップショットがリモートシステム上に保存されており、NFS で共有されている。
手順はすべてローカルシステム上で実行します。
SPARC - 次のいずれかのブート方法を選択します。
ok boot net -s ok boot cdrom -s
-s オプションを使用しない場合は、インストールプログラムを終了する必要があります。
x86 - DVD またはネットワークからブートするオプションを選択します。その後、インストールプログラムを終了します。
例:
# mount -F nfs remote-system:/rpool/snaps /mnt
ネットワークサービスを構成していない場合は、remote-system の IP アドレスを指定する必要があります。
ディスクのラベル変更の詳細は、次の Web サイトを参照してください。
http://www.solarisinternals.com/wiki/index.php/ZFS_Troubleshooting_Guide
例:
# zpool create -f -o failmode=continue -R /a -m legacy -o cachefile= /etc/zfs/zpool.cache rpool c1t1d0s0
この手順には時間がかかることがあります。次に例を示します。
# 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
次に例を示します。
# zfs list
次に例を示します。
# zpool set bootfs=rpool/ROOT/zfsBE rpool
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
# 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 -
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.
# zfs rollback rpool@snap1 # zfs rollback rpool/ROOT@snap1 # zfs rollback rpool/ROOT/s10zfsBE@snap1
# init 6