この節では、この Solaris リリースの新しいファイルシステム機能について説明します。
この Solaris リリースでは、64 ビットの Solaris カーネルを実行しているシステムで、マルチテラバイトの UFS ファイルシステムをサポートします。
以前は、64 ビットと 32 ビットのどちらのシステムでも、UFS ファイルシステムはおよそ 1T バイトに制限されていました。UFS ファイルシステムのコマンドとユーティリティはすべて、マルチテラバイトの UFS ファイルシステムに対応するように更新されました。
たとえば、ufsdump コマンドは大規模な UFS ファイルシステムをダンプできるようにブロックサイズが大きくなりました。
# ufsdump 0f /dev/md/rdsk/d97 /dev/md/rdsk/d98 DUMP: Date of this level 0 dump: Tue Jan 07 14:23:36 2003 DUMP: Date of last level 0 dump: the epoch DUMP: Dumping /dev/md/rdsk/d98 to /dev/md/rdsk/d97 DUMP: Mapping (Pass I) [regular files] DUMP: Mapping (Pass II) [directories] DUMP: Forcing larger tape block size (2048). DUMP: Writing 32 Kilobyte records DUMP: Estimated 4390629500 blocks (2143862.06MB). DUMP: Dumping (Pass III) [directories] DUMP: Dumping (Pass IV) [regular files] |
1T バイト未満の UFS ファイルシステムは、以前と同じように管理されます。1T バイト未満の UFS ファイルシステムと 1T バイトを超えるファイルシステムとの間に管理面での違いはありません。
最初に 1T バイト未満の UFS ファイルシステムを作成し、最終的にマルチテラバイトのファイルシステムに拡張されるように指定できます。その場合は、newfs -T オプションを使用します。このオプションを使用すると、マルチテラバイトのファイルシステムに適した値に拡張が可能であるように i ノードとフラグメントの密度が設定されます。
32 ビットのカーネルを実行しているシステムで 1T バイト未満の UFS ファイルシステムを作成するときに、newfs -T オプションを使用すると、最終的に 64 ビットのカーネルでこのシステムを起動するときに、growfs コマンドを使ってこのファイルシステムを拡張できます。詳細については、newfs(1M) のマニュアルページを参照してください。
growfs コマンドを使用すると、サービスやデータを失わずに、UFS ファイルシステムをスライスまたはボリュームのサイズまで拡張できます。詳細については、growfs(1M) のマニュアルページを参照してください。
これに関連して、EFI ディスクラベルによるマルチテラバイトボリュームのサポートと、Solaris ボリュームマネージャによるマルチテラバイトボリュームのサポートという新しい 2 つの機能が追加されました。詳細については、SPARC: EFI ディスクラベルによるマルチテラバイトボリュームのサポート および『Solaris ボリュームマネージャの管理』を参照してください。
マルチテラバイトの UFS ファイルシステムには、次の機能があります。
最大 16T バイトの UFS ファイルシステムを作成できる
16T バイト未満のファイルシステムを作成し、後で 16T バイトまでサイズを増やすことができる
マルチテラバイトのファイルシステムを物理ディスク、Solaris ボリュームマネージャの論理ボリューム、および Veritas の VxVM 論理ボリューム上に作成できる
1T バイトを超えるファイルシステムで、UFS ロギングがデフォルトで有効になっている。マルチテラバイトのファイルシステムでは、UFS ロギングが有効になっているとパフォーマンスが向上するというメリットがある。また、ロギングが有効なときは fsck コマンドを実行しなくてもよい場合があるというロギングのメリットもある
マルチテラバイトの UFS ファイルシステムには、次の制限事項があります。
Solaris x86 システムでは、この機能はサポートされていない
32 ビットの Solaris カーネルを実行しているシステムでは、1T バイトを超えるファイルシステムをマウントすることはできない
64 ビットの Solaris カーネルを実行しているシステムでは、1T バイトを超えるファイルシステムからブートすることはできない。つまり、マルチテラバイトのファイルシステムにルート (/) ファイルシステムを配置することはできない
1T バイトを超える個々のファイルはサポートされていない
UFS ファイルシステムの 1T バイトあたりの最大ファイル数は 100 万である。100 万に制限されているのは、fsck コマンドでファイルシステムを検査するのに要する時間を減らすためである。
マルチテラバイトの UFS ファイルシステムに設定できる最大割り当て数は、2T バイトの 1024 バイトブロックである
現時点では、fssnap コマンドを使ってマルチテラバイトの UFS ファイルシステムのスナップショットを作成することはできない
マルチテラバイトの UFS ファイルシステムは、Solaris ボリュームマネージャまたは VxVM ボリューム、あるいは 1T バイトを超える物理ディスクとして提供されたマルチテラバイトの LUN が利用できることを前提にサポートされています。
マルチテラバイトの UFS ファイルシステムを作成する前に、次のいずれかを行う必要があります。
format ユーティリティまたは Solaris インストールユーティリティを使ってマルチテラバイトのディスクパーティションを作成しておく
Solaris ボリュームマネージャを使ってマルチテラバイトのボリュームを設定しておく
スーパーユーザーになります。
論理ボリューム上にマルチテラバイトの UFS ファイルシステムを作成します。
たとえば、次のコマンドを実行すると、1.8T バイトボリュームの UFS ファイルシステムが作成されます。
# newfs /dev/md/rdsk/d99 newfs: construct a new file system /dev/md/rdsk/d99: (y/n)? y /dev/md/rdsk/d99: 3859402752 sectors in 628158 cylinders of 48 tracks, 128 sectors 1884474.0MB in 4393 cyl groups (143 c/g, 429.00MB/g, 448 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, 878752, 1757472, 2636192, 3514912, 4393632, 5272352, 6151072, 7029792, 7908512, Initializing cylinder groups: ......................................................................... ........ super-block backups for last 10 cylinder groups at: 3850872736, 3851751456, 3852630176, 3853508896, 3854387616, 3855266336, 3856145056, 3857023776, 3857902496, 3858781216, # |
新しく作成したファイルシステムの整合性を検査します。
次に例を示します。
# fsck /dev/md/rdsk/d99 ** /dev/md/rdsk/d99 ** Last Mounted on ** Phase 1 - Check Blocks and Sizes ** Phase 2 - Check Pathnames ** Phase 3 - Check Connectivity ** Phase 4 - Check Reference Counts ** Phase 5 - Check Cyl groups 2 files, 2 used, 241173122 free (0 frags, 241173122 blocks, 0.0% fragmentation) # |
新しく作成したファイルシステムをマウントして検査します。
次に例を示します。
# mount /dev/md/dsk/d99 /bigdir # df -h /bigdir Filesystem size used avail capacity Mounted on /dev/md/dsk/d99 1.8T 64M 1.8T 1% /bigdir |
マルチテラバイトの UFS ファイルシステムを作成した後は、growfs コマンドを使ってファイルシステムを拡張できます。たとえば、前の手順でボリュームに作成したファイルシステムを使用すると、別のディスクをこのボリュームに追加できます。その後で、ファイルシステムを拡張します。
スーパーユーザーになります。
別のディスクをボリュームに追加します。
次に例を示します。
# metattach d99 c4t5d0s4 d99: component is attached # metastat d99: Concat/Stripe Size: 5145882624 blocks (2.4 TB) Stripe 0: Device Start Block Dbase Reloc c0t1d0s4 36864 Yes Yes Stripe 1: Device Start Block Dbase Reloc c3t7d0s4 0 No Yes Stripe 2: Device Start Block Dbase Reloc c1t1d0s4 0 No Yes Stripe 3: Device Start Block Dbase Reloc c4t5d0s4 0 No Yes |
ファイルシステムを拡張します。
次に例を示します。
# growfs -v /dev/md/rdsk/d99 /usr/lib/fs/ufs/mkfs -G /dev/md/rdsk/d99 5145882624 /dev/md/rdsk/d99: 5145882624 sectors in 837546 cylinders of 48 tracks, 128 sectors 2512638.0MB in 5857 cyl groups (143 c/g, 429.00MB/g, 448 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, 878752, 1757472, 2636192, 3514912, 4393632, 5272352, 6151072, 7029792, 7908512, Initializing cylinder groups: ......................................................................... ..................................... super-block backups for last 10 cylinder groups at: 5137130400, 5138009120, 5138887840, 5139766560, 5140645280, 5141524000, 5142402720, 5143281440, 5144160160, 5145038880, # |
拡張したファイルシステムをマウントして検査します。
次に例を示します。
# mount /dev/md/dsk/d99 /bigdir # df -h /bigdir Filesystem size used avail capacity Mounted on /dev/md/dsk/d99 2.4T 64M 2.4T 1% /bigdir |
UFS ファイルシステムを 1T バイトを超えるサイズに拡張するには、次の手順を実行します。この手順は、newfs -T オプションを使って UFS ファイルシステムを作成したことを前提としています。
スーパーユーザーになります。
現在のディスクまたはボリュームのサイズを特定します。
たとえば、次のボリュームは 800G バイトです。
# metastat d98 d98: Concat/Stripe Size: 1677754368 blocks (800 GB) Stripe 0: Device Start Block Dbase Reloc c0t1d0s4 0 No Yes Stripe 1: Device Start Block Dbase Reloc c3t7d0s4 0 No Yes |
このボリュームを 1T バイトよりも大きくします。
次に例を示します。
# metattach d98 c1t1d0s4 d98: component is attached # metastat d98 d98: Concat/Stripe Size: 2516631552 blocks (1.2 TB) Stripe 0: Device Start Block Dbase Reloc c0t1d0s4 0 No Yes Stripe 1: Device Start Block Dbase Reloc c3t7d0s4 0 No Yes Stripe 2: Device Start Block Dbase Reloc c1t1d0s4 0 No Yes |
ディスクまたはボリュームの UFS ファイルシステムを 1T バイトよりも大きくします。
次に例を示します。
growfs -v /dev/md/rdsk/d98 /usr/lib/fs/ufs/mkfs -G /dev/md/rdsk/d98 2516631552 /dev/md/rdsk/d98: 2516631552 sectors in 68268 cylinders of 144 tracks, 256 sectors 1228824.0MB in 2731 cyl groups (25 c/g, 450.00MB/g, 448 i/g) super-block backups (for fsck -F ufs -o b=#) at: 32, 921888, 1843744, 2765600, 3687456, 4609312, 5531168, 6453024, 7374880, 8296736, Initializing cylinder groups: ...................................................... super-block backups for last 10 cylinder groups at: 2507714848, 2508636704, 2509558560, 2510480416, 2511402272, 2512324128, 2513245984, 2514167840, 2515089696, 2516011552, |
拡張したファイルシステムをマウントして検査します。
次に例を示します。
# mount /dev/md/dsk/d98 /datadir # df -h /datadir Filesystem size used avail capacity Mounted on /dev/md/dsk/d98 1.2T 64M 1.2T 1% /datadir |
マルチテラバイトの UFS ファイルシステムに関する問題の障害追跡には、次のエラーメッセージと解決法を参考にしてください。
mount: /dev/rdsk/c0t0d0s0 はこのファイルシステム形式ではありません。 |
Solaris 9 8/03 よりも以前のリリースで動作するシステムに 1T バイトを超える UFS ファイルシステムをマウントしようとしました。
1T バイトを超える UFS ファイルシステムは、Solaris 9 8/03 以降のリリースで動作するシステムにマウントしてください。
"ファイルシステムがマルチテラバイト形式に設定されて いません。" "そのサイズは 1 テラバイト以上にできません。" |
newfs -T コマンドを使わずに作成したファイルシステムを拡張しようとしました。
1. 1T バイトより大きくするファイルシステムのデータをバックアップします。
2. newfs コマンドを使用して、ファイルシステムをマルチテラバイトファイルシステムに再作成します。
3. 新しく作成したファイルシステムにバックアップされていたデータを復元します。