Solaris のシステム管理 (デバイスとファイルシステム)

ディスク管理の概要

一般に、Oracle Solaris OS におけるディスクの管理とは、システムを設定し、Solaris インストールプログラムを実行し、適切なディスクスライスおよびファイルシステムを作成して Oracle Solaris OS をインストールすることを意味します。また、format ユーティリティーを使用して、新しいディスクドライブを追加したり、欠陥ディスクドライブを交換したりしなければならない場合もあります。

ディスク関連の用語

この節の説明を有効に利用するには、基本的なディスクアーキテクチャーを理解しておく必要があります。特に、次の用語を理解しておいてください。

用語 

説明 

トラック 

ディスクが回転するときに 1 つの静止したディスクヘッドの下を通過する同心リング。 

シリンダ 

ディスクが回転する軸から同じ距離にあるトラックの集まり。 

セクター 

各ディスクプラッタのセクション。1 セクターは 512 バイトです。  

ブロック 

ディスク上のデータ記憶領域。1 ディスクブロックは 512 バイトです。 

ディスクコントローラ 

ディスクドライブを制御するチップおよび関連する回路。 

ディスクラベル 

ディスクのジオメトリおよびパーティション情報を含む、ディスクの第 1 セクター。 

デバイスドライバ 

ハードウェアまたは仮想デバイスを制御するカーネルモジュール。 

詳細は、ディスク製造元の製品情報を参照してください。

ディスクラベルについて

どのディスクにも、そのディスクのコントローラ、ジオメトリ、およびスライスに関する情報を格納する特殊な領域が確保されています。このような情報をディスクの「ラベル」と呼びます。VTOC ラベル付きのディスク上のディスクラベルを「VTOC (Volume Table of Contents)」と呼びます。「ディスクにラベルを付ける」とは、ディスクにスライス情報を書き込むことを意味します。通常は、ディスクのスライスを変更した後にラベルを付けます。

Solaris リリースでは、次の 2 つのディスクラベルをサポートしています。

スライスを作成したあとでディスクにラベルを付けないと、OS はスライスを「認識」する方法がないので、そのスライスを利用できなくなります。

EFI ディスクラベル

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 ラベル

EFI ディスクラベルが VTOC ディスクラベルと異なる点は次のとおりです。

EFI ディスクラベルの制限

サイズが 1T バイトを超えるディスクを使用することが現在の環境にとって適切かどうかを判断するときは、次の点を考慮してください。

x86 システムにおける EFI ラベル付きディスクのサポート

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 ディスクラベルの詳細は、前の節を参照してください。

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 ラベル付きディスクの管理

EFI ラベル付きディスクの管理方法は、次の表で確認できます。

作業 

参照先 

インストール済みのシステムにディスクを接続し、再構成 (ブート) を実行します。 

「SPARC: システムディスクまたは二次ディスクの追加 (作業マップ)」または 「x86: システムディスクまたは二次ディスクの追加 (作業マップ)」

format ユーティリティーを使ってディスクのパーティション分割を行います (必要に応じて)。

「SPARC: ディスクスライスとディスクラベルを作成する方法」または 「x86: ディスクスライスとディスクラベルを作成する方法」

ディスクボリュームを作成します。その後、Solaris ボリュームマネージャーでソフトパーティションを作成します (必要に応じて)。または、ZFS ストレージプールを設定します。 

『Solaris ボリュームマネージャの管理』の第 2 章「記憶装置管理の概念」または『Oracle Solaris ZFS 管理ガイド』「ZFS ストレージプールを作成する」

newfs コマンドを使用して新しいディスク用の UFS ファイルシステムを作成します。

「SPARC: UFS ファイルシステムを作成する方法」または 「x86: ファイルシステムを作成する方法」

または ZFS ファイルシステムを作成します。 

『Oracle Solaris ZFS 管理ガイド』「ZFS ファイルシステムを作成する方法」

EFI ラベル付きディスクを複製します。 

例 28–2

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 ユーティリティーなど、特定のインタフェースではスライスを「パーティション」と呼びます。


スライスを設定するときには、次の規則に注意してください。

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 システムの場合

表 10–2 ディスクスライス

スライス 

ファイルシステム 

通常クライアントかサーバーのどちらにあるか 

Comments 

ルート (/)

両方 

OS を構成するファイルとディレクトリを含みます。 

EFI – EFI ラベル付きディスクからはブートを実行できません。

スワップ領域 

両方 

仮想メモリー、つまり「スワップ空間」を提供します。

— 

両方 

VTOC – 慣例的にディスク全体を表します。このスライスのサイズは変更するべきではありません。

EFI – サイトの必要に応じてオプションスライスを定義します。

/export など

両方 

サイトの必要に応じて定義可能なスライス (任意)。 

クライアントシステムが必要とする代替オペレーティングシステムを格納するため、サーバー上で使用できます。 

 

