ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris ZFS 管理ガイド Oracle Solaris 10 8/11 Information Library (日本語) |
1. Oracle Solaris ZFS ファイルシステム (概要)
Oracle Solaris ZFS のインストールに関する新機能
ZFS ストレージプールの回復およびパフォーマンスに関する拡張機能
ミラー化された ZFS ストレージプールの分割 (zpool split)
ファイルシステムデータのみに対する ZFS の割り当て制限と予約
ZFS コマンドの履歴の拡張機能 (zpool history)
ZFS ファイルシステムをアップグレードする (zfs upgrade)
ZFS スナップショットの名前を再帰的に変更する (zfs rename -r)
ZFS ファイルシステムを ZFS クローンに置き換える (zfs promote)
ZFS ストレージプールをアップグレードする (zpool upgrade)
3. Oracle Solaris ZFS ファイルシステムと従来のファイルシステムの相違点
4. Oracle Solaris ZFS ストレージプールの管理
5. Oracle Solaris ZFS ルートファイルシステムのインストールとブート
6. Oracle Solaris ZFS ファイルシステムの管理
7. Oracle Solaris ZFS のスナップショットとクローンの操作
8. ACL および属性を使用した Oracle Solaris ZFS ファイルの保護
10. Oracle Solaris ZFS の高度なトピック
11. Oracle Solaris ZFS のトラブルシューティングとプールの回復
この節では、ZFS ファイルシステムの新機能について概説します。
Oracle Solaris 10 8/11: このリリースでは、インストールに関する次の新機能が使用できます。
テキストモードインストール方式を使用して、ZFS フラッシュアーカイブでシステムをインストールできます。詳細は、例 5-3 を参照してください。
Oracle Solaris Live Upgrade の luupgrade コマンドを使用して、ZFS ルートのフラッシュアーカイブをインストールできます。詳細は、例 5-8 を参照してください。
Oracle Solaris Live Upgrade の lucreate コマンドを使用して、単独の /var ファイルシステムを指定できます。詳細は、例 5-5 を参照してください。
Oracle Solaris 10 8/11 リリース: このリリースでは、スナップショットストリーム内で送信および受信されるファイルシステムプロパティーを設定することができます。この拡張機能によって、受信側ファイルシステムへの送信ストリーム内でファイルシステムプロパティーを適用したり、受信時に mountpoint プロパティー値などのローカルファイルシステムプロパティーを無視するかどうかを判別したりする柔軟性が提供されます。
詳細は、「ZFS スナップショットストリームに異なるプロパティー値を適用する」を参照してください。
Oracle Solaris 10 8/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 10 8/11 リリース: このリリースでは、ZFS ストレージプールに関する次の新機能が提供されています。
zpool import -m コマンドを使用して、ログのないプールをインポートできます。詳細は、「ログデバイスがないプールをインポートする」を参照してください。
読み取り専用モードでプールをインポートできます。この機能は、主としてプールの回復に使用します。ベースとなるデバイスが損傷を受けているために損傷したプールにアクセスできない場合は、そのプールを読み取り専用でインポートしてデータを回復できます。詳細は、「読み取り専用モードでプールをインポートする」を参照してください。
このリリースで作成され、プールバージョン 29 以上にアップグレードされる RAID-Z (raidz1、raidz2、または raidz3) ストレージプールは、読み取り入出力のスループットパフォーマンスを改善するために、待ち時間の影響を受けやすいメタデータを自動的にミラー化します。プールバージョン 29 以上にアップグレードされた既存の RAID-Z プールの場合、一部のメタデータは、新しく書き込まれるすべてのデータについてミラー化されます。
RAID-Z プール内でミラー化されたメタデータは、ミラー化されたストレージプールによって提供される保護と同様、ハードウェア障害に対する追加の保護を提供しません。ミラー化されたメタデータによって追加容量が消費されますが、RAID-Z 保護は以前のリリースと同じままになります。この拡張機能は、パフォーマンスのみを目的としています。
Solaris 10 8/11 リリース: このリリースでは、sync プロパティーを使用することによって、ZFS ファイルシステムの同期動作を決定することができます。
デフォルトの同期動作では、データの安定性を確保するために、ファイルシステムのすべての同期トランザクションがインテントログに書き込まれ、すべてのデバイスがフラッシュされます。デフォルトの同期動作を無効にすることはお勧めしません。同期サポートに依存しているアプリケーションが影響を受けることがあり、データ損失が起きる可能性があります。
sync プロパティーは、ファイルシステムを作成する前または作成した後に設定できます。いずれの場合でも、プロパティー値はすぐに有効になります。例:
# zfs set sync=always tank/neil
sync プロパティーが追加された Oracle Solaris リリースでは、zil_disable パラメータが使用できなくなりました。
詳細は、表 6-1 を参照してください。
Oracle Solaris 10 8/11 リリース: このリリースでは、-T オプションを使用して zpool list および zpool status コマンドの間隔とカウント値を指定することで、追加情報を表示できるようになりました。
また、zpool status コマンドによって、次のようなプールのスクラブと再同期化に関するより多くの情報が表示されるようになりました。
再同期化進捗レポート。例:
scan: resilver in progress since Thu May 26 11:26:32 2011 1.26G scanned out of 2.40G at 6.15M/s, 0h3m to go 1.26G resilvered, 56.3% done
スクラブ進捗レポート。例:
scan: scrub in progress since Fri May 27 08:24:17 2011 18.0M scanned out of 2.35G at 8.99M/s, 0h4m to go 0 repaired, 0.75% done
再同期化完了メッセージ。例:
scan: resilvered 2.34G in 1h2m with 0 errors on Thu May 26 11:56:40 2011
スクラブ完了メッセージ。例:
scan: scrub repaired 512B in 1h2m with 0 errors on Fri May 27 08:54:50 2011
進行中のスクラブの取り消しメッセージ。例:
scan: scrub canceled on Wed Fri Jun 10 09:06:24 2011
スクラブおよび再同期化の完了メッセージはシステムのリブート後も残ります。
次の構文では、進行中のプール再同期化情報を表示するための間隔およびカウントオプションを使用しています。-T d 値を使用すると情報を標準の日付形式で表示でき、-T u を使用すると情報を内部形式で表示できます。
# zpool status -T d tank 3 2 Wed Jun 22 14:35:40 GMT 2011 pool: tank 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. scan: resilver in progress since Wed Jun 22 14:33:29 2011 3.42G scanned out of 7.75G at 28.2M/s, 0h2m to go 3.39G resilvered, 44.13% done config: NAME STATE READ WRITE CKSUM tank ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 c2t3d0 ONLINE 0 0 0 c2t4d0 ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 c2t7d0 ONLINE 0 0 0 c2t8d0 ONLINE 0 0 0 (resilvering) errors: No known data errors
Oracle Solaris 10 8/11 リリース: このリリースでは、ACL に関する次の拡張機能が提供されています。
例外的なアクセス権を除き、簡易 ACL には拒否 ACE が必要なくなりました。たとえば、0644、0755、または 0664 のモードでは拒否 ACE が不要ですが、0705 や 0060 などのモードでは拒否 ACE が必要です。
以前の動作では、644 などの簡易 ACL 内に拒否 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 についての新しい動作では、拒否 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 に分割されなくなります。
chmod(2) の実行中に、デフォルトで既存の ACL が破棄されるようになりました。この変更により、ZFS の aclmode プロパティーが使用できなくなりました。
アクセス権モードの新しい計算規則では、ACL に含まれる user ACE がファイルの所有者でもある場合、そのアクセス権がアクセス権モードの計算に含まれることが指定されます。group ACE がファイルのグループ所有者である場合も同じ規則が適用されます。
詳細は、第 8 章ACL および属性を使用した Oracle Solaris ZFS ファイルの保護を参照してください。
Oracle Solaris 10 9/10 リリース: このリリースでは、zpool split コマンドを使用して、ミラー化されたストレージプールを分割できます。これにより、元のミラー化プール内の 1 つまたは複数のディスクが切り離され、別の同一のプールが作成されます。
詳細は、「ミラー化 ZFS ストレージプールを分割して新しいプールを作成する」を参照してください。
Oracle Solaris 10 9/10 リリース: このリリースでは、個々の ZFS ストレージプールに zpool-poolname という名前のプロセスが関連付けられます。このプロセス内のスレッドは、プールと関連付けられた圧縮やチェックサム検査などの入出力タスクを処理するための、プールの入出力処理スレッドです。このプロセスの目的は、各ストレージプールの CPU 使用率を目に見えるようにすることです。
これらの実行中のプロセスに関する情報は、ps および prstat コマンドを使って確認できます。このプロセスは、大域ゾーンでのみ利用できます。詳細は、SDC(7)を参照してください。
Oracle Solaris 10 9/10 リリース: このリリースでは、より詳細な領域割り当て情報を提供するように zpool list の出力が変更されています。例:
# zpool list tank NAME SIZE ALLOC FREE CAP HEALTH ALTROOT tank 136G 55.2G 80.8G 40% ONLINE -
以前の USED および AVAIL フィールドは、ALLOC および FREE に置き換えられました。
ALLOC フィールドは、すべてのデータセットおよび内部メタデータに割り当てられた物理領域の容量を示します。FREE フィールドは、プール内で割り当てられていない領域の容量を示します。
詳細は、「ZFS ストレージプールについての情報を表示する」を参照してください。
Oracle Solaris 10 9/10 リリース: 配下のデバイスが利用不能になった場合、電源障害が発生した場合、または冗長 ZFS 構成でサポートされている数よりも多くのデバイスで障害が発生した場合、ストレージプールが損傷を受ける可能性があります。このリリースでは、損傷したストレージプールを復旧するための新しいコマンド機能が用意されています。ただし、この復旧機能を使用すると、プールが機能停止する前に発生した最後の数回分のトランザクションが失われる場合があります。
zpool clear および zpool import コマンドがサポートしている -F オプションを使えば、損傷したプールを復旧できる可能性があります。また、zpool status、zpool clear、または zpool import コマンドを実行すると損傷したプールが自動的に報告され、これらのコマンドはプールの復旧方法を説明します。
詳細は、「ZFS ストレージプール全体の損傷を修復する」を参照してください。
Oracle Solaris 10 9/10 リリース: ログデバイスに関する次の拡張機能が使用できます。
logbias プロパティー – このプロパティーを使用して、特定のデータセットの同期要求の処理方法を ZFS に指示することができます。logbias が latency に設定されている場合、ZFS はプールに別個のログデバイスが存在すればそれを使用して、短い待ち時間で要求を処理します。logbias が throughput に設定されている場合、ZFS はプールの別個のログデバイスを使用しません。その代わりに、ZFS は大域プールのスループットとリソースの使用効率を優先して同時操作を最適化します。デフォルト値は latency です。ほとんどの構成でデフォルト値が推奨されます。logbias=throughput の値を使用すると、データベースファイルの書き込みパフォーマンスが向上する場合があります。
ログデバイスの削除 – zpool remove コマンドを使用して、ログデバイスを ZFS ストレージプールから削除できるようになりました。デバイス名を指定することによって、単一のログデバイスを削除できます。ログのトップレベルミラーを指定することによって、ミラー化ログデバイスを削除できます。別個のログデバイスをシステムから削除すると、ZIL トランザクションレコードがメインプールに書き込まれます。
冗長なトップレベルの仮想デバイスは、数値識別子で識別されるようになりました。たとえば、2 つのディスクからなるミラー化ストレージプールでは、トップレベルの仮想デバイスは mirror-0 になります。この拡張機能は、数値識別子を指定することによってミラー化ログデバイスを削除できることを意味します。
詳細は、例 4-3 を参照してください。
Oracle Solaris 10 9/10 リリース: このリリースでは、冗長な RAID-Z 構成でシングルパリティー、ダブルパリティー、またはトリプルパリティー保護を使用できるようになりました。これはそれぞれ、1 つ、2 つ、または 3 つのデバイスで障害が発生しても、データを失うことなく処理を続行できることを意味します。raidz3 キーワードを指定すれば、トリプルパリティー RAID-Z 構成にすることができます。詳細は、「RAID-Z ストレージプールを作成する」を参照してください。
Oracle Solaris 10 9/10 リリース: 異なる自動スナップショットポリシーを実装しており、送信側にもう存在しないという理由で古いスナップショットが zfs receive によって意図せず破棄されてしまう場合、このリリースのスナップショット保持機能の使用を検討することができます。
スナップショットの保持によって、それが破棄されるのを防げます。また、この機能では、zfs destroy -d コマンドを使用することにより、最後のクローンの消去を保留しながら、クローンが存在するスナップショットを削除できます。
1 つのスナップショットまたはスナップショットの集合を保持できます。たとえば次の構文は、保持タグ keep を tank/home/cindy/snap@1 に付与します。
# zfs hold keep tank/home/cindy@snap1
詳細は、「ZFS スナップショットの保持」を参照してください。
Oracle Solaris 10 9/10 リリース: このリリースでは、プール内のディスクが大きなディスクに置き換えられるとき、システムイベントあるいは sysevent が提供されます。これらのイベントを認識し、autoexpand プロパティーの設定によってディスクの新しいサイズに基づいてプールを調整できるように ZFS の機能が拡張されています。autoexpand プールプロパティーを使用して、大きいディスクで小さいディスクを置き換えるときのプールの自動拡張を有効または無効にすることができます。
これらの拡張機能によって、プールをエクスポートおよびインポートしたりシステムをリブートすることなくプールサイズを増加させることができます。
たとえば、tank プールで LUN の自動拡張を有効にします。
# zpool set autoexpand=on tank
または、autoexpand プロパティーを有効にしてプールを作成できます。
# zpool create -o autoexpand=on tank c1t13d0
autoexpand プロパティーはデフォルトで無効にされているため、大きいディスクで小さいディスクを置き換えるときにプールサイズを拡張するかどうかを決定できます。
プールサイズも zpool online - e コマンドを使用して拡張できます。例:
# zpool online -e tank c1t6d0
あるいは、zpool replace コマンドを使用して大きいディスクを接続または使用可能にしたあとで autoexpand プロパティーを再設定できます。たとえば、8G バイトのディスク 1 台 (c0t0d0) で構成される次のプールを作成します。8G バイトのディスクを 16G バイトのディスク (c1t13d0) に置き換えても、autoexpand プロパティーを有効にするまでプールのサイズは拡張されません。
# zpool create pool c0t0d0 # zpool list NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 8.44G 76.5K 8.44G 0% ONLINE - # zpool replace pool c0t0d0 c1t13d0 # zpool list NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 8.44G 91.5K 8.44G 0% ONLINE - # zpool set autoexpand=on pool # zpool list NAME SIZE ALLOC FREE CAP HEALTH ALTROOT pool 16.8G 91.5K 16.8G 0% ONLINE -
autoexpand プロパティーを有効にせずにディスクを拡張する別の方法として、デバイスがすでにオンラインであるにもかかわらず zpool online - e コマンドを使用することができます。例:
# zpool create tank c0t0d0 # zpool list tank NAME SIZE ALLOC FREE CAP HEALTH ALTROOT tank 8.44G 76.5K 8.44G 0% ONLINE - # zpool replace tank c0t0d0 c1t13d0 # zpool list tank NAME SIZE ALLOC FREE CAP HEALTH ALTROOT tank 8.44G 91.5K 8.44G 0% ONLINE - # zpool online -e tank c1t13d0 # zpool list tank NAME SIZE ALLOC FREE CAP HEALTH ALTROOT tank 16.8G 90K 16.8G 0% ONLINE -
デバイスの置き換えに関するこのリリースのその他の拡張機能には、次のものがあります。
以前のリリースの ZFS では、交換用ディスクのサイズが少しでも違っていると、既存のディスクを別のディスクと交換したり、ディスクを接続したりできませんでした。このリリースでは、プールにまだ空きがある場合であれば、既存のディスクをほぼ同じサイズの別のディスクと交換したり、ほぼ同じサイズの新しいディスクを接続したりできます。
このリリースでは、プールサイズを拡張するためにシステムをリブートしたり、プールをエクスポートしてインポートしたりする必要はありません。すでに説明したように、autoexpand プロパティーを有効にするか、zpool online -e コマンドを使用することによってプールサイズを拡張できます。
デバイスの置き換えについては、「ストレージプール内のデバイスを置き換える」を参照してください。
Solaris 10 10/09 リリース: このリリースでは、JumpStart プロファイルを設定して、ZFS ルートプールのフラッシュアーカイブを特定できます。詳細は、「ZFS ルートファイルシステムのインストール (Oracle Solaris フラッシュアーカイブインストール)」を参照してください。
Solaris 10 10/09 リリース: 以前のリリースでは、割り当て制限と予約を ZFS ファイルシステムに適用して、ディスク領域の管理および予約を行っていました。
このリリースでは、特定のユーザーやグループが所有するファイルによって消費されるディスク容量に割り当て制限を設定できます。例えば、多数のユーザーまたグループが存在する環境でユーザーおよびグループの割り当て制限を設定する場合もあります。
ユーザーの割り当て制限は、zfs userquota プロパティーを使用して設定できます。グループの割り当て制限を設定するには、zfs groupquota プロパティーを使用します。例:
# zfs set userquota@user1=5G tank/data # zfs set groupquota@staff=10G tank/staff/admins
ユーザーまたはグループの現在の割り当て制限の値を表示するには、次のようにします。
# zfs get userquota@user1 tank/data NAME PROPERTY VALUE SOURCE tank/data userquota@user1 5G local # zfs get groupquota@staff tank/staff/admins NAME PROPERTY VALUE SOURCE tank/staff/admins groupquota@staff 10G local
一般的な割り当て制限情報は、次のようにして表示できます。
# zfs userspace tank/data TYPE NAME USED QUOTA POSIX User root 3K none POSIX User user1 0 5G
# zfs groupspace tank/staff/admins TYPE NAME USED QUOTA POSIX Group root 3K none POSIX Group staff 0 10G
個別ユーザーのディスク容量使用状況は、userused@user プロパティー値を使って表示できます。グループのディスク容量使用状況は、groupused@ group プロパティー値を使って表示できます。例:
# zfs get userused@user1 tank/staff NAME PROPERTY VALUE SOURCE tank/staff userused@user1 213M local # zfs get groupused@staff tank/staff NAME PROPERTY VALUE SOURCE tank/staff groupused@staff 213M local
ユーザーの割り当て制限の設定の詳細については、「ZFS の割り当て制限と予約を設定する」を参照してください。
Solaris 10 10/09 リリース: 以前のリリースでは、すべてのファイルが 0664 アクセス権または 0666 アクセス権付きで作成されるように、ACL 継承を適用することができました。このリリースでは、ファイル作成モードの実行ビットを継承後の ACL に必要に応じて含める場合、aclinherit モードを設定して、実行権を継承後の ACL に渡すことができます。
ZFS データセットで aclinherit=passthrough-x を有効にすると、cc または gcc コンパイラツールによって生成される出力ファイルに対する実行権を含めることができます。継承された ACL に実行権が含まれていない場合、コンパイラからの実行可能な出力は、chmod コマンドを使用してファイルのアクセス権を変更するまで実行できません。
詳細は、例 8-12 を参照してください。
Solaris 10 10/09 および Oracle Solaris 10 9/10 リリース: これらのリリースには、次に示す ZFS ファイルシステムに関する拡張機能が含まれています。
スナップショットストリームプロパティーに関する ZFS の拡張機能 – ローカルのプロパティー設定と異なる受信プロパティーを設定できます。たとえば、圧縮プロパティーが無効に設定されたストリームを受信する一方で、受信側ファイルシステムでは圧縮を有効にする場合を考えます。このとき、受信するストリームに関して、圧縮プロパティーの値が受信側ではオフ、ローカルではオンということになります。ローカルの値は受信側の値に優先するため、送信側の設定によって受信側の値が置き換えられることを心配する必要はありません。zfs get コマンドを実行すると、圧縮プロパティーの実効値が VALUE 列の下に表示されます。
送信側とローカルのプロパティー値に関連した、ZFS の新しいコマンドオプションとプロパティーには次のものがあります。
ローカルのプロパティー値を受信値 (存在する場合) に戻すには、zfs inherit -S を使用します。プロパティーに受信値が存在しない場合、zfs inherit - S コマンドの動作は、-S オプションを指定しない zfs inherit コマンドと同じです。プロパティーに受信値が存在する場合、zfs inherit コマンドは、zfs inherit -S コマンドの発行によって継承値が受信値に戻されるまでの間、受信値を継承値でマスクします。
zfs get -o を使用すると、新しい非デフォルトの RECEIVED 列を含めることができます。または、zfs get -o all コマンドを使用すると、RECEIVED を含むすべての列を含めることができます。
zfs send -p オプションを使用すると、-R オプションを使用せずにプロパティーを送信ストリームに含めることができます。
また、zfs send -e オプションを使用すると、送信スナップショットの最後の要素を使用して新しいスナップショット名を決定できます。次の例では、poola/bee/cee@1 スナップショットを poold/eee ファイルシステムに送信し、スナップショット名の最後の要素 (cee@1) のみを使用して、受信側のファイルシステムおよびスナップショットを作成します。
# zfs list -rt all poola NAME USED AVAIL REFER MOUNTPOINT poola 134K 134G 23K /poola poola/bee 44K 134G 23K /poola/bee poola/bee/cee 21K 134G 21K /poola/bee/cee poola/bee/cee@1 0 - 21K - # zfs send -R poola/bee/cee@1 | zfs receive -e poold/eee # zfs list -rt all poold NAME USED AVAIL REFER MOUNTPOINT poold 134K 134G 23K /poold poold/eee 44K 134G 23K /poold/eee poold/eee/cee 21K 134G 21K /poold/eee/cee poold/eee/cee@1 0 - 21K -
プール作成時の ZFS ファイルシステムプロパティーの設定 - ストレージプールを作成するときに ZFS ファイルシステムプロパティーを設定することができます。次の例では、プールと一緒に作成された ZFS ファイルシステムで圧縮が有効になっています。
# zpool create -O compression=on pool mirror c0t1d0 c0t2d0
ZFS ファイルシステムにおけるキャッシュプロパティーの設定 - 2 つの新しい ZFS ファイルシステムプロパティーを使用して、プライマリキャッシュ (ARC) およびセカンダリキャッシュ (L2ARC) にキャッシュされる内容を制御できます。キャッシュのプロパティーは、次のように設定します。
primarycache – ARC にキャッシュされる内容を制御します。
secondarycache – L2ARC にキャッシュされる内容を制御します。
両方のプロパティーに指定できる値 – all、none、metadata。all に設定すると、ユーザーデータとメタデータの両方がキャッシュされます。none に設定すると、ユーザーデータも、メタデータも、キャッシュされません。metadata に設定すると、メタデータのみがキャッシュされます。デフォルトは all です。
これらのプロパティーは、既存のファイルシステムに設定できます。または、ファイルシステムの作成時に設定できます。次に例を示します。
# zfs set primarycache=metadata tank/datab # zfs create -o primarycache=metadata tank/newdatab
既存のファイルシステムでこれらのプロパティーを設定した場合、これらのプロパティーの値に基づいて、New I/O のみがキャッシュされます。
一部のデータベース環境では、ユーザーデータをキャッシュしないほうが利点が得られることがあります。キャッシュプロパティーの設定が、使用している環境に照らし合わせて適切かどうかを判定する必要があります。
ディスクスペースアカウンティングプロパティーの表示 – 新しい読み取り専用ファイルシステムプロパティーであり、クローン、ファイルシステム、ボリューム、およびスナップショットに関するディスク領域使用状況を確認する場合に役立ちます。属性は次のとおりです。
usedbychildren – このデータセットの子によって使用されるディスク領域の量を特定します。この領域は、データセットのすべての子が破棄されると、解放されます。このプロパティーの省略名は usedchild です。
usedbydataset – このデータセット自体によって使用されるディスク領域の量を特定します。この領域は、最初にあらゆるスナップショットが破棄されてから refreservation がすべて削除された後に、データセットが破棄されると、解放されます。このプロパティーの省略名は usedds です。
usedbyrefreservation – このデータセットに設定されている refreservation によって使用されるディスク領域の量を特定します。この領域は、refreservation が削除されると、解放されます。このプロパティーの省略名は usedrefreserv です。
usedbysnapshots – このデータセットのスナップショットによって消費されるディスク領域の量を特定します。この領域は、このデータセットのすべてのスナップショットが破棄されると、解放されます。これはスナップショットの used プロパティーの値を単純に合計した結果ではないことに注意してください。複数のスナップショットで共有されているディスク容量も存在するためです。このプロパティーの省略名は usedsnap です。
これらの新しいプロパティーは、used プロパティーの値を、ディスク容量を消費する各種の要素に分割します。具体的には、used プロパティーの値は次のように分割されます。
used property = usedbychildren + usedbydataset + usedbyrefreservation + usedbysnapshots
これらのプロパティーは、zfs list -o space コマンドを使用して表示できます。次に例を示します。
$ zfs list -o space NAME AVAIL USED USEDSNAP USEDDS USEDREFRESERV USEDCHILD rpool 25.4G 7.79G 0 64K 0 7.79G rpool/ROOT 25.4G 6.29G 0 18K 0 6.29G rpool/ROOT/snv_98 25.4G 6.29G 0 6.29G 0 0 rpool/dump 25.4G 1.00G 0 1.00G 0 0 rpool/export 25.4G 38K 0 20K 0 18K rpool/export/home 25.4G 18K 0 18K 0 0 rpool/swap 25.8G 512M 0 111M 401M 0
前述のコマンドは、zfs list - o name,avail,used,usedsnap,usedds,usedrefreserv,usedchild -t filesystem,volume コマンドと同等です。
スナップショットの表示– listsnapshots プールプロパティーは、zfs list コマンドでスナップショット情報が表示されるかどうかを制御します。デフォルト値は on です。つまり、デフォルトでは、スナップショット情報は表示されます。
システムに存在する ZFS スナップショットの数が多い場合に、zfs list コマンドでスナップショット情報の表示を無効にするには、次のようにして listsnapshots プロパティーを無効にします。
# zpool get listsnapshots pool NAME PROPERTY VALUE SOURCE pool listsnapshots on default # zpool set listsnaps=off pool
listsnapshots プロパティーを無効にした場合、zfs list -t snapshots コマンドを使用してスナップショット情報を一覧表示できます。次に例を示します。
# zfs list -t snapshot NAME USED AVAIL REFER MOUNTPOINT pool/home@today 16K - 22K - pool/home/user1@today 0 - 18K - pool/home/user2@today 0 - 18K - pool/home/user3@today 0 - 18K -
Solaris 10 10/09 リリース: このリリースでは、zpool status コマンド出力におけるインテントログ障害を ZFS が認識します。これらのエラーは障害管理アーキテクチャー (FMA) によっても報告されます。ZFS と FMA は両方とも、インテントログ障害から回復する方法を説明します。
たとえば、別個のログデバイスを持つプールに対する同期書き込み操作が確定される前にシステムが突然シャットダウンされた場合には、次のようなメッセージが表示されます。
# zpool status -x pool: pool state: FAULTED status: One or more of the intent logs could not be read. Waiting for adminstrator intervention to fix the faulted pool. action: Either restore the affected device(s) and run 'zpool online', or ignore the intent log records by running 'zpool clear'. scrub: none requested config: NAME STATE READ WRITE CKSUM pool FAULTED 0 0 0 bad intent log mirror ONLINE 0 0 0 c0t1d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 logs FAULTED 0 0 0 bad intent log c0t5d0 UNAVAIL 0 0 0 cannot open
そのような場合には、次の方法でログデバイスの障害を解決できます。
ログデバイスを交換または回復します(この例の場合、ログデバイスは c0t5d0)。
ログデバイスをオンラインに戻します。
# zpool online pool c0t5d0
障害が発生したログデバイスのエラー状況がリセットされます。
# zpool clear pool
障害が発生したログデバイスを交換せずにこのエラーから回復するために、zpool clear コマンドを使用してエラーを解決することができます。このシナリオでは、プールが縮退モードで実行され、ログレコードは、ログデバイスが交換されるまで、メインプールに書き込まれます。
ログデバイスの障害の発生を回避するため、ミラー化ログデバイスを利用することを検討してください。
Solaris 10 10/09 リリース: このリリースでは、プールを作成するとき、ストレージプールデータをキャッシュするために使用されるキャッシュデバイスを指定することができます。
キャッシュデバイスにより、メインメモリーとディスクの間にキャッシュ層が追加されます。キャッシュデバイスを使用すると、ほぼ静的なコンテンツをランダムに読み込む作業負荷のパフォーマンスが大幅に向上します。
プールの作成時に 1 つ以上のキャッシュデバイスを指定できます。次に例を示します。
# zpool create pool mirror c0t2d0 c0t4d0 cache c0t0d0 # zpool status pool pool: pool state: ONLINE scrub: none requested config: NAME STATE READ WRITE CKSUM pool ONLINE 0 0 0 mirror ONLINE 0 0 0 c0t2d0 ONLINE 0 0 0 c0t4d0 ONLINE 0 0 0 cache c0t0d0 ONLINE 0 0 0 errors: No known data errors
キャッシュデバイスを追加すると、そのキャッシュデバイスにメインメモリーの内容が徐々に書き込まれていきます。キャッシュデバイスのサイズによっては、デバイスがいっぱいになるまでに 1 時間以上かかる場合もあります。zpool iostat コマンドを次のように使用して、容量と読み込みを監視できます。
# zpool iostat -v pool 5
プールの作成後に、プールに対してキャッシュデバイスの追加や削除を行うことができます。
詳細は、「キャッシュデバイスを使用して ZFS ストレージプールを作成する」および例 4-4 を参照してください。
Solaris 10 5/09 リリース: このリリースでは、ZFS 環境で Oracle Solaris Live Upgrade を使用してゾーンを移行するためのサポートが拡張されています。詳細は、「ゾーンが含まれているシステムを Oracle Solaris Live Upgrade で移行またはアップグレードする (Solaris 10 5/09 以降)」を参照してください。
このリリースで認識されている問題のリストについては、『Solaris 10 5/09 ご使用にあたって』を参照してください。
Solaris 10 10/08 リリース: このリリースでは、ZFS ルートファイルシステムをインストールおよびブートできます。初期インストールまたは JumpStart 機能を使用して、ZFS ルートファイルシステムをインストールできます。あるいは、Oracle Solaris Live Upgrade を使用して、UFS ルートファイルシステムを ZFS ルートファイルシステムに移行できます。スワップデバイスとダンプデバイスに関する ZFS のサポートも追加されています。詳細は、第 5 章Oracle Solaris ZFS ルートファイルシステムのインストールとブートを参照してください。
このリリースで認識されている問題のリストについては、次のサイトを参照してください。
http://hub.opensolaris.org/bin/view/Community+Group+zfs/boot
『Solaris 10 10/08 ご使用にあたって』も参照してください。
Solaris 10 10/08 リリース: このリリースでは、事前にマウント解除しなくてもデータセットをロールバックできます。そのため、マウント解除処理を強制的に行う zfs rollback -f オプションは不要になりました。-f オプションは今後はサポートされず、指定しても無視されます。
Solaris 10 10/08 リリース: このリリースでは、zfs send コマンドに次の拡張機能が追加されています。このコマンドを使用して、次の操作を実行できるようになりました。
1 つのスナップショットのすべての増分ストリームを累積スナップショットに送信します。次に例を示します。
# zfs list NAME USED AVAIL REFER MOUNTPOINT pool 428K 16.5G 20K /pool pool/fs 71K 16.5G 21K /pool/fs pool/fs@snapA 16K - 18.5K - pool/fs@snapB 17K - 20K - pool/fs@snapC 17K - 20.5K - pool/fs@snapD 0 - 21K - # zfs send -I pool/fs@snapA pool/fs@snapD > /snaps/fs@combo
この構文は、fs@snapA から fs@snapD までのすべての増分スナップショットを fs@combo に送信します。
元のスナップショットからの増分ストリームを送信してクローンを作成します。増分ストリームを受け入れるには、元のスナップショットが受信側にすでに存在している必要があります。例:
# zfs send -I pool/fs@snap1 pool/clone@snapA > /snaps/fsclonesnap-I . . # zfs receive -F pool/clone < /snaps/fsclonesnap-I
指定されたスナップショットまでのすべての下位ファイルシステムの複製ストリームを送信します。受信時には、すべてのプロパティー、スナップショット、下位ファイルシステム、およびクローンが維持されます。次に例を示します。
# zfs send -R pool/fs@snap > snaps/fs-R
詳細な例については、例 7-1 を参照してください。
増分複製ストリームを送信します。次に例を示します。
# zfs send -R -[iI] @snapA pool/fs@snapD
詳細な例については、例 7-1 を参照してください。
詳細は、「複雑な ZFS スナップショットストリームを送信および受信する」を参照してください。
Solaris 10 10/08 リリース: このリリースでは、ZFS の割り当て制限と予約の既存機能に加え、データセットの割り当て制限と予約が追加されました。この機能では、スナップショットやクローンなどの子孫はディスク容量の計算に含まれません。
refquota プロパティーは、データセットが消費できるディスク容量に対して強い制限値を設定します。この強い制限値には、スナップショットやクローンなどの下位データで使用されるディスク容量は含まれません。
refreservation プロパティーは、1 つのデータセットに対して保証される最小限のディスク容量を設定します。下位データは含まれません。
たとえば、studentA に 10G バイトの refquota 制限を設定すると、「基準」ディスク容量として 10G バイトの強い制限値を設定することができます。柔軟性を高めるために、20G バイトの割り当て制限を設定して、studentA のスナップショットを管理することもできます。
# zfs set refquota=10g tank/studentA # zfs set quota=20g tank/studentA
詳細は、「ZFS の割り当て制限と予約を設定する」を参照してください。
Solaris 10 10/08 リリース: ZFS ストレージプールのプロパティーは以前のリリースで導入されました。このリリースでは、cachefile および failmode の 2 つのプロパティーが用意されています。
ここでは、このリリースの新しいストレージプールプロパティーについて説明します。
cachefile プロパティー – このプロパティーは、プール構成情報がキャッシュされる場所を制御します。システムのブート時に、キャッシュ内のすべてのプールが自動的にインポートされます。ただし、インストール環境とクラスタ化環境では、プールが自動的にインポートされないようにするために、この情報を別の場所にキャッシュすることが必要になる場合もあります。
プール構成を別の場所にキャッシュするようにこのプロパティーを設定し、あとで zpool import -c コマンドを使用してインポートすることができます。ほとんどの ZFS 構成で、このプロパティーは使用されません。
cachefile プロパティーは持続性を持たず、ディスクには格納されません。このプロパティーは、プール情報をキャッシュしないように指定するために以前の Solaris リリースで使用されていた temporary プロパティーに代わるものです。
failmode プロパティー – このプロパティーは、デバイスの接続が失われたことによる壊滅的なプール障害やプールの全デバイスの障害が発生した場合の動作を決定します。failmode プロパティーの値は、wait、continue、または panic に設定できます。デフォルト値は wait です。これは、デバイスを再接続するか障害の発生したデバイスを交換してから、zpool clear コマンドでエラーを解決する必要があることを意味します。
failmode プロパティーは、ほかの設定可能な ZFS プロパティーと同様に、プールの作成前または作成後に設定することができます。次に例を示します。
# zpool set failmode=continue tank # zpool get failmode tank NAME PROPERTY VALUE SOURCE tank failmode continue local
# zpool create -o failmode=continue users mirror c0t1d0 c1t1d0
プールプロパティーについては、表 4-1 を参照してください。
Solaris 10 10/08 リリース: zpool history コマンドが拡張され、次の新機能が追加されています。
ZFS ファイルシステムのイベント情報が表示されるようになりました。
-l オプションを使用して、ユーザー名、ホスト名、および操作が実行されたゾーンを含む長形式を表示できます。
-i オプションを使用すると、診断目的のために内部イベント情報を表示できます。
zpool history コマンドの使用方法の詳細については、「ZFS の問題を解決する」を参照してください。
Solaris 10 10/08 リリース: このリリースでは、今後の ZFS ファイルシステムの拡張機能を既存のファイルシステムに提供する zfs upgrade コマンドが追加されています。ZFS ストレージプールには、プール拡張を既存のストレージプールに提供する同様のアップグレード機能が備わっています。
次に例を示します。
# zfs upgrade This system is currently running ZFS filesystem version 3. All filesystems are formatted with the current version.
注 - アップグレードされたファイルシステム、およびこれらのアップグレードされたファイルシステムから zfs send コマンドによって作成されたストリームには、古いソフトウェアリリースを実行しているシステムからはアクセスできません。
Solaris 10 10/08 リリース: このリリースでは、詳細なアクセス権を付与して、権限のないユーザーに ZFS 管理タスクの実行を許可することができます。
zfs allow と zfs unallow の各コマンドを使ってアクセス権を委任および削除できます。
プールの delegation プロパティーを使って委任管理を変更できます。次に例を示します。
# zpool get delegation users NAME PROPERTY VALUE SOURCE users delegation on default # zpool set delegation=off users # zpool get delegation users NAME PROPERTY VALUE SOURCE users delegation off local
デフォルトでは、delegation プロパティーは有効になっています。
詳細は、第 9 章Oracle Solaris ZFS 委任管理および zfs(1M) を参照してください。
Solaris 10 10/08 リリース: 同期トランザクションの POSIX 要件を満たすために、ZFS インテントログ (ZIL) が提供されています。たとえば、多くの場合、データベースがシステムコールから戻るときは、そのトランザクションが安定したストレージデバイス上に置かれている必要があります。NFS やその他のアプリケーションでは、データの安定性を確保するために fsync() も使用できます。デフォルトでは、ZIL はメインストレージプール内のブロックから割り当てられます。このリリースでは、ZIL ブロックが引き続きメインストレージプールから割り当てられるか、それとも別個のログデバイスから割り当てられるかを指定できます。NVRAM や専用ディスクなどで、別個のインテントログデバイスを ZFS ストレージプール内で使用することにより、パフォーマンスを向上できる可能性があります。
ZFS インテントログ用のログデバイスは、データベースのログファイルとは関連がありません。
ZFS ログデバイスの設定は、ストレージプールの作成時または作成後に行えます。ログデバイスの設定の例については、「ログデバイスを持つ ZFS ストレージプールを作成する」および「ストレージプールにデバイスを追加する」を参照してください。
既存のログデバイスにログデバイスを接続して、ミラー化ログデバイスを作成できます。この操作は、ミラー化されていないストレージプール内にデバイスを接続する操作と同じです。
使用している環境で別個の ZFS ログデバイスを設定することが適切かどうかを判断するには、次の点を考慮してください。
別個のログデバイスを実装することによって得られるパフォーマンスの向上は、デバイスの種類、プールのハードウェア構成、およびアプリケーションの作業負荷によって異なります。パフォーマンスの基礎情報については、次のブログを参照してください。
http://blogs.oracle.com/perrin/entry/slog_blog_or_blogging_on
ログデバイスは複製解除したりミラー化したりできますが、ログデバイスで RAID-Z はサポートされていません。
別個のログデバイスがミラー化されていない場合、ログを格納しているデバイスに障害が発生すると、ログブロックの格納はストレージプールに戻ります。
ログデバイスは、より大規模なストレージプールの一部として、追加、置き換え、接続、切り離し、インポート、およびエクスポートすることができます。ログデバイスの削除は Solaris 10 9/10 リリースから可能になっています。
ログデバイスの最小サイズは、プール内の各デバイスの最小サイズと同じで、64M バイトです。ログデバイスに格納される可能性のある処理中のデータは比較的少量です。ログのトランザクション (システムコール) がコミットされると、ログブロックは解放されます。
ログデバイスの最大サイズは物理メモリーのサイズの約 1/2 になるようにしてください。これは、格納される可能性のある処理中のデータの最大量です。たとえば、16G バイトの物理メモリーを備えたシステムの場合、ログデバイスの最大サイズとして 8G バイトを検討してください。
Solaris 10 10/08 リリース: -zfs create、zfs clone、および zfs rename コマンドで p オプションを使用すると、中間データセットがまだ存在しない場合にそれをすばやく作成することができます。
次の例では、ZFS データセット (users/area51) が datab ストレージプールに作成されます。
# zfs list NAME USED AVAIL REFER MOUNTPOINT datab 106K 16.5G 18K /datab # zfs create -p -o compression=on datab/users/area51
作成処理中に中間データセットがすでに存在していれば、この処理は正常に完了します。
指定したプロパティーは、中間データセットではなく、ターゲットデータセットに適用されます。次に例を示します。
# zfs get mountpoint,compression datab/users/area51 NAME PROPERTY VALUE SOURCE datab/users/area51 mountpoint /datab/users/area51 default datab/users/area51 compression on local
中間データセットは、デフォルトのマウントポイントで作成されます。中間データセットに対する追加のプロパティーはすべて無効になります。次に例を示します。
# zfs get mountpoint,compression datab/users NAME PROPERTY VALUE SOURCE datab/users mountpoint /datab/users default datab/users compression off default
詳細は、zfs(1M) を参照してください。
Solaris 10 10/08 リリース: このリリースの ZFS では、削除されたデバイスへの応答がより効果的になり、挿入されたデバイスを自動的に識別できるようになっています。
zpool replace コマンドを使用しなくても、既存のデバイスを同等のデバイスに置き換えることができます。
autoreplace プロパティーは、自動デバイス交換を制御します。オフに設定されている場合、管理者が zpool replace コマンドを使ってデバイス交換を開始する必要があります。オンに設定されている場合、そのプールに以前属していたデバイスと物理的に同じ位置にある新しいデバイスは、いずれも自動的にフォーマットされ、置き換えられます。デフォルトの動作は「オフ」です。
システムの実行中にデバイスまたはホットスペアが物理的に取り外されると、ストレージプールの状態は REMOVED になります。可能であれば、取り外されたデバイスはホットスペアデバイスで置き換えられます。
デバイスをいったん取り外してから挿入し直すと、デバイスはオンラインになります。デバイスを挿入し直したときにホットスペアがアクティブになっていた場合は、オンライン処理が完了すると、そのホットスペアが取り外されます。
デバイスの着脱時の自動検出はハードウェアに依存しているため、すべてのプラットフォームには対応していない可能性があります。たとえば、USB デバイスは挿入時に自動的に構成されます。ただし、cfgadm -c configure コマンドを使用して SATA ドライブを構成する必要がある場合もあります。
ホットスペアは、オンラインおよび使用可能かどうか定期的に確認されます。
詳細は、zpool(1M) を参照してください。
Solaris 10 10/08 リリース: zfs rename -r コマンドを使用して、すべての ZFS 子孫スナップショットの名前を再帰的に変更することができます。次に例を示します。
まず、一連の ZFS ファイルシステムのスナップショットが作成されます。
# zfs snapshot -r users/home@today # zfs list -t all -r users/home NAME USED AVAIL REFER MOUNTPOINT users/home 2.00G 64.9G 33K /users/home users/home@today 0 - 33K - users/home/mark 1.00G 64.9G 1.00G /users/home/mark users/home/mark@today 0 - 1.00G - users/home/neil 1.00G 64.9G 1.00G /users/home/neil users/home/neil@today 0 - 1.00G -
その翌日にスナップショットの名前が変更されます。
# zfs rename -r users/home@today @yesterday # zfs list -t all -r users/home users/home 2.00G 64.9G 33K /users/home users/home@yesterday 0 - 33K - users/home/mark 1.00G 64.9G 1.00G /users/home/mark users/home/mark@yesterday 0 - 1.00G - users/home/neil 1.00G 64.9G 1.00G /users/home/neil users/home/neil@yesterday 0 - 1.00G -
スナップショットは、再帰的な名前変更が可能な唯一の種類のデータセットです。
スナップショットの詳細については、「ZFS スナップショットの概要」と、周期的スナップショットの作成方法を記述した次のブログエントリを参照してください。
http://blogs.oracle.com/mmusante/entry/rolling_snapshots_made_easy
Solaris 10 10/08 リリース: このリリースでは、ZFS ファイルシステムに対して lzjb 圧縮だけでなく gzip 圧縮も設定できます。圧縮は、gzip と指定することも、gzip-N (N は 1 ~ 9) と指定することもできます。例:
# zfs create -o compression=gzip users/home/snapshots # zfs get compression users/home/snapshots NAME PROPERTY VALUE SOURCE users/home/snapshots compression gzip local # zfs create -o compression=gzip-9 users/home/oldfiles # zfs get compression users/home/oldfiles NAME PROPERTY VALUE SOURCE users/home/oldfiles compression gzip-9 local
ZFS のプロパティーの設定方法の詳細については、「ZFS プロパティーを設定する」を参照してください。
Solaris 10 10/08 リリース: 信頼性を高める機能として、可能であれば、ZFS ファイルシステムのメタデータが異なるディスクにまたがって何度か自動的に保存されます。この機能は、ditto ブロックとして知られています。
このリリースでは、ユーザーデータの複数のコピーも保存でき、これらは zfs set copies コマンドを使用してファイルシステムごとに保存することもできます。例:
# zfs set copies=2 users/home # zfs get copies users/home NAME PROPERTY VALUE SOURCE users/home copies 2 local
使用できる値は 1、2、または 3 です。デフォルト値は 1。これらのコピーは、ミラー化構成または RAID-Z 構成などのプールレベルの冗長性を補うものです。
ZFS ユーザーデータの複数のコピーを保存する利点は次のとおりです。
すべての ZFS 構成について、メディア障害 (一般に「ビット腐敗」と呼ばれる) などの回復不能なブロックの読み取り障害から回復できるようにすることで、データ保持機能を向上させます。
使用できるディスクが 1 台だけの場合でもデータ保護が提供されます。
ストレージプールの機能を超えて、ファイルシステムごとにデータ保護ポリシーを選択できます。
注 - ストレージプールでの ditto ブロックの割り当てによっては、複数のコピーが単一のディスクに保存される場合もあります。そのあとでディスク全体の障害が発生すると、すべての ditto ブロックが使用不可になる可能性があります。
誤って非冗長プールを作成した場合や、データ保持ポリシーを設定する必要がある場合は、ditto ブロックの使用を検討することもできます。
単一ディスクのプールまたは複数ディスクのプールを備えたシステムで複数のコピーを保存することにより、全体的なデータ保護がどのように影響を受けるかについて詳しくは、次のブログを参照してください。
http://blogs.oracle.com/relling/entry/zfs_copies_and_data_protection
ZFS のプロパティーの設定方法の詳細については、「ZFS プロパティーを設定する」を参照してください。
Solaris 10 8/07 リリース: zpool status -v コマンドを使用すると、永続的なエラーが発生しているファイルの一覧を表示できます。以前は、find -inum コマンドを使用して、表示された i ノードの一覧からファイル名を特定する必要がありました。
永続的なエラーが発生しているファイル一覧の表示に関する詳細は、「破壊されたファイルまたはディレクトリを修復する」を参照してください。
Solaris 10 8/07 リリース: このリリースでは、ZFS ボリュームに shareiscsi プロパティーを設定することで、ZFS ボリュームを Solaris iSCSI ターゲットデバイスとして作成できます。この方法は、Solaris iSCSI ターゲットをすばやく設定するのに便利です。次に例を示します。
# zfs create -V 2g tank/volumes/v2 # zfs set shareiscsi=on tank/volumes/v2 # iscsitadm list target Target: tank/volumes/v2 iSCSI Name: iqn.1986-03.com.sun:02:984fe301-c412-ccc1-cc80-cf9a72aa062a Connections: 0
iSCSI ターゲットが作成されたら、iSCSI イニシエータを設定できます。Solaris iSCSI イニシエータの設定方法については、『Solaris のシステム管理 (デバイスとファイルシステム)』の第 14 章「Oracle Solaris iSCSI ターゲットおよびイニシエータの構成 (手順)」を参照してください。
ZFS ボリュームを iSCSI ターゲットとして管理するための詳細については、「ZFS ボリュームを Solaris iSCSI ターゲットとして使用する」を参照してください。
Solaris 10 8/07 リリース: このリリースでは、正常に実行された zfs および zpool コマンドが ZFS によって自動的に記録され、プールの状態の情報が更新されます。次に例を示します。
# zpool history History for 'newpool': 2007-04-25.11:37:31 zpool create newpool mirror c0t8d0 c0t10d0 2007-04-25.11:37:46 zpool replace newpool c0t10d0 c0t9d0 2007-04-25.11:38:04 zpool attach newpool c0t9d0 c0t11d0 2007-04-25.11:38:09 zfs create newpool/user1 2007-04-25.11:38:15 zfs destroy newpool/user1 History for 'tank': 2007-04-25.11:46:28 zpool create tank mirror c1t0d0 c2t0d0 mirror c3t0d0 c4t0d0
この機能によって、ユーザーや Oracle のサポート担当者は実行された「正確な」ZFS コマンドを特定し、エラーシナリオのトラブルシューティングを行うことができます。
zpool history コマンドでは、特定のストレージプールを指定できます。例:
# zpool history newpool History for 'newpool': 2007-04-25.11:37:31 zpool create newpool mirror c0t8d0 c0t10d0 2007-04-25.11:37:46 zpool replace newpool c0t10d0 c0t9d0 2007-04-25.11:38:04 zpool attach newpool c0t9d0 c0t11d0 2007-04-25.11:38:09 zfs create newpool/user1 2007-04-25.11:38:15 zfs destroy newpool/user1
このリリースでは、zpool history コマンドで、ユーザー ID (user-ID)、ホスト名 (hostname)、またはゾーン名 (zone-name) は記録されません。ただし、この情報が記録されるのは Solaris 10 10/08 リリースからです。詳細は、「ZFS コマンドの履歴の拡張機能 (zpool history)」を参照してください。
ZFS に関する問題のトラブルシューティングの詳細については、「ZFS の問題を解決する」を参照してください。
Solaris 10 8/07 リリース: xattr プロパティーを使用すると、特定の ZFS ファイルシステムの拡張属性を無効または有効にできます。デフォルト値は on です。ZFS プロパティーについては、「ZFS のプロパティーの紹介」を参照してください。
Solaris 10 8/07 リリース: 新しいプロパティーである canmount を使用すると、zfs mount コマンドを使ってデータセットをマウントできるかどうかを指定できます。詳細については、「canmount プロパティー」を参照してください。
Solaris 10 8/07 リリース: ZFS では、内部統計情報のエクスポートや ZFS ファイルシステムの動作の制御に使用できる標準のネイティブプロパティーのほかに、ユーザープロパティーも用意されています。ユーザープロパティーは ZFS の動作には影響しませんが、これらを使用すると、使用環境内で意味のある情報をデータセットに注釈として付けることができます。
詳細については、「ZFS ユーザープロパティー」を参照してください。
Solaris 10 8/07 リリース: このリリースでは、ファイルシステムの作成後だけでなく作成時にプロパティーを設定できます。
次の 2 つの例は、同等の構文を示しています。
# zfs create tank/home # zfs set mountpoint=/export/zfs tank/home # zfs set quota=50g tank/home # zfs set compression=on tank/home
# zfs create -o mountpoint=/export/zfs -o quota=50g -o compression=on tank/home
Solaris 10 8/07 リリース: このリリースでは、データセットを指定しないかまたは all を指定する場合、さまざまな形式の zfs get コマンドを使用してすべてのデータセットに関する情報を表示できます。以前のリリースでは、zfs get コマンドですべてのデータセットに関する情報を取得することはできませんでした。
次に例を示します。
# zfs get -r -s local all tank/home NAME PROPERTY VALUE SOURCE tank/home atime off local tank/home/jeff atime off local tank/home/mark quota 50G local
Solaris 10 8/07 リリース: このリリースでは、zfs receive コマンドに新しい -F オプションを指定することで、受信が開始する前に、最新のスナップショットへのファイルシステムのロールバックを強制することができます。このオプションの使用は、ロールバックが発生してから受信が開始するまでの間にファイルシステムが変更されるときに必要となる場合があります。
詳細は、「ZFS スナップショットを受信する」を参照してください。
Solaris 10 11/06 リリース: zfs snapshot コマンドを使ってファイルシステムのスナップショットを作成する場合、-r オプションを使用すると、すべての子孫ファイルシステムのスナップショットを再帰的に作成できます。また、-r オプションを使用すると、スナップショットが破棄されたときにすべての子孫スナップショットを再帰的に破棄できます。
再帰的な ZFS スナップショットは、1 つの原子動作としてすばやく作成されます。スナップショットは、まとめて (一度にすべて) 作成されるか、まったく作成されないかのどちらかです。そのような操作の利点は、子孫ファイルシステムにまたがる場合でも、常にある一貫した時間のスナップショットデータが取得されることです。
詳細は、「ZFS スナップショットを作成および破棄する」を参照してください。
Solaris 10 11/06 リリース: 冗長な RAID-Z 構成でシングルパリティー構成またはダブルパリティー構成を使用できるようになりました。これはそれぞれ、1 つまたは 2 つのデバイスで障害が発生しても、データを失うことなく処理を続行できることを意味します。raidz2 キーワードを指定すれば、ダブルパリティー RAID-Z 構成にすることができます。あるいは、raidz または raidz1 キーワードを指定すれば、シングルパリティー RAID-Z 構成にすることができます。
詳細は、「RAID-Z ストレージプールを作成する」または zpool(1M) を参照してください。
Solaris 10 11/06 リリース: ZFS ホットスペア機能を使用すると、1 つ以上のストレージプールで障害が発生したデバイスまたはエラー状態のデバイスの置き換えに使用可能なディスクを特定できます。デバイスを「ホットスペア」として指定しておくと、プールのアクティブデバイスで障害が発生した場合に、そのデバイスがホットスペアに自動的に置き換えられます。ストレージプールのデバイスを手動でホットスペアに置き換えることもできます。
詳細は、「ストレージプールにホットスペアを指定する」および zpool(1M) を参照してください。
Solaris 10 11/06 リリース: zfs promote コマンドを使用すると、ある既存の ZFS ファイルシステムをそのファイルシステムのクローンで置き換えることができます。この機能は、ファイルシステムの代替バージョンでテストを実行してから、その代替バージョンをアクティブファイルシステムに置き換えるときに利用できます。
詳細は、「ZFS ファイルシステムを ZFS クローンで置き換える」および zfs(1M) を参照してください。
Solaris 10 6/06 リリース: zpool upgrade コマンドを使用すると、ストレージプールを新しいバージョンの ZFS にアップグレードして、その最新機能を利用できるようになります。また、古いバージョンの ZFS を実行している場合、zpool status コマンドによって通知されます。
詳細は、「ZFS ストレージプールをアップグレードする」および zpool(1M) を参照してください。
以前の Solaris リリースのプールを持つシステムで ZFS 管理コンソールを使用する場合は、必ずプールをアップグレードしてからコンソールを使用するようにしてください。プールのアップグレードが必要かどうかを調べるには、zpool status コマンドを使用します。ZFS 管理コンソールについては、「Web ベースの ZFS 管理」を参照してください。
Solaris 10 6/06 リリース: このリリースでは、zfs backup および zfs restore コマンドの名前が、それらの機能をより正確に表すように、zfs send および zfs receive にそれぞれ変更されています。これらのコマンドは ZFS データストリーム表現を送受信します。
これらのコマンドの詳細については、「ZFS データを送信および受信する」を参照してください。
Solaris 10 6/06 リリース: このリリースには、zpool import -D コマンドが含まれています。このコマンドを使用すると、以前に zpool destroy コマンドで破棄されたプールを回復できます。
詳細は、「破棄された ZFS ストレージプールを回復する」を参照してください。
Solaris 10 6/06 リリース: このリリースには、プールの障害やデバイスの障害を診断および報告できる ZFS 診断エンジンが含まれています。プールまたはデバイスの障害に関連するチェックサム、入出力、デバイス、およびプールのエラーも報告されます。
この診断エンジンでは、チェックサムと入出力のエラーを予測分析する機能や、障害分析に基づいて予防処理を行う機能はありません。
ZFS で障害が発生した場合、次のようなメッセージが表示されることがあります。
SUNW-MSG-ID: ZFS-8000-D3, TYPE: Fault, VER: 1, SEVERITY: Major EVENT-TIME: Wed Jun 30 14:53:39 MDT 2010 PLATFORM: SUNW,Sun-Fire-880, CSN: -, HOSTNAME: neo SOURCE: zfs-diagnosis, REV: 1.0 EVENT-ID: 504a1188-b270-4ab0-af4e-8a77680576b8 DESC: A ZFS device failed. Refer to http://sun.com/msg/ZFS-8000-D3 for more information. AUTO-RESPONSE: No automated response will occur. IMPACT: Fault tolerance of the pool may be compromised. REC-ACTION: Run 'zpool status -x' and replace the bad device.
推奨される操作として、zpool status コマンドの指示に従って再調査することにより、障害をすばやく特定して解決することができます。
報告された ZFS の問題から回復する例については、「見つからないデバイスに関する問題を解決する」を参照してください。
Solaris 10 6/06 リリース: このリリースには、デバイスやプールに関連するエラーカウントをクリアーするための zpool clear コマンドが含まれています。以前は、zpool online コマンドを使ってプール内のデバイスがオンラインになったときに、エラー数がクリアーされていました。詳細は、「ストレージプールデバイスのエラーをクリアーする」および zpool(1M) を参照してください。
Solaris 10 6/06 リリース: このリリースでは、冗長およびコンパクトの 2 とおりの形式で NFSv4 ACL を設定および表示できます。どちらの ACL 形式も chmod コマンドを使って設定できます。コンパクト形式の ACL は、ls -V コマンドを使って表示できます。冗長形式の ACL は、ls -v コマンドを使って表示できます。
詳細は、「ZFS ファイルの ACL をコンパクト形式で設定および表示する」、および chmod(1) と ls(1) を参照してください。
Solaris 10 6/06 リリース: 新しいファイルシステム監視ツール fsstat はファイルシステムの動作を報告します。アクティビティーは、マウントポイント単位またはファイルシステムタイプ単位で報告できます。一般的な ZFS ファイルシステムアクティビティーの例を示します。
$ fsstat zfs new name name attr attr lookup rddir read read write write file remov chng get set ops ops ops bytes ops bytes 7.82M 5.92M 2.76M 1.02G 3.32M 5.60G 87.0M 363M 1.86T 20.9M 251G zfs
詳細は、fsstat(1M) を参照してください。
Solaris 10 6/06 リリース: Web ベースの ZFS 管理ツールである ZFS 管理コンソールを使用して、次の管理タスクを実行できます。
新規ストレージプールを作成します。
既存のプールに容量を追加します。
既存のプールを別のシステムに移動 (エクスポート) します。
以前にエクスポートしたストレージプールを別のシステムで使用できるようにインポートします。
ストレージプールに関する情報を表示します。
ファイルシステムを作成します。
ボリュームを作成します。
ファイルシステムまたはボリュームのスナップショットを作成します。
ファイルシステムを以前のスナップショットにロールバックします。
セキュリティー保護された Web ブラウザから次の URL の ZFS 管理コンソールにアクセスできます。
https://system-name:6789/zfs
正しい URL を入力しても ZFS 管理コンソールにアクセスできない場合は、サーバーが起動していない可能性があります。サーバーを起動するには、次のコマンドを実行します。
# /usr/sbin/smcwebserver start
システムをブートするときにサーバーを自動的に実行するには、次のコマンドを実行します。
# /usr/sbin/smcwebserver enable
注 - Solaris 管理コンソール (smc) を使って ZFS ストレージプールまたは ZFS ファイルシステムを管理することはできません。