第 4 章 ディスク管理
4.2 パーティション
4.2.2 パーティション分割候補のディレクトリと分割例
Linuxをサーバーとして運用する場合、どのようにパーティションを分割するのがいいのでしょうか。また、そのサ
イズはどれだけ確保すればいいのでしょうか。一般的には、次に示すようなディレクトリがパーティション候補として 挙げられます。
• swap • /home
• /boot • /var
• /(ルート) • /tmp
• /usr • /opt
Linuxで一般的に利用されるディレクトリは、FHS(Filesystem Hierarchy Standard)1によって定義されています。
ここでは、パーティション候補として挙げた各ディレクトリの役割について説明します。
※/etc、/lib、/bin、/sbin、は/(root)パーティションに含めてください。/usrも可能であれば/(root)パーティションに 含めてください。
• swap
Linuxのスワップパーティションです。Linuxのメモリ管理システムは、ページと呼ばれる単位(Intel 386系 CPUの場合、1ページは通常4KB)で、メモリを管理しています。システムに搭載しているメモリよりも多くの メモリが必要になる場合、参照頻度の低いページをスワップパーティションに移動します。よって、システム に搭載しているメモリのサイズと、スワップパーティションとして用意したサイズの合計が、仮想記憶領域
(OSが利用できるメモリ領域)のサイズになります。Linuxでは、ファイルの生存期間の観点から、通常スワッ プパーティションは他のファイルシステムとは別のパーティションに確保します。実際にスワップパーティショ ンがどれぐらい必要になるかは、システム設計の範疇に含まれます。運用するシステムの高負荷時に必要 な仮想記憶領域のサイズを想定し、メモリサイズとスワップサイズの合計がその範囲より大きければ問題な いでしょう。
• /boot
Linuxの起動に必要なファイルがこのディレクトリ配下に存在します。したがって、ブートローダからこの配
下のファイルが確実に読めなければ、システムを起動できません。BIOSの仕様や不具合によってブートに 必要なデータを読めないこともありますので、/boot は別パーティションに確保して、なるべくディスクの先 頭に位置させておくことを推奨します。また ソフトウェアRAID を使用して、/boot パーティションもソフト ウェアRAIDの対象範囲に含めた場合、正常にブートできないことがあります。このようなことを考慮して、
/boot を独立したパーティションとして、ソフトウェアRAIDの制御対象外にするのがいいでしょう。
1 http://www.pathname.com/fhs/index.html
Asianux Server 3では、/boot パーティションには、ブートに必要なデータとカーネルイメージがインストー ルされるので、カーネルのアップデートなどに備えて、32MB以上の容量を確保しておくことを推奨します。
※現在は/bootパーティションは2TBを越える容量は利用できません。
• /(ルート)
「ルートディレクトリ」と呼ばれる、システム全体のファイルシステムの最上位のディレクトリです。Linux では、
このパーティションが必ずどこかに確保されている必要があり、システム起動時にマウントされます。システ ムに必要な情報ファイルや、システムの起動に必要なコマンドがこのパーティション内に存在します。ファイ ルシステムの最上位に位置するので、他のパーティションとの関係によって、パーティションとして必要な容 量が変わります。※現在は/(ルート)パーティションは2TBを越える容量は利用できません。
• /home
通常、ユーザーのホームディレクトリがこの配下に置かれて、ユーザーのデータファイルなどがここに置か れることになります。ファイルの生存期間は中程度でしょう。このディレクトリも独立したパーティションに確保 することが望ましいでしょう。ユーザーが作成したファイルが格納されるので、運用期間が経過するにつれ て、ディスク使用量が増加していくことが一般的です。
• /usr
OSのプログラムやライブラリがこのディレクトリ配下にインストールされます。ファイルの生存期間が比較的 長いものが集まっており、性能の観点から独立したパーティションを確保することが望まれます。必要なパー ティションサイズは、インストールするパッケージによって変わりますが、Asianux Server 3のインストール時 にすべてのパッケージをインストールした場合、4GB程度が必要となります。しかし、システム運用時には、
年々新たなパッケージやプログラムをインストールすることになるため、/homeと同様に /usr も増加して いくことが一般的です。よって、あらかじめ余裕を持って領域を確保しておきましょう。また、/usr/local ディレクトリには、ユーザーが独自にインストールしたソフトウェアのプログラムやライブラリが置かれるので、
システム構成によっては、/usr/local を別パーティションとして確保してもいいかもしれません。
• /var
システムのログやスプールファイルなどが、ここに作られます。プログラムによっては、/var/cacheにキャッ シュファイルを作ったり、/var/tmp に一時ファイルを作ったりするものもあります。ファイルの生存期間が 比較的短いものが集まっており、システムの運用状態によっては、ファイルが次々に作られることもあるので、
ルートパーティションとは分けて確保しておくことが望ましいでしょう。パーティションのサイズは、最低でも 1GB程度確保することを推奨しますが、メールサーバーやHTTPサーバーのデフォルト設定では、このディ
4.2 パーティション
• /tmp
/tmpは特殊なディレクトリで、だれもが書き込み可能なディレクトリです。一時ファイルをこのディレクトリ配 下に作成するプログラムも数多く存在します。だれもが書き込み可能なディレクトリのため、便利である一方 で危険な一面もあります。悪意のあるユーザーや、プログラムのバグによって、自由に大きなファイルを /tmp ディレクトリに作成できるため、/tmp ディレクトリが /(ルート)と同じパーティション内に存在する場 合、/ (ルート)パーティションの空き領域がなくなり、システムに異常をきたす可能性があります。よって、シ ステムをより安全に運用するためには、/(ルート)パーティションとは別のパーティションにすることを推奨し ます。
• /opt
/optは、アプリケーションのインストール先として利用されるディレクトリです。商用アプリケーションの多く は、/opt ディレクトリにアプリケーションのプログラムやデータなどをインストールします。したがって、確保 すべき容量は、インストールするアプリケーションに依存します。OSのインストール時には何もインストール されないので、商用アプリケーションなどを使わないのであれば、別パーティションを確保する必要はありま せん。
システム構築時には、表4-1に示す典型的なパーティション分割の設定例を参考にしてください。メールサーバー などを構築する場合には、/var により大きな領域を割り当てる必要があるでしょう。
表4-1 パーティションの設定例
パーティション
容量 メモリ 512MB、ディスク36GBを備える
ファイルサーバー用のシステム メモリ 1GB、ディスク 72GBを備える データベースサーバー用のシステム
/boot 128MB 128MB
swap 1GB 2GB
/ 5GB 5GB
/var 5GB(ファイル共有に利用) 1GB
/tmp 1GB 1GB
/home 残り全部(ユーザー用ファイル共有に利用) 1GB
/opt なし 残り全部(データベースに利用)