LSM は,データの可用性と信頼性を確保するのに役立ちますが,入出力障害を防ぐことはできません。 LSM は,入出力サブシステムに追加された,1 つの層に過ぎません。 LSM が,各ディスクの可用性を調べたり,障害を管理したり報告する機能は,基礎となっているディスク・デバイス・ドライバやシステム・ファイルに依存します。
この章では,LSM に関する障害の一般的なトラブルシューティング方法と,障害を調査するために使用できるツールについて説明します。 また,考えられる解決方法についても説明します。
ホット・スペアリング機能は,ミラー・プレックスまたは RAID5 プレックスを使用するボリュームを最大限保護できます。
ホット・スペアリング機能が有効になっている場合,LSM は RAID5 プレックスまたはミラー・プレックスを使用するボリューム内の障害が発生したディスクから,データを自動的に再配置できます。
LSM は,指定されたホット・スペア・ディスク,または空きディスク・スペースにデータを書き込み,再配置についてのメールをユーザに送信します。
ホット・スペアリングの有効化についての詳細は,3.5.1 項
を参照してください。
6.1 LSM オブジェクトのトラブルシューティング
LSM コマンドを使用して,LSM オブジェクトの状態を監視できます。
状態を監視すると,正常の状態で LSM がどのように動作するかを理解でき,障害が発生しないうちに注意が必要な LSM オブジェクトがないか監視することができます。
6.1.1 LSM イベントの監視
省略時の設定では,LSM はイベント・マネージャ (EVM) ソフトウェアを使用してイベントのログを取得します。
LSM がログを取得するイベントは,/usr/share/evm/templates/sys/lsm.volnotify.evt
という EVM テンプレートに定義されています。
EVM コマンド,または SysMan Menu および SysmMan Station に統合されているグラフィカル・イベント・ビューアを使用して,LSM イベントの選択,フィルタリング,ソート,フォーマット,および表示ができます。
ログを取得した LSM イベントのリストを表示するには,次のコマンドを入力します。
# evmget -f "[name *.volnotify]" | evmshow -t "@timestamp @@"
LSM イベントをリアルタイムで表示するには,次のコマンドを使用します。
# evmwatch -f "[name *.volnotify]" | \ evmshow -t "@timestamp @@"
詳細は,
EVM
(5)
volnotify
コマンドを使用して,イベントを直接表示することもできます。
詳細は,
volnotify
(8)6.1.2 読み取りおよび書き込みの統計情報の監視
volstat
コマンドを使用すると,次の項目を表示することができます。
成功または失敗した読み取り操作および書き込み操作の回数。
読み取られたブロックおよび書き込まれたブロックの数。
読み取り操作および書き込み操作に要した平均時間。 この時間は,ビジー状態のデバイス上のキューで待機している時間も含む,読み取り操作や書き込み操作を完了するまでにかかる時間の合計です。
注意
TruCluster 環境で,
volstat
コマンドを使用すると,コマンドを入力したシステムの統計情報だけが報告されます。 TruCluster 環境全体の統計情報は報告されません。
volstat
コマンドで使用できるオプションの一部を,表 6-1
に示します。
表 6-1: volstat コマンドの一般的なオプション
オプション | 表示内容 |
-v | ボリュームの統計情報。 |
-p | プレックスの統計情報。 |
-s | サブディスクの統計情報。 |
-d | LSM ディスクの統計情報。 |
-i seconds | 指定された間隔 (秒) で,指定された統計情報が繰り返し表示される。 |
特定の LSM オブジェクト (ボリュームやディスクなど) について,統計情報をリセットすることもできますし,すべての LSM オブジェクトについてリセットすることもできます。
volstat
のオプションについては,
volstat
(8)6.1.2.1 読み取りおよび書き込みの統計情報の表示
LSM オブジェクトの読み取りおよび書き込みの統計情報を表示するには,次のコマンドを入力します。
# volstat [-g disk_group] -vpsd [-i number_of_seconds]
OPERATIONS BLOCKS AVG TIME(ms) TYP NAME READ WRITE READ WRITE READ WRITE dm dsk6 3 82 40 62561 8.9 51.2 dm dsk7 0 725 0 176464 0.0 16.3 dm dsk9 688 37 175872 592 3.9 9.2 dm dsk10 29962 0 7670016 0 4.0 0.0 dm dsk12 0 29962 0 7670016 0.0 17.8 vol v1 3 72 40 62541 8.9 56.5 pl v1-01 3 72 40 62541 8.9 56.5 sd dsk6-01 3 72 40 62541 8.9 56.5 vol v2 0 37 0 592 0.0 10.5 pl v2-01 0 37 0 592 0.0 8.0 sd dsk7-01 0 37 0 592 0.0 8.0 sd dsk12-01 0 0 0 0 0.0 0.0 pl v2-02 0 37 0 592 0.0 9.2 sd dsk9-01 0 37 0 592 0.0 9.2 sd dsk10-01 0 0 0 0 0.0 0.0 pl v2-03 0 6 0 12 0.0 13.3 sd dsk6-02 0 6 0 12 0.0 13.3
6.1.2.2 失敗した読み取りおよび書き込みの統計情報の表示
失敗した入出力の統計情報を表示するには,次のコマンドを入力します。
# volstat [-g disk_group] -f cf LSM_object
たとえば,次のコマンドを実行します。
# volstat -f cf testvol
CORRECTED FAILED TYP NAME READS WRITES READS WRITES vol testvol 1 0 0 0
ミラー・プレックスまたは RAID5 プレックスの場合は,データの冗長性が確保されているため,LSM が読み取り障害を訂正します。
6.1.3 LSM オブジェクトの状態の監視
カーネルと LSM は,LSM オブジェクトの状態を監視します。
LSM ボリューム,プレックス,およびサブディスクの状態を表示するには,次のコマンドを入力します。
# volprint -vps
LSM ボリュームの状態を表示するには,次のコマンドを入力します。
# volprint -vt
Disk group: rootdg V NAME USETYPE KSTATE STATE LENGTH READPOL PREFPLEX v ka1 fsgen ENABLED ACTIVE 2097152 SELECT - v ka2 fsgen ENABLED ACTIVE 2097152 SELECT - v ka3 fsgen ENABLED ACTIVE 2097152 SELECT - v ka4 fsgen ENABLED ACTIVE 2097152 SELECT - v rootvol root ENABLED ACTIVE 524288 ROUND - v swapvol swap ENABLED ACTIVE 520192 ROUND - v vol-dsk25g fsgen ENABLED ACTIVE 2296428 SELECT - v vol-dsk25h fsgen ENABLED ACTIVE 765476 SELECT - Disk group: dg1 V NAME USETYPE KSTATE STATE LENGTH READPOL PREFPLEX v volS fsgen ENABLED ACTIVE 204800 SELECT -
KSTATE 欄には,LSM オブジェクトのカーネルでの状態が示されます。
STATE 欄には,LSM オブジェクトの LSM での状態が示されます。
6.1.3.1 LSM のカーネル状態の概要
LSM のカーネル状態は,カーネルから見た LSM オブジェクトのアクセス可否を示します。
LSM オブジェクトのカーネル状態については,表 6-2
を参照してください。
表 6-2: LSM ボリュームのカーネル状態 (KSTATE)
カーネル状態 | 意味 |
ENABLED | LSM オブジェクトにアクセス可能で,読み取り操作および書き込み操作を実行できる。 |
DISABLED | LSM オブジェクトにアクセスできない。 |
DETACHED | 読み取りおよび書き込み操作は実行できないが,デバイス操作は可能。 |
LSM は,ボリューム,プレックス,およびサブディスクの状態を監視します。
表 6-3 に,LSM ボリュームの状態を示します。 一部のボリューム状態の意味は,カーネル状態 (KSTATE) によって異なります。
表 6-4に,LSM プレックスの状態を示します。
表 6-5に,LSM サブディスクの状態を示します。
状態 | カーネル状態 | 意味 |
EMPTY |
DISABLED |
ボリュームの内容が初期化されていない。 |
CLEAN |
DISABLED |
ボリュームが開始されていない。
|
ACTIVE |
ENABLED |
ボリュームが開始されているか,システムの再起動時にボリュームが使用中だった。 |
ACTIVE |
DISABLED |
RAID5 パリティの同期が保証されていないか,ミラー・プレックスの一貫性が保証されていない。 |
SYNC |
ENABLED |
システムがミラー・プレックスまたは RAID5 パリティを再同期化中。 |
SYNC |
DISABLED |
ミラー・プレックスまたは RAID5 パリティがシステムの再起動時に再同期化中であり,ボリュームは今でも同期が必要。 |
NEEDSYNC |
-- | ボリュームが,次回の開始時に再同期操作を必要とする。 |
REPLAY |
-- | RAID5 ボリュームが,ログ・リプレイの一環として,一時的な状態にある。 ログ・リプレイは,パリティおよびデータを使用してデータを再構築する必要がある場合に発生する。 |
一部のプレックス状態は一時的な状態です。
つまり,プレックスは,ボリュームに接続され同期を取っている間は一時的な状態になっています。
表 6-4: LSM プレックスの状態
状態 | 意味 |
EMPTY | プレックスが初期化されていない。 この状態は,ボリュームの状態が EMPTY の場合にも設定される。 |
CLEAN | ボリュームを停止させた時に,プレックスは正常に実行されていた。 プレックスはボリュームが開始された時に,回復操作を必要とすることなく使用可能になった。 |
ACTIVE | プレックスが,開始されたボリューム上で正常に実行されている。 |
LOG | プレックスが,ボリュームの DRL プレックス,または RAID5 ログ・プレックスである。 |
STALE | volplex det
コマンドまたは入出力障害により,プレックスが切り離された。
STALE プレックスは,ボリュームの開始時に
volplex att
によって,自動的に再接続される。 |
OFFLINE | プレックスが
volmend off
操作によって明示的に使用不能にされた。 |
IOFAIL | vold
デーモンは,エラーの検出時に ACTIVE プレックスを IOFAIL 状態に置く。
このプレックスはボリューム開始時の回復選択処理から外され,回復時に適切なプレックスだけを LSM が使用するようになる。
IOFAIL とマークされたプレックスは,可能であれば再同期中に回復される。 |
SNAPATT | volassist snapstart
コマンドで接続されたスナップショット・プレックス。
接続が完了すると,プレックスの状態が SNAPDONE に変更される。
接続の完了前にシステムに障害が発生すると,プレックスおよびそのすべてのサブディスクは削除される。 |
SNAPDONE | volassist snapstart
コマンドで作成され,完全に接続されたスナップショット・プレックス。
この状態のプレックスは,volassist snapshot
コマンドでスナップショット・ボリュームにすることができる。
接続の完了前にシステムに障害が発生すると,プレックスとそのすべてのサブディスクが削除される。 |
SNAPTMP | volplex snapstart
コマンドで接続されたスナップショット・プレックス。
接続が完了すると,プレックスの状態は SNAPDIS になる。
接続の完了前にシステムに障害が発生すると,ボリュームからプレックスの対応付けが解除される。 |
SNAPDIS | volplex snapstart
コマンドで作成され,完全に接続されたスナップショット・プレックス。
この状態のプレックスは,volplex snapshot
コマンドでスナップショット・ボリュームにすることができる。
接続の完了前にシステムに障害が発生すると,ボリュームからプレックスの対応付けが解除される。 |
TEMP | volplex att
コマンドでボリュームに対応付けられ接続されたプレックス。
接続の完了前にシステムに障害が発生すると,ボリュームからプレックスの対応付けが解除される。 |
TEMPRM | volplex att
コマンドでボリュームへの対応付けと接続が行われているプレックス。
接続の完了前にシステムに障害が発生すると,プレックスはボリュームから対応付けが解除され,削除される。
プレックス内のサブディスクは保持される。 |
TEMPRMSD | volplex att
コマンドでボリュームへの対応付けと接続が行われているプレックス。
接続の完了前にシステムに障害が発生すると,プレックスとそのサブディスクはボリュームから対応付けが解除され,削除される。 |
状態 | 意味 |
REMOVED | サブディスク (LSM ディスク全体を含むこともある) は,ボリューム,ディスク・グループ,または LSM 制御から削除された。 |
RECOVER | サブディスクは最新の状態でないため,回復しなければならない。
volrecover
コマンドを使用する。 |
RELOCATE | 冗長 (ミラーまたは RAID5) ボリューム内のサブディスクに障害が発生した。
volwatch
デーモンはこの状態をチェックし,使用可能なホット・スペア・ディスクに再配置する必要があるサブディスクを調べる。
データの再配置後,サブディスクの状態は,クリアされる。 |
6.2 紛失または変更された sysconfigtab ファイルのトラブルシューティング
ブート・ディスク・カプセル化手順の間に,LSM は次のエントリを
/etc/sysconfigtab
ファイルに追加して,システムが LSM ルート・ボリュームからブートできるようにします。
lsm: lsm_rootdev_is_volume=1
このファイルが削除されるか,この LSM 固有エントリが削除された場合,システムはブートしません。 ブートしなくなった場合は,次の手順を実行します。
システムを対話型でブートします。
>>> boot -fl i
.
.
.
Enter kernel_name option_1... option_n: vmunix
/etc/sysconfigtab
ファイルの LSM エントリを次のように変更します。
lsm: lsm_rootdev_is_volume=1
6.3 LSM のスタートアップおよびコマンドの問題のトラブルシューティング
LSM では,vold
デーモンと
voliod
デーモンが実行されている必要があります。
これらのデーモンは通常,システムのブート時に自動的に起動されます。
これらのデーモンが実行されていない場合は,LSM コマンドの実行に失敗したり,LSM コマンドが期待したとおりに応答しない (LSM が正しく起動されたかったことを示します) という問題が発生します。
以降の項では,デーモンが実行されているか調べる方法と,問題を解決する方法について説明します。
6.3.1 ボリューム構成デーモン (vold) のチェック
ボリューム (vold
) デーモンの状態を調べるには,次のコマンドを入力します。
# voldctl mode
表 6-6
に,voldctl mode
の出力,出力の意味,および
vold
デーモンが使用不能または実行されていない場合に入力するコマンドを示します。
表 6-6: vold の状態と解決方法
コマンド出力 | 状態 | 入力 |
Mode: enabled |
実行中で使用可能 | -- |
Mode: disabled |
実行中だが使用不能 | voldctl enable |
Mode: not-running |
実行されていない | vold |
詳細は,
vold
(8)6.3.2 ボリューム構成デーモン (vold) の再起動
システムまたはクラスタ・メンバでボリューム構成デーモン (vold
) が実行を停止すると,LSM コマンドを実行しようとしたときに,「Configuration daemon is not accessible」というメッセージが表示されます。
デーモンを再起動してみることができます。
vold
デーモンはさまざまな予測不能な理由で実行を停止することがあります。
たとえば,コア・ダンプの原因になるようなエラーもあります。
vold
デーモンは,LSM ディスクの追加,ディスク・グループやボリュームの作成,ログの追加や削除などの,LSM 構成の変更を管理しますが,LSM ボリュームへのアクセスは制御しません。
基礎となるストレージとして LSM ボリュームを使用するファイル・システムやその他のアプリケーションは,vold
デーモンに一時的な障害が発生しても影響を受けません。
ただし,vold
デーモンが再起動されるまで,構成は変更できず,情報表示コマンド (volprint
や
volstat
など) は使用できません。
情報表示コマンドは,現在の構成データの取得や表示に,このデーモンを使用しているからです。
クラスタの各メンバは,それぞれ
vold
デーモンを実行しています。
実行中の各クラスタ・メンバのデーモンの状態を調べ (6.3.1 項),必要に応じて,各メンバで以下の手順を実行します。
スタンドアロン・システムまたはクラスタで
vold
デーモンを再起動するには,以下の手順を実行します。
vold
デーモンをリセットし,使用不能モードで起動します。
# vold -k -r reset -m disable
このコマンドによって,現在実行中の (あるいは,ハングしている)
vold
のプロセスはすべて停止し,新しい
vold
が使用不能モードで起動されます。
使用中のボリュームがあると,-r reset オプションは失敗します。 この場合,オープンされているボリュームを見つけ,一時的に停止し,コマンドを再度実行してください。
デーモンを再起動します。
# vold -k
停止させなければならなかったすべてのボリュームを再起動します。
この手順を実行しても
vold
が再起動できない場合,または起動後に続けて
volprint
のようなコマンドを実行したときに,別のエラー・メッセージが表示された場合は,弊社のカスタマ・サービス担当にご連絡ください。
6.3.3 ボリューム拡張 I/O デーモン (voliod) のチェック
妥当な数の
voliod
デーモンが,LSM の起動時に自動的に起動されます。
一般的には,数個の
voliod
デーモンが常に実行されています。
省略時の設定では,システム上の各プロセッサに対して,少なくとも 1 つ
voliod
デーモン,または最少の 2 つこのデーモンが実行されます。
実行中の
voliod
デーモンの数を表示するには,次のコマンドを入力します。
# voliod 2 volume I/O daemons running
voliod
プロセスはカーネル・スレッドであり,ps
コマンドの出力ではリストされないため,voliod
デーモンを表示できるのはこの方法だけです。
voliod
デーモンが 1 つも実行されていない場合,またはデーモンの数を変更したい場合は,次のコマンドを入力します。
n
は,起動する入出力デーモンの数です。
# voliod set n
LSM 入出力デーモンの数には,2 とシステム上の CPU (中央処理装置) の数のうち,どちらか大きい方を設定します。
詳細は,
voliod
(8)6.4 LSM ディスクのトラブルシューティング
以降の項では,障害が発生しているディスクや障害が発生したディスク (ブート・ディスクを含む) のトラブルシューティング手順について説明します。
6.4.1 ディスクの状態のチェック
ディスクは,電源にサージが発生したり,ケーブルが誤って抜けたなど,さまざまな原因で一時的なエラーが発生することがあります。
ディスクの状態は,volprint
コマンドおよび
voldisk
コマンドの出力でチェックできます。
LSM ディスクの状態を調べるには,次のコマンドを入力します。
# voldisk list
LSM ディスクが使用できるか調べるには,次のコマンドを入力します。
# voldisk check disk
たとえば,次のコマンドを実行します。
# voldisk check dsk5 dsk5: Okay
voldisk
コマンドは,LSM がディスク・ヘッダ情報の読み取りおよび書き込みができるかどうかをテストして,指定されたディスクが使用できるか確認します。
ディスク上に格納されているディスク・ヘッダの少なくとも 1 つを LSM が書き込みおよび読み取りできれば,そのディスクは使用可能だと見なされます。
ディスク・グループ内の,あるディスクが使用できないことが分かった場合,そのディスクはディスク・グループから切り離され,ディスク上に格納されているすべてのサブディスクは,物理ディスクを交換するか,ディスク・メディア名を別の物理ディスクに再割り当てするまで,無効となります。
注意
LSM
nopriv
ディスクにはディスク・ヘッダがないため,nopriv
ディスクは障害が発生しても,使用可能であると誤って報告されることがあります。
サブディスクが不調な場合,状態は
RECOVER
になります (表 6-5)。
LSM は通常,ボリュームの開始時に不調なサブディスクの回復処理を行います。
ただし,次のような状況も考えられます。
回復プロセスが強制終了させられる。
サブディスクの回復を保留するオプションでボリュームが開始される。
サブディスクをサポートしているディスクが,回復操作を実行しないまま交換される。
ボリューム内の不調なサブディスクを回復するには,次のコマンドを入力します。
# volrecover [-sb] volume
LSM ディスク上のすべての不調なサブディスクを回復するには,次のコマンドを入力します。
# volrecover [-sb] disk
ディスクに一時的な障害が発生したが,損傷を受けていない場合,たとえば,ディスクが誤って取り外されたり,電源ケーブルが外された場合,またはシステムの再起動を必要としない回復可能なその他の問題が発生した場合,そのディスク上のボリュームを回復することができます。
一時的なディスク障害から回復するには,次の手順に従います。
ディスクがオンラインに戻り,アクセス可能であることを確認します。 たとえば,次の手順を実行します。
ディスクがベイにしっかりと差し込まれているかチェックします。
緩んでいるケーブルがあれば挿し直します。
その他,システムの状況に合ったチェックを行います。
認識されているすべてのディスクを走査し,ディスクが利用可能であることを確認します。
# voldctl enable
ディスク上のボリュームを回復します。
# volrecover -sb disk
6.4.4 障害が発生しているディスクからの LSM ボリュームの移動
ディスクは一般的に,完全に故障する前に,回復可能な (ソフト) エラーが発生します。 ディスクで異常な数のソフト・エラーが発生した場合は,ボリュームをそのディスクから,ディスク・グループ内の別のディスクに移動し,障害が発生しているディスクを交換してください。
注意
障害が発生しているブート・ディスクを交換するには,6.4.6 項 を参照してください。
障害が発生しているディスクからボリュームを移動するには,次の手順に従います。
ボリュームのサイズを調べます。
# volprint [-g disk_group] -ht [volume]
ディスク・グループ内に,同じ量の空きスペースがあることを確認します。
# voldg [-g disk_group] free
十分なスペースがない場合は,新しいディスクを追加します。 詳細については,5.2.2 項を参照してください。
障害が発生しているディスク (!
オペランドで指定) 以外のディスクにボリュームを移動します。
!
が正しく解釈されるようにするには,シェルの適切なクォート記法を使用してください。
ターゲット・ディスクを指定する必要はありません。
# volassist [-g disk_group] move volume !disk
故障したディスクの交換についての詳細は,6.4.5 項を参照してください。
LSM ディスクが完全に故障すると,その状態は切り離し (DETACHED) になります。 最善の解決策は,故障したディスクを同じサイズのディスクと交換することです。
障害によってホット・スペア機能が働いて冗長データが再配置された場合は,以下で説明する手順に従う必要はありません。 代わりに,新しいディスクを LSM 用に初期化して,データをホット・スペア・ディスクから新しいディスクに移動したり (5.1.6 項),新しいディスクをホット・スペア・ディスクとして構成することができます (3.5.1 項)。
故障したブート・ディスクを交換するには,6.4.6 項を参照してください。
注意
故障したディスクが,特定のチャンク・サイズを設定したハードウェア・ストライプセットまたは RAID セットの一部だった場合,代替ディスクに同じ属性を再作成してください。 ハードウェア・セットからなる LSM ディスクについての詳細は,次の URL にある『Aligning LSM Disks and Volumes to Hardware RAID Devices』というタイトルの Best Practice を参照してください。
故障したディスクを交換するには,次の手順に従います。
次のコマンドのいずれかを使用して,故障したディスクのディスク・メディア名を調べます。
すべてのディスク,ディスク・グループ,およびボリュームの情報と,故障したディスクの影響を受けるボリュームの状態を表示するには,次のコマンドを入力します。
# volprint -Aht
ディスク情報だけを表示するには,次のコマンドを入力します。
# volprint -Adt
故障したディスクのディスク・メディア名を,-k オプションを使用して保持したまま,そのディスク・グループから削除します。
# voldg [-g disk_group] -k rmdisk disk_media_name
故障したディスクのディスク・アクセス名を LSM 制御から削除します。
# voldisk rm disk_access_name
LSM 以外のコマンド (hwmgr redirect
など) を実行して故障したディスクを削除したり交換するには,事前にデバイスを LSM から完全に削除しなければなりません。
故障したディスクを取り外し,新しいディスクと交換します。
新しいディスクを走査します。
# hwmgr scan scsi
hwmgr
コマンドは,走査が完了する前にプロンプトを表示します。
処理を続行する前に,新しいディスクが検出されたことを確認する必要があります。
たとえば,hwmgr show scsi
コマンドを新しいディスクが表示されるまで,何回か実行します。
以下の手順のいずれかを使用して,新しいディスクにラベルを付け,初期化します。
故障したディスクを最初に初期化したときに保存したディスク・ラベル情報のコピーがあり (詳細は4.1.5 項を参照),そのディスク・ラベルを新しいディスクに適用したい場合,次の手順に従います。
新しいディスクに,バックアップされていたディスク・ラベルを適用します。
# disklabel -R disk_access_name file
新しいディスクを LSM 用に,可能ならば故障したディスクと同じ LSM ディスク・タイプ (シンプル,スライス,または nopriv) と,同じ公用/プライベート・リージョン・オフセットで初期化します。
dskn
(ディスク全体の場合) または
dsknp
(ディスク・パーミッションの場合) の形式でディスク・アクセス名を指定します。
nopriv
ディスクの場合,次のコマンドを入力します。
# voldisk -f init disk_access_name
スライス
・ディスクの場合,次のコマンドを入力します。
# voldisk -f init disk_access_name \ [puboffset=16]
指定する
puboffset
は,故障したディスクと同じであることを確認してください。
ディスクのブロック 0 から始まるパーティション (たとえば,a
または
c
パーティション) 上のシンプル
・ディスクの場合,次のコマンドを入力します
# voldisk -f init disk_access_name \ privoffset=16
指定する
privoffset
は,故障したディスクと同じであることを確認してください。
ディスクのブロック 0 から始まらないパーティション (たとえば,b
や
d
パーティション) 上のシンプル
・ディスクの場合,次のコマンドを入力します。
# voldisk -f init disk_access_name
故障したディスクのバックアップ・ディスク・ラベルがない場合,または省略時の値で新しいディスクを初期化したい場合は,次の手順に従います。
新しいディスクが再作成したハードウェアのストライプセットまたは RAID セットの一部である場合,古いディスク・ラベルをクリアします。
# disklabel -z disk_access_name
省略時のディスク・ラベルを新しいディスクに適用します。
# disklabel -rwn disk_access_name
新しいディスクを省略時のスライス・ディスクとして LSM 用に初期化します。
# voldisksetup -i disk
必要に応じ (ただし推奨します),新しいディスクのディスク・ラベル情報のバックアップ・コピーを作成します。
# disklabel disk_access_name > file
新しいディスクに古いディスク・メディア名を割り当てて,新しいディスクを該当するディスク・グループに追加します。
# voldg [-g disk_group] -k adddisk \ disk_media_name=disk_access_name
たとえば,故障したディスクのディスク・メディア名が
dsk10
で,新しいディスク・アクセス名が
dsk82
,ディスク・グループが
dg03
の場合,次のコマンドを入力します。
# voldg -g dg03 -k adddisk dsk10=dsk82
すべての該当する LSM ボリュームで,回復を開始します。
# volrecover [-sb]
このコマンドは,回復が必要なすべてのボリュームのプレックス接続操作,RAID5 サブディスクの回復,そして再同期化を行います。 このコマンドは,故障したディスクが原因となるほとんどの問題を解決します。
これによって,ディスク障害の影響を受けたすべてのボリュームを回復できなかった場合 (たとえば,非冗長ボリュームの場合や複数のディスクで障害が発生したボリュームの場合),ボリュームを回復するためには,6.5.2 項 を参照してください。 また,ボリュームをバックアップから復元する方法は,5.4.3 項 を参照してください。
スタンドアロン・システム上のブート・ディスクがミラー・プレックスを使って LSM ボリュームにカプセル化されている場合,オリジナル・ブート・ディスクに発生している障害は,ユーザからは見えません。 ただし,障害が発生している間,システムは次の状態になることがあります。
1 つのプレックスでの読み込みまたは書き込みでエラーがあったことを示すメッセージをコンソールに表示する。
性能が低下する (ルート・ボリュームまたはスワップ・ボリューム内のいずれかのプレックスが配置されているディスクで発生した問題に応じて)。
必要があれば,オリジナル・ブート・ディスクを交換する前に,rootvol
ボリュームの正しいプレックスを含む任意のディスクから,システムを再起動します。
rootvol
ボリュームのすべてのプレックスが壊れ,システムのブートができない場合は,オペレーティング・システムの再インストールが必要です。
以降の手順では,スタンドアロン・システム上のブート・ディスクがカプセル化され,ブート・ディスク・ボリュームにミラー・プレックスがあることを前提としています。 この手順のステップ 4 で,新しいディスク上に新しい (代りの) ミラーが作成されます。
LSM 制御下の,故障したブート・ディスクを新しいディスクに交換するには,次の手順に従います。
ルート・ボリュームとスワップ・ボリュームの詳細情報を表示し,故障したディスクおよびプレックスの正しい名前を指定できるように確認します。
# volprint -vht
出力を見て,故障したプレックスの名前と,故障した LSM ディスクのディスク・メディア名を確認します。
ブート・ディスクをカプセル化すると,LSM によってブート・ディスク上の使用中のパーティションに特殊ディスク・メディア名が割り当てられます。
次に示す
voldisk list
コマンドの出力では,オリジナル・ルート・ディスクは
dsk14
です。
ルート・ボリュームとスワップ・ボリュームをミラー化するために使用されているディスクは,dsk15
です。
DEVICE TYPE DISK GROUP STATUS dsk14a [1] nopriv root01 [2] rootdg online dsk14b [3] nopriv swap01 [4] rootdg online dsk14f [5] simple dsk14f rootdg online dsk14g [6] nopriv dsk14g-AdvFS [7]rootdg online dsk14h [8] nopriv dsk14h-AdvFS [9]rootdg online dsk15a nopriv root02 rootdg online dsk15b nopriv swap02 rootdg online dsk15f simple dsk15f rootdg online dsk15g nopriv dsk15g-AdvFS rootdg online dsk15h nopriv dsk15h-AdvFS rootdg online
以下のリストは,出力の説明です。
ルート (/
) パーティションのディスク・アクセス名。
[例に戻る]
ルート (/
) パーティションのディスク・メディア名。
[例に戻る]
プライマリ・スワップ・パーティションのディスク・アクセス名。 [例に戻る]
プライマリ・スワップ・パーティションのディスク・メディア名。 [例に戻る]
ブート・ディスクの LSM プライベート・リージョンのディスク・アクセス名 (ディスク・メディア名と同じ)。 [例に戻る]
/usr
パーティションのディスク・アクセス名。
[例に戻る]
/usr
パーティションのディスク・メディア名。
[例に戻る]
/var
パーティションのディスク・アクセス名。
[例に戻る]
/var
パーティションのディスク・メディア名。
[例に戻る]
同じ命名規則が,ルート,スワップ,/usr
,および
/var
パーティション・ボリュームのミラー用のディスクに対しても適用されます。
ブート・ディスクに
/usr
または
/var
がカプセル化されている場合,故障したディスク上のプレックスの対応付けを,ルート,スワップ,およびユーザ・ボリュームから解除します。
たとえば,次のコマンドを実行します。
# volplex -o rm dis rootvol-02 swapvol-02 vol-dsk0g-02
/usr
ボリュームの名前と,/var
ボリューム (個別に存在する場合) の名前には,ブート・ディスクのパーティション文字が使用されます (たとえば,vol-dsk0g
)。
故障した LSM ディスクを,ブート・ディスクから削除します。
ディスクを
rootdg
ディスク・グループから削除します。
# voldg rmdisk dskna dsknb dskng...
ブート・ディスク上に構成されている LSM ディスクを,LSM 制御下から削除します。
# voldisk rm dskna dsknb dskng...
故障したディスクを物理的に取り外し,交換します。
LSM 以外のコマンド (hwmgr redirect
など) を実行して故障したディスクを削除したり交換するには,事前にデバイスを LSM から完全に削除しなければなりません。
新しいディスクを走査します。
# hwmgr scan scsi
hwmgr
コマンドは,走査が完了する前にプロンプトを表示します。
処理を続行する前に,新しいディスクが検出されたことを確認する必要があります。
たとえば,hwmgr show scsi
コマンドを新しいディスクが表示されるまで,何回か実行します。
デバイス特殊ファイルを修正し,古いディスク名を新しいディスクに再度割り当てます。 このとき新しいディスクを必ず最初にリストするようにしてください。
# dsfmgr -e new_name old_name
新しいディスクにラベルを付け,すべてのパーティションに unused を設定します。
# disklabel -rw new_disk
ルート・ボリュームを,新しいディスク上にミラー化します。
# volrootmir -a new_disk
以降の項では,LSM ボリュームの一般的な問題の解決方法について説明します。
LSM ボリュームの回復が必要なときに,「Alert」アイコンと「Alert Monitor」ウィンドウに情報が表示されることがあります。
(Alert Monitor についての詳細は,『システム管理ガイド』を参照してください。)
6.5.1 システム障害後の LSM ボリュームの回復
LSM は通常,システム・クラッシュ後に自動的にボリュームを回復します。 すべてのミラー・ボリューム (スワップ領域以外) の DRL プレックス,およびすべての RAID5 ボリュームの RAID5 ログ・プレックスを使用することによって,ボリューム回復が高速化されます。
高速プレックス接続ログも,システムの再起動後動作を再開します。
ただし,ボリューム
rootvol
と
cluster_rootvol
のアクティブ FPA ログは例外です。
この場合,LSM は,プライマリ・ボリュームとセカンダリ・ボリュームの両方で FPA ロギングを使用不能にします。
移行プレックスをプライマリ・ボリュームに戻すと,完全な再同期化が行われます。
6.5.2 ディスク障害後の LSM ボリュームの回復
故障したディスクを交換した後 (6.4.5 項),次の該当するボリューム回復手順 (表 6-7) を使用して,ボリューム・データを回復します。
注意
ディスクの故障によって,ディスク・グループ内の LSM 構成データベースのすべてのアクティブ・コピーが失われた場合は,ボリュームを回復する前に,5.3.2 項を参照してください。
回復の対象 | 参照先 |
単一ディスク障害後のミラーと RAID 5 のボリュームとログ | 6.5.2.1 項 |
冗長性のないボリューム | 6.5.2.2 項 |
正しい (確認のとれている) プレックスのないミラー・ボリューム | 6.5.2.3 項 |
確認のとれている正しいプレックスが 1 つあるミラー・ボリューム | 6.5.2.4 項 |
複数のディスクで障害が発生した後の RAID 5 プレックス | 6.5.2.5 項 |
RAID 5 ログ・プレックス | 6.5.2.6 項 |
6.5.2.1 ミラー LSM ボリュームと RAID 5 LSM ボリュームの回復
使用不能になった LSM ボリュームを回復することができます。 使用不能になった LSM ボリュームを回復すると,ボリュームが起動され,必要な場合はミラー・プレックスや RAID5 パリティが再同期化されます。
冗長 (ミラーまたは RAID5) ボリュームでデータ・プレックスまたはログ・プレックスの単一ディスク障害が発生した場合は,volrecover
コマンドを使用して,ボリュームを回復できます。
状況に応じて,以下の手順のいずれかを選択してください。
ミラー・ボリュームでプレックスの再同期化を開始させる
RAID5 ボリュームでデータとパリティの再生成を開始させる
切り離された DRL ログ・プレックスまたは RAID5 ログ・プレックスを再接続する
ホット・スペアリングが有効になっている場合は,ディスク障害が発生した時に再配置用の適切なディスク・スペースがない場合を除き,何もする必要はありません。 RAID5 ログ・プレックスの場合,ログ・プレックスがミラー化されているときだけ,再配置が行われます。 障害が発生した時にホット・スペアリングが使用不能になっていた場合は,回復を開始する必要があります。
LSM ボリュームを回復するには,次のコマンドを入力します。 複数ボリュームで同じディスクを使用している場合には,ボリュームまたはディスクのいずれかを指定する必要があります。
# volrecover [-g disk_group] -sb volume|disk
-s
オプションを指定すると,すぐにボリュームを開始しますが回復は遅れます。
-b
オプションを指定すると,このコマンドはバックグラウンドで実行されます。
これらのオプションやその他のオプションについての詳細は,
volrecover
(8)
たとえば,ディスク・グループ
rootdg
の LSM ボリューム
vol01
を回復するには,次のコマンドを入力します。
# volrecover -sb vol01
ディスク
dsk5
を使用しているすべての LSM オブジェクト (サブディスク,プレックス,またはボリューム) を回復するには,次のコマンドを入力します。
# volrecover -sb dsk5
必要に応じて,ボリュームが回復された (または,回復中である) ことを確認します。
# volprint volume
冗長性がないボリュームとは,連結プレックスかストライプ・プレックスを 1 つだけ使用するボリュームです。 このプレックスのディスクに障害が発生すると,ボリュームは起動不能になるため,ボリューム・データをバックアップから回復する必要があります。 複数のプレックス,または RAID 5 プレックスの複数のカラムでディスク障害が発生した場合も,ボリュームに冗長性がなくなります。
ボリュームの状態を表示するには,次のコマンドを入力します。
# volinfo -p vol tst fsgen Unstartable plex tst-01 NODEVICE
注意
以下の手順では,ディスクが使用可能であるか,故障したディスクを交換済み (6.4.5 項) であることを前提とします。
ボリュームを回復するには,次の手順に従います。
プレックスの状態を stale として設定します。
# volmend fix stale plex
LSM には,プレックスの状態を特定の順序で変更しなければならないという,内部状態に関する制限があります。 プレックスの状態は clean とマークする前には,stale でなければなりません。
プレックスの状態を clean として設定します。
# volmend fix clean plex
ボリュームを開始します。
# volume start volume
ボリュームは実行され,使用可能になりますが,不正なデータを含んでいます。
次の手順のいずれかを実行します。
ファイル・システムでボリュームを使用していた場合,ボリューム上にファイル・システムを再作成し,ファイル・システムをマウントします。 ファイル・システム用のボリュームの構成についての詳細は,4.5 節を参照してください。
データのバックアップがある場合は,バックアップを使用してボリュームを復元します。 バックアップからのボリュームの復元についての詳細は,5.4.3 項を参照してください。
バックアップがなく,データベースなどのアプリケーションでボリュームを使用していた場合,データの復元や再作成については,アプリケーションのドキュメントを参照してください。
6.5.2.3 正しいプレックスがないミラー・ボリュームの回復
ミラー・ボリューム内のすべてのデータ・プレックスのディスクに障害が発生した場合,ボリュームは起動不能になります。 一部の (すべてではなく) データ・プレックスに障害が発生した場合は,ボリュームのデータが壊れているか,壊れている可能性があります。 複数のディスクの障害からミラー・ボリュームを回復するには,データをバックアップから復元する必要があります。
正しいプレックスがないボリュームを回復するには,次の手順に従います。
ボリューム内のすべてのプレックスのプレックス状態を clean として設定します。
# volmend fix clean plex plex...
ボリュームを開始します。
# volume start volume
何がボリュームを使用していたかによって,次の手順のいずれかを実行します。
ファイル・システムでボリュームを使用していた場合,ボリューム上にファイル・システムを再作成し,ファイル・システムをマウントします。 ファイル・システム用にボリュームを構成する方法についての詳細は,4.5 節を参照してください。
データのバックアップがある場合は,バックアップを使用してボリュームを復元します。 バックアップからのボリュームの復元についての詳細は,5.4.3 項を参照してください。
バックアップがなく,データベースなどのアプリケーションでボリュームを使用していた場合,データの復元や再作成については,アプリケーションのドキュメントを参照してください。
6.5.2.4 正しいプレックスが 1 つあるミラー・ボリュームの回復
ボリューム内の 1 つのプレックスが正しいデータを持っていることが分かっている場合は,このプレックスを使用して他のプレックスを復元できます。
正しいデータ・プレックスが 1 つあるボリュームを回復するには,次の手順に従います。
正しいデータ・プレックスの状態を clean として設定します。
# volmend fix clean valid_plex
他のすべてのデータ・プレックスの状態を stale として設定します。
# volmend fix stale plex plex...
ボリュームを開始し,再同期処理を起動します (必要に応じてバックグラウンドで)。
# volrecover -s [-b] volume
6.5.2.5 複数ディスク障害からの RAID 5 プレックスの回復
RAID 5 プレックスを使用しているボリュームは,ディスクの 1 つに障害が発生しても利用可能なままです。 しかし,RAID5 データ・プレックスの複数のカラムのディスクに障害が発生した場合,LSM は失われたデータを,残りのデータおよびパリティを使用して再構築することはできません。 故障したディスクを交換し,ボリュームを再起動してから,データを復元しなければなりません。
注意
以下の手順では,故障したディスクは交換済みであるものとします (6.4.5 項)。
ボリュームを復元するには,次の手順に従います。
ボリュームを停止します。
# volume stop volume
ボリュームの状態を empty として設定し,ボリュームを再起動したときに,パリティが自動的に再計算されるようにします。
# volmend -f fix empty volume
ボリュームを開始します。 この操作はバックグラウンドで実行して,システムをすぐにコマンド入力状態に戻すこともできます。
# volume [-o bg] start volume
ボリュームは,パリティの再作成中でも,使用可能です。 パリティがまだ再計算されていないリージョンがアクセスされた場合,LSM は入出力要求を受け付ける前に,アクセスされたデータを含むストライプ全体のパリティを再計算して書き込みます。
ボリューム・データをバックアップから復元します (5.4.3 項)。
バックアップがなく,データベースなどのアプリケーションでボリュームを使用していた場合,データの復元や再作成については,アプリケーションのドキュメントを参照してください。
RAID5 ログ・プレックスのディスク障害は,ボリュームの操作には直接影響しません。 ただし,ボリューム上のすべての RAID 5 ログが失われると,システム障害時にボリュームのデータを失う可能性が高くなります。
次の
volprint
コマンドの出力では,RAID5 ログ・プレックスでの障害を示しています。
プレックスの状態は
BADLOG
で,RAID5 ログ・プレックス
vol5-02
に障害が発生しています。
RAID5 ログ・プレックスは,場合によっては,ディスク障害により
DETACHED
状態となることがあります。
Disk group: rootdg V NAME USETYPE KSTATE STATE LENGTH READPOL PREFPLEX PL NAME VOLUME KSTATE STATE LENGTH LAYOUT NCOL/WID MODE SD NAME PLEX DISK DISKOFFS LENGTH [COL/]OFF DEVICE MODE v vol5 raid5 ENABLED ACTIVE 409696 RAID - pl vol5-01 vol5 ENABLED ACTIVE 409696 RAID 8/32 RW sd dsk3-01 vol5-01 dsk3 0 58528 0/0 dsk3 ENA sd dsk4-01 vol5-01 dsk4 0 58528 1/0 dsk4 ENA sd dsk5-01 vol5-01 dsk5 0 58528 2/0 dsk5 ENA sd dsk6-01 vol5-01 dsk6 0 58528 3/0 dsk6 ENA sd dsk7-01 vol5-01 dsk7 0 58528 4/0 dsk7 ENA sd dsk8-01 vol5-01 dsk8 0 58528 5/0 dsk8 ENA sd dsk9-01 vol5-01 dsk9 0 58528 6/0 dsk9 ENA sd dsk10-01 vol5-01 dsk10 0 58528 7/0 dsk10 ENA pl vol5-02 vol5 DISABLED BADLOG 2560 CONCAT - RW sd dsk11-01 vol5-02 dsk11 0 2560 0 - RMOV
ディスクが故障していれば,それを交換します (6.4.5 項)。
RAID 5 ログ・プレックスを回復するには,ボリュームにログ・プレックスを再接続します。
# volplex att volume log_plex
たとえば,次のコマンドを実行します。
# volplex att vol5 vol5-02
LSM ボリュームを使用しているファイル・システムがマウントできないか,アプリケーションが LSM ボリュームをオープンできない場合,LSM ボリュームが開始されていないことがあります。
LSM ボリュームが開始されているかどうかを調べるには,次のコマンドを入力します。
# volinfo [-g disk_group] volume
次の出力は,いくつかのボリュームの状態を示しています。
vol bigvol fsgen Startable vol vol2 fsgen Started vol datavol gen Unstartable
LSM ボリュームには,次の状態があります。
Started
- ボリュームが使用可能で,正常に動作しています。
Startable
- ボリュームが使用可能ではなく,少なくとも 1 つのプレックスが,ボリュームが再開可能であることを示す
ACTIVE
または
CLEAN
状態です。
注意
手動でボリュームを作成したり (新しいボリュームを自動的に開始する
volassist
コマンドを使用しないで),プレックスの削除などのボリュームを使用不能にする操作を行ったりしなければ,ボリュームは通常,この状態にはなりません。 システムの再起動時には,Startable ボリュームはすべて開始されます。
Unstartable
- ボリュームが使用不能で,ボリュームを開始する前に解決しなければならない問題があります。
たとえば,ディスクの障害が考えられます。
故障したディスクの交換については,6.4.5 項を参照してください。
Startable 状態のボリュームを開始するには,次のコマンドを入力します。
# volume [-g disk_group] start volume
システムに障害が発生して,再起動されると,LSM は障害時に正しく動作していたすべてのボリュームを自動的に回復します。
ミラー・プレックスを使用し,DRL プレックスがあるボリュームの場合,この処理ですべてのダーティ・リージョンが再同期されます。
RAID 5 プレックスを使用し,RAID 5 ログ・プレックスがあるボリュームの場合,未完了の書き込みを完了させるために,この処理でログ・プレックスのリプレイが実行されます。
ログ・プレックスを持つ冗長性のあるボリュームを使用することは,システム障害後のボリューム回復を速くするために推奨されている方法です。 通常の状態では,回復は素早く実行されるため,システムの実行が再開された後は,目立った影響 (性能上の遅れなど) はありません。 ただしボリュームにログがないと,ボリュームのサイズによっては,再同期に長時間 (数分から数時間,またはそれよりも長く) かかることがあります。
進行中のボリューム再同期の状態を表示して,あとどのくらいかかるかを確認することができます。
(故障したディスクの交換時やボリュームへの新しいプレックスの追加時に発生する,プレックスの再同期の状態をチェックすることはできません。
volprint
コマンドは,この情報にアクセスすることはできません。
ただし,このような場合,ボリュームは再同期中でも使用可能です。)
進行中のボリューム再同期の残り時間を調べるには,次の手順に従います。
ボリュームの読み取り/書き込みフラグを表示して,現在の回復オフセット値を調べます。
# volprint -vl volume | grep flags
次のような情報が表示されます。
flags: open rwback (offset=121488) writeback
どの程度回復が進んだかを調べるため,適当な時間 (120 秒程度) が経過した後にフラグを再度表示します。
# sleep 120 ; volprint -vl volume | grep flags
次のような情報が表示されます。
flags: open rwback (offset=2579088) writeback
オフセットの差分を 2 回の表示の間の時間で割って,進行速度を算出します。 たとえば,120 秒間に再同期が 2457600 セクタ完了したとします。 毎秒約 20480 セクタ (10 MB) が再同期されたことになります。
再同期速度でボリューム・サイズ (セクタ) を除算します。 この値が,完全な再同期にかかるおよその時間です。 たとえば,速度が 20480 セクタ/秒の場合,200 GB のボリュームの再同期には,約 5 時間半かかります。
実際にかかる時間は,システム上の他の入出力負荷や,ボリュームやシステムに他の問題や障害が発生したかどうかによって異なります。
進行中のボリューム再同期処理の速度を変更 (または停止) することはできませんが,ボリュームが非常に大きく,回復中のシステムの性能に再同期処理が大きな影響を与える場合は,今後の再同期処理の速度の設定を変更することができます。
注意
この手順は,経験豊かなシステム管理者が,システム性能に対するボリューム再同期処理の影響を評価し,受け入れられない評価結果になった場合だけ使用してください。 使用する管理者は,システム・ファイルやスクリプトの編集に精通していなければなりません。
今後の回復でのボリューム再同期処理の速度を変更するには,エディタを使用して,/sbin/lsm-startup
スクリプト内の,指示された行を変更します。
例 6-1
に,スクリプトの関連部分を示します。
ただし,簡略化のため,体裁を整えてあります。
例 6-1: /sbin/lsm-startup スクリプトのボリューム回復セクション
#!/sbin/sh
.
.
.
volrecover_iosize=64k
.
.
.
if [ "X`/sbin/voldctl mode 2> /dev/null`" = "Xmode: enabled" ]; then /sbin/volrecover -b -o iosize=$volrecover_iosize -s [1] if [ $is_cluster -eq 1 -a $vold_locked -eq 1 ]
.
.
.
fi
指示された行を,次のいずれかに変更します。
回復処理の速度を遅くするには,次のように
-o slow
を追加します。
/sbin/volrecover -b -o iosize=$volrecover_iosize -o slow -s
-o slow
は,回復操作を実行するたびに 250ms の遅延を挿入します。
この遅延により,ボリュームのサイズやプレックスの数によっては,システムの性能への影響をかなり軽減できます。
再同期処理を使用不能にするには,次のように -o delayrecover を追加します。
/sbin/volrecover -b -o iosize=$volrecover_iosize -o delayrecover -s
-o delayrecover を使用する場合は,ユーザの判断により (システムの稼働がピークでないときなどに) 手動で再同期処理を開始する必要があります。 それまでは,ボリュームはリード・ライトバック・モードのままです。 つまり,ボリュームのリージョンが読み取られるたびに,データがボリューム内のすべてのプレックスに書き込まれます。 最終的にユーザが再同期を開始すると,不必要であっても,ダーティとマークされているすべてのリージョンの再同期処理が行われます。
このオプションを使用すると,すべての読み取りがすべてのプレックスに書き戻されるため,性能上のオーパヘッドが生じます。 このオーバヘッドによる影響は,システムの負荷が高いときに再同期を実行した場合よりは軽度です。
/sbin/lsm-startup
スクリプトは,いつでも元の状態に戻すことができます。
6.5.5 LSM ボリュームを作成するために必要なスペースの計算
volassist
コマンドを使用してストライプ・プレックスがあるボリュームを作成する場合,十分なスペースが利用できる状態でも,ボリュームのスペース不足を示すエラー・メッセージが出力されることがあります。
volassist
コマンドは,コマンド行で指定された長さをデータ・ユニット・サイズ (省略時は 64 KB),または指定されたストライプ幅の倍数に切り上げます。
そしてその合計を,カラムを作成するために利用できるディスクの数で割ります。
ディスク・グループ内の最小のディスクによって,データ・ユニット・サイズが制限されます。
たとえば,dg1
というディスク・グループ内に,空きスペースが異なるディスクが 2 つあるとします。
# voldg -g dg1 free
GROUP DISK DEVICE TAG OFFSET LENGTH FLAGS dg1 dsk1 dsk1 dsk1 0 2049820 - dg1 dsk2 dsk2 dsk2 0 2047772 -
2 つのディスクの空きスペースの合計は,4097592 です。 ストライプ・プレックスがあるボリュームを,利用可能な総スペースよりも小さい,4095544 (約 2 GB) で作成しようとします。
# volassist -g dg1 make NewVol 4095544 layout=stripe
volassist: adjusting length 4095544 to conform to a layout of 2 stripes 128 blocks wide volassist: adjusting length up to 4095744 blks volassist: insufficient space for a 4095744 block long volume in stripe, contiguous layout
volassist
では,指定された長さを 64 KB (128 ブロック) のデータ・ユニット・サイズの偶数倍に切り上げ,その値をディスク数 (2) で割ったため,このコマンドはスペースが不足していることを示すエラー・メッセージを表示しました。
結果の値 (4095744 ÷ 2 = 2048796) が,小さいディスクで利用可能なスペースよりも大きいためです。
ボリュームの大きさが,指定したサイズそのものでなくても構わない場合は,そのデータ・ユニット・サイズとディスク数で使用できる長さを指定してコマンドをリトライできます。 たとえば,最小の空きスペース・サイズとディスク数を乗算します (2047772 × 2 = 4095488)。 この値を,次のコマンド行で使用します。
# volassist -g dg1 make NewVol 4095488 layout=stripe
必要としているボリュームがディスク・グループ内の空きスペースの合計よりも大きい場合,またはボリュームの大きさが,指定したサイズそのものでなければならない場合は,ディスク・グループにさらに多くのディスクを追加するか,大きいディスクを追加しなければなりません。 ディスク・グループへのディスクの追加についての詳細は,5.2.2 項を参照してください。
ディスク・グループに必要なボリュームを作成するための十分なスペースを持ったディスクがあることを確認するには,サイズ以外のすべてのプロパティを指定して,volassist maxsize
コマンドを実行します。
たとえば,ストライプ幅が 128K の 3 つにミラー化されたストライプ・プレックスのボリュームを,ディスク・グループ
dg1
に作成できることを確認するには,次のコマンドを実行します。
# volassist -g dg1 maxsize layout=stripe nmirror=3 \ stwid=128k Maximum volume size: 16424960 (8020Mb)
次に示すように,必要に応じて,ストライプ・カラム数のような他のプロパティも指定できます。
# volassist -g dg1 maxsize layout=stripe nmirror=3 \ stwid=128k ncolumn=3 lsm:volassist: ERROR: No volume can be created within the given constraints
上記の出力のようなメッセージが表示された場合,別のディスク・グループで同じコマンドを試みることができます。
たとえば,ディスク・グループ
rootdg
に同じプロパティのボリュームを作成できるか確認するには,次のコマンドを実行します。
# volassist maxsize layout=stripe nmirror=3 \ stwid=128k ncolumn=3 Maximum volume size: 35348480 (17260Mb)
LSM はオブジェクトの構成を変更する場合,変更が書き込まれるまでそのオブジェクトをロックします。 構成の変更が異常終了すると,オブジェクトのロックがそのままとなることがあります。
オブジェクトがロックされているか調べるには,次のコマンドを入力します。
# volprint [-g disk_group] -vh
表示される情報の中で,ロックは TUTIL0 の欄に示されます。
ロックをクリアするには,次のコマンドを入力します。
# volmend [-g disk_group] clear tutil0 object...
ボリュームのリスタートが必要なこともあります (5.4.4 項)。
6.6 ディスク・グループのトラブルシューティング
ディスク・グループのインポート時にエラー・メッセージが出力されたり,コマンドが失敗した場合は,次のような原因が考えられます。
ディスク・グループがオリジナル・システムから正常にデポートされなかった場合,ディスク・グループ内のディスクに,オリジナルのホスト ID が残っている場合があります。 この現象は,システムがクラッシュした後,正常に再起動できないために,ストレージを別のシステムに移動しようとした場合に発生します。 または,ストレージを切り離すときに,最初にディスク・グループをデポートしておかなかった場合にも発生します。 ディスク・グループを新しいシステムにインポートするには,以前のホスト ID をクリアしておく必要があります。
1 つ以上のディスクに別のシステムのホスト ID が設定されていないか確認するには,次のコマンドを入力します。
# voldisk list disk_access_name | grep hostid hostid: potamus.zk3.dec.com
ディスクのホスト ID がディスク・グループをインポートしようとしているシステムの ID と一致していなければ,次のようにして以前のホスト ID をクリアします。
# voldisk clearimport disk_access_name
ディスク・グループ内のすべてのディスクのホスト ID の不一致を解決した後で,ディスク・グループをインポートすることができます。
ディスク・グループの名前が新しいホスト・システムにすでにあるディスク・グループと同じ名前の場合,インポートするときにディスク・グループの名前を変更します。
詳細は,
voldg
(8)6.6.2 故障したディスクのあるディスク・グループのインポート (強制インポート)
ディスク・グループを強制的にインポートするには,次のコマンドを入力します。
# voldg -f import disk_group
ディスク・グループがインポートされれば,問題を見つけて解決することができます。
強制 (-f) オプションを指定してもディスク・グループをインポートできない場合には,LSM がそのディスク・グループ用の構成データベースのコピーを検出できていないことが考えられます。 この現象は稀ですが,次の状況では発生する可能性があります。
ディスク・グループ内のアクティブ・コピーを持つディスクがすべて故障している。
通常,LSM は,アクティブ・コピーを持つディスクの故障を検出すると,ディスク・グループ内の別のディスクのコピーを有効にします。
アクティブ・コピーを持つすべてのディスクが同時に故障する可能性は稀ですが,ありえます。
これは,省略時の値より少ない数のコピーしか持たないディスク・グループを構成していた場合や,ディスク・グループに多くの
nopriv
ディスクがあるが,スライス
・ディスクやシンプル
・ディスクが少ない場合に,発生する可能性が大きくなります。
スライス
・ディスクと
シンプル
・ディスクにのみ,構成データベースのコピーを格納できます。
これらのディスクが故障すると,LSM がアクティブ・コピーを格納する場所がなくなります。
ディスク・グループ用のアクティブ・コピーを持つディスクが,すべて同じバスに接続されていて (これは省略時の設定ではありません),バスに障害が発生したか,同じ RAID アレイ (たとえば,同じ HSG80) に存在していて,そのアレイが故障したりアクセス不可能になった。
これらの状況のいずれの場合でも,ボリュームに問題 (たとえば,プレックスの切り離し,DRL ログまたは RAID5 ログの紛失,ミラー化されていないボリューム全体の紛失) が発生します。
ディスク・グループの構成データベースを復元する方法は,5.3.2 項を参照してください。