ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris の管理: ZFS ファイルシステム Oracle Solaris 11 Information Library (日本語) |
1. Oracle Solaris ZFS ファイルシステム (概要)
3. Oracle Solaris ZFS ファイルシステムと従来のファイルシステムの相違点
4. Oracle Solaris ZFS ストレージプールの管理
ZFS ルートプールのインストールに関する問題のトラブルシューティング
ZFS スワップデバイスおよびダンプデバイスのサイズを調整する
ミラー化された ZFS ルートプールの代替ディスクからブートする
SPARC システムで ZFS ルートファイルシステムからブートする
6. Oracle Solaris ZFS ファイルシステムの管理
7. Oracle Solaris ZFS のスナップショットとクローンの操作
8. ACL および属性を使用した Oracle Solaris ZFS ファイルの保護
10. Oracle Solaris ZFS の高度なトピック
11. Oracle Solaris ZFS のトラブルシューティングとプールの回復
13. 推奨の Oracle Solaris ZFS プラクティス
SPARC システムと x86 システムの両方は、ブートアーカイブを使用してブートします。ブートアーカイブは、ブートに必要なファイルを含んだファイルシステムイメージです。ZFS ルートファイルシステムからのブート時には、ブートアーカイブとカーネルファイルの両方のパス名が、ブート用に選択されたルートファイルシステム内で解決されます。
ZFS では、単一のルートファイルシステムではなくストレージプールがデバイス指定子で指定されるため、ZFS ファイルシステムからのブートは UFS ファイルシステムからのブートとは異なります。ストレージプールには、複数のブート可能 ZFS ルートファイルシステムが含まれていることがあります。ZFS からブートする場合は、ブートデバイスと、ブートデバイスによって指定されたプール内のルートファイルシステムを指定する必要があります。
デフォルトでは、プールの bootfs プロパティーで指定されているファイルシステムが、ブート用に選択されます。このデフォルト選択は、SPARC システムで boot -Z コマンドに代替のブート可能ファイルシステムを指定するか、x86 システムで BIOS から代替のブートデバイスを選択することによって上書きできます。
インストール後にディスクを追加して、ミラー化された ZFS ルートプールを作成することができます。ミラー化ルートプールの作成の詳細については、「ミラー化ルートプールを構成する方法」を参照してください。
ミラー化された ZFS ルートプールに関して、次に示す既知の問題を確認してください。
zpool replace コマンドを使用してルートプールディスクを置き換える場合、installboot または installgrub コマンドを使用して、新しく置き換えられるディスクのブート情報をインストールする必要があります。初期インストール方法を使用して、ミラー化された ZFS ルートプールを作成するか、zpool attach コマンドを使用してディスクをルートプールに接続する場合、この手順は不要です。installboot または installgrub コマンドは次のようになります。
sparc# installboot -F zfs /usr/platform/`uname -i`/lib/fs/zfs/bootblk /dev/rdsk/c0t1d0s0
x86# installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0t1d0s0
ミラー化された ZFS ルートプールのさまざまなデバイスからブートすることができます。ハードウェア構成によっては、別のブートデバイスを指定するには、PROM または BIOS の更新が必要になる場合があります。
たとえば、このプール内のどちらかのディスク (c1t0d0s0 または c1t1d0s0) からブートできます。
# zpool status pool: rpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c1t0d0s0 ONLINE 0 0 0 c1t1d0s0 ONLINE 0 0 0
SPARC システムでは、ok プロンプトに代替ディスクを入力します。
ok boot /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@1
システムがリブートしたら、アクティブなブートデバイスを確認します。例:
SPARC# prtconf -vp | grep bootpath bootpath: '/pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@1,0:a'
x86 システムで、次のような構文を使用します。
x86# prtconf -v|sed -n '/bootpath/,/value/p' name='bootpath' type=string items=1 value='/pci@0,0/pci8086,25f8@4/pci108e,286@0/disk@0,0:a'
x86 システムでは、ミラー化された ZFS ルートプールの代替ディスクを、適切な BIOS メニューで選択します。
複数の ZFS BE が存在する SPARC システムでは、beadm activate コマンドを使用することによって、任意の BE からブートできます。
インストールおよび beadm アクティブ化処理中に、ZFS ルートファイルシステムが bootfs プロパティーで自動的に指定されます。
ブート可能なファイルシステムがプール内に複数存在する場合があります。デフォルトでは、/pool-name/boot/menu.lst ファイルのブート可能ファイルシステムのエントリは、プールの bootfs プロパティーで指定されます。ただし、menu.lst のエントリに bootfs コマンドを含めて、プールの代替ファイルシステムを指定することもできます。このように、menu.lst ファイルには、プール内の複数のルートファイルシステムに対応するエントリが含まれている場合があります。
システムに ZFS ルートファイルシステムがインストールされると、次のようなエントリが menu.lst ファイルに追加されます。
title Oracle Solaris 11 solaris SPARC bootfs rpool/ROOT/solaris
新しい BE を作成すると、menu.lst ファイルが自動的に更新されます。
SPARC ベースのシステムでは、2 つのブートオプションを使用できます。
ZFS BE がアクティブになったあと、boot -L コマンドを使用して ZFS プール内のブート可能なファイルシステムのリストを表示できます。その後、ブート可能なファイルシステムの 1 つをリストで選択できます。そのファイルシステムをブートするための詳細な手順が表示されます。手順に従って、選択したファイルシステムをブートできます。
特定の ZFS ファイルシステムをブートするには、boot -Z file system コマンドを使用します。
例 5-1 特定の ZFS ブート環境からブートする
システムのブートデバイス上の ZFS ストレージプールに複数の ZFS BE が存在する場合は、beadm activate コマンドを使用してデフォルトの BE を指定できます。
たとえば、次の ZFS BE が beadm の出力のとおり使用可能であるとします。
# beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris - - 19.18M static 2011-01-13 15:31 solaris-1 NR / 8.48G static 2011-01-13 15:44
SPARC システムに複数の ZFS BE が存在する場合は、boot -L コマンドを使用できます。例:
ok boot -L Boot device: /pci@0/pci@0/pci@2/scsi@0/disk@3,0:a File and args: -L 1 solaris 2 solaris-1 Select environment to boot: [ 1 - 2 ]: 2 To boot the selected entry, invoke: boot [<root-device>] -Z rpool/ROOT/solaris-1 Program terminated ok boot -Z rpool/ROOT/solaris-1
上記のコマンドでブートした BE は、次回のリブートにはアクティブになっていないことに留意してください。boot -Z 操作中に選択した BE から自動的にブートし続けるようにする場合は、この BE をアクティブにする必要があります。
インストール処理中または beadm activate 操作中に、ZFS を自動的にブートするための次のようなエントリが /pool-name/boot/grub/menu.lst ファイルに追加されます。
title solaris bootfs rpool/ROOT/solaris kernel$ /platform/i86pc/kernel/amd64/unix -B $ZFS-BOOTFS module$ /platform/i86pc/amd64/boot_archive title solaris-1 bootfs rpool/ROOT/solaris-1 kernel$ /platform/i86pc/kernel/amd64/unix -B $ZFS-BOOTFS module$ /platform/i86pc/amd64/boot_archive
GRUB によってブートデバイスとして識別されたデバイスに ZFS ストレージプールが含まれている場合、menu.lst ファイルを使用して GRUB メニューが作成されます。
複数の ZFS BE が存在する x86 システムでは、BE を GRUB メニューから選択できます。このメニューエントリに対応するルートファイルシステムが ZFS ファイルシステムである場合は、次のオプションが追加されます。
-B $ZFS-BOOTFS
例 5-2 x86: ZFS ファイルシステムをブートする
ZFS ファイルシステムからブートするとき、ルートデバイスはブート用の -B $ZFS-BOOTFS パラメータによって指定されます。例:
title solaris bootfs rpool/ROOT/solaris kernel$ /platform/i86pc/kernel/amd64/unix -B $ZFS-BOOTFS module$ /platform/i86pc/amd64/boot_archive title solaris-1 bootfs rpool/ROOT/solaris-1 kernel$ /platform/i86pc/kernel/amd64/unix -B $ZFS-BOOTFS module$ /platform/i86pc/amd64/boot_archive
例 5-3 x86: ZFS ルートファイルシステムの高速リブート
高速リブート機能は、x86 システム上で数秒間のうちにリブートする機能を提供します。高速リブート機能により、BIOS およびブートローダーによって発生する可能性のある長い遅延を回避して、新しいカーネルにリブートすることができます。システムを高速にリブートするこの機能により、大幅にダウンタイムが短縮され、効率が向上します。
beadm activate コマンドで BE 間を移行するときは、引き続き init 6 コマンドを使用する必要があります。reboot コマンドが適切となるほかのシステム操作については、reboot -f コマンドを使用できます。例:
# reboot -f
失われたルートパスワードやそれに似た問題から回復するためにシステムをブートする必要がある場合は、次の手順を使用します。
menu.lst の問題やルートパスワードの問題を伴う問題を解決するには、次の手順を使用します。ルートプールのディスクを交換する必要がある場合は、「ZFS ルートプールのディスクを交換する方法」を参照してください。完全なシステム (ベアメタル) 回復を実行する必要がある場合は、第 12 章スナップショットのアーカイブとルートプールの回復を参照してください。
x86: Live Media - インストールメディアからブートし、回復手順のために GNOME 端末を使用します。
SPARC: テキストインストール – インストールメディアまたはネットワークからブートし、テキストインストール画面からオプション「3 Shell」を選択します。
x86: テキストインストール – GRUB メニューから「Text Installer and command line」ブートエントリを選択し、次にテキストインストール画面からオプション「3 Shell」を選択します。
SPARC: 自動インストール – 次のコマンドを使用して、シェルに出られるインストールメニューから直接ブートします。
ok boot net:dhcp
x86: 自動インストール – ネットワーク上のインストールサーバーからのブートには PXE ブートが必要です。GRUB メニューから「Text Installer and command line」エントリを選択します。次に、テキストインストール画面からオプション「3 Shell」を選択します。
たとえば、システムがブートしたあとで、オプション「3 Shell」を選択します。
1 Install Oracle Solaris 2 Install Additional Drivers 3 Shell 4 Terminal type (currently xterm) 5 Reboot Please enter a number [1]: 3 To return to the main menu, exit the shell #
システムをシングルユーザーモードでブートし、/etc/passwd ファイルのシェルエントリを修正して、不正なルートシェルを解決します。
x86 システムでは、選択したブートエントリを編集して -s オプションを追加します。
たとえば、SPARC システムでは、システムをシャットダウンしてシングルモードでブートします。root としてログインしたら、/etc/passwd ファイルを編集してルートシェルエントリを修正します。
# init 0 ok boot -s Boot device: /pci@780/pci@0/pci@9/scsi@0/disk@0,0:a File and args: -s SunOS Release 5.11 Version 11.0 64-bit Copyright (c) 1983, 2011, Oracle and/or its affiliates. All rights reserved. Booting to milestone "milestone/single-user:default". Hostname: tardis.central Requesting System Maintenance Mode SINGLE USER MODE Enter user name for system maintenance (control-d to bypass): root Enter root password (control-d to bypass): xxxx single-user privilege assigned to root on /dev/console. Entering System Maintenance Mode Jan 24 13:23:54 su: 'su root' succeeded for root on /dev/console Oracle Corporation SunOS 5.11 11.0 November 2011 su: No shell /usr/bin/mybash. Trying fallback shell /sbin/sh. root@tardis.central:~# TERM =vt100; export TERM root@tardis.central:~# vi /etc/passwd root@tardis.central:~# <Press control-d> logout svc.startd: Returning to milestone all.
menu.lst のブートエントリに関する問題を解決します。
最初に、手順 1 に示したいずれかのブート方法を使用してメディアまたはネットワークからブートする必要があります。次に、ルートプールをインポートして、menu.lst のエントリを修正します。
x86# zpool import -f rpool x86# cd /rpool/boot/grub x86# vi menu.lst x86# exit 1 Install Oracle Solaris 2 Install Additional Drivers 3 Shell 4 Terminal type (currently sun-color) 5 Reboot Please enter a number [1]: 5
システムが正常にブートすることを確認します。
システムにログインできない原因となっている不明なルートパスワードを解決します。
最初に、手順 1 に示したいずれかのブート方法を使用してメディアまたはネットワークからブートする必要があります。次に、ルートプール (rpool) をインポートし、BE をマウントしてルートパスワードエントリを削除します。この処理は、SPARC プラットフォームと x86 プラットフォームで同一です。
# zpool import -f rpool # beadm list be_find_current_be: failed to find current BE name be_find_current_be: failed to find current BE name BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris - - 11.45M static 2011-10-22 00:30 solaris-2 R - 12.69G static 2011-10-21 21:04 # mkdir /a # beadm mount solaris-2 /a # TERM=vt100 # export TERM # cd /a/etc # vi shadow <Carefully remove the unknown password> # cd / # beadm umount solaris-2 # halt
次の手順に進んでルートパスワードを設定します。
この手順は、前の手順で不明なルートパスワードが削除されていることを前提としています。
x86 システムでは、選択したブートエントリを編集して -s オプションを追加します。
SPARC システムでは、システムをシングルユーザーモードでブートし、ルートパスワードを設定します。例:
ok boot -s Boot device: /pci@780/pci@0/pci@9/scsi@0/disk@0,0:a File and args: -s SunOS Release 5.11 Version 11.0 64-bit Copyright (c) 1983, 2011, Oracle and/or its affiliates. All rights reserved. Booting to milestone "milestone/single-user:default". Hostname: tardis.central Requesting System Maintenance Mode SINGLE USER MODE Enter user name for system maintenance (control-d to bypass): root Enter root password (control-d to bypass): <Press return> single-user privilege assigned to root on /dev/console. Entering System Maintenance Mode Jan 24 13:23:54 su: 'su root' succeeded for root on /dev/console Oracle Corporation SunOS 5.11 11.0 November 2011 root@tardis.central:~# passwd -r files root New Password: xxxxxx Re-enter new Password: xxxxxx passwd: password successfully changed for root root@tardis.central:~# <Press control-d> logout svc.startd: Returning to milestone all.