この節では、Solaris リリースにおけるファイルシステムの新機能について説明します。
Solaris の新機能の一覧および Solaris リリースについての説明は、『Oracle Solaris 10 9/10 の新機能』を参照してください。
Solaris 10 6/06: 新しいファイルシステム監視ツール fsstat を使用してファイルシステムの操作を報告できます。いくつかのオプションを使用して、マウントポイントごとまたはファイルシステムのタイプごとなどの活動を報告できます。
たとえば、次の fsstat コマンドは、ZFS モジュールがロードされてからのすべての 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 268K 145K 93.6K 28.0M 71.1K 186M 2.74M 12.9M 56.2G 1.61M 9.46G zfs |
たとえば、次の fsstat コマンドは、/export/ws ファイルシステムがマウントされてからのすべてのファイルシステムの操作を表示します。
$ fsstat /export/ws new name name attr attr lookup rddir read read write write file remov chng get set ops ops ops bytes ops bytes 0 0 0 18.1K 0 12.6M 52 0 0 0 0 /export/ws |
デフォルトのフォームは、G バイト、K バイト、M バイトなど、理解しやすい値を使用して統計情報を報告します。
詳細は、fsstat(1M) のマニュアルページを参照してください。
Solaris 10 6/06: 革新的な新しいファイルシステムである Oracle Solaris ZFS は、管理の簡素化、トランザクションのセマンティクス、エンドツーエンドのデータの整合性、および大きなスケーラビリティーを提供します。さらに、ZFS は次の管理機能を提供します。
バックアップと復元の機能
デバイス管理のサポート
GUI 管理ツール
持続的なスナップショットの作成と複製の機能
ファイルシステムの割り当て制限の設定機能
RBAC ベースのアクセス制御機能
ストレージプールによるファイルシステムの容量の予約機能
ゾーンがインストールされた Solaris システムのサポート
ZFS の使用方法の詳細は、『Oracle Solaris ZFS 管理ガイド』を参照してください。
Solaris 10 6/06: ファイルシステム検査ユーティリティー fsck は、FreeBSD 4.9 バージョンの fsck プログラム内の機能やその他の拡張機能が含まれるように拡張されています。
Solaris リリースの fsck ユーティリティーには次の改善が加えられています。
ファイルシステムをより詳しく検査して修復し、改善されたエラーメッセージを表示します。たとえばいくつかのシナリオにおいて、fsck は失われている構造を特定し、それらを適切に置き換えます。
バックアップスーパーブロックを自動的に検索します。
fsck を再実行する必要があるタイミングを報告します。
ディレクトリが消去された場合は、fsck が直ちにディレクトリの内容の復元を試みるので、このユーティリティーの再実行時間が短縮されます。
fsck が重複するブロックを検出し、重複するブロックを参照するすべてのファイルがクリアーされなかった場合、fsck は、fsck の実行の最後に i ノード番号を報告します。そのあとで、find コマンドを使用して破損した i ノードを確認できます。
デバイスファイルや ACL エントリなどの拡張属性およびほかの特別なファイルのステータスに関連する改善されたエラーメッセージが含まれています。
より詳細なメッセージを使用できるようにする -v オプションが用意されています。
さらに、newfs コマンドと mkfs コマンドが更新され、ファイルシステムのスーパーブロック情報をテキストで表示したり、スーパーブロック情報をバイナリ形式でダンプしたりするための新しいオプションが追加されました。
newfs [ -S or -B ] /dev/rdsk/... |
ファイルシステムのスーパーブロックをテキスト形式で表示します。
ファイルシステムのスーパーブロックをバイナリ形式でダンプします。
mkfs [ -o calcsb or -o calcbinsb ] /dev/rdsk/... size |
ファイルシステムのスーパーブロックをテキスト形式で表示します。
ファイルシステムのスーパーブロックをバイナリ形式でダンプします。
fsck ユーティリティーは、このスーパーブロック情報を使用して、バックアップスーパーブロックを検索します。
次の節では、具体的な fsck の機能拡張および対応するエラーメッセージについて説明します。fsck ユーティリティーを使用して破損したスーパーブロックを修復する手順については、「不正なスーパーブロックを復元する方法 (Solaris 10 6/06 リリース)」を参照してください。
次の fsck エラーメッセージの例は、バックアップスーパーブロックの自動発見の失敗を示しています。
ファイルシステムに破損したスーパーブロックが含まれ、ntrack や nsect などの newfs または mkfs のカスタマイズされたパラメータを使用してファイルシステムが作成されている場合、修復処理のために自動的に発見されたスーパーブロックがファイルシステムを破損させる可能性があります。
カスタマイズされたパラメータを使用して作成されたファイルシステムで、ファイルシステムに不正なスーパーブロックが含まれている場合、fsck は、fsck セッションを取り消すための次のようなプロンプトを表示します。
CANCEL FILESYSTEM CHECK? |
ファイルシステムが newfs コマンドを使用して作成され、fsck がプライマリスーパーブロックのみが破損していることを報告する場合、fsck でスーパーブロックを復元することを検討してください。
# fsck /dev/dsk/c1t2d0s0 ** /dev/rdsk/c1t2d0s0 BAD SUPERBLOCK AT BLOCK 16: BLOCK SIZE LARGER THAN MAXIMUM SUPPORTED LOOK FOR ALTERNATE SUPERBLOCKS WITH MKFS? no LOOK FOR ALTERNATE SUPERBLOCKS WITH NEWFS? yes FOUND ALTERNATE SUPERBLOCK 32 WITH NEWFS USE ALTERNATE SUPERBLOCK? yes FOUND ALTERNATE SUPERBLOCK AT 32 USING NEWFS If filesystem was created with manually-specified geometry, using auto-discovered superblock may result in irrecoverable damage to filesystem and user data. CANCEL FILESYSTEM CHECK? no ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3a - Check Connectivity ** Phase 3b - Verify Shadows/ACLs ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cylinder Groups CORRECT GLOBAL SUMMARY SALVAGE? y UPDATE STANDARD SUPERBLOCK? y 81 files, 3609 used, 244678 free (6 frags, 30584 blocks, 0.0% fragmentation) ***** FILE SYSTEM WAS MODIFIED ***** |
ファイルシステムが mkfs コマンドを使用して作成され、fsck がプライマリスーパーブロックのみが破損していることを報告する場合、fsck でスーパーブロックを復元することを検討してください。
# fsck /dev/dsk/c1t2d0s0 ** /dev/rdsk/c1t2d0s0 BAD SUPERBLOCK AT BLOCK 16: BLOCK SIZE LARGER THAN MAXIMUM SUPPORTED LOOK FOR ALTERNATE SUPERBLOCKS WITH MKFS? yes FOUND ALTERNATE SUPERBLOCK 32 WITH MKFS USE ALTERNATE SUPERBLOCK? yes FOUND ALTERNATE SUPERBLOCK AT 32 USING MKFS If filesystem was created with manually-specified geometry, using auto-discovered superblock may result in irrecoverable damage to filesystem and user data. CANCEL FILESYSTEM CHECK? no ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3a - Check Connectivity ** Phase 3b - Verify Shadows/ACLs ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cylinder Groups CORRECT GLOBAL SUMMARY SALVAGE? y UPDATE STANDARD SUPERBLOCK? y 81 files, 3609 used, 243605 free (117 frags, 30436 blocks, 0.0% fragmentation) ***** FILE SYSTEM WAS MODIFIED ***** |
次の例は、破損したスーパーブロックのシナリオで fsck の -y オプションを指定した場合に何が起こるかを示しています。fsck セッションが自動的に終了します。代替のスーパーブロックを使用してセッションを再実行するためのメッセージが表示されます。
# fsck -y /dev/dsk/c1t2d0s0 # ** /dev/rdsk/c1t2d0s0 BAD SUPERBLOCK AT BLOCK 16: BLOCK SIZE LARGER THAN MAXIMUM SUPPORTED LOOK FOR ALTERNATE SUPERBLOCKS WITH MKFS? yes LOOK FOR ALTERNATE SUPERBLOCKS WITH NEWFS? yes SEARCH FOR ALTERNATE SUPERBLOCKS FAILED. USE GENERIC SUPERBLOCK FROM MKFS? yes CALCULATED GENERIC SUPERBLOCK WITH MKFS If filesystem was created with manually-specified geometry, using auto-discovered superblock may result in irrecoverable damage to filesystem and user data. CANCEL FILESYSTEM CHECK? yes Please verify that the indicated block contains a proper superblock for the filesystem (see fsdb(1M)). FSCK was running in YES mode. If you wish to run in that mode using the alternate superblock, run `fsck -y -o b=453920 /dev/rdsk/c1t2d0s0'. |
次の fsck エラーメッセージのシナリオは、バックアップスーパーブロックの新しいプロンプトを示していますが、この例では、fsck の実行は取り消されていません。ファイルシステムがカスタマイズされたパラメータを使用して作成されている場合またはこのシステム上での fsck の実行に関する他の心配がある場合は、fsck セッションの取り消しが適切な応答です。
次のように、さまざまなスーパーブロックのエラー状況が斜体で表示されます。
# fsck /dev/rdsk/c0t1d0s0 ** /dev/rdsk/c0t1d0s0 BAD SUPERBLOCK AT BLOCK 16: BLOCK SIZE LARGER THAN MAXIMUM SUPPORTED BAD SUPERBLOCK AT BLOCK 16: NUMBER OF DATA BLOCKS OUT OF RANGE BAD SUPERBLOCK AT BLOCK 16: INODES PER GROUP OUT OF RANGE BAD SUPERBLOCK AT BLOCK 16: MAGIC NUMBER WRONG BAD SUPERBLOCK AT BLOCK 16: BAD VALUES IN SUPER BLOCK BAD SUPERBLOCK AT BLOCK 16: NCG OUT OF RANGE BAD SUPERBLOCK AT BLOCK 16: CPG OUT OF RANGE BAD SUPERBLOCK AT BLOCK 16: NCYL IS INCONSISTENT WITH NCG*CPG BAD SUPERBLOCK AT BLOCK 16: SIZE OUT OF RANGE BAD SUPERBLOCK AT BLOCK 16: NUMBER OF DIRECTORIES OUT OF RANGE BAD SUPERBLOCK AT BLOCK 16: ROTATIONAL POSITION TABLE SIZE OUT OF RANGE BAD SUPERBLOCK AT BLOCK 16: SIZE OF CYLINDER GROUP SUMMARY AREA WRONG BAD SUPERBLOCK AT BLOCK 16: INOPB NONSENSICAL RELATIVE TO BSIZE LOOK FOR ALTERNATE SUPERBLOCKS WITH MKFS? yes FOUND ALTERNATE SUPERBLOCK 32 WITH MKFS USE ALTERNATE SUPERBLOCK? yes FOUND ALTERNATE SUPERBLOCK AT 32 USING MKFS If filesystem was created with manually-specified geometry, using auto-discovered superblock may result in irrecoverable damage to filesystem and user data. CANCEL FILESYSTEM CHECK? no ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2a - Check Duplicated Names ** Phase 2b - Check Pathnames ** Phase 3a - Check Connectivity ** Phase 3b - Verify Shadows/ACLs ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cylinder Groups SALVAGE? yes UPDATE STANDARD SUPERBLOCK? yes 82 files, 3649 used, 244894 free (6 frags, 30611 blocks, 0.0% fragmentation) ***** FILE SYSTEM WAS MODIFIED ***** |
fsck によって再実行が必要なタイミングの報告が改善されるので、特に実行に時間がかかる大きなファイルシステムの場合などに、このコマンドを何度も実行するための時間が節約され、実行する必要性も少なくなります。
次の新しいメッセージは、エラーシナリオの最後に fsck ユーティリティーを再実行するように要求します。
***** PLEASE RERUN FSCK ***** |
または
Please rerun fsck(1M) to correct this. |
これらの新しいプロンプトは、 fsck を再実行すべきかどうかの判断が難しいという以前の問題を解決します。
上のメッセージのように fsck の再実行を要求されない場合は、次のようなメッセージが表示されても fsck を再実行する必要はありません。
***** FILE SYSTEM WAS MODIFIED ***** |
ただし、このメッセージのあとに fsck を再実行してもファイルシステムは損傷しません。このメッセージは、fsck の修正処置に関する情報を示すだけのものです。
拡張属性を含むファイルを報告および修復する新しい fsck メッセージが用意されています。次に例を示します。
BAD ATTRIBUTE REFERENCE TO I=1 FROM I=96 |
Attribute directory I=97 not attached to file I=96 I=96 OWNER=root MODE=40755 SIZE=512 MTIME=Jul 12 10:55:10 2010 DIR= <xattr> FIX? yes |
ZERO LENGTH ATTR DIR I=12 OWNER=root MODE=160755 SIZE=0 MTIME=Jul 12 10:56:10 2010 CLEAR? yes |
File should BE marked as extended attribute I=22 OWNER=root MODE=100644 SIZE=0 MTIME=Jul 12 10:57:10 2010 FILE= <xattr> FIX? yes |
UNREF ATTR DIR I=106 OWNER=root MODE=160755 SIZE=512 MTIME=Jul 12 10:58:10 2010 RECONNECT? yes |
File I=107 should NOT be marked as extended attribute I=107 OWNER=root MODE=100644 SIZE=0 MTIME=Jul 12 10:59:10 2010 FILE=?/attfsdir-7-att FIX? yes DIR I=106 CONNECTED. |
fsck エラーメッセージは、ブロック、フラグメント、または LFN に関する情報を報告するようになりました。LFN は、ファイルの先頭からの論理フラグメント番号です。たとえば、次のような出力が表示されます。
** Phase 1 - Check Blocks and Sizes FRAGMENT 784 DUP I=38 LFN 0 FRAGMENT 785 DUP I=38 LFN 1 FRAGMENT 786 DUP I=38 LFN 2 . . . |
fsck はオブジェクトをフラグメントとして処理しますが、以前の Solaris リリースでは、オブジェクト情報をブロックとして報告するだけでした。現在は、フラグメントとして正しく報告します。
fsck が重複するブロックまたはフラグメントに関連するエラーを検出した場合、fsck は、fsck の出力の最後にクリアされないファイルを表示します。たとえば、次のような出力が表示されます。
LIST REMAINING DUPS? yes Some blocks that were found to be in multiple files are still assigned to file(s). Fragments sorted by inode and logical offsets: Inode 38: Logical Offset 0x00000000 Physical Fragment 784 Logical Offset 0x00000800 Physical Fragment 786 Logical Offset 0x00001000 Physical Fragment 788 Logical Offset 0x00001800 Physical Fragment 790 |
この例では、そのあとで、find -i inode-number コマンドを使用して i ノード 38 を識別します。