一般に、Oracle Solaris OS におけるディスクの管理とは、システムを設定し、Solaris インストールプログラムを実行し、適切なディスクスライスおよびファイルシステムを作成して Oracle Solaris OS をインストールすることを意味します。また、format ユーティリティーを使用して、新しいディスクドライブを追加したり、欠陥ディスクドライブを交換したりしなければならない場合もあります。
この節の説明を有効に利用するには、基本的なディスクアーキテクチャーを理解しておく必要があります。特に、次の用語を理解しておいてください。
用語 |
説明 |
---|---|
トラック |
ディスクが回転するときに 1 つの静止したディスクヘッドの下を通過する同心リング。 |
シリンダ |
ディスクが回転する軸から同じ距離にあるトラックの集まり。 |
セクター |
各ディスクプラッタのセクション。1 セクターは 512 バイトです。 |
ブロック |
ディスク上のデータ記憶領域。1 ディスクブロックは 512 バイトです。 |
ディスクコントローラ |
ディスクドライブを制御するチップおよび関連する回路。 |
ディスクラベル |
ディスクのジオメトリおよびパーティション情報を含む、ディスクの第 1 セクター。 |
デバイスドライバ |
ハードウェアまたは仮想デバイスを制御するカーネルモジュール。 |
詳細は、ディスク製造元の製品情報を参照してください。
どのディスクにも、そのディスクのコントローラ、ジオメトリ、およびスライスに関する情報を格納する特殊な領域が確保されています。このような情報をディスクの「ラベル」と呼びます。VTOC ラベル付きのディスク上のディスクラベルを「VTOC (Volume Table of Contents)」と呼びます。「ディスクにラベルを付ける」とは、ディスクにスライス情報を書き込むことを意味します。通常は、ディスクのスライスを変更した後にラベルを付けます。
Solaris リリースでは、次の 2 つのディスクラベルをサポートしています。
SMI – 従来の VTOC ラベル。サイズが 2T バイトに満たないディスク用です。
EFI – 64 ビット Solaris カーネルを実行しているシステムで 2T バイトを超えるディスクをサポートします。Extensible Firmware Interface GUID Partition Table (EFI GPT) ディスクラベルは、32 ビット Solaris カーネルを実行しているシステムに接続された 2T バイト未満のディスクにも使用できます。
スライスを作成したあとでディスクにラベルを付けないと、OS はスライスを「認識」する方法がないので、そのスライスを利用できなくなります。
EFI ラベルは、サイズが 2T バイトを超える物理ディスクボリュームと仮想ディスクボリュームをサポートします。このリリースには、2T バイトを超えるサイズのディスクを管理するための更新版ディスクユーティリティーが付属しています。UFS ファイルシステムには EFI ディスクラベルとの互換性があり、2T バイトを超えるサイズの UFS ファイルシステムを作成できます。マルチテラバイトの UFS ファイルシステムの作成方法については、「64 ビット: マルチテラバイトの UFS ファイルシステムのサポート」を参照してください。
1T バイトを超えるファイルシステムを作成する必要がある場合は、別パッケージの Sun QFS ファイルシステムも使用できます。Sun QFS ファイルシステムについては、『Sun QFS, Sun SAM-FS, and Sun SAM-QFS File System Administrator’s Guide』を参照してください。
今回の Solaris リリースでは、Solaris ボリュームマネージャーでも 1T バイトを超えるディスク管理が可能です。Solaris ボリュームマネージャーの使用方法については、『Solaris ボリュームマネージャの管理』を参照してください。
サイズが 2T バイトに満たないディスクでは、引き続き VTOC ラベルを使用できます。現在のシステムでサイズが 2T バイトに満たないディスクしか使用しない場合は、以前の Solaris リリースと同じ方法でディスク管理を行います。サイズが 2T バイト以下のディスクに EFI ラベルでラベル付けを行う場合は、format-e コマンドを使用します。詳細は、例 11–6 を参照してください。
システム上で適切な Solaris リリースが実行されている場合、format -e コマンドを使用することで EFI ラベルをディスクに適用できます。ただし、EFI ラベルを適用する前に、「EFI ディスクラベルの制限」に記載された重要な情報を確認することをお勧めします。
EFI ラベルが不要になった場合に、format -e コマンドを使って、VTOC ラベルを再度適用することもできます。次に例を示します。
# format Specify disk (enter its number): 2 selecting c0t5d0 [disk formatted] . . . format> label [0] SMI Label [1] EFI Label Specify Label type[1]: 0 Warning: This disk has an EFI label. Changing to SMI label will erase all current partitions. Continue? yes Auto configuration via format.dat[no]? Auto configuration via generic SCSI-2[no]? format> quit |
ディスクラベルを変更すると、ディスク上のデータがすべて破棄されることに留意してください。
EFI ディスクラベルが VTOC ディスクラベルと異なる点は次のとおりです。
サイズが 2T バイトを超えるディスクをサポートします。
スライス 0 - 6 を使用できます (スライス 2 はその他のスライス)。
一次 (バックアップ) ラベルまたはその他のパーティションを使ってパーティションやスライスをオーバーラップすることはできません。EFI ラベルのサイズは通常 34 セクターなので、パーティションは通常セクター 34 で始まります。つまり、パーティションはセクターゼロ (0) では始められないことを意味します。
シリンダ、ヘッド、およびセクターの情報は、EFI ラベルには格納されません。サイズはブロック単位で報告されます。
代替シリンダ領域 (ディスクの終わりから 2 つめまでのシリンダ) に格納されていた情報は、スライス 8 に格納されます。
format ユーティリティーを使ってパーティションサイズを変更する場合、サイズ 0 のパーティションには unassigned パーティションタグが割り当てられます。format ユーティリティーでは、0 より大きいサイズのパーティションには、デフォルトにより usr パーティションタグが割り当てられます。パーティションを変更したあと新しいパーティションタグを割り当てたい場合は、パーティション変更メニューを使用します。ただし、サイズ 0 以外のパーティションに unassigned パーティションタグを割り当て直すことはできません。
サイズが 1T バイトを超えるディスクを使用することが現在の環境にとって適切かどうかを判断するときは、次の点を考慮してください。
VTOC ラベル付きディスクを使用するシステム向けの階層化されたソフトウェア製品で、EFI ラベル付きディスクにアクセスできないことがあります。
以前の Solaris リリースを実行しているシステムは、EFI ラベル付きディスクを認識しません。
EFI ラベル付きディスクからブートを実行できません。
x86 ベースのシステムでは、EFI ラベル付きの 2T バイトを超えるディスク上で fdisk コマンドを使用できます。
Solaris 管理コンソールの「ディスク」ツールでは、EFI ラベル付きディスクを管理できません。format ユーティリティーを使って EFI ラベル付きディスクをパーティションに分割します。すると、Solaris 管理コンソールの拡張ストレージツールを使って、EFI ラベル付きディスクを含むボリュームやディスクセットを管理できるようになります。
EFI 仕様では、スライスのオーバーラップは禁止されています。cxtydz でディスク全体を表現します。
EFI ディスクラベルは、ディスクやパーティションのサイズ情報を提供します。使用可能な単位はセクターまたはブロックです。シリンダおよびヘッドは使用できません。
次の format オプションは、EFI ラベル付きディスクではサポートされていないか、不適切です。
save オプション。EFI ラベル付きディスクは format.dat ファイルにエントリを必要としません。したがって、このオプションはサポートされません。
backup オプション。ディスクドライバは、一次ラベルを検出してディスクに書き込みます。したがって、このオプションは不適切です。
x86 システム上では、EFI ディスクラベルの Solaris サポートが利用可能です。x86 システムで EFI ラベルを追加するには、次のコマンドを使用します。
# format -e > [0] SMI Label > [1] EFI Label > Specify Label type[0]: 1 > WARNING: converting this device to EFI labels will erase all current > fdisk partition information. Continue? yes |
以前のラベル情報は EFI ディスクラベルに変換されません。
format コマンドを使ってラベルのパーティション情報を手動で作成し直す必要があります。EFI ラベル付きの 2T バイトのディスク上で fdisk コマンドを使用することはできません。2T バイトを超えるディスクで fdisk コマンドを実行して Solaris パーティションを作成する場合、Solaris パーティションは 2T バイトに制限されます。EFI ディスクラベルの詳細は、前の節を参照してください。
Solaris インストールユーティリティーは、EFI ラベル付きディスクを自動的に認識します。しかし、Solaris インストールプログラムでは、これらのディスクのパーティション分割をやり直すことはできません。インストール前またはインストール後に EFI ラベル付きディスクのパーティション分割をやり直す場合は、format ユーティリティーを使用してください。Solaris Upgrade ユーティリティーおよび Live Upgrade ユーティリティーも EFI ラベル付きディスクを認識します。ただし、EFI ラベル付きディスクからシステムをブートすることはできません。
EFI ラベル付きディスクを使用するシステム上に Solaris をインストールした場合、次のようなパーティションテーブル情報が得られます。
Current partition table (original): Total disk sectors available: 2576924638 + 16384 (reserved sectors) Part Tag Flag First Sector Size Last Sector 0 root wm 34 1.20TB 2576924636 1 unassigned wm 0 0 0 2 unassigned wm 0 0 0 3 unassigned wm 0 0 0 4 unassigned wm 0 0 0 5 unassigned wm 0 0 0 6 unassigned wm 0 0 0 8 reserved wm 2576924638 8.00MB 2576941021 |
EFI ラベル付きディスクの管理方法は、次の表で確認できます。
作業 |
参照先 |
---|---|
インストール済みのシステムにディスクを接続し、再構成 (ブート) を実行します。 |
「SPARC: システムディスクまたは二次ディスクの追加 (作業マップ)」または 「x86: システムディスクまたは二次ディスクの追加 (作業マップ)」 |
format ユーティリティーを使ってディスクのパーティション分割を行います (必要に応じて)。 |
「SPARC: ディスクスライスとディスクラベルを作成する方法」または 「x86: ディスクスライスとディスクラベルを作成する方法」 |
ディスクボリュームを作成します。その後、Solaris ボリュームマネージャーでソフトパーティションを作成します (必要に応じて)。または、ZFS ストレージプールを設定します。 |
『Solaris ボリュームマネージャの管理』の第 2 章「記憶装置管理の概念」または『Oracle Solaris ZFS 管理ガイド』の「ZFS ストレージプールを作成する」 |
newfs コマンドを使用して新しいディスク用の UFS ファイルシステムを作成します。 | |
または ZFS ファイルシステムを作成します。 | |
EFI ラベル付きディスクを複製します。 |
EFI ラベル付きディスクに関する問題のトラブルシューティングを行うときは、次のエラーメッセージと解決方法を使用してください。
Dec 3 09:26:48 holoship scsi: WARNING: /sbus@a,0/SUNW,socal@d,10000/ sf@1,0/ssd@w50020f23000002a4,0 (ssd1): Dec 3 09:26:48 holoship disk has 2576941056 blocks, which is too large for a 32-bit kernel |
32 ビットの SPARC または x86 カーネルを実行しているシステムを、サイズが 1T バイトを超えるディスクでブートしようとしました。
サイズが 1T バイト以上のディスクでは、64 ビットの SPARC または x86 カーネルを実行しているシステムをブートしてください。
Dec 3 09:12:17 holoship scsi: WARNING: /sbus@a,0/SUNW,socal@d,10000/ sf@1,0/ssd@w50020f23000002a4,0 (ssd1): Dec 3 09:12:17 holoship corrupt label - wrong magic number |
古い Solaris リリースで動作するシステムにディスクを追加しようとしました。
このディスクは、EFI ディスクラベルをサポートしている Solaris リリースで動作するシステムに追加してください。
ディスク上に格納されたファイルは、ファイルシステム中で管理されます。ディスク上の各ファイルシステムは「スライス」、つまりファイルシステム用に確保されたセクターセットのグループに割り当てられます。Oracle Solaris OS (および、システム管理者) からは、各ディスクスライスは別個のディスクドライブであるかのように見えます。
ファイルシステムの詳細は、第 16 章ファイルシステムの管理 (概要)を参照してください。
スライスを「パーティション」と呼ぶこともあります。format ユーティリティーなど、特定のインタフェースではスライスを「パーティション」と呼びます。
スライスを設定するときには、次の規則に注意してください。
各ディスクスライスは、ファイルシステムを 1 つしか持てない。
ファイルシステムを複数のスライスにまたがって割り当てることはできない。
SPARC プラットフォームと x86 プラットフォームでは、スライスの設定が少し異なります。次の表に、主な相違点を示します。
表 10–1 SPARC プラットフォームと x86 プラットフォームでのスライスの違い
SPARC プラットフォーム |
x86 プラットフォーム |
---|---|
ディスク全体が Oracle Solaris OS 用になります。 |
ディスクはオペレーティングシステムごとに 1 つの fdisk パーティションに分割されます。 |
VTOC – ディスクは 8 スライス (スライス 0 - 7) に分割されます。 EFI – ディスクは 7 スライス (スライス 0 - 6) に分割されます。 |
VTOC – Solaris の fdisk パーティションは 10 スライス (スライス 0 - 9) に分割されます。 EFI – ディスクは 7 スライス (スライス 0 - 6) に分割されます。 |
Solaris ボリュームマネージャー (以前の Solstice DiskSuite) には「ソフトパーティション」と呼ばれるパーティション分割機能が備わっています。ソフトパーティションを使えば、1 つのディスクに 9 個以上のパーティションを作成できます。
Solaris ボリュームマネージャーの一般的な情報については、『Solaris ボリュームマネージャの管理』の第 2 章「記憶装置管理の概念」を参照してください。ソフトパーティションについては、『Solaris ボリュームマネージャの管理』の第 12 章「ソフトパーティション (概要)」を参照してください。
Oracle Solaris OS を実行するシステムには、次のようなスライスが存在する可能性があります。
x86 システムの場合
ディスクは fdisk パーティションに分割されます。fdisk パーティションは、Oracle Solaris OS など、特定のオペレーティングシステムで使用するように予約されたディスクの一部です。
Oracle Solaris OS では、Solaris の fdisk パーティションは 10 スライス (スライス 0 - 9) に分割されます。
スライス |
ファイルシステム |
通常クライアントかサーバーのどちらにあるか |
Comments |
---|---|---|---|
0 |
ルート (/) |
両方 |
OS を構成するファイルとディレクトリを含みます。 EFI – EFI ラベル付きディスクからはブートを実行できません。 |
1 |
スワップ領域 |
両方 |
仮想メモリー、つまり「スワップ空間」を提供します。 |
2 |
— |
両方 |
VTOC – 慣例的にディスク全体を表します。このスライスのサイズは変更するべきではありません。 EFI – サイトの必要に応じてオプションスライスを定義します。 |
3 |
/export など |
両方 |
サイトの必要に応じて定義可能なスライス (任意)。 クライアントシステムが必要とする代替オペレーティングシステムを格納するため、サーバー上で使用できます。 |
4 |
|
両方 |
サイトの必要に応じて定義可能なスライス (任意)。 |
5 |
/opt など |
両方 |
サイトの必要に応じて定義可能なスライス (任意)。 システムに追加されるアプリケーションソフトウェアを格納します。インストール時に、/opt ファイルシステムにスライスが割り当てられていなければ、スライス 0 に /opt ディレクトリが作成されます。 |
6 |
/usr |
両方 |
OS のコマンド (「実行可能ファイル」とも呼ぶ) を含みます。このスライスには、マニュアル、システムプログラム (init や syslogd など)、ライブラリルーチンも含まれます。 |
7 |
/home または /export/home |
両方 |
ユーザーによって作成されるファイルを含みます。 |
8 |
なし |
なし |
VTOC – GRUB ブート情報を含んでいます。 EFI – デフォルトで作成された予約済みスライス。VTOC の代替シリンダによく似た領域です。このスライスは変更または削除しないでください。 |
9 (x86 のみ) |
— |
両方 |
EFI – 適用できません。 VTOC – 代替ディスクブロック用に予約された領域です。スライス 9 は代替セクタースライスと呼ばれます。 |
VTOC ラベルの付いたディスクでは、スライスを変更したり、スライス 2 を使ってファイルシステムを格納したりしないでください。Solaris ボリュームマネージャー、Solaris Live Upgrade、installgrub などの製品は、スライス 2 が少しでも変更されると正しく動作しません。
ディスクラベルは、各ディスクのブロック 0 に格納されます。つまり、他社製データベースアプリケーションを使って raw データスライスを作成するときは、ブロック 0 で開始してはいけません。そのようにすると、ディスクラベルが上書きされて、ディスク上のデータにアクセスできなくなります。
ディスク上の次の領域は、raw データスライス用に使用しないでください。raw データスライスは他社製のデータベースアプリケーションによって作成されることがあります。
ブロック 0 (ディスクラベルが格納される領域)
スライス 2 (VTOC ラベル付きディスク全体を表す)
十分な大きさのディスクであれば、1 台ですべてのスライスとそれに対応するファイルシステムを確保できますが、通常はシステムのスライスとファイルシステムを確保するために複数のディスクが使用されます。
1 つのスライスを複数のディスクに分割することはできません。ただし、複数のスワップスライスを別々のディスクに配置することはできます。
たとえば、1 台のディスクにルート (/) ファイルシステム、スワップ領域、/usr ファイルシステムを入れ、別のディスクにユーザーデータを含む /export/home ファイルシステムやその他のファイルシステムを入れます。
複数のディスクを使用する場合、OS とスワップ領域が入っているディスク (つまり、ルート (/)、/usr ファイルシステム、およびスワップ領域用のスライスが入っているディスク) を、「システムディスク」と呼びます。システムディスク以外のディスクを、「二次ディスク」または「非システムディスク」と呼びます。
システムのファイルシステムを複数のディスクに入れると、システムをシャットダウンしたり OS をロードし直したりしなくても、二次ディスクのファイルシステムとスライスを変更できます。
また、複数のディスクを使用すると、入出力 (I/O) のパフォーマンスが改善されます。ディスク負荷を複数のディスクに分散すると、I/O のボトルネックを回避できます。
ディスクのファイルシステムを設定するときには、各スライスのサイズだけでなく、どのスライスを使用するかも決定します。どのように決定するかは、ディスクを接続するシステムの構成と、ディスクにインストールするソフトウェアによって異なります。
次のシステム構成があります。
サーバー
スタンドアロンシステム
システムの構成が異なれば、スライスの使用方法も異なります。次の表に例を挙げます。
表 10–3 システム構成とスライス
スライス |
サーバー |
スタンドアロンシステム |
---|---|---|
0 |
ルート |
ルート |
1 |
スワップ領域 |
スワップ領域 |
2 |
— |
— |
3 |
/export |
— |
6 |
/usr |
/usr |
7 |
/export/home |
/home |
システム構成の詳細は、『Solaris のシステム管理 (基本編)』の「システムタイプの概要」を参照してください。
Solaris インストールユーティリティーは、インストール用に選択したソフトウェアに基づいてデフォルトのスライスサイズを表示します。
手順や参照情報のセクションに進む前に、次の情報に目を通して format ユーティリティーの概要とその使用法を確認してください。
format ユーティリティーは、Solaris システム用にハードディスクドライブを用意するためのシステム管理ツールです。
次の表に、format ユーティリティーの機能とその利点を示します。
表 10–4 format ユーティリティーの機能と利点
format ユーティリティーのオプションについては、第 15 章format ユーティリティー (参照情報)を参照してください。
Solaris のインストール時に、Solaris インストールユーティリティーによってディスクドライブがパーティションに分割され、ラベルが付けられます。次のような場合に、format ユーティリティーを使用できます。
スライス情報を表示する
ディスクをパーティションに分割する
既存のシステムにディスクドライブを追加する
ディスクドライブをフォーマットする
ディスクにラベルを付ける
ディスクドライブを修復する
ディスクのエラーを分析する
システム管理者が format ユーティリティーを使用するのは、主にディスクをパーティションに分割するためです。これらの手順については、第 12 章SPARC: ディスクの追加 (手順)と第 13 章x86: ディスクの追加 (手順)を参照してください。
format ユーティリティーの使用上のガイドラインについては、次の節を参照してください。
作業 |
ガイドライン |
参照先 |
---|---|---|
ディスクをフォーマットします。 |
| |
システムディスクを交換します。 |
|
「SPARC: システムディスクを接続してブートする方法」、「x86: システムディスクの接続方法」、また、システムをインストールし直さなければならない場合は『Oracle Solaris 10 9/10 インストールガイド (基本編)』 |
ディスクをスライスに分割します。 |
|
「SPARC: ディスクスライスとディスクラベルを作成する方法」または 「x86: ディスクスライスとディスクラベルを作成する方法」 |
既存のシステムに二次ディスクを追加します。 |
| |
ディスクドライブを修復します。 |
|
ほとんどの場合、ディスクは製造元または再販業者によってフォーマットされています。このため、ドライブをインストールするときにフォーマットし直す必要はありません。ディスクがフォーマットされているかどうかを判別するには、format ユーティリティーを使用します。詳細は、「ディスクがフォーマット済みかを調べる方法」を参照してください。
ディスクがフォーマットされていない場合、format ユーティリティーを使用してフォーマットしてください。
ディスクのフォーマットでは、次の 2 つのステップが行われます。
ディスクメディアを使用できるようにする。
表面解析に基づいてディスクの欠陥リストを作成する。
フォーマットは、ディスク上のデータを上書きする、破壊的なプロセスです。このため、通常は製造元や再販業者のみがディスクをフォーマットします。ディスクに欠陥があるために問題が再発していると思われる場合は、format ユーティリティーを使用して表面解析を実行できますが、データを破壊しないコマンドだけを使用するように注意してください。詳細は、「ディスクをフォーマットする方法」を参照してください。
データに利用できる合計ディスク容量のうち、ごくわずかな容量が欠陥情報とフォーマット情報の格納に使用されます。この容量はディスクのジオメトリによって異なり、使用年数がたち欠陥箇所が多くなるにつれて、少なくなります。
ディスクの種類とサイズに応じて、フォーマットは数分から数時間かかります。