ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris 11.1 の管理: ZFS ファイルシステム Oracle Solaris 11.1 Information Library (日本語) |
1. Oracle Solaris ZFS ファイルシステム (概要)
3. Oracle Solaris ZFS ストレージプールの管理
ミラー化ルートプールを構成する方法 (SPARC または x86/VTOC)
ミラー化ルートプールを構成する方法 (x86/EFI (GPT))
ZFS ルートプールのディスクを交換する方法 (SPARC または x86/VTOC)
ZFS ルートプールのディスクを交換する方法 (SPARC または x86/EFI (GPT))
別のルートプール内で BE を作成する方法 (SPARC または x86/VTOC)
別のルートプール内で BE を作成する方法 (SPARC または x86/EFI (GPT))
ZFS スワップデバイスおよびダンプデバイスのサイズを調整する
ミラー化された ZFS ルートプールの代替ディスクからブートする
SPARC システムで ZFS ルートファイルシステムからブートする
5. Oracle Solaris ZFS ファイルシステムの管理
6. Oracle Solaris ZFS のスナップショットとクローンの操作
7. ACL および属性を使用した Oracle Solaris ZFS ファイルの保護
9. Oracle Solaris ZFS の高度なトピック
10. Oracle Solaris ZFS のトラブルシューティングとプールの回復
12. 推奨の Oracle Solaris ZFS プラクティス
SPARC システムと x86 システムの両方は、ブートアーカイブを使用してブートします。ブートアーカイブは、ブートに必要なファイルを含んだファイルシステムイメージです。ZFS ルートファイルシステムからのブート時には、ブートアーカイブとカーネルファイルの両方のパス名が、ブート用に選択されたルートファイルシステム内で解決されます。
ZFS では、単一のルートファイルシステムではなくストレージプールがデバイス指定子で指定されるため、ZFS ファイルシステムからのブートは UFS ファイルシステムからのブートとは異なります。ストレージプールには、複数のブート可能 ZFS ルートファイルシステムが含まれていることがあります。ZFS からブートする場合は、ブートデバイスと、ブートデバイスによって指定されたプール内のルートファイルシステムを指定する必要があります。
デフォルトでは、プールの bootfs プロパティーで指定されているファイルシステムが、ブート用に選択されます。このデフォルト選択は、SPARC システムで boot -Z コマンドに代替のブート可能ファイルシステムを指定するか、x86 システムで BIOS から代替のブートデバイスを選択することによって上書きできます。
インストール後にディスクを追加して、ミラー化された ZFS ルートプールを作成することができます。ミラー化ルートプールの作成の詳細は、「ミラー化ルートプールを構成する方法 (SPARC または x86/VTOC)」を参照してください。
ミラー化された ZFS ルートプールに関して、次に示す既知の問題を確認してください。
ミラー化された 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 メニューで選択します。
SPARC または x86: zpool replace コマンドを使用してルートプールディスクを置き換える場合、bootadm コマンドを使用して、新しく置き換えられるディスクのブート情報をインストールする必要があります。初期インストール方法を使用して、ミラー化された ZFS ルートプールを作成するか、zpool attach コマンドを使用してディスクをルートプールに接続する場合、この手順は不要です。bootadm の構文は次のようになります:
# bootadm install-bootloader
代替ルートプールにブートローダーをインストールする場合は、-P (プール) オプションを使用します。
# bootadm install-bootloader -P rpool2
GRUB レガシーブートローダーをインストールする場合は、レガシー installgrub コマンドを使用します。
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.1 SPARC bootfs rpool/ROOT/solaris
新しい BE を作成すると、menu.lst ファイルが自動的に更新されます。
title Oracle Solaris 11.1 SPARC bootfs rpool/ROOT/solaris title solaris bootfs rpool/ROOT/solaris2
SPARC ベースシステムでは、次のようにしてブート元の BE を選択できます。
ZFS BE がアクティブになったあと、boot -L コマンドを使用して ZFS プール内のブート可能なファイルシステムのリストを表示できます。その後、ブート可能なファイルシステムの 1 つをリストで選択できます。そのファイルシステムをブートするための詳細な手順が表示されます。手順に従って、選択したファイルシステムをブートできます。
特定の ZFS ファイルシステムをブートするには、boot -Z file system コマンドを使用します。
このブート方法では、BE は自動的にアクティブ化されません。boot -L および -Z 構文で BE をブートしたあと、この BE をアクティブ化して、そこから自動的にブートし続けるようにする必要があります。
例 4-1 特定の ZFS ブート環境からブートする
システムのブートデバイス上の ZFS ストレージプールに複数の ZFS BE が存在する場合は、beadm activate コマンドを使用してデフォルトの BE を指定できます。
たとえば、次の ZFS BE が beadm の出力のとおり使用可能であるとします。
# beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris NR / 3.80G static 2012-07-20 10:25 solaris-2 - - 7.68M static 2012-07-19 13:44
SPARC システムに複数の ZFS BE が存在する場合は、boot -L コマンドを使用できます。例:
ok boot -L Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a File and args: -L 1 Oracle Solaris 11.1 SPARC 2 solaris Select environment to boot: [ 1 - 2 ]: 1 To boot the selected entry, invoke: boot [<root-device>] -Z rpool/ROOT/solaris-2 Program terminated ok boot -Z rpool/ROOT/solaris-2
上記のコマンドでブートした BE は、次回のリブートにはアクティブになっていないことに留意してください。boot -Z 操作中に選択した BE から自動的にブートし続けるようにする場合は、この BE をアクティブにする必要があります。
Oracle Solaris 11 では、x86 システムにレガシー GRUB がインストールされ、インストールプロセス中または 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
Oracle Solaris 11.1 では、x86 ベースシステムに GRUB2 がインストールされます。menu.lst ファイルは /rpool/boot/grub/grub.cfg ファイルに置き換えられますが、このファイルを手動で編集しないようにしてください。bootadm サブコマンドを使用して、メニューエントリを追加、変更、および削除します。
GRUB メニュー項目の変更の詳細は、『Oracle Solaris 11.1 システムのブートおよびシャットダウン』を参照してください。
例 4-2 x86: ZFS ファイルシステムをブートする
GRUB2 システムで ZFS ルートファイルシステムからブートするとき、ブートデバイスは次のように指定されます。
# bootadm list-menu the location of the boot loader configuration files is: /rpool/boot/grub default 0 console text timeout 30 0 Oracle Solaris 11.1
レガシー GRUB システムで 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
例 4-3 x86: ZFS ルートファイルシステムの高速リブート
高速リブート機能は、x86 システム上で数秒間のうちにリブートする機能を提供します。高速リブート機能により、BIOS およびブートローダーによって発生する可能性のある長い遅延を回避して、新しいカーネルにリブートすることができます。システムを高速にリブートするこの機能により、大幅にダウンタイムが短縮され、効率が向上します。
beadm activate コマンドで BE 間を移行するときは、引き続き init 6 コマンドを使用する必要があります。reboot コマンドが適切となるほかのシステム操作については、reboot -f コマンドを使用できます。例:
# reboot -f
失われたルートパスワードやそれに似た問題から回復するためにシステムをブートする必要がある場合は、次の手順を使用します。
menu.lst の問題やルートパスワードの問題を伴う問題を解決するには、次の手順を使用します。ルートプールのディスクを交換する必要がある場合は、「ZFS ルートプールのディスクを交換する方法 (SPARC または x86/VTOC)」を参照してください。完全なシステム (ベアメタル) 回復を実行する必要がある場合は、第 11 章スナップショットのアーカイブとルートプールの回復を参照してください。
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@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a ... SunOS Release 5.11 Version 11.1 64-bit Copyright (c) 1983, 2012, 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 Aug 3 15:46:21 su: 'su root' succeeded for root on /dev/console Oracle Corporation SunOS 5.11 11.1 October 2012 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.
x86 ベースシステムのブートを妨げている問題を解決します。
最初に、手順 1 に示したいずれかのブート方法を使用してメディアまたはネットワークからブートする必要があります。次に、たとえば、ルートプールをインポートして GRUB エントリを修正します。
bootadm list-menu コマンドを使用すると、GRUB2 エントリを一覧表示して変更できます。また、set-menu サブコマンドを使用すると、ブートエントリを変更できます。詳細は、bootadm(1M) を参照してください。
x86# zpool import -f rpool x86# bootadm list-menu x86# bootadm set-menu default=1 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 - - 46.95M static 2012-07-20 10:25 solaris-2 R - 3.81G static 2012-07-19 13:44 # 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 ベースシステムでは、システムをシングルユーザーモードでブートし、root としてログインして、root パスワードを設定します。例:
ok boot -s Boot device: /pci@7c0/pci@0/pci@1/pci@0,2/LSILogic,sas@2/disk@0,0:a ... SunOS Release 5.11 Version 11.1 64-bit Copyright (c) 1983, 2012, Oracle and/or its affiliates. All rights reserved Booting to milestone "milestone/single-user:default". 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 Jul 20 14:09:59 su: 'su root' succeeded for root on /dev/console Oracle Corporation SunOS 5.11 11.1 October 2012 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.