両方 

サイトの必要に応じて定義可能なスライス (任意)。 

/opt など

両方 

サイトの必要に応じて定義可能なスライス (任意)。 

システムに追加されるアプリケーションソフトウェアを格納します。インストール時に、/opt ファイルシステムにスライスが割り当てられていなければ、スライス 0 に /opt ディレクトリが作成されます。

/usr

両方 

OS のコマンド (「実行可能ファイル」とも呼ぶ) を含みます。このスライスには、マニュアル、システムプログラム (initsyslogd など)、ライブラリルーチンも含まれます。

/home または

/export/home

両方 

ユーザーによって作成されるファイルを含みます。 

なし 

なし 

VTOC – GRUB ブート情報を含んでいます。

EFI – デフォルトで作成された予約済みスライス。VTOC の代替シリンダによく似た領域です。このスライスは変更または削除しないでください。

9 (x86 のみ)

— 

両方 

EFI – 適用できません。

VTOC – 代替ディスクブロック用に予約された領域です。スライス 9 は代替セクタースライスと呼ばれます。


注 –

VTOC ラベルの付いたディスクでは、スライスを変更したり、スライス 2 を使ってファイルシステムを格納したりしないでください。Solaris ボリュームマネージャー、Solaris Live Upgrade、installgrub などの製品は、スライス 2 が少しでも変更されると正しく動作しません。


raw データスライスの使用

ディスクラベルは、各ディスクのブロック 0 に格納されます。つまり、他社製データベースアプリケーションを使って raw データスライスを作成するときは、ブロック 0 で開始してはいけません。そのようにすると、ディスクラベルが上書きされて、ディスク上のデータにアクセスできなくなります。

ディスク上の次の領域は、raw データスライス用に使用しないでください。raw データスライスは他社製のデータベースアプリケーションによって作成されることがあります。

複数のディスク上のスライス配置

十分な大きさのディスクであれば、1 台ですべてのスライスとそれに対応するファイルシステムを確保できますが、通常はシステムのスライスとファイルシステムを確保するために複数のディスクが使用されます。


注 –

1 つのスライスを複数のディスクに分割することはできません。ただし、複数のスワップスライスを別々のディスクに配置することはできます。


たとえば、1 台のディスクにルート (/) ファイルシステム、スワップ領域、/usr ファイルシステムを入れ、別のディスクにユーザーデータを含む /export/home ファイルシステムやその他のファイルシステムを入れます。

複数のディスクを使用する場合、OS とスワップ領域が入っているディスク (つまり、ルート (/)、/usr ファイルシステム、およびスワップ領域用のスライスが入っているディスク) を、「システムディスク」と呼びます。システムディスク以外のディスクを、「二次ディスク」または「非システムディスク」と呼びます。

システムのファイルシステムを複数のディスクに入れると、システムをシャットダウンしたり OS をロードし直したりしなくても、二次ディスクのファイルシステムとスライスを変更できます。

また、複数のディスクを使用すると、入出力 (I/O) のパフォーマンスが改善されます。ディスク負荷を複数のディスクに分散すると、I/O のボトルネックを回避できます。

使用するスライスの決定

ディスクのファイルシステムを設定するときには、各スライスのサイズだけでなく、どのスライスを使用するかも決定します。どのように決定するかは、ディスクを接続するシステムの構成と、ディスクにインストールするソフトウェアによって異なります。

次のシステム構成があります。

システムの構成が異なれば、スライスの使用方法も異なります。次の表に例を挙げます。

表 10–3 システム構成とスライス

スライス 

サーバー 

スタンドアロンシステム 

ルート 

ルート 

スワップ領域 

スワップ領域 

— 

— 

/export

— 

/usr

/usr

/export/home

/home

システム構成の詳細は、『Solaris のシステム管理 (基本編)』「システムタイプの概要」を参照してください。


注 –

Solaris インストールユーティリティーは、インストール用に選択したソフトウェアに基づいてデフォルトのスライスサイズを表示します。


format ユーティリティー

手順や参照情報のセクションに進む前に、次の情報に目を通して format ユーティリティーの概要とその使用法を確認してください。

format ユーティリティーは、Solaris システム用にハードディスクドライブを用意するためのシステム管理ツールです。

次の表に、format ユーティリティーの機能とその利点を示します。

表 10–4 format ユーティリティーの機能と利点

機能 

利点 

システム内で接続されている全ディスクドライブを検索します 

次の状態を報告します  

  • ターゲットの位置

  • ディスクのジオメトリ

  • ディスクがフォーマット済みかどうか

  • ディスク上にマウントされているパーティションが存在するかどうか

ディスクラベルを検索します 

修復処理に使用します 

欠陥セクターを修復します 

回復可能なエラーが発生したディスクドライブを製造元に返送しなくても、熟練した管理者なら修復できます 

