UFS は、Solaris システムソフトウェア内のデフォルトのディスクベースファイルシステムです。ほとんどの場合、ディスクベースのファイルシステムを管理するときには、UFS を管理していることになります。UFS の機能は次の通りです。
状態フラグ - ファイルシステムの状態として、クリーン、安定、有効、または不明を示します。これらのフラグがあれば、ファイルシステムをチェックする必要がなくなります。ファイルシステムが「クリーン」状態または「安定」状態になっていると、ファイルシステムのチェックは実行されません。
大規模ファイルシステム - UFS ファイルシステムの最大サイズは 1T バイト (テラバイト) 以内で、通常ファイルは 2G バイト (ギガバイト) です。Solaris システムソフトウェアにはストライプ機能がないので、論理スライスを 1T バイトのファイルシステムに合わせて大きくする必要があります。ただし、SunSoft 発売の Solstice DiskSuiteTM ソフトウェアには、この機能が含まれています。
Solaris デバイス名は、スライスという用語 (およびデバイス名に含まれる文字「s」) を使用してスライス番号を指します。SunOS 4.x ではスライスのことを「パーティション」と呼んでいました。
図 26-1 は、ディスクスライスをどのようにフォーマットして UFS ファイルシステムを格納できるかを示しています。
この後の各節では、ディスクがどのようにスライスとシリンダグループに分割され、UFS ファイルシステムとして作成されるかについて説明します。
スライスは、ブロックの集合体です。これは、ディスクの物理的なサブセットです (ただし、スライス 2 は通常はディスク全体を表します)。ディスク上でファイルシステムを作成する前に、まずフォーマットしてスライスに分割しなければなりません。ディスクをインストールしてフォーマットし、ディスクをスライスに分割する方法の詳細は、パート VIIを参照してください。
スライスをスワップ空間用の raw デバイスとして使用するか、1 つの UFS ファイルシステムを格納できます。1 つのディスクを最高で 8 つのスライスに分割できます。一般的なディスクスライス割り当てのリストについては、パート VIIを参照してください。
次の例は、/dev/dsk/c0t3d0 のディスク情報を示しています。format コマンドでは、利用可能なディスクセクションの一部としてスライス情報が表示されないので注意してください。ディスクごとにコントローラ、ターゲット、およびディスクの番号が表示されます。
$ su Password: # format AVAILABLE DISK SELECTIONS: 0. c0t0d0 at scsibus0 slave 24 sd0: <SUN0207 cyl 1254 alt 2 hd 9 sec 36> 1. c0t3d0 at scsibus0 slave 0: veryloud sd3: <SUN0207 cyl 1254 alt 2 hd 9 sec 36> Specify disk (enter its number): 1 FORMAT MENU: disk - select a disk type - select (define) a disk type partition - select (define) a partition table current - describe the current disk format - format and analyze the disk repair - repair a defective sector label - write label to the disk analyze - surface analysis defect - defect list management backup - search for backup labels verify - read and display labels save - save new disk/partition definitions inquiry - show vendor, product and revision volname - set 8-character volume name quit format> partition PARTITION MENU: 0 - change `0' partition 1 - change `1' partition 2 - change `2' partition 3 - change `3' partition 4 - change `4' partition 5 - change `5' partition 6 - change `6' partition 7 - change `7' partition select - select a predefined table modify - modify a predefined partition table name - name the current table print - display the current table label - write partition map and label to the disk quit partition> print Volume: veryloud Current partition table (original sd3): Part Tag Flag Cylinders Size Blocks 0 root wm 0 - 39 14.06MB (40/0/0) 1 swap wu 40 - 199 56.25MB (160/0/0) 2 backup wm 0 - 1150 404.65MB (1151/0/0) 3 unassigned wm 0 0 (0/0/0) 4 unassigned wm 0 0 (0/0/0) 5 - wm 0 10.20MB (29/0/0) 6 usr wm 200 - 228 121.29MB (345/0/0) 7 home wm 574 - 1150 202.85MB (577/0/0 partition> quit format> quit #
ディスク番号とスライス番号がわかっている場合は、prtvtoc (ボリュームの内容一覧を表示) コマンドを使用してディスク情報を表示できます。ディスク上で定義されているゼロ以外のサイズのスライスを指定すると、ボリュームを指定できます (たとえば、ディスク 3 のすべてのスライスの場合は /dev/rdsk/c0t3d0s2、ディスク 3 の 8 番目のスライスの場合は /dev/rdsk/c0t3d0s7)。ディスクのターゲット番号はわかっているが、どのようにスライスに分割されているかがわからない場合は、スライス 2 またはスライス 0 を指定してディスク全体の情報を表示できます。
UFS ファイルシステムを、シリンダグループと呼ばれる 1 つまたは複数の領域に分割されたディスクスライス上で作成します。シリンダグループは、1 つまたは複数の連続するディスクシリンダ (プラッタの中心から同じ半径を持つ、プラッタグループ上のトラックの集合) からなっています。ディスクのジオメトリの詳細は、第 21 章「ディスク管理の概要」を参照してください。
シリンダグループマップは、シリンダグループごとに作成されます。シリンダグループマップには、ブロックの使用状況と使用可能なブロックが記録されます。
シリンダグループは、シリンダグループ内のファイルの構造を制御して編成するブロックに分かれています。各ブロックタイプが、システム内で固有の機能を持っています。UFS ファイルには、4 種類のアドレス可能ブロックと付加的な情報管理ディスク領域があります。4 つのブロックタイプは、次の通りです。
ブートブロック - システムのブート時に使用される情報が格納される。
スーパーブロック - ファイルシステムに関する大部分の情報が格納される。
i ノード - ファイル名を除き、ファイルに関するすべての情報が格納される。
記憶域またはデータブロック - 各ファイルのデータが格納される。
各ブロックタイプの詳細は、第 32 章「ファイルシステムの参照情報」を参照してください。
newfs コマンドの引数または mkfs コマンドを使用してファイルシステムをカスタマイズするには、これらのパラメタの変更方法について第 32 章「ファイルシステムの参照情報」を参照してください。
ファイルシステムの合計サイズの上限は 1T バイトです。UFS ファイルシステムは、それを保持するスライスと同じ大きさにできます。
UFS ファイルシステム内の 1 つのファイルの最大サイズは、そのファイルシステムの構成方法によって異なります。
UFS ファイルシステム 1 つ当たりの最大ファイル数は、そのファイルシステムに割り当てられた i ノード数によって決まります。i ノード数は、各 i ノードに割り当てられたディスク容量とファイルシステムの合計サイズによって決まります。デフォルトでは、2K バイトのデータ容量ごとに 1 つずつ i ノードが割り当てられます。newfs コマンドの -i オプションを使用すると、デフォルトの割り当てを変更できます。
フラグメントは、論理ブロックの未使用部分を減らして容量を節約するために作成される小型の論理ブロックです。論理ブロックとフラグメントの最大サイズは 8192 バイトですが、一般に、フラグメントは論理ブロックと同じか、それより小さいサイズです。