大容量ストレージデバイスを配置してもまだほとんど使えない状態です。実際、データを書き込んだり読み込んだりできますが、基礎となる構造がなくてはデータアクセスはセクタアドレス(幾何学的または論理的)を使ってのみ可能になります。
必要なのは生のストレージを簡単に使用できるようにハードドライブにする方法です。次のセクションではこれを行なうためによく使われる技術を説明していきます。
システム管理者が最初に経験することは、ハードドライブのサイズが手元にある作業に要されるサイズよりかなり大きい可能性があるということです。結果として、多くのオペレーティングシステムはハードドライブの領域を各パーティションまたは部分に分割する機能を備えています。
お互いに独立しているため、パーティションによって異なる使用領域量を持たせることができ、その領域は他のパーティションで使用されている領域にはまったく影響を与えません。例えば、オペレーティングシステムを構成するファイルが格納されているパーティションはユーザーのファイルを格納しているパーティションが満杯になっても影響を受けません。オペレーティングシステムにはそのオペレーティングシステム自身が使用するための空き領域がまだあります。
やや大雑把な言い方ですが、パーティションとはそれぞれ独立したディスクドライブに似ていると考えることができます。実際、オペレーティングシステムの中には、パーティションを"ドライブ"と呼んでいるものがあります。しかし、この考え方は正確ではありません。もう少しパーティションについて詳しく理解することが重要になってきます。
パーティションは次の属性で定義されます。
パーティションジオメトリー
パーティションタイプ
パーティションタイプフィールド
次のセクションではこれらの属性について説明していきます。
パーティションのジオメトリーはディスクドライブにある物理的な場所を指します。ジオメトリーはシリンダの開始点と終了点、ヘッド、セクタという観点で定義することができますが、パーティションはほとんどの場合、シリンダの境界で開始し終了します。次に、パーティションのサイズがシリンダの開始点と終了点のストレージ量として定義されます。
パーティションタイプはディスクドライブにある他のパーティションとの関係を指します。パーティションのタイプは 3 種類あります。
プライマリパーティション
拡張パーティション
論理パーティション
次のセクションでは各パーティションタイプを説明しています。
適切な大容量ストレージデバイスを正しく設定し、適切なパーティション設定を行っても、まだ情報を保存したり取り出すことは簡単にはできません。その情報を組み立てて構成する方法が足りないためです。ここでファイルシステムが必要になります。
ファイルシステムの概念は、大容量ストレージデバイスを使用する上での基盤となります。平均的なコンピューターユーザーの多くがその違いを理解していません。しかし、システム管理者としてはファイルシステム及び日常作業への影響を無視することはできません。
ファイルシステムとは大容量ストレージデバイスにあるデータを表す方法です。通常、ファイルシステムには次のような機能があります。
ファイルベースのデータ保存
階層ディレクトリ("フォルダ"とも呼ばれる)構造
ファイルの作成、アクセス、変更時間の追跡
特定ファイルに許可されたアクセスタイプに対する一定レベルの制御
ファイル所有権の概念
使用領域の計算
すべてのファイルシステムにこれらの機能すべてがあるとは限りません。例えば、シングルユーザー向けオペレーティングシステムに構築されるファイルシステムには簡略化したアクセス制御方法の方が簡単に使用できるでしょうし、おそらくファイルの所有権に関するサポートも一緒に廃止してしまうことができるかもしれません。
一つ注意しておきたいことは、使用するファイルシステムは日常の作業負荷の性質に大きな影響力を持つ可能性があると言うことです。企業内で使用するファイルシステムが企業の機能的なニーズに十分に適合していることを確認することにより、ファイルシステムが作業に適しているだけでなく管理が効率的で簡単に行えるということになります。
この点を留意しながら次のセクションではこうした機能について詳しく説明していきます。
データの保存にファイルメタファーを使用しているファイルシステムはほぼ世界中に広がっていますが、ここで考慮しておくべき点がいくつかあります。
最初に、ファイル名に関する制限を知っておくことです。例えば、ファイル名に使用できる文字は ? ファイル名の最大文字数は ? 使用できるファイル名と使用できないファイル名を決定するためこれは非常に重要です。旧式のファイルシステムを持つ古いオペレーティングシステムではほとんど英数字文字(しかも大文字)と従来の8.3ファイル名 (8 文字のファイル名と 3 文字のファイル拡張子)しか使えませんでした。
かなり古いオペレーティングシステムで使用されているファイルシステムにはディレクトリ概念がありませんが、一般的に使用されている最近のファイルシステムにはすべてこの機能が含まれています。通常、ディレクトリは自身をファイルとして実装します。つまり、ディレクトリの管理に特別なユーティリティは必要ありません。
さらに、ディレクトリ自身がファイルであり、ディレクトリにはファイルが含まれるわけですから、ディレクトリは他のディレクトリを含むことができ複数レベルのディレクトリ階層を形成することができます。すべてのシステム管理者がこれを十分理解することでパワフルな概念となります。複数レベルのディレクトリ階層を使用することにより、管理者にとってもユーザーにとってもファイル管理が大変楽になります。
ほとんどのファイルシステムはファイルが作成された時間を追跡しています。変更時間やアクセス時間を追跡するファイルシステムもあります。特定ファイルが作成、アクセス、または変更された時間が判定できると言う便利性以上に、こうした日付は増えていくバックアップを適切に運用していくために非常に重要となります。
バックアップにおいてこうしたファイルシステムの機能がどのように役立つのかについては項8.2をご覧ください。
アクセス制御はファイルシステムによってかなり大きく異なるエリアのひとつです。明確なアクセス制御モデルを持たないファイルシステムもあれば、非常に精巧なアクセス制御を持つファイルシステムもあります。一般的言えば、最新のファイルシステムでは次の 2 点をひとつにまとめて結合力のあるアクセス制御方法論にしています。
ユーザー識別
許可動作リスト
ユーザー識別とはファイルシステム(及び、基礎となるオペレーティングシステム)がまず各ユーザーを個別に識別することができなければならないということです。これにより、ファイルシステムレベルでのあらゆる作業に関して一切の責任を持つことができるようになります。役にたつことの多い機能としてユーザーグループがあります — 臨時的なユーザー群を作成。ユーザーが 1 プロジェクトまたは複数のプロジェクトのメンバーとなっているような企業や組織でグループはよく利用されます。ファイルシステムがサポートするもうひとつの機能は 1 ユーザーまたは複数ユーザーに割り当てができる汎用識別子の作成です。
次に、ファイルシステムは各ファイルに対して許可されている(または許可されていない)動作リストを管理することができなければなりません。一般的に追跡される動作は次のようになります。
ファイルの読み取り
ファイルの書き込み
ファイルの実行
各種ファイルシステムはこのリストを拡張して、削除など他の動作を含めることもあります。また、ファイルのアクセス制御に関連する変更を行う機能などの動作も含められます。
システム管理者にとって、十分な空き領域がない、あるいは現在は空き領域があっても将来的には不足してくるといった状況は日常的なできごとです。このため、少なくとも各ファイルシステムで使用できる空き領域のレベルを簡単に把握できるようにしておくべきでしょう。また、ユーザー識別機能を十分に活用しているファイルシステムでは特定のユーザーが消費している容量を表示する機能があります。
多数のユーザーを持つ大規模な環境ではこの機能が非常に重要です。ディスク領域に 80/20 の原則が当てはまることが多いためです。—ユーザーの 20% が使用できる領域の 80% を使っている。この 20% に該当するユーザーの判別を容易にすることでストレージ関連の資産を有効に管理することができます。
もう少し詳しく説明すると、消費可能なディスク領域の容量に対してユーザー毎の制限(disk quotasと呼ばれる)を設定できる機能を持つファイルシステムがあります。ファイルシステムによって異なりますが、一般的には各ユーザーに使用できるストレージの特定容量を割り当てることができます。この他は、各種ファイルシステムによって異なります。ユーザーは 1 度だけ制限を越えて使用できるよう許可するファイルシステムもあれば、設けられた制限の 2 番目に高い制限が適用されている間"猶予期間"を実施するものもあります。
現在、ユーザーに使用可能にしているストレージが今後どのように使われるのかまで考えを及ぼすシステム管理者は多くありません。しかし、この点について少し熟考してからストレージをユーザーに割り当てれば後日に発生する不必要な作業を軽減することができます。
システム管理者としてできる主なことは、理解できる方法でストレージ使用領域を構成するためにディレクトリとサブディレクトリを使用することです。これを行うことにより便利になることがいくつかあります。
理解しやすくなる
将来的な柔軟性を確保
ストレージに対してある程度の構成を持たせることにより、理解しやすくなります。例えば、多数のユーザーを持つ大きなシステムを考えてみてください。すべてのユーザーをひとつの大きなディレクトリに入れず、企業構成を繁栄するサブディレクトリを使用するのが理にかなっていることがあります。このように、会計部門に所属している人は accounting という名前のディレクトリ配下にディレクトリを持たせ、エンジニア部門に所属している人は engineering ディレクトリ配下にディレクトリを持たせるなどです。
このような手段の利点として、企業内の各部門毎にそのストレージニーズ(及び使用量)を頻繁に追跡していくのが容易になります。人事部で各自が使用しているファイルの一覧を取得するのが簡単になります。法律部で使用しているファイルをすべてバックアップするのが容易になります。
適切な構造を持たせることで、柔軟性が出てきます。前述の例をあげると、エンジニア部門が大規模な新プロジェクトに着手する時期であると仮定してみます。これにより、近い将来、多くのエンジニアが採用されます。しかし、エンジニア部門には予想される余剰ニーズをサポートする空ストレージが十分にはありません。
しかし、エンジニア部門の全員が engineering ディレクトリ配下にファイルを保存しているので、次の手順を行うのが簡単になります。
エンジニア部門をサポートするために必要とされる余剰ストレージを確保する
engineering ディレクトリ配下のすべてをバックアップする
新しいストレージにこのバックアップを復元する
元のストレージにある engineering ディレクトリ名を engineering-archive などに変更する (1ヵ月間、新しい構成で円滑に機能した後にバックアップ全体の削除作業を行うまで)
必要な変更を行い、エンジニア部門所属のスタッフが新しいストレージにある各自のファイルにアクセスできるようにする
もちろん、このような手段にも短所があります。例えば、部署間を頻繁に移動する人がいるとすると、システム管理者はこうした移動通知を受けとる手段が必要になり、それに応じてディレクトリ構成を修正しなければなりません。さもないと、ディレクトリ構成が現実に伴わなくなり、— 作業の軽減どころか— 長期的には作業負担を増やしてしまうことになります。
大容量ストレージデバイスのパーティション設定が適切に行われ、ファイルシステムの書き込みが完了すると、そのストレージの一般使用が可能になります。
オペレーティングシステムの中には、新しい大容量ストレージデバイスが検出され次第、システム管理者によってフォーマット化されたら他の作業を要せずすぐにアクセスできるものがあります。
これ以外のオペレーティングシステムには作業手順が必要になります。この手順 — マウントと呼ばれる — はストレージにアクセスする方法をオペレーティングシステムに指示します。ストレージのマウントは通常、特殊なユーティリティプログラムかコマンドで行われ、大容量ストレージデバイスが明確に識別される必要があります(また、同時にパーティションも識別される必要がある場合もある)。