いままでのシステム管理経験により、Red Hat Enterprise Linux 環境下でのストレージ管理についてほぼ理解している方もいれば不慣れな方もいると思います。このセクションではRed Hat Enterprise Linux に固有のストレージ管理について説明しています。
すべての Linux 系オペレーティングシステムと同様、Red Hat Enterprise Linux もすべてのハードウェアにアクセスするためにデバイスファイルを使用しています(ディスクドライブも含む)。しかし、接続しているストレージデバイス用の Naming Convention (名前付け規則)は各種 Linux と Linux 系実装とのあいだでは多少異なります。次にこうしたデバイスファイルが Red Hat Enterprise Linux ではどのように名前付けされるかを示します。
![]() | 注記 |
---|---|
Red Hat Enterprise Linux 環境化のデバイス名はブート時に確定されます。 従って、システムのハードウェア構成への変更が行なわれるとシステムのブート時にデバイス名が変更されることになります。このため、システム設定ファイル内の参照デバイス名のいずれかが正しく更新されていないと問題が生じる場合があります。 |
Red Hat Enterprise Linux 環境下では、ディスクドライブのデバイスファイルは /dev/ ディレクトリにあります。各ファイル名の構成は実際のハードウェア形態によりいくつかあり、その設定にもよります。重要な点は以下の通りです。
デバイスタイプ
ユニット
パーティション
デバイス名の最初の 2 文字はデバイスの特定タイプを指しています。ディスクドライブなら一般的なデバイスタイプが 2 種類あります。
sd — このデバイスは SCSI ベースです。
hd — このデバイスは ATA ベースです。
ATA 及び SCSI についての詳細は 項5.3.2 を参照してください。
2 文字のデバイスタイプの後ろに特定ユニットを示す 1 文字または 2 文字が続きます。ユニット指示子は 1 番目のユニットの場合 "a" から、2 番目のユニットなら "b" から始まるという順序です。従って、システム上の 1 番目のハードドライブは hda または sda と表されているかもしれません。
![]() | ヒント |
---|---|
SCSI には、SCSI デバイスが接続されている 26 台以上のシステムをサポートするために 2 番目の追加ユニット文字を伴うことで多数のデバイスに対応する機能があります。従って、システムにある SCSI ハードドライブの最初の 26 台は sda から sdz とという名前が付き、次の26 台は sdaa から sdazというように続きます。 |
デバイスファイル名の最後の部分はデバイス上の特定パーティションを示す番号で、"1." から始まります。番号は 1 桁ないしは 2 桁で、特定のデバイスに書き込まれているパーティションの数によります。デバイスファイル名の構成がわかるとそれぞれが示すものが何であるのか理解しやすくなります。いくつか例をあげます。
/dev/hda1 — 1 番目の ATA ドライブにある 1 番目のパーティション
/dev/sdb12 — 2 番目の SCSI ドライブにある 12 番目のパーティション
/dev/sdad4 — 13 番目の SCSI ドライブにある 4 番目のパーティション
特定のパーティションだけではなくデバイス全体にアクセスする必要が生じる場合があります。通常、デバイスにパーティションが作成されていなかったり、デバイスが標準パーティションをサポートしていない (CD-ROM ドライブなど)場合に必要となります。こうした場合にはパーティション番号を省略します。
/dev/hdc — 3 番目の ATA デバイス全体
/dev/sdb — 2 番目の SCSI デバイス全体
ただし、ほとんどのディスクドライブはパーティションを使用しています(Red Hat Enterprise Linux 環境下でのパーティション作成についての詳細は 項5.9.6.1を参照してください)。
大容量ストレージデバイスの追加や削除は既存デバイスのデバイスファイル名が変更される原因となる場合があります。システムが再起動した時にストレージが使用できなくなる危険性があります。この問題の要因となる一連の事象例を示します。
システム管理者が新しい SCSI コントローラを追加したのでシステムに新しい SCSI ドライブが 2 台追加できるようになりました(既存の SCSI バスは完全に満杯状態)
元の SCSI ドライブ(そのバス上の 1 番目のドライブを含む、/dev/sda)に変更はまったくありません
システムを起動しました
新しいコントローラ上の 1 番目の SCSI ドライブが /dev/sda になるため、以前は /dev/sda という名前の SCSI ドライブが新しい名前になります
理論的には恐ろしい問題に見えますが、実際には滅多に起こりません。滅多に起こらない理由が多くあります。まず、この種のハードウェア再構成はあまり行なわれません。次に、恐らくシステム管理者が必要な変更を行なうためのダウンタイムをスケジュールしています。ダウンタイムは行なわれる作業が予定時間の枠を越えないよう十分注意して計画する必要があります。十分に注意して計画することでデバイス名の変更に関連する問題に気づくという側面的な利点もあります。
しかし、この問題が発生する可能性がある企業やシステム構成もあります。ニーズに合わせてストレージの再構成を頻繁に必要とする機関はダウンタイムなしに再構成できるハードウェアを使用する場合が多いためです。このような hotpluggable ハードウェアを使用するとストレージの追加や削除が簡単に行なえます。しかし、こうした状況ではデバイスの名前付けに関する点が問題となる可能性があります。Red Hat Enterprise Linux にはデバイス名の変更の問題を軽減する機能が含まれています。
ファイルシステム(詳細については項5.9.2で解説)の中にはラベルを保存する機能があるものがあります — ファイルシステムが格納しているデータを独自に認識するのに使用できる文字列。ラベルはファイルシステムをマウントする際に使用できるため、デバイス名を使用する必要がなくなります。
ファイルシステムラベル機能は優れていますが、システム全体で固有でなければなりません。同じラベルを使用するファイルシステムが複数あると目的のファイルシステムにアクセスができないことがあります。また、ファイルシステム(例、何らかのデータベース)を使用しないシステム設定にはファイルシステムラベルは機能しませんので注意してください。
devlabel ソフトウェアはファイルシステムラベルとは異なる方法でデバイスの名前付け問題の対処を試みます。devlabel ソフトウェアはシステムが再起動すると(また、hotpluggable デバイスが挿入、削除されると)常に Red Hat Enterprise Linux によって起動されます。
devlabel が起動すると、その設定ファイル (/etc/sysconfig/devlabel) を読み込み設定されたデバイスの一覧を取得します。一覧にある各デバイスにはシンボリックリンク(システム管理者が選択する)とそのデバイスの UUID (Universal Unique IDentifier) があります。
devlabel コマンドはシンボリックリンクが常に初めに指定したデバイスを必ず参照するようにします — そのデバイス名が変更された場合も。このようにして、システム管理者はシステムが /dev/sda12 ではなく /dev/projdisk を参照するよう設定することができます。例えば、
UUID は直接デバイスから取得されるため、devlabel は合致する UUID のみを検索しなければならないのでシンボリックリンクを正しく更新します。
devlabel についての詳細は、Red Hat Enterprise Linux システム管理ガイド を参照してください。
Red Hat Enterprise Linux には各種のポピュラーなファイルシステムのサポートが含まれていますので、他のオペレーティングシステムのファイルシステムに簡単にアクセスできます。
特に、デュアルブートで使用する場合やあるオペレーティングシステムから別のオペレーティングシステムにファイルを移行する時に役に立ちます。
サポートされているファイルシステムには次のようなものがあります(一部のみ)。
EXT2
EXT3
NFS
ISO 9660
MSDOS
VFAT
次のセクションではポピュラーなファイルシステムについて詳しく見ていきます。
最近まで ext2 ファイルシステムは Linux 用の標準ファイルシステムでした。このように、広範囲なテストが重ねられ、今日使用されている中でも堅固なファイルシステムのひとつであると考えられています。
しかし、完璧なファイルシステムはなく、ext2 も例外ではありません。よく報告される問題のひとつは、システムが正常にシャットダウンしなかった場合に冗長なファイルシステムの完全性チェックが行なわれなければなりません。これは ext2 固有ではありませんが、ext2 の普及が、より大きいディスクドライブの登場とあいまって、ファイルシステムの完全性チェックにかかる時間はどんどん長くなり、何か手を打たねばならなくなってきました。
次のセクションでは Red Hat Enterprise Linux 環境下においてこの問題を解決するためにとれる手段を説明しています。
ext3 ファイルシステムは ext2 の試験済み ext2 コードベースにジャーナリング機能を付加することにより構築しています。ジャーナリングファイルシステムとして、ext3 は常にファイルシステムを整合した状態に保つため、冗長なファイルシステムの完全性チェックが必要なくなりました。
これはファイルシステムの変更をすべて on-disk ジャーナルに書き込むことによって行なわれます。それから、定期的にフラッシュされます。予期していないシステムイベントが発生した場合(停電、システムクラッシュなど)、ファイルシステムを使用できるようにする前に行なわれる必要がある動作はジャーナルの内容を処理することだけです。これにかかる時間はほとんどの場合 1 秒ほどです。
ext3 の on-disk データ形式は ext2 をベースとしているため、ext2 ファイルシステムの読み込み及び書き込みができるシステムならext3 ファイルシステムにアクセスすることができます(ただし、ジャーナリング機能は利用できない)。いくつかのシステムは ext3 を使用しているのに他のいくつかは ext2 をまだ使用しているといった企業などにはかなり役に立つかもしれません。
1987 年に International Organization for Standardization (ISO) が標準 9660 をリリースしました。ISO 9660 は CD-ROM 上でファイルが表示される方法を定義しています。Red Hat Enterprise Linux のシステム管理者なら ISO 9660 フォーマットデータは次のようなところで見られます。
CD-ROM
完全な ISO 9660 ファイルシステムを含んでいるファイル(通常、ISO imagesと呼ばれている)、つまり CD-R や CD-RW メディアに書き込まれるファイル
基本的な ISO 9660 標準は、特に最新のファイルシステムと比べるとかなり機能的に制限されています。ファイル名は最大 8 文字の長さまでで拡張子は 3 文字以内です。しかし、標準に対するさまざまな拡張が長年に渡りポピュラーになってきました。
Rock Ridge — ISO 9660 で未定義のフィールドを使用して大文字と小文字を混合して使える冗長なファイル名、シンボリックリンク、nested ディレクトリ(ディレクトリ自体が別のディレクトリを含むことができるディレクトリ)などの機能に対するサポートを提供しています。
Joliet — ISO 9660 標準の拡張です。Microsoft によって開発され CD-ROM に冗長なファイル名を含ませることができます。ユニコード文字セットを使用しています。
Red Hat Enterprise Linux は Rock Ridge 拡張及び Joliet 拡張の両方を使用して ISO 9660 ファイルシステムを正しく解釈することができます。
Red Hat Enterprise Linux は他のオペレーティングシステムからのファイルシステムもサポートしています。msdos ファイルシステムの名前が示す通り、このファイルシステムをサポートしている本来のオペレーティングシステムは Microsoft 社の MS-DOS® でした。MS-DOS 同様、msdos ファイルシステムにアクセスする Red Hat Enterprise Linux システムは 8.3 ファイル名に制限されます。同様に、パーミッションや所有権など他のファイル属性も変更できません。しかし、ファイル交換の観点からすれば、msdos ファイルシステムは作業を行なう分には十分です。
いずれのファイルシステムにアクセスする場合も、まずファイルシステムを mount する必要があります。ファイルシステムをマウントすることにより、Red Hat Enterprise Linux に特定のパーティション(特定のデバイス上にある)をシステムで使用できるよう指示します。同様に、特定のファイルシステムへアクセスする必要がなくなったときはそのファイルシステムを umount する必要があります。
いずれのファイルシステムをマウントする場合も 2 つの情報が指定されなければなりません。
デバイスファイル名、ファイルシステムラベル、または devlabel 管理のシンボリックリンクなど、目的のディスクドライブとパーティションを独自に識別する方法
ディレクトリ、このディレクトリ配下でマウントされるファイルシステムが使用できるようになる(または マウントポイント)
次のセクションではマウントポイントについて詳しく説明します。
Linux (Linux 系)オペレーティングシステムを使用したことがなければ、マウントポイントの概念が最初はよくわからないでしょう。しかし、マウントポイントは開発ファイルシステムを管理する最もパワフルで柔軟性のある方法のひとつです。他の多くのオペレーティングシステムでは、ファイルの詳細にファイル名、ファイルが配置されている特定ディレクトリを認識する何らかの方法、ファイルがある物理的なデバイスを認識する方法が含まれています。
Red Hat Enterprise Linux では少しだけ異なる手段を用いています。他のオペレーティングシステム同様、ファイルの詳細にはファイル名、ファイルが配置されているディレクトリがありますが、明示的なデバイス指定子がありません。
これが欠落している理由はマウントポイントになります。他のオペレーティングシステムでは、各パーティション毎 1 つのディレクトリ階層になっています。しかし、Linux 系システムでは、システム全体でディレクトリ階層は 1 つ だけになり、この 1 階層が複数のパーティションにまたがっています。ここで重要になるのがマウントポイントです。ファイルシステムがマウントされると、そのファイルシステムは指定したマウントポイント配下で 1 組のサブディレクトリとして利用できるようになります。
実際にはこの欠落した部分が長所となります。つまり、シームレスな Linux ファイルシステムの展開が可能になり、すべてのディレクトリが追加ディスクスペース用のマウントポイントして動作することができるようになります。
例えば、root ディレクトリ配下に foo ディレクトリを格納する Red Hat Enterprise Linux システム があるとします。このディレクトリへの完全なパスは /foo/ になります。次に、このシステムにマウントしようとしているパーティションがあり、そのパーティションのマウントポイントが /foo/ になると仮定します。そのパーティションがトップレベルのディレクトリに bar.txt という名前でファイルを持っている場合、パーティションがマウントされると次のようなファイルの詳細を持つファイルにアクセスすることができます。
/foo/bar.txt |
つまり、このパーティションがマウントされると、/foo/ ディレクトリ配下にあり読み込みまたは書き込みされるファイルは、このパーティションから読み込みまたはこのパーティションへ書き込みされることになります。
多くの Red Hat Enterprise Linux システムでよく使用されるマウントポイントは /home/ です — 全ユーザーのアカウント用ログインディレクトリは通常 /home/ 配下に置かれるため。/home/ がマウントポイントとして使用されると、すべてのユーザーのファイルは専用パーティションに書き込まれるので、オペレーティングシステムのファイルシステムを埋めてしまうことはありません。
![]() | ヒント |
---|---|
マウントポイントは単純に普通のディレクトリのため、後日にマウントポイントとして使用するディレクトリにファイルを書き込むことができます。ディレクトリをマウントポイントとして使用すると、元々このディレクトリにあったこのファイルはどうなるでしょう? パーティションがこのディレクトリにマウントされている限り、このファイルにはアクセスできません(マウントしているファイルシステムがこのディレクトリ内容の場所に現れます)。しかし、このファイルが破損することはなくパーティションをアンマウントすればアクセスできるようになります。 |
ディスクスペースをマウント、アンマウントするのに加え、何がマウントされているか見ることができます。これを行なうのにいくつかの方法があります。
/etc/mtab を表示する
/proc/mounts を表示する
df コマンドを発行する
/etc/mtab ファイルは通常のファイルで、ファイルシステムがマウントまたはアンマウントされると常に mount プログラムによって更新されます。次は /etc/mtab の例です。
/dev/sda3 / ext3 rw 0 0 none /proc proc rw 0 0 usbdevfs /proc/bus/usb usbdevfs rw 0 0 /dev/sda1 /boot ext3 rw 0 0 none /dev/pts devpts rw,gid=5,mode=620 0 0 /dev/sda4 /home ext3 rw 0 0 none /dev/shm tmpfs rw 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0 |
![]() | 注記 |
---|---|
/etc/mtab ファイルは現在マウントされているファイルシステムの状態表示に使用することだけを目的としています。手動で編集しないでください。 |
それぞれの行は現在マウントされているファイルシステムを表示し、次のフィールドを含んでいます(左から右の順)。
デバイスの詳細
マウントポイント
ファイルシステムタイプ
ファイルシステムが読み取り専用 (ro) でマウントされているのか、読み取り/書き込み (rw) でマウントされているのか、またその他のマウントポイント
ゼロが入っている 2 つの未使用フィールド(/etc/fstab [1]との互換性)
/proc/mounts ファイルは proc 仮想ファイルシステムの一部です。/proc/ 配下にある他のファイルと同様、mounts "ファイル"は Red Hat Enterprise Linux システムのどのディスクドライブにも存在しません。
実際にはファイルでもありません。ファイル形式で見ることができる (Linux カーネルによる)システム状態の表示です。
cat /proc/mounts コマンドを使ってマウントしている全ファイルシステムの状態を見ることができます。
rootfs / rootfs rw 0 0 /dev/root / ext3 rw 0 0 /proc /proc proc rw 0 0 usbdevfs /proc/bus/usb usbdevfs rw 0 0 /dev/sda1 /boot ext3 rw 0 0 none /dev/pts devpts rw 0 0 /dev/sda4 /home ext3 rw 0 0 none /dev/shm tmpfs rw 0 0 none /proc/sys/fs/binfmt_misc binfmt_misc rw 0 0 |
上記の例からわかるように、/proc/mounts の形式は/etc/mtab によく似ています。ディスクドライブとは関係のないファイルシステムがいくつかあります。/proc/ ファイルシステム自身(及び /proc/ 配下に 別のファイルシステムが 2 つ)、pseudo-ttys、共有メモリです。
この形式は明らかにユーザーフレンドリーとは言えませんが、カーネルがこの情報を提供しているため、Red Hat Enterprise Linux システムに何がマウントされているのか 100% 確実に知るには /proc/mounts を見るのが最善の方法です。他の方法は、まれではありますが正確ではないことがあります。
しかし、ほとんどの場合にもう少し読みやすい(また、便利な)出力のコマンドを使うことの方が多いでしょう。次のセクションではそのコマンドについて説明します。
/etc/mtab または /proc/mounts を使うと現在マウントされているファイルシステムがわかりますが、それだけです。多くの場合に現在マウントされているファイルシステムについて他に必要となることがひとつあります — それぞれの自由領域量です。
これには、df コマンドを使うことができます。次に、df からの出力例を示します。
Filesystem 1k-blocks Used Available Use% Mounted on /dev/sda3 8428196 4280980 3719084 54% / /dev/sda1 124427 18815 99188 16% /boot /dev/sda4 8428196 4094232 3905832 52% /home none 644600 0 644600 0% /dev/shm |
/etc/mtab や /proc/mount との違いは明らかです。
読みやすいヘッダーが表示されている
共有メモリファイルシステムの例外を除いて、ディスクベースのファイルシステムのみ表示される
合計サイズ、使用済みの領域、自由領域、使用率が表示される
すべてのシステム管理者は結局、自由ディスク領域の不足したシステムに対処しなければならないわけですから、最後の点が恐らく最も重要になります。df を使うと、問題がどこにあるのかが非常に簡単にわかります。
Red Hat Enterprise Linux 環境下でネットワークアクセスが可能なストレージの実装には主に 2 通りの技術があります。
NFS
SMB
次のセクションではこれらの技術について説明しています。
その名の通り、 Network File System (一般的には NFS と呼ばれる)はネットワーク接続経由でアクセスできるファイルシステムのことです。他のファイルシステムでは、ストレージデバイスが直接ローカルシステムに接続されている必要がありますが、NFSならその必要がありません。集中化ファイルシステムサーバから完全なディスクレスコンピュータシステムまでさまざまな設定が可能となります。
しかし、他のファイルシステムとは異なり、NFS は特定の on-disk 形式を命令しません。その代わり、サーバのオペレーティングシステムのネイティブなファイルシステムサポートに依存してローカルディスクドライブへの実際の I/O を管理します。次に NFS はファイルシステムを NFS 互換のクライアントを実行しているオペレーティングシステムに対して利用できるようにします。
主に Linux 及び UNIX に実装されますが、NFS クライアント実装が他のオペレーティングシステムに存在することに注意してください、NFS はさまざまに異なるプラットフォームとのファイル共有に効果的に機能する技術となります。
NFS サーバにより使用可能となるファイルシステムは /etc/exports設定ファイルで管理されています。詳細については exports(5)の man ページ及び Red Hat Enterprise Linux システム管理ガイド を参照してください。
SMB は Server Message Block の略で、長年 Microsoft 社製の各種オペレーティングシステムで使用されているコミュニケーションプロトコルの名前です。SMB でネットワークを介したストレージの共有が可能になります。以前は基本となるトランスポートには NetBEUI が使用されていましたが、今日では TCP/IP がよく使用されるようになっています。
Red Hat Enterprise Linux は Samba サーバプログラムを介して SMB をサポートしています。Red Hat Enterprise Linux システム管理ガイドに Samba 設定に関する情報があります。
Red Hat Enterprise Linux システムを新規でインストールすると、インストール中に定義、作成したディスクパーティションはすべてシステムが起動すると自動的にマウントされるよう設定されています。しかし、インストール完了後にシステムに補助ディスクドライブを追加するとどうなるでしょうか。システムは補助ディスクドライブを自動的にマウントするようには設定されていなかったため自動的にはマウントされません。しかし、これは簡単に変更できます。
/etc/fstab ファイルで変更します。このファイルはシステムの起動時にマウントするファイルシステムを管理するのに使用される他、適宜に手動でマウントされる可能性がある他のファイルシステムのデフォルト値を提供します。次が /etc/fstab ファイルの例です。
LABEL=/ / ext3 defaults 1 1 /dev/sda1 /boot ext3 defaults 1 2 /dev/cdrom /mnt/cdrom iso9660 noauto,owner,kudzu,ro 0 0 /dev/homedisk /home ext3 defaults 1 2 /dev/sda2 swap swap defaults 0 0 |
各行がそれぞれのファイルシステムを示し、次のようなフィールドがあります。
ファイルシステム指示子 — ディスクベースのファイルシステムの場合はデバイスファイル名 (/dev/sda1)、ファイルシステムラベル指定 (LABEL=/)、devlabel管理のシンボリックリンク (/dev/homedisk) のいずれかです。
マウントポイント — swap パーティションを除いて、このフィールドにはファイルシステムがマウントされる時に使用されるマウントポイントが指定されています(/boot)。
ファイルシステムタイプ — ファイルシステムのタイプが指定デバイス上に示されます(マウントするファイルシステムの自動検出を選択するようにauto が指定されている場合があります。これはディスケットドライブなどのリムーバブルメディアユニットに便利です)。
マウントオプション — コンマで区切られたオプションのリストです。mount の動作を管理するのに使用します(noauto,owner,kudzu)。
Dump の頻度 — dump バックアップユーティリティが使用されている場合はこのフィールドの数値で指定したファイルシステムの dump 処理を管理します。
ファイルシステムチェックの順番 — ファイルシステムチェッカーの fsck がファイルシステムの整合性をチェックする順番を管理します。
ストレージの追加、削除に要される手順のほとんどはシステムのソフトウェアよりもハードウェアに依存しますが、ご使用のオペレーティング環境に固有の手順があります。このセクションでは Red Hat Enterprise Linux に固有となるストレージの追加と削除に必要な手順を説明します。
Red Hat Enterprise Linux システムにストレージを追加する手順は比較的簡単です。次に Red Hat Enterprise Linux 固有となる手順を示します。
パーティションを作成する
パーティションをフォーマット化する
/etc/fstab を更新する
次のセクションでは各手順を詳しく説明します。
ディスクドライブのインストールが完了したら、Red Hat Enterprise Linux がスペースを使用できるよう 1 つまたは複数のパーティションを作成します。
これを行なうのにいくつか方法があります。
コマンドライン fdisk ユーティリティプログラムを使用
parted を使用、別のコマンドラインユーティリティプログラム
ツールが違っても基本的な手順は同じです。次の例では、fdisk を使ってこれらの手順を行なうために必要なコマンドを示します。
新しいディスクドライブを選択します(ドライブ名は 項5.9.1 で概説されているデバイスの名前付け規則に従って定義)。fdisk から始めてデバイス名を含ませます。
fdisk /dev/hda |
ディスクドライブのパーティションテーブルを表示させ、パーティション作成しようとしているディスクドライブが実際に正しいものであるか確認します。例では、p を使って fdisk にパーティションテーブルを表示させています。
Command (m for help): p Disk /dev/hda: 255 heads, 63 sectors, 1244 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 * 1 17 136521 83 Linux /dev/hda2 18 83 530145 82 Linux swap /dev/hda3 84 475 3148740 83 Linux /dev/hda4 476 1244 6176992+ 83 Linux |
不必要なパーティションが新しいディスクドライブに存在している場合は削除します。fdisk の d コマンドを使います。
Command (m for help): d Partition number (1-4): 1 |
この手順をディスクドライブにある不必要なパーティションすべてに繰り返します。
新しいパーティションを作成します。目的のサイズとファイルシステムタイプを必ず指定します。fdisk を使う場合、2 つの手順にわかれます。まず、パーティションを作成します (n コマンドを使用)。
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-767): 1 Last cylinder or +size or +sizeM or +sizeK: +512M |
次に、ファイルシステムタイプを設定します (t コマンドを使用)。
Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): 82 |
パーティションタイプ 82 は Linux swap パーティションです。
変更を保存してからパーティション作成プログラムを終了します。fdisk の場合は w コマンドを使います。
Command (m for help): w |
![]() | 警告 |
---|---|
新しいディスクドライブにパーティションを作成するときは、パーティションを作成しようとしているディスクドライブが正しいドライブであることを必ず確認してください。これを怠ると、すでに使用しているディスクドライブにうっかりパーティションを作成してしまい、データを喪失してしまう恐れがあります。 また、最適なパーティションサイズを決定するよう心がけてください。サイズについては常に十分な注意を払います。後でサイズを変更することはかなり難しいため、ここで多少時間をかけても最適なサイズを決定しておきます。 |
Red Hat Enterprise Linux でのパーティションのフォーマット化には mkfs ユーティリティプログラムを使用します。しかし、mkfs では実際にはディスクドライブにファイルシステム固有の情報を書き込む作業は行なわれません。代わりに、実際にファイルシステムを作成する他のプログラムのうちのひとつに管理を委ねます。
ここで選択しているファイルシステムの mkfs.<fstype> の man ページを見ます。例えば、新規の ext3 ファイルシステムを作る時にオプションが使用できるか mkfs.ext3 の man ページを見ます。一般的には、mkfs.<fstype> プログラムではほとんどの構成に合理的なデフォルトが提供されています。しかし、次にシステム管理者がよく変更するオプションをいくつかあげます。
後日使用するために/etc/fstab でボリュームラベルを設定する
容量が極めて大きいハードディスク上で、スーパーユーザー用に確保するスペースの割合を低く設定する
非常に大きいファイルまたは小さいファイルのいずれかをサポートしなければならない設定に対して inode ごとに標準以外のブロックサイズ、バイトを設定する
不良ブロックをチェックしてからフォーマット化する
ファイルシステムの作成が必要なパーティションすべてに対して作業を完了したら、ディスクドライブは使用できるよう正しく設定されています。
次に、パーティションを手動でマウントして作業結果を再確認し、誤りがないことを確認するのが最適です。確認が完了したら、Red Hat Enterprise Linux システムがブート時に自動的に新しいファイルシステムをマウントするよう設定します。
項5.9.5 で概説されているように、/etc/fstab に必要な行を追加して新しいファイルシステムがシステムの再起動時にマウントされることを確認する必要があります。/etc/fstab を更新したら、デバイスまたはマウントポイントだけを指定する"不完全な" mount を発行して行なった作業をテストします。次の例のようなコマンドで十分です。
mount /home mount /dev/hda3 |
(/home または /dev/hda3 には状況に合わせて該当のマウントポイントやデバイスを使います。)
該当する /etc/fstab のエントリが正しければ、mount はそこから不足した情報を取得してマウント動作を完了させます。
この時点でほぼ /etc/fstab はシステムが起動する度に新しいストレージを正しく自動的にマウントするよう設定されたと言えます(確認のために再起動できるのであれば行なった方がいいでしょう)。
Red Hat Enterprise Linux からストレージを削除する手順は比較的簡単です。次に Red Hat Enterprise Linux に固有となる手順をあげます。
/etc/fstab からディスクドライブのパーティションを削除する
ディスクドライブのアクティブなパーティションをアンマウントする
ディスクドライブの内容を消去する
次のセクションではこれについて詳しく説明します。
適当なテキストエディタを使って /etc/fstab ファイルからディスクドライブのパーティションに該当する行を削除します。次のいずれかの方法で該当する行を確認します。
/etc/fstab の 2 番目の欄にあるディレクトリがパーティションのマウントポイントと一致している
/etc/fstab の 1 番目の欄にあるファイル名がデバイスのファイル名と一致している
![]() | ヒント |
---|---|
削除するディスクドライブ上にある swap パーティションを識別する/etc/fstab の行を必ず探してください。よく見落としてしまう行です。 |
次に、ディスクドライブへのすべてのアクセスを解除しなければなりません。このディスクドライブにあるアクティブなファイルシステムを使用するパーティションに対して umount コマンドを使用します。swap パーティションがこのディスクドライブ上に存在する場合は swapoff コマンドで解除するかシステムを再起動する必要があります。
umount コマンドでパーティションをアンマウントするにはデバイスファイル名かパーティションのマウントポイントを指定する必要があります。
umount /dev/hda2 umount /home |
パーティションは使用されていない時にのみアンマウントすることができます。通常のランレベルでパーティションがアンマウントできない場合は、レスキューモードで起動してそのパーティションの /etc/fstab エントリを削除します。
パーティションへのスワッピングを解除するため swapoff を使用する時は swap パーティション指しているデバイスファイル名を指定してください。
swapoff /dev/hda4 |
swap パーティションへのスワッピングが swapoff を使って解除できない場合は、レスキューモードで起動してそのパーティションの /etc/fstab エントリを削除します。
Red Hat Enterprise Linux でディスクドライブの内容を消去する手順は簡単です。
ディスクドライブのパーティションをすべてアンマウントしたら次のコマンドを発行します (root としてログイン)。
badblocks -ws <device-name> |
<device-name> はパーティション番号を除いて消去するディスクドライブのファイル名を入れます。例えば、2 番目の ATA ハードドライブなら /dev/hdb です。
badblocks を実行すると次のような出力が表示されます。
Writing pattern 0xaaaaaaaa: done Reading and comparing: done Writing pattern 0x55555555: done Reading and comparing: done Writing pattern 0xffffffff: done Reading and comparing: done Writing pattern 0x00000000: done Reading and comparing: done |
badblocks は実際にはディスクドライブ上の各ブロックに 4 種類のデータパターンを書き込んでいることに留意してください。大きなディスクドライブほどこのプロセスに時間がかかることがあります —数時間要されることもよくあります。
![]() | 重要 |
---|---|
多くの企業(及び行政機関)にはディスクドライブ及び他のデータストレージメディアからデータを削除するために特定の方法があります。必ずこれらを理解し必要項目に従っていることを確認してください。これらを怠ると、多くの場合、法的な問題が波及します。上記の例はディスクドライブを消去する最終的な方法ではありませんので注意してください。 ただし、rm コマンドを使うよりずっと効果的です。rm を使ってあるファイルを削除してもそのファイルに削除済みのマークが付くだけで、ファイルの内容は消去しません。 |
Red Hat Enterprise Linux にはディスククォータを使ってユーザー毎、グループ毎にディスクスペースの使用状況を追跡する機能があります。次のセクションでは Red Hat Enterprise Linux 環境下におけるディスククォータの機能に関する概要を説明します。
Red Hat Enterprise Linux でのディスククォータには次の機能があります。
ファイル毎の実施
ユーザー毎の領域計算
グループ毎の領域計算
ディスクブロック使用状況の追跡
ディスク inode 使用状況の追跡
ハードリミット
ソフトリミット
猶予期間
次のセクションでは各機能について詳しく説明します。
Red Hat Enterprise Linux でのディスククォータはファイルシステム毎に使用することができます。つまり、ディスククォータを各ファイルシステムごと個別にオン、オフすることができます。
これによりシステム管理者に大きな柔軟性をもたらします。例えば、/home/ ディレクトリがそれ自体のファイルシステムにあったとした場合、ディスククォータをそこでオンにすることができすべてのユーザーに公平なディスク使用を実施することができます。ただし、root ファイルシステムはディスククォータを外しておきます。オペレーティングシステムしか存在しないファイルシステムでの複雑なディスククォータ管理をなくします。
ディスククォータはユーザー毎に領域計算を行なうことができます。つまり、各ユーザーの領域使用状況が個別に追跡されるということです。また、ユーザー毎にも使用制限(後半のセクションで説明しています)を設けることができるということにもなります。
各ユーザー個別にディスクの使用を追跡、施行する上で柔軟性があるとシステム管理者はユーザー別に責務やストレージのニーズに応じて異なる制限を割り当てることができるようになります。
ディスククォータはグループ毎にディスクの使用状況追跡を行なうことができます。あるプロジェクト全体のリソースにさまざまの部署からのユーザーを集めてグループを構成している企業や組織には理想的です。
グループ全体にディスククォータを設定すると、複数ユーザーのプロジェクトに適宜大きなディスククォータを設定する一方、システム管理者は個人的に使用する分だけのディスククォータを各ユーザーに与えてストレージ使用を詳細に管理することができます。データセンターのリソースを使用する部署やチームに対してデータセンターにかかるコストの"チャージバック"方式を採用している企業や組織にとって大きな利点となり得ます。
ディスククォータはブロックの使用状況を追跡します。ファイルシステムに格納されているデータはすべてブロックで格納されるため、ディスククォータはファイルシステム上で作成及び削除されたファイルをそのファイルが占有している記憶容量と直接関連付けることができます。
ディスクブロック使用状況の追跡に加えて、ディスククォータは inode の使用状況も追跡することができます。Red Hat Enterprise Linux 環境下では、inode はファイルシステムのさまざまな部分を格納するために使用されますが、最も重要なことは inode は各ファイルの情報を保持しているということです。したがって、inode を追跡(また管理)することで新規ファイルの作成を管理することができます。
ハードリミットはユーザー(またはグループ)が一時的に使用できるディスクブロック(または inode) の絶対最大数です。ハードリミットを 1 ブロックないしは 1 ノードでも超えて使用することはできません。
![]() | 注記 |
---|---|
次のセクションでは Red Hat Enterprise Linux でディスククォータをオンにするために必要な手順の簡単な概要を説明しています。これについての詳細な取り扱いについてはRed Hat Enterprise Linux システム管理ガイド のディスククォータに関する章を参照してください。 |
ディスククォータを使うには最初にディスククォータをオンにします。これを行なうにはいくつかの手順に従います。
/etc/fstabを編集
ファイルシステムを再マウント
quotacheck を実行
クォータを割り当て
/etc/fstab ファイルは Red Hat Enterprise Linux 環境下でのファイルシステムのマウントを管理しています。クォータはファイルシステムベースで実施されるためオプションが 2 つあります。usrquota と grpquota で、ディスククォータをオンにするにはそのファイルにこのオプションを追加します。
usrquota オプションはユーザーベースのディスククォータをオンにし、grpquota オプションはグループベースのクォータをオンにします。このオプションのいずれかまたは両方を目的のファイルシステムのオプションフィールドに入れることでオンにすることができます。
影響を受けるファイルシステムはディスククォータ関連のオプションが反映するようアンマウントしてから再度マウントし直します。
次に、ディスククォータファイルを作成して既存ファイルから現在の使用状況情報を収集するために quotacheck コマンドを使用します。ディスククォータファイル(ユーザーベースのクォータには aquota.user、ユーザーベースのクォータには aquota.group と呼ばれるファイル)は必要となるクォータ関連の情報を含み、ファイルシステムの root ディレクトリにあります。
ディスククォータを割り当てるには、edquota コマンドを使用します。
このユーティリティプログラムは edquota コマンドの一部としてテキストエディタを使用し指定されたユーザーやグループのクォータ情報を表示します。次に例をあげます。
Disk quotas for user matt (uid 500): Filesystem blocks soft hard inodes soft hard /dev/md3 6618000 0 0 17397 0 0 |
ここではユーザーの matt が現在 6GB 以上のディスクスペースと 17,000 以上の inode を使用していることを表示しています。ディスクブロック、inode のいずれにもクォータ(ソフト及びハード)はまだ設定されていません。つまり、このユーザーは現在使用できるディスクスペース及び inode に制限がないということです。
テキストエディタで表示しているディスククォータ情報を使ってソフトリミットやハードリミットを適宜変更します。
Disk quotas for user matt (uid 500): Filesystem blocks soft hard inodes soft hard /dev/md3 6618000 6900000 7000000 17397 0 0 |
この例では、ユーザーの matt には 6.9GB のソフトリミットと 7GB のハードリミットが与えられています。このユーザーには inode についてはソフトリミット、ハードリミットとも設定されていません。
![]() | ヒント |
---|---|
edquota プログラムではファイルシステム毎の猶予期間を -t オプションを使って設定することもできます。 |
Red Hat Enterprise Linux でディスククォータをサポートするために必要とされる実際の管理はほとんどありません。本質的に必要とされるのは次だけです。
定期的にディスク使用状況のレポートを生成する(また、割り当てディスクスペースの効果的な管理に問題がありそうなユーザーを追跡調査する)
ディスククォータが正確であるか確認する
ディスク使用状況のレポートを作成するには repquota ユーティリティプログラムの実行が必要となります。repquota /home コマンドを使って次の出力を生成します。
*** Report for user quotas on device /dev/md3 Block grace time: 7days; Inode grace time: 7days Block limits File limits User used soft hard grace used soft hard grace ---------------------------------------------------------------------- root -- 32836 0 0 4 0 0 matt -- 6618000 6900000 7000000 17397 0 0 |
repquota についての詳細は Red Hat Enterprise Linux システム管理ガイド にあるディスククォータに関する章をご覧ください。
ファイルシステムが正常にアンマウントされない場合は必ず quotacheck を実行する必要があります(例、システムのクラッシュ)。しかし、多くのシステム管理者はシステムがクラッシュしなくても、定期的に quotacheck を実行することを推奨しています。
手順はディスククォータをオンにするとき始めて quotacheck 使う手順と似ています。
quotacheck コマンドの例を示します。
quotacheck -avug |
定期的に quotacheck を実行する一番簡単な方法は cron を使用することです。ほとんどのシステム管理者は quotacheck を 1 週間に 1 回実行しています。ただし、使用している状況によっては期間を長くしたり短くする場合もあります。
ハードウェア RAID ソリューションのサポートに加えて、Red Hat Enterprise Linux ではソフトウェア RAID もサポートしています。ソフトウェア RAID アレイを作成するには 2 通りあります。
Red Hat Enterprise Linux のインストール中に作成する
Red Hat Enterprise Linux インストールの完了後に作成する
次のセクションではこの 2 通りについて見て行きます。
通常の Red Hat Enterprise Linux インストール手順を行なっているときに RAID アレイを作成できます。インストールのディスクパーティション作成の段階で行ないます。
まず、Disk Druid を使ってディスクドライブに手動でパーティションを作成します。最初にタイプが "ソフトウェア RAID" の新規パーティションを作成します。次に、使用可能なドライブフィールドで RAID アレイの一部を構成させるディスクドライブを選択します。目的のサイズとプライマリパーティションにするかどうかを選択して続行します。
作成する RAID アレイに必要なパーティションをすべて作成完了したら、RAID ボタンを使って実際にアレイを作成します。ダイアログボックスが表示されアレイのマウントポイント、ファイルシステムタイプ、RAID デバイス名、RAID レベル、基礎となるこのアレイ上に置く"ソフトウェア RAID"パーティションを選択します。
目的のアレイを作成したらインストール手順を通常通り続行して行きます。
![]() | ヒント |
---|---|
Red Hat Enterprise Linux インストール中にソフトウェア RAID アレイを作成する方法についての詳細は Red Hat Enterprise Linux システム管理ガイド を参照してください。 |
Red Hat Enterprise Linux インストールの完了後に RAID アレイを作成するのは少々複雑になります。いずれのタイプのディスクストレージを追加するのと同様、必要なハードウェアがまずインストールされ正しく設定されている必要があります。
RAID は単一ディスクドライブのパーティション設定とは少し異なります。パーティションタイプに "Linux" (タイプ 83) または "Linux swap" (タイプ 82) を選ぶ代わりに、RAID アレイを構成するパーティションはすべて"Linux raid auto" (タイプ fd) に設定します。
次に、/etc/raidtab ファイルを作成する必要があります。このファイルはご使用のシステムにあるすべての RAID アレイの適切な設定の管理責任を負っています。ファイル形式(raidtab(5) の man ページで説明されている)は比較的簡潔です。次に RAID 1 アレイの /etc/raidtab エントリの例をあげます。
raiddev /dev/md0 raid-level 1 nr-raid-disks 2 chunk-size 64k persistent-superblock 1 nr-spare-disks 0 device /dev/hda2 raid-disk 0 device /dev/hdc2 raid-disk 1 |
このエントリで特に注意すべきことをいくつかあげておきます。
raiddev — RAID アレイのデバイスファイル名を表示します [2]。
raid-level — この RAID アレイで使用される RAID レベルを定義しています。
nr-raid-disks — このアレイを構成する物理的なディスクパーティションの数を示しています。
nr-spare-disks — Red Hat Enterprise Linux 環境下のソフトウェア RAID では 1 つまたは複数の予備ディスクパーティションの定義ができます。このパーティションは機能不全を起こしたディスクと自動的に交換されます。
device、raid-disk — 共に RAID アレイを構成する物理的なディスクパーティションを定義しています。
次に、実際に RAID アレイを作成する必要があります。mkraid プログラムで行ないます。/etc/raidtab ファイルの例を使って、次のコマンドで /dev/md0 RAID アレイを作成してみます。
mkraid /dev/md0 |
これで /dev/md0 RAID アレイのフォーマット化とマウントの準備が整いました。この時点での手順は単一ディスクドライブのフォーマット化及びマウントと同じです。
RAID アレイの動作を維持するためにすべきことはほとんどありません。ハードウェア障害が発生しない限り、アレイは物理的なディスクドライブと全く同じように機能するはずです。しかし、システム管理者なら定期的にシステム上のすべてのディスクドライブの状態をチェックするべきであるのと同様に、RAID アレイの状態もチェックすべきです。
特定システムにあるすべての RAID アレイの状態をチェックするには /proc/mdstat ファイルが一番簡単な方法です。mdstat の例をあげておきます (cat /proc/mdstat コマンドで表示)。
Personalities : [raid1] read_ahead 1024 sectors md1 : active raid1 hda3[0] hdc3[1] 522048 blocks [2/2] [UU] md0 : active raid1 hda2[0] hdc2[1] 4192896 blocks [2/2] [UU] md2 : active raid1 hda1[0] hdc1[1] 128384 blocks [2/2] [UU] unused devices: <none> |
このシステムには RAID アレイが 3 つあります(すべて RAID 1)。各 RAID アレイは /proc/mdstat にそれぞれのセクションを持ち、次のような情報が含まれています。
RAID アレイデバイス名(/dev/ の部分は含まれていない)
RAID アレイの状態
RAID アレイの RAID レベル
現在アレイを構成している物理パーティション(後にパーティションのアレイユニット番号が付く)
アレイのサイズ
構成デバイス数とアレイ内で動作中のデバイス数
アレイ内の各構成デバイスの状態 (U はそのデバイスが正常に動作しているという意味、_ はそのデバイスに障害が起きていることを示している)
/proc/mdstat で RAID アレイのひとつに問題があることを示している場合、raidhotadd ユーティリティプログラムを使用してアレイを再構築します。行なう必要がある手順を次に示します。
障害が発生しているパーティションを含むディスクドライブを判別する
障害の要因となる問題を修正する(ほとんどの場合ドライブの交換)
新しいドライブ上のパーティションがアレイ内の他のドライブにあるパーティションと同一になるよう新しいドライブにパーティションを設定する
次のコマンドを発行する
raidhotadd <raid-device> <disk-partition> |
/proc/mdstat を監視して配置した再構築 RAID アレイを観察する
![]() | ヒント | |
---|---|---|
配置した再構築を観察するために使用するコマンドです。
このコマンドは /proc/mdstat の内容を表示し、1 秒毎に更新されます。 |
[1] | 詳細は項5.9.5を参照 |
[2] | RAID アレイはパーティション設定されたディスクスペースで構成されるため、RAID アレイのデバイスファイル名はパーティションレベルの情報を反映していません |