ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
![]() |
Oracle Solaris ZFS 管理ガイド Oracle Solaris 10 1/13 Information Library (日本語) |
1. Oracle Solaris ZFS ファイルシステム (概要)
Oracle Solaris ZFS ファイルシステムと従来のファイルシステムの相違点
3. Oracle Solaris ZFS ストレージプールの管理
4. Oracle Solaris ZFS ルートファイルシステムのインストールとブート
5. Oracle Solaris ZFS ファイルシステムの管理
6. Oracle Solaris ZFS のスナップショットとクローンの操作
7. ACL および属性を使用した Oracle Solaris ZFS ファイルの保護
9. Oracle Solaris ZFS の高度なトピック
10. Oracle Solaris ZFS のトラブルシューティングとプールの回復
11. 推奨の Oracle Solaris ZFS プラクティス
このセクションでは、ZFS ファイルシステムの新機能について概説します。
Oracle Solaris 10 1/13: 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 10 1/13: このリリースには、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 10 1/13: aclmode プロパティーは、chmod 操作中にファイルのアクセス制御リスト (ACL) のアクセス権が変更されると必ず ACL 動作を変更します。aclmode プロパティーは次のプロパティー値とともに再導入されました。
discard – aclmode プロパティーが discard であるファイルシステムでは、ファイルのモードを表さない ACL エントリがすべて削除されます。これがデフォルト値です。
mask – aclmode プロパティーが mask であるファイルシステムでは、ユーザーまたはグループアクセス権が削減されます。アクセス権は、グループアクセス権ビットと同程度にまで低下します。ただし、アクセス権がファイルまたはディレクトリの所有者と同じ UID を持つユーザーエントリである場合を除きます。この場合、ACL アクセス権は、所有者のアクセス権ビットと同程度にまで削減されます。また、明示的な ACL セット操作が実行されていない場合、マスク値はモードが変更しても ACL を保持します。
passthrough – aclmode プロパティーが passthrough であるファイルシステムでは、ファイルまたはディレクトリの新規モードを表す必須の ACL エントリを生成する以外、ACL に変更は加えられません。
詳細は、例 7-13 を参照してください。
Oracle Solaris 10 8/11: このリリースでは、インストールに関する次の新機能が使用できます。
テキストモードインストール方式を使用して、ZFS フラッシュアーカイブでシステムをインストールできます。詳細は、例 4-3 を参照してください。
Oracle Solaris Live Upgrade の luupgrade コマンドを使用して、ZFS ルートのフラッシュアーカイブをインストールできます。詳細は、例 4-8 を参照してください。
Oracle Solaris Live Upgrade の lucreate コマンドを使用して、単独の /var ファイルシステムを指定できます。詳細は、例 4-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 コマンドを使用して、ログのないプールをインポートできます。詳細は、「ログデバイスがないプールをインポートする」を参照してください。
読み取り専用モードでプールをインポートできます。この機能は、主としてプールの回復に使用します。ベースとなるデバイスが損傷を受けているために損傷したプールにアクセスできない場合は、そのプールを読み取り専用でインポートしてデータを回復できます。詳細は、「読み取り専用モードでプールをインポートする」を参照してください。
このリリースで作成される 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 パラメータが使用できなくなりました。
詳細は、表 5-1 を参照してください。
Oracle Solaris 10 8/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 Wed Nov 14 15:44:34 MST 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. scan: resilver in progress since Wed Nov 14 15:44:34 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 10 8/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 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: このリリースでは、プール内のディスクが大きなディスクに置き換えられるとき、システムイベントまたは 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 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 のサポートも追加されています。詳細は、第 4 章Oracle Solaris ZFS ルートファイルシステムのインストールとブートを参照してください。
このリリースで認識されている問題のリストについては、『Solaris 10 10/08 ご使用にあたって』を参照してください。
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 ファイルシステムを管理することはできません。