ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
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))
ZFS スワップデバイスおよびダンプデバイスのサイズを調整する
ミラー化された ZFS ルートプールの代替ディスクからブートする
SPARC システムで ZFS ルートファイルシステムからブートする
x86 システムで 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 プラクティス
次のセクションでは、ZFS ルートプールのインストールと更新について、およびミラー化ルートプールの構成について説明します。
Oracle Solaris 11 Live CD によるインストール方法では、デフォルトの ZFS ルートプールが単一ディスク上にインストールされます。Oracle Solaris 11 自動インストール (AI) 方法では、AI マニフェストを作成することで、ZFS ルートプール用のディスクまたはミラー化ディスクを指定できます。
AI インストーラは、ZFS ルートプールをデフォルトのブートディスクにインストールするか、または指定したターゲットディスクにインストールする柔軟性を提供します。c1t0d0 などの論理デバイスや、物理デバイスのパスを指定できます。さらに、MPxIO 識別子や、インストールされるデバイスのデバイス ID も使用できます。
インストールのあとで、ZFS ストレージプールとファイルシステムの情報を確認します。これらの情報は、インストールのタイプとカスタマイズによって異なります。例:
# zpool status rpool pool: rpool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c8t0d0 ONLINE 0 0 0 c8t1d0 ONLINE 0 0 0 # zfs list NAME USED AVAIL REFER MOUNTPOINT rpool 11.8G 55.1G 4.58M /rpool rpool/ROOT 3.57G 55.1G 31K legacy rpool/ROOT/solaris 3.57G 55.1G 3.40G / rpool/ROOT/solaris/var 165M 55.1G 163M /var rpool/VARSHARE 42.5K 55.1G 42.5K /var/share rpool/dump 6.19G 55.3G 6.00G - rpool/export 63K 55.1G 32K /export rpool/export/home 31K 55.1G 31K /export/home rpool/swap 2.06G 55.2G 2.00G -
ZFS BE 情報を確認します。例:
# beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris NR / 3.75G static 2012-07-20 12:10
上記の出力では、Active フィールドは、BE が現在アクティブであるか (N で表現)、リブート時にアクティブになるか ( R で表現)、またはその両方であるか (NR で表現) を示します。
デフォルトの ZFS ブート環境 (BE) には、デフォルトで solaris という名前が付けられます。BE は beadm list コマンドを使用して識別できます。例:
# beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris NR / 3.82G static 2012-07-19 13:44
上記の出力で、NR は、BE が現在アクティブであり、リブート時にアクティブな BE になることを意味しています。
pkg update コマンドを使用して ZFS ブート環境を更新できます。pkg update コマンドを使用して ZFS BE を更新した場合、既存の BE への更新がきわめてわずかである場合を除き、新しい BE が作成されて自動的にアクティブになります。
# pkg update DOWNLOAD PKGS FILES XFER (MB) Completed 707/707 10529/10529 194.9/194.9 . . .
solaris-1 という新しい BE が自動的に作成されてアクティブになります。
更新プロセスの外部でバックアップ BE を作成してアクティブにすることもできます。
# beadm create solaris-1 # beadm activate solaris-1
# init 6 . . . # beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- solaris - - 46.95M static 2012-07-20 10:25 solaris-1 NR / 3.82G static 2012-07-19 14:45
# beadm activate solaris # init 6
回復するために、別の BE からのファイルをコピーしたりそのファイルにアクセスしたりする必要が生じる場合があります。
# beadm mount solaris-1 /mnt
# ls /mnt bin export media pkg rpool tmp boot home mine platform sbin usr dev import mnt proc scde var devices java net project shared doe kernel nfs4 re src etc lib opt root system
# beadm umount solaris-1
自動インストール中にミラー化ルートプールを構成しない場合は、インストール後にミラー化ルートプールを簡単に構成できます。
ルートプール内のディスクを交換する方法については、「ZFS ルートプールのディスクを交換する方法 (SPARC または x86/VTOC)」を参照してください。
# zpool status rpool pool: rpool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 c2t0d0s0 ONLINE 0 0 0 errors: No known data errors
SPARC: ディスクに SMI (VTOC) ディスクラベルとスライス 0 があることを確認してください。ディスクのラベルを変更してスライス 0 を作成する必要がある場合は、『Oracle Solaris 11.1 の管理: デバイスとファイルシステム』の「ZFS ルートファイルシステム用のディスクスライスを作成する方法」を参照してください。
x86: ディスクに fdisk パーティション、SMI ディスクラベル、およびスライス 0 があることを確認してください。ディスクのパーティションを変更してスライス 0 を作成する必要がある場合は、『Oracle Solaris 11.1 の管理: デバイスとファイルシステム』の「ZFS ルートファイルシステム用のディスクの準備」を参照してください。
# zpool attach rpool c2t0d0s0 c2t1d0s0 Make sure to wait until resilver is done before rebooting.
適切なディスクのラベル付けとブートブロックが自動的に適用されます。
# zpool status rpool # zpool status rpool pool: rpool state: DEGRADED status: One or more devices is currently being resilvered. The pool will continue to function in a degraded state. action: Wait for the resilver to complete. Run 'zpool status -v' to see device specific details. scan: resilver in progress since Fri Jul 20 13:39:53 2012 938M scanned out of 11.7G at 46.9M/s, 0h3m to go 938M resilvered, 7.86% done config: NAME STATE READ WRITE CKSUM rpool DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c2t0d0s0 ONLINE 0 0 0 c2t1d0s0 DEGRADED 0 0 0 (resilvering)
上の出力の場合、再同期化処理は完了していません。次のようなメッセージが表示されたら、再同期化が完了しています。
resilvered 11.6G in 0h5m with 0 errors on Fri Jul 20 13:57:25 2012
既存の rpool プールサイズを判別します。
# zpool list rpool NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 29.8G 152K 29.7G 0% 1.00x ONLINE -
# zpool set autoexpand=on rpool
拡張した rpool プールサイズを確認します。
# zpool list rpool NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 279G 146K 279G 0% 1.00x ONLINE -
Oracle Solaris 11.1 リリースでは、ほとんどの場合、デフォルトで x86 ベースシステムに EFI (GPT) ラベルがインストールされます。
自動インストール中にミラー化ルートプールを構成しない場合は、インストール後にミラー化ルートプールを簡単に構成できます。
ルートプール内のディスクを交換する方法については、「ZFS ルートプールのディスクを交換する方法 (SPARC または x86/VTOC)」を参照してください。
# zpool status rpool pool: rpool state: ONLINE scan: none requested config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 errors: No known data errors
# zpool attach rpool c2t0d0 c2t1d0 Make sure to wait until resilver is done before rebooting.
適切なディスクのラベル付けとブートブロックが自動的に適用されます。
ルートプールディスク上のパーティションをカスタマイズした場合は、次のような構文が必要になることがあります。
# zpool attach rpool c2t0d0s0 c2t1d0
# zpool status rpool pool: rpool state: DEGRADED status: One or more devices is currently being resilvered. The pool will continue to function in a degraded state. action: Wait for the resilver to complete. Run 'zpool status -v' to see device specific details. scan: resilver in progress since Fri Jul 20 13:52:05 2012 809M scanned out of 11.6G at 44.9M/s, 0h4m to go 776M resilvered, 6.82% done config: NAME STATE READ WRITE CKSUM rpool DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c8t0d0 ONLINE 0 0 0 c8t1d0 DEGRADED 0 0 0 (resilvering) errors: No known data errors
上の出力の場合、再同期化処理は完了していません。次のようなメッセージが表示されたら、再同期化が完了しています。
resilvered 11.6G in 0h5m with 0 errors on Fri Jul 20 13:57:25 2012
既存の rpool プールサイズを判別します。
# zpool list rpool NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 29.8G 152K 29.7G 0% 1.00x ONLINE -
# zpool set autoexpand=on rpool
拡張した rpool プールサイズを確認します。
# zpool list rpool NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT rpool 279G 146K 279G 0% 1.00x ONLINE -
次の理由により、ルートプールのディスクの置き換えが必要になることがあります。
ルートプールが小さすぎるため、より大きいディスクに置き換えたい
ルートプールのディスクに障害が発生している。非冗長プールでディスクに障害が発生してシステムがブートしない場合は、CD やネットワークなどの代替メディアからブートしたあとでルートプールのディスクを置き換える必要があります。
zpool replace コマンドを使用して、ルートプールディスクでディスクを交換する場合は、ブートブロックを手動で適用する必要があります。
ミラー化ルートプール構成では、代替メディアからブートしなくてもディスクの置き換えを試行できる場合があります。zpool replace コマンドを使用して、障害が発生しているディスクを置き換えたり、追加ディスクがある場合は zpool attach コマンドを使用したりできます。追加ディスクの接続やルートプールディスクの切り離しの例については、次の手順を参照してください。
SATA ディスクを備えたシステムでは、故障したディスクを交換するための 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 <Confirm that the new disk has an SMI label and a slice 0> # zpool online rpool c1t0d0s0 # zpool replace rpool c1t0d0s0 # zpool status rpool <Let disk resilver before installing the boot blocks> # bootadm install-bootloader
一部のハードウェアでは、交換用ディスクの装着後にそのディスクをオンラインにしたり再構成を行なったりする必要がありません。
SPARC: 交換用 (新しい) ディスクに SMI (VTOC) ラベルが付いていてスライス 0 があることを確認してください。ルートプールに使用するディスクのラベルを変更する方法については、『Oracle Solaris 11.1 の管理: デバイスとファイルシステム』の「ディスクラベルを作成する方法」を参照してください。
x86: ディスクに fdisk パーティション、SMI ディスクラベル、およびスライス 0 があることを確認してください。ディスクのパーティションを変更してスライス 0 を作成する必要がある場合は、『Oracle Solaris 11.1 の管理: デバイスとファイルシステム』の「ZFS ルートファイルシステム用のディスクを設定する方法」を参照してください。
例:
# zpool attach rpool c2t0d0s0 c2t1d0s0 Make sure to wait until resilver is done before rebooting.
適切なディスクのラベル付けとブートブロックが自動的に適用されます。
例:
# zpool status rpool pool: rpool state: ONLINE scan: resilvered 11.7G in 0h5m with 0 errors on Fri Jul 20 13:45:37 2012 config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0s0 ONLINE 0 0 0 c2t1d0s0 ONLINE 0 0 0 errors: No known data errors
SPARC システムの場合、たとえば次のようになります。
ok boot /pci@1f,700000/scsi@2/disk@1,0
交換用ディスクからのブートをテストできるように、また、交換用ディスクに障害が発生した場合に必要に応じて既存のディスクから手動でブートできるように、現在のディスクと新しいディスクのブートデバイスのパス名を特定します。次の例では、現在のルートプールのディスク (c2t0d0s0) は次のとおりです。
/pci@1f,700000/scsi@2/disk@0,0
次の例で、交換用ブートディスク (c2t1d0s0) は次のとおりです。
boot /pci@1f,700000/scsi@2/disk@1,0
例:
# zpool detach rpool c2t0d0s0
# zpool set autoexpand=on rpool
または、デバイスを拡張します。
# zpool online -e c2t1d0s0
SPARC: システムが新しいディスクから自動的にブートするように設定します。そのためには、eeprom コマンドまたはブート PROM の setenv コマンドを使用します。
x86: システム BIOS を再構成します。
Oracle Solaris 11.1 リリースでは、ほとんどの場合、デフォルトで x86 ベースシステムに EFI (GPT) ラベルがインストールされます。
次の理由により、ルートプールのディスクの置き換えが必要になることがあります。
ルートプールが小さすぎるため、より大きいディスクに置き換えたい
ルートプールのディスクに障害が発生している。非冗長プールでディスクに障害が発生してシステムがブートしない場合は、CD やネットワークなどの代替メディアからブートしたあとでルートプールのディスクを置き換える必要があります。
zpool replace コマンドを使用して、ルートプールディスクでディスクを交換する場合は、ブートブロックを手動で適用する必要があります。
ミラー化ルートプール構成では、代替メディアからブートしなくてもディスクの置き換えを試行できる場合があります。zpool replace コマンドを使用して、障害が発生しているディスクを置き換えたり、追加ディスクがある場合は zpool attach コマンドを使用したりできます。追加ディスクの接続やルートプールディスクの切り離しの例については、次の手順を参照してください。
SATA ディスクを備えたシステムでは、故障したディスクを交換するための zpool replace 操作を試みる前に、ディスクをオフラインにして構成解除する必要があります。例:
# zpool offline rpool c1t0d0 # cfgadm -c unconfigure c1::dsk/c1t0d0 <Physically remove failed disk c1t0d0> <Physically insert replacement disk c1t0d0> # cfgadm -c configure c1::dsk/c1t0d0 # zpool online rpool c1t0d0 # zpool replace rpool c1t0d0 # zpool status rpool <Let disk resilver before installing the boot blocks> x86# bootadm install-bootloader
一部のハードウェアでは、交換用ディスクの装着後にそのディスクをオンラインにしたり再構成を行なったりする必要がありません。
例:
# zpool attach rpool c2t0d0 c2t1d0 Make sure to wait until resilver is done before rebooting.
適切なディスクのラベル付けとブートブロックが自動的に適用されます。
例:
# zpool status rpool pool: rpool state: ONLINE scan: resilvered 11.6G in 0h5m with 0 errors on Fri Jul 20 12:06:07 2012 config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t0d0 ONLINE 0 0 0 c2t1d0 ONLINE 0 0 0 errors: No known data errors
例:
# zpool detach rpool c2t0d0
# zpool set autoexpand=on rpool
または、デバイスを拡張します。
# zpool online -e c2t1d0
システム BIOS を再構成します。
別のルートプール内で既存の BE を再作成する場合は、次の手順に従ってください。独立したスワップデバイスおよびダンプデバイスを備えた同様の BE を持つ 2 つのルートプールが必要か、それともスワップデバイスおよびダンプデバイスを共有する別のルートプールに BE を作成するだけかに基づき、手順を変更できます。
2 番目のルートプール内の新しい BE からアクティブ化しブートしたあと、1 番目のルートプール内の以前の BE に関する情報はなくなります。元の BE に戻す場合、元のルートプールのブートディスクから手動でシステムをブートする必要があります。
# zpool create rpool2 c4t2d0s0
# beadm create -p rpool2 solaris2
# zpool set bootfs=rpool2/ROOT/solaris2 rpool2
# beadm activate solaris2
ok boot disk2
システムは新しい BE 下で実行しています。
# zfs create -V 4g rpool2/swap
/dev/zvol/dsk/rpool2/swap - - swap - no -
# zfs create -V 4g rpool2/dump
# dumpadm -d /dev/zvol/dsk/rpool2/dump
SPARC – システムが新しいディスクから自動的にブートするように設定します。そのためには、eeprom コマンドまたはブート PROM の setenv コマンドを使用します。
x86 – システム BIOS を再構成します。
# init 6
Oracle Solaris 11.1 リリースでは、ほとんどの場合、デフォルトで x86 ベースシステムに EFI (GPT) ラベルがインストールされます。
別のルートプール内で既存の BE を再作成する場合は、次の手順に従ってください。独立したスワップデバイスおよびダンプデバイスを備えた同様の BE を持つ 2 つのルートプールが必要か、それともスワップデバイスおよびダンプデバイスを共有する別のルートプールに BE を作成するだけかに基づき、手順を変更できます。
2 番目のルートプール内の新しい BE からアクティブ化しブートしたあと、1 番目のルートプール内の以前の BE に関する情報はなくなります。元の BE に戻す場合、元のルートプールのブートディスクから手動でシステムをブートする必要があります。
# zpool create -B rpool2 c2t2d0
あるいは、ミラー化された代替ルートプールを作成します。例:
# zpool create -B rpool2 mirror c2t2d0 c2t3d0
# beadm create -p rpool2 solaris2
# bootadm install-bootloader -P rpool2
# zpool set bootfs=rpool2/ROOT/solaris2 rpool2
# beadm activate solaris2
SPARC – システムが新しいディスクから自動的にブートするように設定します。そのためには、eeprom コマンドまたはブート PROM の setenv コマンドを使用します。
x86 – システム BIOS を再構成します。
システムは新しい BE 下で実行しています。
# zfs create -V 4g rpool2/swap
/dev/zvol/dsk/rpool2/swap - - swap - no -
# zfs create -V 4g rpool2/dump
# dumpadm -d /dev/zvol/dsk/rpool2/dump
# init 6