1 ディスクのパーティショニング
1.1 ディスクの選択
ハードディスクが認識されると、パーティショニングの方法を尋ねられます(図1)。
「ディスク全体を使う」メニューを選ぶと、指定のディスク全体にある既存のパーティション(OSやデータを含む)を削除して1、ガイドによるパーティショニングの手順に進みます。新しいディスクや既存のデータを削除してもかまわないディスクであれば、これを選ぶのがよいでしょう。
「手動でパーティションテーブルを編集」メニューを選ぶと、現時点のパーティション構成を変更せず、「1.3:パーティショニング計画の表示」の手順に進みます。
図1:パーティショニングの方法の選択
ディスクに適切な大きさの空き領域(パーティションに確保されていない領域)があるなら、「空き領域を使う」というメニューも選択できます(図2)。これを選ぶと、ガイドによるパーティショニングの手順に進みます。WindowsなどのほかのOSとDebianとを1つのディスクで共存することを皆さんが望んでおり、事前にほかのOSのパーティションの大きさを縮めてディスクに空き領域を用意しているのであれば、このメニューを選択して先に進むことで、共存環境を構築できます2。
図2:空き領域のあるディスクでの表示
なお、これまでパーティションを作ったことのない新しいディスクでは、ディスク中にどのようなパーティションがあるかの情報を格納しているパーティションテーブルが存在しないので、「新しい空のパーティションテーブルを作成しますか?」と尋ねられます。「はい」と答えて作成するようにしてください。
1.2 ガイドによるパーティショニング
ガイドによるパーティショニングでは、ディスク全体または空き領域のパーティショニングをインストーラに任せます。パーティショニングの大まかな指示として、「すべてのファイルを1つのパーティションに」「ホームディレクトリのパーティションを分割」「マルチユーザシステム」の3つが用意されており、このうち1つを選択します(図3)。
図3:ガイドによるパーティショニング
- すべてのファイルを1つのパーティションに
- 最も単純な構成です。Debianシステムのファイルすべてを格納するパーティションとして基本パーティションを1つ、スワップパーティションとして論理パーティションを1つ作ります。とりあえず試してみたい、あるいは空き領域の容量がそれほど大きくないときには、これを選ぶのがよいでしょう。
- ホームディレクトリのパーティションを分割
- ホームディレクトリ(/home)をDebianシステムのパーティション(ルートパーティション)とは分けます。こうすることで、ユーザーがホームディレクトリに巨大なファイルを作ってしまってパーティションをいっぱいにしてしまっても、システムの動作に悪影響を及ぼさずに済みます。また、システムパーティションが何らかの原因でクラッシュしてしまったり、あるいはシステムを再インストールすることになったりという場面でも、ホームディレクトリを分けておけばユーザーのデータを失わずに済みます。ルートパーティションとして基本パーティションを1つ、ホームディレクトリパーティションとして論理パーティションを1つ、スワップパーティションとして論理パーティションを1つ作ります。ホストの主OSがDebianで、複数のユーザーに利用されることが想定されているときには、これを選ぶのがよいでしょう。
- マルチユーザシステム
- ホームディレクトリだけでなく、プログラムディレクトリ(/usr)、システム可変データディレクトリ(/var)、テンポラリディレクトリ(/tmp)もDebianのルートパーティションと分けます。細分化することで各パーティションがいっぱいになった際のシステムの動作への影響を防いだり、クラッシュからの復旧や再インストールの手間を軽減することはできますが、小さなディスクでこのような構成にすると、すぐにパーティションが埋まってしまうという逆効果になってしまう恐れもあります。ルートパーティションとして基本パーティションを1つ、残りの/usr、/var、/tmp、/homeに論理パーティションを計4つ、スワップパーティションとして論理パーティションを1つ作ります。たくさんのユーザーや大規模な提供サービスが見込まれるときには、これを選びます3。
1.3 パーティショニング計画の表示
ガイドによるパーティショニングが終わると、ガイドによって構成されたパーティショニング計画の画面になります(図4)。「手動でパーティションテーブルを編集」を選んだ場合には、現時点のパーティション状態が代わりに表示されます。
図4:パーティショニング計画の表示
パーティション状態の各表示の意味を、図5に示します。
図5:表示されるパーティション情報
+-- ディスクの接続位置
| +-- ディスクデバイス名
| | +-- ディスクの容量
| | | +-- ディスクから取得した名前
| | | |
v v v v
IDE1マスタ (hda) - 3.2 GB VMware Virtual IDE hard Drive ← これを選択するとパーティションテーブルの編集メニューに移動する
1. 基本 3.0 GB # ● ext3 / ← これらを選択するとパーティションの編集メニューに移動する
5. 論理 172.8 MB ● スワップ ←
^ ^ ^ ^ ^ ^ ^
| | | | | | |
| | | | | | +-- マウントポイントのディレクトリ
| | | | | +-- ファイルシステムの種類またはスワップ
| | | | +-- 処理内容(スマイルマーク:初期化する新規のパーティション、黒スマイルマーク:初期化せず保持するパーティション、ドクロマーク:初期化する既存のパーティション)
| | | +-- ブートフラグ
| | +-- パーティションの容量
| +-- パーティションの領域形式(基本パーティションまたは論理パーティション)
+-- デバイス中のパーティション番号(1〜4は基本パーティション、5〜20は論理パーティション)
「パーティショニングの終了とディスクへの変更の書き込み」を選択し、確認画面(図6)で「はい」を選ぶと、設計したパーティショニング情報がディスクに実際に書き込まれ、ファイルシステムの準備、Debianシステムのファイルの展開と設定の手順に移ります。
図6:パーティション書き込みの確認
確認画面でも示されているように、「パーティショニングの終了とディスクへの変更の書き込み」で「はい」を選んだ時点で、パーティショニング計画の画面で行った初期化や削除の本当の実行が行われます。初期化や削除によって消失した既存のパーティションのデータを復帰することはほぼ不可能なので、「はい」を選ぶ前に十分に確認してください。ここで「はい」を選ぶ前にホストを再起動したり電源を落としても悪影響はありません。
以降のパーティショニング手順は、パーティショニング計画に問題がなければ読み飛ばしてかまいません。
1.4 手動パーティショニング
パーティショニング計画の画面では、ガイドによるパーティショニングの結果の微調整や、手動でのパーティショニング、ソフトウェアRAIDと論理ボリュームマネージャの設計といった作業を行うことができます4。ソフトウェアRAIDと論理ボリュームマネージャについては次の項で説明します。
「1. 基本」や「5. 論理」などのパーティションを示す項目を選択すると、そのパーティションの状態を変更できます(図7)。「パーティションのセットアップを終了」メニューを選択すると、パーティション計画の画面に戻ります。
図7:パーティション状態の変更
- パーティションの初期化設定と用途変更
- 「方法」メニューを選択すると、パーティションの取り扱いを変更できます(図8)。
図8:パーティションの初期化設定と用途変更
- パーティションの初期化:パーティションを指定のファイルシステムで初期化します。既存のデータがある場合、すべて消去されることになります。
- パーティションをスワップ領域として使う:パーティションをスワップパーティションにします。既存のデータがある場合、すべて消去されることになります。
- LVMのために物理ボリュームとしてパーティションを扱う:「1.6:論理ボリュームマネージャ」で説明する論理ボリュームマネージャのためのパーティション(物理エクステント)にします。論理ボリュームマネージャを使うには、1つ以上のこの種類のパーティションが必要です。既存のデータがある場合、すべて消去されることになります。
- RAIDデバイスとしてパーティションを使う:「1.5:ソフトウェアRAID」で説明するソフトウェアRAIDのためのパーティションにします。ソフトウェアRAIDを使うには、1つまたは2つ以上のこの種類のパーティションが必要です。既存のデータがある場合、すべて消去されることになります。
- パーティションを使わない:このパーティションを処理の対象から除外します。既存のデータはそのまま残されます。
- そのままにしてパーティションの既存のデータを使う:パーティションを初期化せず、そのままマウントしてシステムで利用できるようにします。
- ファイルシステムの変更
- 「方法」に「パーティションの初期化」が設定されているときに「ファイルシステム」メニューを選択すると、初期化する際に適用するファイルシステムを設定できます(図9)。
図9:ファイルシステムの変更
- ext3ジャーナリングファイルシステム:Linuxのファイルシステムとして伝統のあるext2ファイルシステムに、ジャーナリング機能5を追加したファイルシステムです。ext2ファイルシステムを元にしているので歴史的に安定度は高く、デフォルトではこのファイルシステムが適用されます。
- ext2ファイルシステム:Linux旧来のファイルシステムです。通常はext3を選ぶほうがよいでしょう。
- ReiserFSジャーナリングファイルシステム:Hans Reiser氏が設計したファイルシステムで、一般にext3よりも高速です。Linuxの各種のジャーナリングファイルシステムの中でも歴史が長く、まずまずの安定度を備えています。
- JFSジャーナリングファイルシステム:IBM社が設計したファイルシステムで、大容量のファイルに対応しており、サーバー用途や動画操作などの分野で効果を発揮します。ただ、Linuxではまだ新顔のファイルシステムなので、現時点では特に必要がなければext3やReiserFSを使うことをお勧めします。
- XFSジャーナリングファイルシステム:SGI社が設計したファイルシステムで、JFSと同様に大容量のファイルに対応しています。これもやはり新顔なので、ext3やReiserFSを使うことをお勧めします。
- FAT16ファイルシステム:MS-DOSや初期のWindows(Windows 95まで)で使われていたファイルシステムです。とりあえずパーティションを用意してあとでここに古いWindowsをインストールしたいという目的でない限り、これを選ぶことはないでしょう。Linuxのシステムで使うパーティションとしては利用できません。また、FAT16のパーティションはその容量は2GBまでに制限されています。
- FAT32ファイルシステム:Windows 95OSR2以降のWindows(NT/2000/XP以外)で標準で使われていたファイルシステムです。FAT16を拡張し、2TBまでのパーティションを作成できます。通常、Windowsのパーティションをひとまず用意しておきたいというときには、これを選ぶのがよいでしょう。
- マウントポイントの変更
- パーティションは、Linuxシステムのディレクトリ(マウントポイント)にマウント(はめ込む)しないと利用することはできません。現在のパーティションをどのマウントポイントにマウントするかを「マウントポイント」メニューで変更できます(図10)。
図10:マウントポイントの変更
- /:ルートディレクトリで、必ずただ1つのパーティション(ルートパーティション)をこのディレクトリにマウントしなければなりません。/usrや/varなどを分けないときには、割り当てるパーティションを大きめに見積っておく必要があります。
- /boot:Linuxカーネルや起動に必要なファイルを配置するディレクトリで、それほど大きな容量を用意する必要はありません(通常は100MB程度もあれば十分でしょう)。このディレクトリをルートパーティションと分けて用意する必要があるのは、古いPCで、ディスクの先頭から1024シリンダ(およそ8GB付近)以内でなければ起動プログラムを読み込んで実行できないというときです。最近のPCでは、このようにパーティションを分ける必要はありません。
- /home:ユーザーのホームディレクトリです。多数のユーザーを抱えているときには、パーティションを分けておくのがよいでしょう。
- /tmp:システムやユーザーが一時的にファイルの置き場所として使うディレクトリです。通常、このディレクトリを分ける必要はありませんが、誰でも書き込み可能なディレクトリであることから、ユーザーにシェルログインを許しており、そのユーザーを必ずしも信頼できないというときには、分割しておくことが対策の1つになります6。
- /usr:さまざまなアプリケーションを置くディレクトリです。Debianのパッケージをインストールするごとに、このディレクトリは膨らんでいきます。あえてルートパーティションと分ける必要はないでしょう。
- /usr/local:Debianパッケージ以外のソフトウェアをインストールするときに使われるディレクトリで、通常の用途でこれを使うことはないでしょう。Debianパッケージに頼らずに自力で構築、運用したいサーバーソフトウェアを多数抱えており、ログなどで膨らむ可能性があるなら分けておきます。
- /var:ホストの運用中で刻々と変動するファイルが格納されるディレクトリです。たとえば、ログファイルやデータベースなどがこのディレクトリに配置されます。本格的にサーバーとして運用するなら分割しておきますが、どの程度の大きさが必要かは用途や規模によります。
- 手動で入力:以上のマウントポイント以外の場所にマウントしたい場合はこれを選び、ディレクトリ名を指定します。
- マウントしない:このパーティションをホストの起動時にマウントしません。使いたいときにはあとで手動でマウントすることになります。
- /dos、/windows:Windowsのパーティション(FAT16またはFAT32)のマウントポイントの候補です。どちらか好きなほうを選ぶのがよいでしょう7。
- マウントオプションの指定
- 「マウントオプション」メニューでは、ファイルシステムに特定のマウント時オプションを付けて、読み取り専用にしたり、非同期書き込みの代わりに同期書き込みするようにしたりできます(図11)。ファイルシステムと指定可能なオプションを表1にまとめます。
図11:マウントオプションの設定
表1:
指定可能なマウントオプション
オプション |
ファイルシステム |
効果 |
noatime |
ext2、ext3、ReiserFS、JFS、XFS |
アクセスするたびにファイルのアクセス時刻を更新することをしない。頻繁に書き込みを行うと壊れてしまうデバイス(USBメモリなど)や、遅いデバイスのときに指定する |
nodev |
ext2、ext3、ReiserFS、JFS、XFS |
スペシャルファイルの利用を禁止する |
nosuid |
ext2、ext3、ReiserFS、JFS、XFS |
setuidおよびsetgidを無効にする |
noexec |
ext2、ext3、ReiserFS、JFS、XFS |
ファイルの実行パーミッションを無効にする |
ro |
ext2、ext3、ReiserFS、JFS、XFS、FAT16、FAT32 |
読み取り専用としてマウントする。マウントされたデバイスに書き込むことはできなくなる |
sync |
ext2、ext3、ReiserFS、JFS、XFS、FAT16、FAT32 |
同期モードでマウントする。ファイルの入出力にキャッシュは使われない。メモリカードやフロッピーディスクなどのリムーバブルメディアでは、このオプションを付けたほうがよい |
usrquita |
ext2、ext3、ReiserFS、XFS |
ユーザーに基づくディスク制限を行う |
grpquota |
ext2、ext3、ReiserFS、XFS |
グループに基づくディスク制限を行う |
notail |
ReiserFS |
ReiserFSファイルシステムでブートパーティションにはこれを付ける必要がある |
quiet |
FAT16、FAT32 |
FATファイルシステムはユーザーやグループの概念がないため、chownやchmodなどのパーミッションに関連するコマンドを実行するとデフォルトではエラーになる。このオプションを付けるとエラーではなく無視されるようになる |
|
- ブートフラグの設定
- 「起動フラグ」メニューを選択するたびにオンとオフが切り替わります。起動したいOSが入っているパーティション(Debianの場合には/bootディレクトリを含むパーティション)には、ブートフラグを設定しておきます。
- サイズの変更
- 「サイズ」メニューを選択すると、まず現在のパーティショニング状態をディスクに書き込んでよいかどうか尋ねられます8。「はい」と答えると、既存のパーティションのサイズを広げたり縮めたりすることができます(図12)。スペースに続けて単位として「B」(バイト)、「MB」、「GB」を指定できるほか、%を付けるとパーセンテージ、数値の代わりにmaxを指定すると最大サイズになります。
図12:サイズの変更
サイズの変更は中身を消去することなく行われます。たいていは問題なく動作するはずですが、実行する前に重要なファイルのバックアップを取っておくことをお勧めします。
- ほかのパーティションからデータをコピー
- このメニューを選択すると、現在のパーティショニング状態をディスクに書き込んでよいかどうか尋ねられたあと、コピー元となるパーティションを尋ねられます。コピーされた側のパーティションにあった既存のデータは失われることに注意してください。
- パーティションの削除
- このメニューを選択すると、指定のパーティションを削除して空き領域にします。
新規のディスクや、パーティションを削除したり事前にほかのOSで設計したりなどしたディスクで「空き領域」がある場合には、そこに新しいパーティションを作成できます(図13)。
図13:空き領域のあるディスク
空き領域を示す項目を選択すると、その利用方法を尋ねられます(図14)。
図14:空き領域の操作
- 新しいパーティションの作成
- 新しいパーティションを空き領域に作成します。
- はじめに作成サイズを尋ねられます(図15)。デフォルトでは空き領域いっぱいのサイズが指定されています。スペースに続けて単位として「GB」と「MB」を使うことができます(何も単位を付けないとバイト単位になってしまい、想定していたものよりずっと小さなサイズになってしまうので注意してください)。
図15:サイズの指定
- 次に、パーティションの種類として、基本領域パーティションか論理領域パーティションのどちらを利用するかを選択します(図16)。
図16:パーティションの基本/論理の指定
基本領域のパーティションは、1つのディスクに4個までという制限があります。Debianを含めOSをディスクから直接起動するには、そのOSの起動部分がこの基本領域に存在しなければなりません9。論理領域のパーティションは、1つのディスクに16個まで作成できますが、OSの直接起動はできません。また、論理領域は、基本領域の1つを論理的に区分したもので、これを使うと残る基本領域の利用は3つまでに制限されるほか、各論理領域を連続して配置しなければならないことになります。つまり、ディスクの先頭から「基本領域-基本領域-論理領域-論理領域-基本領域」のような構成は許されますが、「基本領域-基本領域-論理領域-基本領域-論理領域」のように論理領域のあいだに基本領域を置くような構成はできません。
- 最後に、空き領域の先頭側と末尾側のどちらにパーティションを配置するかを尋ねられます(図17)。通常はわかりやすい先頭側にしておくことをお勧めします。
図17:パーティションの配置の指定
- ガイドによるパーティショニング
- 空き領域に対して、「1.2:ガイドによるパーティショニング」と同じようにパーティショニングを自動的に行います。
- シリンダ/ヘッダ/セクタの情報を表示
- 空き領域の情報として、シリンダ、ヘッダ、セクタの位置を表示します(図18)。シリンダはハードディスクの内部の円盤にある各円周(トラック)を、ヘッダはハードディスクにアクセスする磁気ヘッドを、セクタは各トラックをアクセス単位(通常512バイト)で分割したときの位置をそれぞれ示します10(図19)。これらの数値はそれぞれC、H、Sとして、起動時のメッセージやハードディスクの説明で登場することがあります(実際のOSの運用の場面では、これらの数値を気にすることはまずありません)。
図18:シリンダ/ヘッダ/セクタの情報
図19:ハードディスクのシリンダ、ヘッダ、セクタ
◆→要手書き清書 -- kmuto←◆
+---------------------+
| ハードディスク |
| |
円盤(プラッタ)
← シリンダ(トラック)
← ヘッダ(磁気ヘッド)
← セクタ
「IDE1マスタ (hda)」のようなディスク全体を示す項目を選択すると、パーティションテーブルを初期化するかどうか尋ねられます(図20)。「はい」と答えると初期化します。パーティションテーブルは、各パーティションがディスク中のどの位置からどの位置までに配置されているかといった情報を格納しています。
図20:パーティションテーブルの初期化
新しいディスクであったり、パーティションテーブルが壊れてしまっていたりといったときにはパーティションテーブルを作成し直す必要があります。パーティションテーブルを作成し直すと、パーティションの位置情報が失われて、パーティションの存在しない新規のディスクに変更されます。すでにパーティションを構成してデータを保持しているときには実行すべきではありません。パーティションとともにデータを失うことになり、復旧は簡単ではありません。
1.5 ソフトウェアRAID
RAID(Redundant Arrays of Inexpensive Disks)は、複数の比較的安価なディスクを組み合わせて、高速化や耐障害性を図る技術です。RAIDにはハードウェアで構成されるハードウェアRAIDと、ソフトウェアで構成されるソフトウェアRAIDがあります。ハードウェアRAIDは、OSからは1つの普通のディスク(SCSIまたはIDE)として参照され(このため、OSでRAIDに対して特別な配慮の必要はありません)、RAIDの管理はハードウェア側の独自の実装に基いて行います。通常はホットスワップ(システムに通電している状態でのディスク交換)にも対応しており、高い信頼性を要求される環境ではハードウェアRAIDを使うべきですが、高機能のものはそれに比例して非常に高価です。ソフトウェアRAIDは、OSで複数のディスクの管理とそのRAID化を実装するもので、安価にRAIDを構築することはできますが、ハードウェアRAIDほどの信頼性や利便性はありません。
RAIDには、機能に基づくいくつかのレベルがあります。一般的に表記されている主なレベルを表2に挙げます。各レベルは、下のレベルの機能を包含しているわけではないことに注意してください。たとえばRAID 1はRAID 0の機能を持っているわけではありません。
表2:
RAIDのレベル
レベル |
機能 |
0 |
ストライプモード。2つ以上の実ディスクをまとめて、1つの大きな仮想のディスクとして扱う(全容量は各実ディスクの容量の合計)。データは個々の実ディスクに分散されて処理されるので、読み書きの速度は向上する。耐障害性はないので、1つの実ディスクが故障するとすべてのデータを失うことになる。さほど重要ではないが大きな容量が必要なときに使われる |
1 |
ミラーモード。1つの実ディスク(アクティブディスク)を残りの1つ以上のほかのディスクにコピーする(全容量はアクティブディスクの容量11)。アクティブディスクに障害が起きて取り外しても、コピーであるほかのディスクを新たなアクティブディスクとしてサービスを継続できる。読み取りは高速化されるが、書き込みはすべてのディスクにコピーが発生するために速度が低下する。簡単なバックアップ用途でよく使われる |
0+1 |
3つ以上の実ディスクで、RAID 0とRAID 1を同時に行う(全容量は各実ディスクの容量の合計÷2)。速度の向上と耐障害性を図ったもの |
5 |
パリティ付きストライプモード。3つ以上の実ディスクで、相互に実ディスクのデータエラー訂正を示すパリティ情報をほかの実ディスクに持たせることで、ストライプモードに耐障害性を持たせる(全容量は各実ディスクの容量の合計−1つの実ディスクの容量)。高い信頼性の要求される環境では、一般にRAID 5が使われる |
|
Debianのインストーラでは、このうちRAID 0とRAID 1のソフトウェアRAIDを構成できます(ディスク単位ではなくパーティション単位で行います)。構成されたRAIDは、1つの普通のパーティションとして扱われ、好きなファイルシステムをそこに作ることができます(図21)。では、RAIDパーティションの構成を説明していきましょう。
図21:RAID 0とRAID 1
RAID 0
ストレージ絵(1GB) ----+
| |
ストレージ絵(1GB) ----+-----> 大きなストレージ絵(4GB)
| |
ストレージ絵(2GB) ----+
RAID 1
ストレージ絵(1GB) ----+
| |
ストレージ絵(1GB) ----+-----> 左と同じ大きさのストレージ絵(1GB)
| | 重ねるようにストレージ絵
ストレージ絵(2GB) ----+ 重ねるようにストレージ絵
◆→2つを横に並べられる? -- kmuto←◆
- まず、パーティショニング計画の画面で物理パーティションまたは論理パーティションを選び、パーティション状態の変更画面で「方法」メニューを選びます。
- 「RAIDデバイスとしてパーティションを使う」を選び、このパーティションをRAIDとして利用するようにしておきます。RAIDにしたいほかのパーティションも同様の手順で設定しておきます。
- RAIDに使うパーティションの定義がすべて終わったら、パーティショニング計画の画面で「ソフトウェアRAIDの設定」メニューを選びます。まず現在のパーティショニング状態をディスクに書き込んでよいかどうか尋ねられたあと、RAIDの設定メニュー画面が表示されます(図22)。RAIDを構成するために、「MDデバイスの作成」メニューを選びます。
図22:RAIDの設定
- RAID 0とRAID 1のどちらを使うか、およびキャンセルのメニューが表示されます(図23)。構成したいものを選択してください。
図23:RAID 0/1の選択
- RAID 0を選ぶと、ストライプ化の対象とするデバイスを尋ねられます(図24)。
図24:RAID 0のストライプデバイスの選択
ストライプの対象にしたいものにチェックを付けて「続ける」を選択すると、それらのデバイスをまとめたRAID 0のパーティションが作成されます。
- RAID 1はRAID 0に比べると設定が若干複雑です。ミラーの原本となるアクティブデバイスと、コピーとなるスペアデバイスの、それぞれのデバイス名とその個数を把握しておく必要があります。
最初に、アクティブデバイスの個数を尋ねられます(図25)。計画に応じて1以上の数値を指定します。
図25:RAID 1のアクティブデバイスの数の指定
次に、スペアデバイスの個数を尋ねられます(図26)。
図26:RAID 1のスペアデバイスの数の指定
続いて、アクティブデバイスにするデバイスの選択(図27)とスペアデバイスの選択(図28)では、先に入力した個数にちょうど合うようにそれぞれデバイスを選択する必要があります。
図27:RAID 1のアクティブデバイスの選択
図28:RAID 1のスペアデバイスの選択
これで、RAID 1のミラー化されたパーティションが作成されます。
- 作成されたRAIDパーティションは、デフォルトで「使用しない」になっています。パーティションを選んだあと、「方法」メニューから「パーティションを初期化」を選び、ファイルシステム、マウントポイントを指定します。
1.6 論理ボリュームマネージャ
論理ボリュームマネージャ(LVM:Logical Volume Manager)は、RAID 0(ストライプモード)に似ていますが、もっと柔軟で、デバイスを必要に応じて追加したりあるいは取り外したりすることができます。論理ボリュームマネージャを扱う上でいくつかの特別な用語が出てくるので、最初にそれぞれについて説明しておきましょう。
- 物理エクステント
- LVMを構成する実際のデバイス(パーティション)です。
- ボリュームグループ(VG)
- LVM用として物理エクステント化されているパーティションの集合で、それぞれの集合は任意の名前で区別されます。
- 論理ボリューム(LV)
- このボリュームグループ内に作成することができる通常パーティションで、それぞれのボリュームはやはり任意の名前で区別されます。1つのボリュームグループには複数の論理ボリュームを持つことができます。
図29:LVMの構成
ボリュームグループ
ストレージ絵 ----+ +-------------------+
| | 論理ボリューム |
ストレージ絵 ----+----->+-------------------+
| | 論理ボリューム |
ストレージ絵 ----+ +-------------------+
ストレージ絵 ----+ +-------------------+
+----->| 論理ボリューム |
ストレージ絵 ----+ +-------------------+
物理エクステント
つまり、LVMによるパーティションは、実デバイス(パーティション)を物理エクステントとして利用できるようまず宣言して、それをまとめたボリュームグループを作成し、そこに論理ボリュームを好きなだけ作るという手順になります。ボリュームグループの物理エクステントは初期化の必要なしに追加したり解除したりできます。
続いて実際の手順を説明していきましょう。
- まず、パーティショニング計画の画面で物理パーティションまたは論理パーティションを選び、パーティション状態の変更画面で「方法」メニューを選びます。
- 「LVMのために物理ボリュームとしてパーティションを使う」を選び、このパーティションを物理エクステントとして利用するようにしておきます。物理エクステントにしたいほかのパーティションも同様の手順で設定しておきます。
- LVMに使うパーティションの定義がすべて終わったら、パーティショニング計画の画面で「論理ボリュームマネージャの設定」メニューを選びます。まず現在のパーティショニング状態をディスクに書き込み、物理エクステント化したパーティションを初期化してよいかどうか尋ねられたあと、LVMの設定メニュー画面が表示されます(図30)。ボリュームグループを構成するために、「ボリュームグループ (VG) の操作」メニュー◆→lvmcfg0.33でこれに更新予定 -- kmuto←◆を選びます。
図30:LVMの設定
- ボリュームグループの設定メニュー画面(図31)では、ボリュームグループの作成(物理エントラントからボリュームグループを作る)、削除(ボリュームグループのすべての物理エントラントを解放し、ボリュームグループを削除する)、拡張(物理エントラントをボリュームグループに追加する)、縮小(物理エントラントをボリュームグループから解放する)ができます。
図31:ボリュームグループの設定
- 始めは「ボリュームグループの作成」を選びます。新しく作成するボリュームグループとして利用可能な物理エントラントのデバイスが一覧表示されるので、チェックを付けていきます(図32)。選択し終えたら、「続ける」を選びます。
図32:ボリュームグループに使う物理エントラントデバイスの選択
- 作成した新しいボリュームグループに付ける固有の名前を指定します(図33)。英字アルファベットまたは数字、記号から成る適当な名前(たとえばdebian_vg)を入力します。
図33:ボリュームグループ名の指定
- 次は、このボリュームグループにパーティションとなる論理ボリュームを作成します。図30のLVMの設定メニューで「論理ボリューム(LV)の操作」メニューを選びます。
- 論理ボリュームの設定メニュー画面(図34)から、「論理ボリュームグループの作成」を選びます。
図34:論理ボリュームの設定
- 作成する論理ボリュームに付ける固有の名前を指定します(図35)。たとえばdebian_lvのように入力します。
図35:論理ボリューム名の指定
- 論理ボリュームを作成するボリュームグループを一覧から選択し(図36)、そのサイズを指定します(図37)。
図36:論理ボリュームを作成するボリュームグループの指定
図37:論理ボリュームのサイズの指定
- これで、LVMのパーティションが作成されます。作成されたパーティションは、デフォルトで「使用しない」になっているので、パーティションを選んだあと、「方法」メニューから「パーティションを初期化」を選び、ファイルシステム、マウントポイントを指定します。
ボリュームグループにまだ空きがあれば、さらにほかの論理ボリュームを作成することもできます。
ボリュームグループで利用する物理エントラントの調整は、ボリュームグループの設定メニュー画面(図31)で行います。
新しい物理エントラントをボリュームグループに追加するには、「ボリュームグループの拡張」メニューを選んで、拡張したいボリュームグループを指定し、それから追加する物理エントラントを指定するだけです。「ボリュームグループの縮小」メニューでは、同様の手続きでボリュームグループから物理エントラントを解除できます12。「ボリュームグループの削除」メニューでは、ボリュームグループを削除できますが、その前にそのボリュームグループを利用している論理ボリュームを事前に削除しておく必要があります。
LVMはRAID 0と同様、それ自体には耐障害性がなく、1つでも物理エントラントが故障すると、ボリュームグループおよびその中の論理ボリュームすべてのデータを失うことに注意してください。
- ...「ディスク全体を使う」メニューを選ぶと、指定のディスク全体にある既存のパーティション(OSやデータを含む)を削除して1
- 選択した時点ではまだディスクから実際に削除するわけではないので、心配しないでください。
- ...fig:pw1)。これを選ぶと、ガイドによるパーティショニングの手順に進みます。WindowsなどのほかのOSとDebianとを1つのディスクで共存することを皆さんが望んでおり、事前にほかのOSのパーティションの大きさを縮めてディスクに空き領域を用意しているのであれば、このメニューを選択して先に進むことで、共存環境を構築できます2
- ほかのOSのパーティションの大きさを縮めるには、そのOSの再インストールを行うか、商用またはフリーのリサイズソフトウェア(Partition Magic、ntfsresize、partedなど)を利用します。
- .../homeに論理パーティションを計4つ、スワップパーティションとして論理パーティションを1つ作ります。たくさんのユーザーや大規模な提供サービスが見込まれるときには、これを選びます3
- ただ、そのような用途では、ガイドによるパーティショニングよりも、サービスに最適化したパーティショニングを手動で行うことをお勧めします。
- ...パーティショニング計画の画面では、ガイドによるパーティショニングの結果の微調整や、手動でのパーティショニング、ソフトウェアRAIDと論理ボリュームマネージャの設計といった作業を行うことができます4
- パーティショニングに旧来のcfdiskインターフェイスを利用することもできます。※Alt※+※F2※を押してシェルに移動し、cfdisk /dev/ディスクデバイス名※[Enter]※を実行します。ただし、/dev/hdaのような短いデバイス名ではなく、/dev/ide/host0/bus0/target0/discのようにdevfs化された名前を指定する必要があります(※Tab※を押して補完するのがよいでしょう)。
- ...ext3ジャーナリングファイルシステム:Linuxのファイルシステムとして伝統のあるext2ファイルシステムに、ジャーナリング機能5
- ファイルへの書き込みを実際のファイルとは別の場所にあるログに記録し、不意の電源断などの障害の際にそのログを復元することで時間のかかるパーティション全体の検証を避け、素早い復帰を実現します。
- ...FIL:/tmp/:システムやユーザーが一時的にファイルの置き場所として使うディレクトリです。通常、このディレクトリを分ける必要はありませんが、誰でも書き込み可能なディレクトリであることから、ユーザーにシェルログインを許しており、そのユーザーを必ずしも信頼できないというときには、分割しておくことが対策の1つになります6
- ルートパーティションがいっぱいになるという危険を防ぐことができますが、シェルログインを許可している時点で、そのような危険に限らず、ローカルからのさまざまな攻撃の危険を負うことにはなります。
- ...FIL:/windows/:Windowsのパーティション(FAT16またはFAT32)のマウントポイントの候補です。どちらか好きなほうを選ぶのがよいでしょう7
- NTFSのパーティションはここではマウントできません。あとで手動でマウントすることになります。
- ... 「サイズ」メニューを選択すると、まず現在のパーティショニング状態をディスクに書き込んでよいかどうか尋ねられます8
- 前述したように、初期化や削除によって消失した既存のパーティションのデータを復帰することはほぼ不可能なので、「はい」と答える前に十分に確認してください。
- ...KEY:基本領域(きほんりょういき)のパーティションは、1つのディスクに4個までという制限があります。Debianを含めOSをディスクから直接起動するには、そのOSの起動部分がこの基本領域に存在しなければなりません9
- Debianの場合、/bootディレクトリを含むパーティションは基本領域に配置しなければなりません。
- ...fig:pc2)。シリンダはハードディスクの内部の円盤にある各円周(トラック)を、ヘッダはハードディスクにアクセスする磁気ヘッドを、セクタは各トラックをアクセス単位(通常512バイト)で分割したときの位置をそれぞれ示します10
- 古いハードディスクでは、シリンダ、ヘッダ、セクタで物理的なディスク位置を示していましたが、ディスクサイズの拡大とともにこのような指定方法に限界が生じたため、現在はシリンダやヘッダに関係なくセクタを連続した32ビット範囲(2TB相当)の番号の線形として管理するLBA(Logical Block Addressing)が実際の管理方法として使われています。
- ... 1&ミラーモード。1つの実ディスク(アクティブディスク)を残りの1つ以上のほかのディスクにコピーする(全容量はアクティブディスクの容量11
- RAID 1では、利用するディスクはすべて同じ容量のものを使うようにします。小さなディスクがあると、その容量にRAID全体が制限されます。
- ...新しい物理エントラントをボリュームグループに追加するには、「ボリュームグループの拡張」メニューを選んで、拡張したいボリュームグループを指定し、それから追加する物理エントラントを指定するだけです。「ボリュームグループの縮小」メニューでは、同様の手続きでボリュームグループから物理エントラントを解除できます12
- ただし、ボリュームグループの大きさは論理ボリュームの合計サイズよりも小さくすることはできません。