ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Oracle Solaris 11.1 の管理: ZFS ファイルシステム Oracle Solaris 11.1 Information Library (日本語) |
1. Oracle Solaris ZFS ファイルシステム (概要)
Oracle Solaris ZFS ファイルシステムと従来のファイルシステムの相違点
3. Oracle Solaris 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.1: zpool status コマンドがデバイス障害に関するより詳細な情報を提供するように拡張されました。この例における zpool status の出力は、プールデバイス (c0t5000C500335F907Fd0) が永続的なエラーのために UNAVAIL ステータスになっていることを示しており、それを交換する必要があります。
# zpool status -v pond pool: pond state: DEGRADED status: One or more devices are unavailable in response to persistent errors. Sufficient replicas exist for the pool to continue functioning in a degraded state. action: Determine if the device needs to be replaced, and clear the errors using 'zpool clear' or 'fmadm repaired', or replace the device with 'zpool replace'. scan: scrub repaired 0 in 0h0m with 0 errors on Wed Jun 20 15:38:08 2012 config: NAME STATE READ WRITE CKSUM pond DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 UNAVAIL 0 0 0 mirror-1 ONLINE 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 ONLINE 0 0 0 device details: c0t5000C500335F907Fd0 UNAVAIL cannot open status: ZFS detected errors on this device. The device was missing. see: http://support.oracle.com/msg/ZFS-8000-LR for recovery errors: No known data errors
Oracle Solaris 11.1: ZFS ファイルシステムの共有が次の主な拡張機能で改善されました。
共有の構文は簡素化されています。ファイルシステムを共有するには、新しい share.nfs または share.smb プロパティーを設定します。
子孫ファイルシステムへの共有プロパティーの継承の向上
ファイル共有の改善は、プールバージョン 34 と関連しています。
詳細は、「ZFS ファイルシステムを共有および共有解除する」を参照してください。
Oracle Solaris 11.1: Oracle Solaris 11.1 をインストールすると、rpool/VARSHARE ファイルシステムが自動的に作成されて、/var/share にマウントされます。このファイルシステムの目的は、ブート環境の間でファイルシステムを共有して、すべての BE で必要となる /var ディレクトリ内の容量を減らすことです。例:
# ls /var/share audit cores crash mail
互換性のために、上記の /var コンポーネントから /var/share コンポーネントへのシンボリックリンクが自動的に作成されます。このファイルシステムは通常は管理を必要としませんが、/var コンポーネントがルートファイルシステムを使い切ってしまわないようにしてください。
Oracle Solaris 11 システムを Oracle Solaris 11.1 リリースに更新した場合は、元の /var ディレクトリから /var/share ディレクトリへのデータの移行にいくらか時間がかかる可能性があります。
Oracle Solaris 11.1: このリリースでは、ほとんどの場合、x86 ベースシステムの ZFS ルートプールディスクに EFI (GPT) ディスクラベルがインストールされます。例:
# 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
GPT 対応ファームウェアを搭載した SPARC ベースのシステムまたは x86 ベースのシステムに Oracle Solaris 11.1 をインストールすると、ディスク全体を使用するルートプールディスクで GPT ディスクラベルが適用されます。GPT ラベル付きブートディスクをサポートする SPARC ベースのシステムでは、GPT 対応ファームウェアの適用について Oracle Solaris 11.1 リリースノートを参照してください。それ以外の場合は、SPARC システムに Oracle Solaris 11.1 をインストールすると、単一のスライス 0 を使用してルートプールディスクに SMI (VTOC) ラベルが適用されます。
ほとんどの場合、x86 ベースシステムに EFI (GPT) ラベル付きディスクがインストールされます
zpool コマンドは、EFI (GPT) ディスクラベルをサポートするように拡張され、システムのインストール後にルートプールを再作成する必要がある場合に、zpool create -B コマンドでそれができるようになりました。この新しいコマンドオプションにより、必須パーティションおよびブートに必要なブート情報が作成されます。インストール後にルートプールを作成する方法の詳細は、「別のルートプール内で BE を作成する方法 (SPARC または x86/VTOC)」を参照してください。
EFI (GPT) ラベル付きのルートプール内のディスクを交換する必要がある場合は、zpool replace 操作後にこのコマンドを実行する必要があります。
# bootadm install-bootloader
x86 ベースシステムでは、Oracle Solaris のインストールはディスクの最初の 2Ti バイトに制限されなくなりました。
Oracle Solaris 11: zfs および zpool コマンドには、zfs および zpool のサブコマンドとそのサポートされているオプションに関する詳細情報を表示するために使用できる help サブコマンドがあります。例:
# zfs help The following commands are supported: allow clone create destroy diff get groupspace help hold holds inherit list mount promote receive release rename rollback send set share snapshot unallow unmount unshare upgrade userspace For more info, run: zfs help <command> # zfs help create usage: create [-p] [-o property=value] ... <filesystem> create [-ps] [-b blocksize] [-o property=value] ... -V <size> <volume>
# zpool help The following commands are supported: add attach clear create destroy detach export get help history import iostat list offline online remove replace scrub set split status upgrade For more info, run: zpool help <command> # zpool help attach usage: attach [-f] <pool> <device> <new-device>
詳細は、zfs(1M) および zpool(1M) を参照してください。
Oracle Solaris 11: このリリースには、ZFS スナップショットに関する次の拡張機能が含まれています。
zfs snapshot コマンドには、このコマンドの短縮構文となる snap という別名があります。例:
# zfs snap -r users/home@snap1
zfs diff コマンドには、2 つのスナップショット間で追加または変更されたすべてのファイルを識別するための列挙型オプション -e があります。生成された出力には追加されたすべてのファイルが示されますが、削除されたものは表示されません。例:
# zfs diff -e tank/cindy@yesterday tank/cindy@now + /tank/cindy/ + /tank/cindy/file.1
-o オプションを使用して、選択したフィールドを表示するように指定することもできます。例:
# zfs diff -e -o size -o name tank/cindy@yesterday tank/cindy@now + 7 /tank/cindy/ + 206695 /tank/cindy/file.1
ZFS スナップショットの作成の詳細は、第 6 章Oracle Solaris ZFS のスナップショットとクローンの操作を参照してください。
Oracle Solaris 11: zfs.1m マニュアルページは、主要な ZFS ファイルシステムの機能が zfs.1m ページに残るように改訂されていますが、委任管理、暗号化、および共有の構文と例については次のページに記載されています。
Oracle Solaris 11: aclmode プロパティーは、chmod 操作中にファイルのアクセス制御リスト (ACL) のアクセス権が変更されると必ず ACL 動作を変更します。aclmode プロパティーは次のプロパティー値とともに再導入されました。
discard – aclmode プロパティーが discard であるファイルシステムでは、ファイルのモードを表さない ACL エントリがすべて削除されます。これがデフォルト値です。
mask – aclmode プロパティーが mask であるファイルシステムでは、ユーザーまたはグループアクセス権が削減されます。アクセス権は、グループアクセス権ビットと同程度にまで低下します。ただし、アクセス権がファイルまたはディレクトリの所有者と同じ UID を持つユーザーエントリである場合を除きます。この場合、ACL アクセス権は、所有者のアクセス権ビットと同程度にまで削減されます。また、明示的な ACL セット操作が実行されていない場合、マスク値はモードが変更しても ACL を保持します。
passthrough – aclmode プロパティーが passthrough であるファイルシステムでは、ファイルまたはディレクトリの新規モードを表す必須の ACL エントリを生成する以外、ACL に変更は加えられません。
詳細は、例 7-14 を参照してください。
Oracle Solaris 11: この Solaris リリースでは、zpool status -l コマンドを使用して、/dev/chassis ディレクトリから使用できるプールデバイスの物理ディスクの場所情報を表示します。このディレクトリには、システム上のデバイスのシャーシ、受容装置、および占有装置の値が含まれます。
さらに、fmadm add-alias コマンドを使って、環境内でディスクの物理的な位置を特定するのに役立つディスクの別名を含めることもできます。例:
# fmadm add-alias SUN-Storage-J4400.0912QAJ001 SUN-Storage-J4400.rack22
例:
% zpool status -l export pool: export state: ONLINE scan: resilvered 492G in 8h22m with 0 errors on Wed Aug 1 17:22:11 2012 config: NAME STATE READ WRITE CKSUM export ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__2/disk ONLINE 0 0 0 /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__3/disk ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__4/disk ONLINE 0 0 0 /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__5/disk ONLINE 0 0 0 mirror-2 ONLINE 0 0 0 /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__6/disk ONLINE 0 0 0 /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__7/disk ONLINE 0 0 0 mirror-3 ONLINE 0 0 0 /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__8/disk ONLINE 0 0 0 /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__9/disk ONLINE 0 0 0 mirror-4 ONLINE 0 0 0 /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__10/disk ONLINE 0 0 0 /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__11/disk ONLINE 0 0 0 spares /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__0/disk AVAIL /dev/chassis/SUN-Storage-J4400.rack22/SCSI_Device__1/disk AVAIL errors: No known data errors
zpool iostat コマンドはまた、プールのデバイスに関する物理的な場所情報を提供するように更新されています。
さらに、diskinfo、format、および prtconf コマンドもディスクの物理的な場所情報を提供します。詳細は、diskinfo(1M) を参照してください。
Oracle Solaris 11: このリリースでは、古いファイルシステムから新しいファイルシステムにデータを移行でき、それと同時に、移行プロセス中に新しいファイルシステムのアクセスおよび変更を行えます。
新しい ZFS ファイルシステムでシャドウプロパティーを設定すると、古いデータの移行が開始されます。シャドウプロパティーは、次のどちらかの値を指定して、データをローカルシステムから移行するか、リモートシステムから移行するかを設定できます。
file:///path nfs://host:path
詳細は、「ZFS ファイルシステムを移行する」を参照してください。
Oracle Solaris 11: このリリースでは、ZFS ファイルシステムを暗号化できます。
たとえば tank/cindy ファイルシステムを、暗号化プロパティーを有効にして作成されています。デフォルトの暗号化ポリシーでは、最低 8 文字の長さが必要なパスフレーズの入力が求められます。
# zfs create -o encryption=on tank/cindy Enter passphrase for 'tank/cindy': xxx Enter again: xxx
暗号化ポリシーは、ZFS ファイルシステムの作成時に設定されます。ファイルシステムの暗号化ポリシーは、子孫のファイルシステムによって継承され、削除することはできません。
詳細については、「ZFS ファイルシステムの暗号化」を参照してください。
Oracle Solaris 11: このリリースでは、スナップショットストリーム内で送信および受信されるファイルシステムプロパティーを設定できます。この拡張機能によって、受信側ファイルシステムへの送信ストリーム内でファイルシステムプロパティーを適用したり、受信時に mountpoint プロパティー値などのローカルファイルシステムプロパティーを無視するかどうかを判別したりする柔軟性が提供されます。
詳細は、「ZFS スナップショットストリームに異なるプロパティー値を適用する」を参照してください。
Oracle Solaris 11: このリリースでは、zfs diff コマンドを使用して、ZFS スナップショットの相違点を判別できます。
たとえば、次の 2 つのスナップショットが作成されるものとします。
$ ls /tank/cindy fileA $ zfs snapshot tank/cindy@0913 $ ls /tank/cindy fileA fileB $ zfs snapshot tank/cindy@0914
たとえば、2 つのスナップショットの相違点を識別するには、次のような構文を使用します。
$ zfs diff tank/cindy@0913 tank/cindy@0914 M /tank/cindy/ + /tank/cindy/fileB
出力で、M はディレクトリが変更されたことを示します。+ は、後者のスナップショットに fileB が存在していることを示します。
詳細は、「ZFS スナップショットの相違点の識別 (zfs diff)」を参照してください。
Oracle Solaris 11: このリリースでは、ZFS ストレージプールに関する次の新機能が提供されています。
zpool import -m コマンドを使用して、ログのないプールをインポートできます。詳細は、「ログデバイスがないプールをインポートする」を参照してください。
読み取り専用モードでプールをインポートできます。この機能は、主としてプールの回復に使用します。ベースとなるデバイスが損傷を受けているために損傷したプールにアクセスできない場合は、そのプールを読み取り専用でインポートしてデータを回復できます。詳細は、「読み取り専用モードでプールをインポートする」を参照してください。
このリリースで作成される RAID-Z (raidz1、raidz2、または raidz3) ストレージプールでは、読み取り入出力のスループットパフォーマンスを改善するために、待ち時間の影響を受けやすいメタデータが自動的にミラー化されています。プールバージョン 29 以上にアップグレードされた既存の RAID-Z プールの場合、一部のメタデータは、新しく書き込まれるすべてのデータについてミラー化されます。
RAID-Z プール内でミラー化されたメタデータは、ミラー化されたストレージプールによって提供される保護と同様、ハードウェア障害に対する追加の保護を提供しません。ミラー化されたメタデータによって追加容量が消費されますが、RAID-Z 保護は以前のリリースと同じままになります。この拡張機能は、パフォーマンスのみを目的としています。
Oracle Solaris 11: このリリースでは、sync プロパティーを使用することによって、ZFS ファイルシステムの同期動作を決定できます。
デフォルトの同期動作では、データの安定性を確保するために、ファイルシステムのすべての同期トランザクションがインテントログに書き込まれ、すべてのデバイスがフラッシュされます。デフォルトの同期動作を無効にすることはお勧めしません。同期サポートに依存しているアプリケーションが影響を受けることがあり、データ損失が起きる可能性があります。
sync プロパティーは、ファイルシステムを作成する前または作成した後に設定できます。いずれの場合でも、プロパティー値はすぐに有効になります。例:
# zfs set sync=always tank/neil
sync プロパティーが追加された Oracle Solaris リリースでは、zil_disable パラメータが使用できなくなりました。
詳細は、表 5-1 を参照してください。
Oracle Solaris 11: このリリースでは、-T オプションを使用して zpool list および zpool status コマンドの間隔とカウント値を指定することで、追加情報を表示できるようになりました。
また、zpool status コマンドによって、次のようなプールのスクラブと再同期化に関するより多くの情報が表示されるようになりました。
再同期化進捗レポート。例:
scan: resilver in progress since Thu Jun 7 14:41:11 2012 3.83G scanned out of 73.3G at 106M/s, 0h11m to go 3.80G resilvered, 5.22% done
スクラブ進捗レポート。例:
scan: scrub in progress since Thu Jun 7 14:59:25 2012 1.95G scanned out of 73.3G at 118M/s, 0h10m to go 0 repaired, 2.66% done
再同期化完了メッセージ。例:
resilvered 73.3G in 0h13m with 0 errors on Thu Jun 7 14:54:16 2012
スクラブ完了メッセージ。例:
scan: scrub repaired 512B in 1h2m with 0 errors on Thu Jun 7 15:10:32 2012
進行中のスクラブの取り消しメッセージ。例:
scan: scrub canceled on Thu Jun 7 15:19:20 MDT 2012
スクラブおよび再同期化の完了メッセージはシステムのリブート後も残ります。
次の構文では、進行中のプール再同期化情報を表示するための間隔およびカウントオプションを使用しています。-T d 値を使用すると情報を標準の日付形式で表示でき、-T u を使用すると情報を内部形式で表示できます。
# zpool status -T d tank 3 2 Thu Jun 14 14:08:21 MDT 2012 pool: tank 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 Thu Jun 14 14:08:05 2012 2.96G scanned out of 4.19G at 189M/s, 0h0m to go 1.48G resilvered, 70.60% done config: NAME STATE READ WRITE CKSUM tank DEGRADED 0 0 0 mirror-0 ONLINE 0 0 0 c0t5000C500335F95E3d0 ONLINE 0 0 0 c0t5000C500335F907Fd0 ONLINE 0 0 0 mirror-1 DEGRADED 0 0 0 c0t5000C500335BD117d0 ONLINE 0 0 0 c0t5000C500335DC60Fd0 DEGRADED 0 0 0 (resilvering) errors: No known data errors
Oracle Solaris 11: このリリースでは、ACL に関する次の拡張機能が提供されています。
例外的なアクセス権を除き、簡易 ACL には deny アクセス制御エントリ (ACE) が必要なくなりました。たとえば、0644、0755、または 0664 のモードでは deny ACE が不要ですが、0705 や 0060 などのモードでは deny ACE が必要です。
以前の動作では、644 などの簡易 ACL 内に deny ACE を含みます。例:
# ls -v file.1 -rw-r--r-- 1 root root 206663 Jun 14 11:52 file.1 0:owner@:execute:deny 1:owner@:read_data/write_data/append_data/write_xattr/write_attributes /write_acl/write_owner:allow 2:group@:write_data/append_data/execute:deny 3:group@:read_data:allow 4:everyone@:write_data/append_data/write_xattr/execute/write_attributes /write_acl/write_owner:deny 5:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow
644 などの簡易 ACL についての新しい動作では、deny ACE を含みません。例:
# ls -v file.1 -rw-r--r-- 1 root root 206663 Jun 22 14:30 file.1 0:owner@:read_data/write_data/append_data/read_xattr/write_xattr /read_attributes/write_attributes/read_acl/write_acl/write_owner /synchronize:allow 1:group@:read_data/read_xattr/read_attributes/read_acl/synchronize:allow 2:everyone@:read_data/read_xattr/read_attributes/read_acl/synchronize :allow
元の変更されていないアクセス権の保持を図るために、継承時に ACL が複数の ACE に分割されなくなりました。代わりに、ファイル作成モードを強制する必要があるときに、アクセス権が変更されます。
aclinherit プロパティーを restricted に設定したときのこのプロパティーの動作にアクセス権の削減が追加されました。これにより、継承時に ACL が複数の ACE に分割されなくなります。
アクセス権モードの新しい計算規則では、ACL に含まれる user ACE がファイルの所有者でもある場合、そのアクセス権がアクセス権モードの計算に含まれることが指定されます。group ACE がファイルのグループ所有者である場合も同じ規則が適用されます。
詳細は、第 7 章ACL および属性を使用した Oracle Solaris ZFS ファイルの保護を参照してください。
Oracle Solaris 11: このリリースでは、zpool split コマンドを使用して、ミラー化されたストレージプールを分割できます。これにより、元のミラー化プール内の 1 つまたは複数のディスクが切り離され、別の同一のプールが作成されます。
詳細は、「ミラー化 ZFS ストレージプールを分割して新しいプールを作成する」を参照してください。
Oracle Solaris 11: このリリースでは、Common Multiprotocol SCSI Target (COMSTAR) ターゲットデーモンを使用することにより、iSCSI ターゲットデーモンが置き換えられます。 この変更はまた、iSCSI LUN として ZFS ボリュームを共有するために使用されていた shareiscsi プロパティーが、もはや使用されなくなったことを意味します。stmfadm コマンドを使用して、iSCSI LUN として ZFS ボリュームを構成し共有します。
詳細は、「iSCSI LUN として ZFS ボリュームを使用する」を参照してください。
Oracle Solaris 11: このリリースでは、個々の ZFS ストレージプールに zpool-poolname という名前のプロセスが関連付けられます。このプロセス内のスレッドは、プールと関連付けられた圧縮やチェックサム検証などの入出力タスクを処理するための、プールの入出力処理スレッドです。このプロセスの目的は、各ストレージプールの CPU 使用率を目に見えるようにすることです。
これらの実行中のプロセスに関する情報は、ps および prstat コマンドを使って確認できます。このプロセスは、大域ゾーンでのみ利用できます。詳細は、SDC(7)を参照してください。
Oracle Solaris 11: このリリースでは、複製解除 ( dedup) プロパティーを使用して、ZFS ファイルシステムから冗長なデータを削除できます。ファイルシステムで dedup プロパティーが有効になっている場合、重複データブロックが同期的に削除されます。この結果、一意のデータだけが格納され、共通のコンポーネントがファイル間で共有されます。
次のようにしてこのプロパティーを有効にできます。
# zfs set dedup=on tank/home
複製解除はファイルシステムプロパティーとして設定されますが、その適用範囲はプール全体に及びます。たとえば、次のようにして複製解除比を指定できます。
# zpool list tank NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT tank 556G 4.19G 552G 0% 1.00x ONLINE -
zpool list 出力は、複製解除プロパティーをサポートするように更新されています。
複製解除プロパティーの設定方法については、「dedup プロパティー」を参照してください。
次の考慮事項を確認するまで、本稼働システムにあるファイルシステムでは、dedup プロパティーを有効にしないでください。
複製解除による容量のセクション約によってデータにメリットがあるかどうかを判断します。
複製解除をサポートできるだけ十分な物理的メモリーがシステムにあるかどうかを判断します。
システムパフォーマンスへの影響の可能性
これらの考慮事項の詳細については、「dedup プロパティー」を参照してください。