ディスクをフォーマットして、分析します 

ディスク上でセクターを作成し、検査します 

ディスクをパーティションに分割します 

個々のファイルシステムを別々のスライス上で作成できるようにディスクを分割します 

ディスクにラベルを付けます 

後から検索できるように (通常は修復用)、ディスクにディスク名と構成情報を書き込みます 

format ユーティリティーのオプションについては、第 15 章format ユーティリティー (参照情報)を参照してください。

format ユーティリティーを使用する場合

Solaris のインストール時に、Solaris インストールユーティリティーによってディスクドライブがパーティションに分割され、ラベルが付けられます。次のような場合に、format ユーティリティーを使用できます。

システム管理者が format ユーティリティーを使用するのは、主にディスクをパーティションに分割するためです。これらの手順については、第 12 章SPARC: ディスクの追加 (手順)第 13 章x86: ディスクの追加 (手順)を参照してください。

format ユーティリティーの使用上のガイドラインについては、次の節を参照してください。

format ユーティリティー使用上のガイドライン

表 10–5 format ユーティリティーのガイドライン

作業 

ガイドライン 

参照先 

ディスクをフォーマットします。 

  • ディスクをフォーマットし直すと、既存のデータが失われます。

  • ディスクドライブをフォーマットしてパーティションに分割した状態で出荷する製造元が増えているので、ディスクドライブをフォーマットする必要性は減少しています。既存のシステムにディスクドライブを追加する場合は、format ユーティリティーを使用しなくてもすむことがあります。

  • ディスクを配置し直して多数のディスクエラーが表示される場合は、フォーマットし直してみることをお勧めします。不良セクターが自動的にマッピングし直されます。

「ディスクをフォーマットする方法」

システムディスクを交換します。 

  • 損傷したシステムディスクのデータは、バックアップメディアから復元しなければなりません。復元しなければ、インストールユーティリティーを使用してシステムをもう一度インストールしなければなりません。

「SPARC: システムディスクを接続してブートする方法」「x86: システムディスクの接続方法」、また、システムをインストールし直さなければならない場合は『Oracle Solaris 10 9/10 インストールガイド (基本編)』

ディスクをスライスに分割します。 

  • すでにスライスに分割されているディスクで、パーティションを再分割してラベルを付け直すと、既存のデータが失われます。

  • ディスクのパーティションを分割し直して復元する前に、既存のデータをバックアップメディアにコピーする必要があります。

「SPARC: ディスクスライスとディスクラベルを作成する方法」または 「x86: ディスクスライスとディスクラベルを作成する方法」

既存のシステムに二次ディスクを追加します。 

  • 二次ディスクをフォーマットし直すか、パーティションに分割し直す場合は、既存のデータをバックアップメディアから復元しなければなりません。

「SPARC: 二次ディスクを接続してブートする方法」または 「x86: 二次ディスクを接続してブートする方法」

ディスクドライブを修復します。 

  • 顧客のサイトによっては、欠陥ドライブの修復ではなくドライブ自体の交換を希望する場合があります。サイトがディスクドライブの製造元と保守契約を結んでいる場合は、format ユーティリティーを使用してディスクドライブを修復する必要はありません。

  • 通常、ディスクドライブの修復とは、不良セクターを欠陥リストに追加することを意味します。新しいコントローラは不良セクターをマップし直すので、システムを中断する必要はありません。

  • システムに旧型のコントローラがある場合や、失われたデータを復元する場合は、不良セクターをマップし直す必要があります。

「欠陥セクターの修復」

ディスクのフォーマット

ほとんどの場合、ディスクは製造元または再販業者によってフォーマットされています。このため、ドライブをインストールするときにフォーマットし直す必要はありません。ディスクがフォーマットされているかどうかを判別するには、format ユーティリティーを使用します。詳細は、「ディスクがフォーマット済みかを調べる方法」を参照してください。

ディスクがフォーマットされていない場合、format ユーティリティーを使用してフォーマットしてください。

ディスクのフォーマットでは、次の 2 つのステップが行われます。


注意 – 注意 –

フォーマットは、ディスク上のデータを上書きする、破壊的なプロセスです。このため、通常は製造元や再販業者のみがディスクをフォーマットします。ディスクに欠陥があるために問題が再発していると思われる場合は、format ユーティリティーを使用して表面解析を実行できますが、データを破壊しないコマンドだけを使用するように注意してください。詳細は、「ディスクをフォーマットする方法」を参照してください。


データに利用できる合計ディスク容量のうち、ごくわずかな容量が欠陥情報とフォーマット情報の格納に使用されます。この容量はディスクのジオメトリによって異なり、使用年数がたち欠陥箇所が多くなるにつれて、少なくなります。

ディスクの種類とサイズに応じて、フォーマットは数分から数時間かかります。