パーティションの概要、CentOSの推奨パーティション設定についてまとめました。
※LVM(Logical Volume Manager)の詳細については以下の記事参照。
LinuxのLVMの概要と表示コマンド
※目次をクリックすると目次の下部にコンテンツが表示されます。
パーティションの概要
●パーティションとは?
・ディスクドライブは、複数のパーティションに分割することができる。
・各パーティションは個々のディスクのように、別々にアクセスできる。
・パーティションを作成して分割することによって、異なるファイルシステムを使用したり、1台のマシンで複数のOSを稼動させたりすることができる。
・Linuxではスワップファイルとしてパーティションを使用することが多い。
複数のOSを搭載する場合、OS間でスワップファイル用パーティションを共有することでディスク容量を節約できる。
(参考)仮想パーティション(論理ボリューム)とは?
・LVMを使用した場合、1つのボリュームグループ(VG)に物理ディスク(PV又はPE)を登録し、論理ボリューム(LV)という仮想パーティションを定義する事ができる。
・仮想パーティションは動的に拡張/縮退が可能であり、運用上、システムの停止をする事無く、対応することができる。
●パーティションテーブル
・パーティションテーブルはそのディスクの先頭部分となる、他のファイルシステムまたはユーザーデータの前に格納されている。
・パーティションテーブルは、4つのプライマリパーティションに分割される。
プライマリパーティションは、論理ドライブ(またはセクション)を1つだけ含むパーティション。
〇パーティションテーブルのエントリー
・ディスク上のパーティションの開始点と終了点
開始点と終了点によって実際のパーティションサイズとディスク上の物理的な位置が定義される。
・パーティションが「アクティブ」かどうか
・パーティションのタイプ
●パーティションの種類
〇プライマリパーティション
・MBR内のパーティションテーブルが4個の領域分しか無い関係上、プライマリパーティションは、拡張パーティションを含めて1つのハードディスクに合計4個しか作成できない。
・プライマリパーティションは、論理ドライブ(またはセクション)を1つだけ含むパーティション。
〇論理パーティション
・拡張パーティション内でのみ作成が可能。
・プライマリーパーティションは4つしか作成できないが、論理パーティションにはその制限がない。
しかし、Linuxによるパーティションへのアクセスの仕方を考慮すると、1つのディスクドライブに12個を超える論理パーティションを定義するのは避けるようにする。
〇拡張パーティション(Extended Partition)
・パーティションが作成されて、そのタイプが「Extended (拡張)」に設定されている場合、拡張パーティションテーブルが作成される。
・拡張パーティションは、それ自体がディスクドライブのようなものと言える。
拡張パーティション自体に含まれた1つまたは複数のパーティション(論理パーティションと呼ぶ)を指すパーティションテーブルを持つ。
●ファイルシステムとパーティション
・基本パーティションおよび論理パーティションはファイルシステムを持つことが出来る。
・通常はファイルシステムを作成しない限り、そのパーティションを利用することが出来ない。
・LVMを使用するのが一般的で、インストール時にrootvgを定義し、その中に論理ボリュームを定義してマウントする。
・LVMを使用しない場合、Format系コマンドにてFormat後にパーティションを定義し、それぞれのマウントポイントを設定する。
・ディスクドライブは、複数のパーティションに分割することができる。
・各パーティションは個々のディスクのように、別々にアクセスできる。
・パーティションを作成して分割することによって、異なるファイルシステムを使用したり、1台のマシンで複数のOSを稼動させたりすることができる。
・Linuxではスワップファイルとしてパーティションを使用することが多い。
複数のOSを搭載する場合、OS間でスワップファイル用パーティションを共有することでディスク容量を節約できる。
(参考)仮想パーティション(論理ボリューム)とは?
・LVMを使用した場合、1つのボリュームグループ(VG)に物理ディスク(PV又はPE)を登録し、論理ボリューム(LV)という仮想パーティションを定義する事ができる。
・仮想パーティションは動的に拡張/縮退が可能であり、運用上、システムの停止をする事無く、対応することができる。
●パーティションテーブル
・パーティションテーブルはそのディスクの先頭部分となる、他のファイルシステムまたはユーザーデータの前に格納されている。
・パーティションテーブルは、4つのプライマリパーティションに分割される。
プライマリパーティションは、論理ドライブ(またはセクション)を1つだけ含むパーティション。
〇パーティションテーブルのエントリー
・ディスク上のパーティションの開始点と終了点
開始点と終了点によって実際のパーティションサイズとディスク上の物理的な位置が定義される。
・パーティションが「アクティブ」かどうか
・パーティションのタイプ
●パーティションの種類
〇プライマリパーティション
・MBR内のパーティションテーブルが4個の領域分しか無い関係上、プライマリパーティションは、拡張パーティションを含めて1つのハードディスクに合計4個しか作成できない。
・プライマリパーティションは、論理ドライブ(またはセクション)を1つだけ含むパーティション。
〇論理パーティション
・拡張パーティション内でのみ作成が可能。
・プライマリーパーティションは4つしか作成できないが、論理パーティションにはその制限がない。
しかし、Linuxによるパーティションへのアクセスの仕方を考慮すると、1つのディスクドライブに12個を超える論理パーティションを定義するのは避けるようにする。
〇拡張パーティション(Extended Partition)
・パーティションが作成されて、そのタイプが「Extended (拡張)」に設定されている場合、拡張パーティションテーブルが作成される。
・拡張パーティションは、それ自体がディスクドライブのようなものと言える。
拡張パーティション自体に含まれた1つまたは複数のパーティション(論理パーティションと呼ぶ)を指すパーティションテーブルを持つ。
●ファイルシステムとパーティション
・基本パーティションおよび論理パーティションはファイルシステムを持つことが出来る。
・通常はファイルシステムを作成しない限り、そのパーティションを利用することが出来ない。
・LVMを使用するのが一般的で、インストール時にrootvgを定義し、その中に論理ボリュームを定義してマウントする。
・LVMを使用しない場合、Format系コマンドにてFormat後にパーティションを定義し、それぞれのマウントポイントを設定する。
パーティションを操作するコマンドと注意点
〇パーティションを操作するコマンド
parted、fdisk(cfdisk、sfdisk)
※以下の記事も参照。
CentOSでパーティション、スワップ、ディスク情報を確認
〇パーティションの削除、サイズ変更時の注意点
・パーティションのあるデバイスが使用中の場合は、そのパーティションの削除やサイズ変更を実行することができない。
使用中のデバイスで新規パーティションを作成することはできるが、これは推奨されない。
・デバイスが使用中の場合はパーティションテーブルを修正すべきではない。
カーネルが変更を正しく認識できない可能性がある。パーティションテーブルがマウント済みのパーティションの実際の状態と一致しないと、情報は誤ったパーティションに書き込まれる可能性があり、データの消失および上書きが発生する可能性がある。
・パーティションを変更する場合は、システムをレスキューモードで起動する。ファイルシステムのマウントを求めるプロンプトが出された時点でSkipを選択する。
または、デバイスに使用中のパーティション(ファイルシステムを使用するか、またはアンマウント状態からロックするシステムのプロセス)が含まれない場合は、umountコマンドを使用してそれらのパーティションをアンマウントしてから、swapoffコマンドを使用してハードドライブ上のすべてのswap領域をオフにする。
parted、fdisk(cfdisk、sfdisk)
※以下の記事も参照。
CentOSでパーティション、スワップ、ディスク情報を確認
〇パーティションの削除、サイズ変更時の注意点
・パーティションのあるデバイスが使用中の場合は、そのパーティションの削除やサイズ変更を実行することができない。
使用中のデバイスで新規パーティションを作成することはできるが、これは推奨されない。
・デバイスが使用中の場合はパーティションテーブルを修正すべきではない。
カーネルが変更を正しく認識できない可能性がある。パーティションテーブルがマウント済みのパーティションの実際の状態と一致しないと、情報は誤ったパーティションに書き込まれる可能性があり、データの消失および上書きが発生する可能性がある。
・パーティションを変更する場合は、システムをレスキューモードで起動する。ファイルシステムのマウントを求めるプロンプトが出された時点でSkipを選択する。
または、デバイスに使用中のパーティション(ファイルシステムを使用するか、またはアンマウント状態からロックするシステムのプロセス)が含まれない場合は、umountコマンドを使用してそれらのパーティションをアンマウントしてから、swapoffコマンドを使用してハードドライブ上のすべてのswap領域をオフにする。
CentOSの推奨パーティション設定
※参照資料
NSA(National Security Agency)の『Guide to the Secure Configuration of Red Hat Enterprise Linux 5』
・いくつかのシステムディレクトリは、それ専用のパーティションまたは論理ボリュームに置くようにする。そうすることによって、適切に分離できデータを保護できる。
・デフォルトでは、”/”、”/boot”、”swap”に分けられているが、新規インストール時には簡単に追加設定が出来るので必要に応じて細かく分けるようにする。
・すでにインストール済みの環境でも追加して分離することも可能だが簡単ではない。
①/tmp、/var/tmp
・作業用など一時利用の用途で任意のユーザーが書き込むことができるディレクトリ。すべてのユーザーに書込可能なのでセキュリティ面を考慮し、分けた方が良い。
・このディレクトリが大量のデータであふれると、ストレージスペースがすべて消費されてしまう可能性がある。こうした事象が発生し、かつこれらのディレクトリーが/に保管されているとシステムが不安定になり、クラッシュする可能性がある。
・ソフトウェアが一時的に大きなファイルを保存する事があるので、適切なサイズを設定する。上記参考サイト(2011年の文書)の一般的な事例では10GB。
②/var
・デーモンや他のシステムサービスによって頻繁に変更するデータを保存するのに使われる。
・任意のユーザーが書き込む事が出来るディレクトリが作成されることもめずらしくない。セキュリティ面を考慮し、分けた方が良い。
・yumや他のソフトウェアが大きなファイルの一時保存場所として使うので大きなサイズが必要。上記参考サイト(2011年の文書)の一般事例では、10GB。
③/var/log
・システムログが保存される。システムログが保存可能な領域を確保する必要がある。
④/var/log/audit
・監査ログが保存されるディレクトリ。
⑤/home
・ユーザーホームディレクトリをローカルに設置する場合は分ける。NFSサーバーなど他のシステム上にマウントする場合は不要。
NSA(National Security Agency)の『Guide to the Secure Configuration of Red Hat Enterprise Linux 5』
1)パーティション設計の注意点
・いくつかのシステムディレクトリは、それ専用のパーティションまたは論理ボリュームに置くようにする。そうすることによって、適切に分離できデータを保護できる。
・デフォルトでは、”/”、”/boot”、”swap”に分けられているが、新規インストール時には簡単に追加設定が出来るので必要に応じて細かく分けるようにする。
・すでにインストール済みの環境でも追加して分離することも可能だが簡単ではない。
2)パーティションを分離する事が推奨されるディレクトリ
①/tmp、/var/tmp
・作業用など一時利用の用途で任意のユーザーが書き込むことができるディレクトリ。すべてのユーザーに書込可能なのでセキュリティ面を考慮し、分けた方が良い。
・このディレクトリが大量のデータであふれると、ストレージスペースがすべて消費されてしまう可能性がある。こうした事象が発生し、かつこれらのディレクトリーが/に保管されているとシステムが不安定になり、クラッシュする可能性がある。
・ソフトウェアが一時的に大きなファイルを保存する事があるので、適切なサイズを設定する。上記参考サイト(2011年の文書)の一般的な事例では10GB。
②/var
・デーモンや他のシステムサービスによって頻繁に変更するデータを保存するのに使われる。
・任意のユーザーが書き込む事が出来るディレクトリが作成されることもめずらしくない。セキュリティ面を考慮し、分けた方が良い。
・yumや他のソフトウェアが大きなファイルの一時保存場所として使うので大きなサイズが必要。上記参考サイト(2011年の文書)の一般事例では、10GB。
③/var/log
・システムログが保存される。システムログが保存可能な領域を確保する必要がある。
④/var/log/audit
・監査ログが保存されるディレクトリ。
⑤/home
・ユーザーホームディレクトリをローカルに設置する場合は分ける。NFSサーバーなど他のシステム上にマウントする場合は不要。