6    トラブルシューティング

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 イベントの選択,フィルタリング,ソート,フォーマット,および表示ができます。

詳細は, 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 読み取りおよび書き込み操作は実行できないが,デバイス操作は可能。

6.1.3.2    LSM オブジェクトの状態の概要

LSM は,ボリューム,プレックス,およびサブディスクの状態を監視します。

表 6-3:  LSM ボリュームの状態 (STATE)

状態 カーネル状態 意味

EMPTY

DISABLED

ボリュームの内容が初期化されていない。

CLEAN

DISABLED

ボリュームが開始されていない。

  • ミラー・ボリュームの場合,プレックスの同期が取れている。

  • RAID5 ボリュームの場合,パリティが正しく,ストライプに一貫性がある。

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 コマンドでボリュームへの対応付けと接続が行われているプレックス。 接続の完了前にシステムに障害が発生すると,プレックスとそのサブディスクはボリュームから対応付けが解除され,削除される。

表 6-5:  LSM サブディスクの状態

状態 意味
REMOVED サブディスク (LSM ディスク全体を含むこともある) は,ボリューム,ディスク・グループ,または LSM 制御から削除された。
RECOVER サブディスクは最新の状態でないため,回復しなければならない。 volrecover コマンドを使用する。
RELOCATE 冗長 (ミラーまたは RAID5) ボリューム内のサブディスクに障害が発生した。 volwatch デーモンはこの状態をチェックし,使用可能なホット・スペア・ディスクに再配置する必要があるサブディスクを調べる。 データの再配置後,サブディスクの状態は,クリアされる。

6.2    紛失または変更された sysconfigtab ファイルのトラブルシューティング

ブート・ディスク・カプセル化手順の間に,LSM は次のエントリを /etc/sysconfigtab ファイルに追加して,システムが LSM ルート・ボリュームからブートできるようにします。

lsm:
lsm_rootdev_is_volume=1

このファイルが削除されるか,この LSM 固有エントリが削除された場合,システムはブートしません。 ブートしなくなった場合は,次の手順を実行します。

  1. システムを対話型でブートします。

    >>> boot -fl i
     
    .
    .
    .
    Enter kernel_name option_1... option_n: vmunix

  2. /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 デーモンが再起動されるまで,構成は変更できず,情報表示コマンド (volprintvolstat など) は使用できません。 情報表示コマンドは,現在の構成データの取得や表示に,このデーモンを使用しているからです。

クラスタの各メンバは,それぞれ vold デーモンを実行しています。 実行中の各クラスタ・メンバのデーモンの状態を調べ (6.3.1 項),必要に応じて,各メンバで以下の手順を実行します。

スタンドアロン・システムまたはクラスタで vold デーモンを再起動するには,以下の手順を実行します。

  1. vold デーモンをリセットし,使用不能モードで起動します。

    # vold -k -r reset -m disable
    

    このコマンドによって,現在実行中の (あるいは,ハングしている) vold のプロセスはすべて停止し,新しい vold が使用不能モードで起動されます。

    使用中のボリュームがあると,-r reset オプションは失敗します。 この場合,オープンされているボリュームを見つけ,一時的に停止し,コマンドを再度実行してください。

  2. デーモンを再起動します。

    # vold -k
    

  3. 停止させなければならなかったすべてのボリュームを再起動します。

この手順を実行しても 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 ディスクは障害が発生しても,使用可能であると誤って報告されることがあります。

6.4.2    不調なサブディスクの回復

サブディスクが不調な場合,状態は RECOVER になります (表 6-5)。 LSM は通常,ボリュームの開始時に不調なサブディスクの回復処理を行います。 ただし,次のような状況も考えられます。

ボリューム内の不調なサブディスクを回復するには,次のコマンドを入力します。

# volrecover [-sb] volume

LSM ディスク上のすべての不調なサブディスクを回復するには,次のコマンドを入力します。

# volrecover [-sb] disk 
 

6.4.3    一時的なディスク障害からの回復

ディスクに一時的な障害が発生したが,損傷を受けていない場合,たとえば,ディスクが誤って取り外されたり,電源ケーブルが外された場合,またはシステムの再起動を必要としない回復可能なその他の問題が発生した場合,そのディスク上のボリュームを回復することができます。

一時的なディスク障害から回復するには,次の手順に従います。

  1. ディスクがオンラインに戻り,アクセス可能であることを確認します。 たとえば,次の手順を実行します。

  2. 認識されているすべてのディスクを走査し,ディスクが利用可能であることを確認します。

    # voldctl enable
    

  3. ディスク上のボリュームを回復します。

    # volrecover -sb disk
    

6.4.4    障害が発生しているディスクからの LSM ボリュームの移動

ディスクは一般的に,完全に故障する前に,回復可能な (ソフト) エラーが発生します。 ディスクで異常な数のソフト・エラーが発生した場合は,ボリュームをそのディスクから,ディスク・グループ内の別のディスクに移動し,障害が発生しているディスクを交換してください。

注意

障害が発生しているブート・ディスクを交換するには,6.4.6 項 を参照してください。

障害が発生しているディスクからボリュームを移動するには,次の手順に従います。

  1. ボリュームのサイズを調べます。

    # volprint [-g disk_group] -ht [volume]
    

  2. ディスク・グループ内に,同じ量の空きスペースがあることを確認します。

    # voldg [-g disk_group] free
    

    十分なスペースがない場合は,新しいディスクを追加します。 詳細については,5.2.2 項を参照してください。

  3. 障害が発生しているディスク (! オペランドで指定) 以外のディスクにボリュームを移動します。 ! が正しく解釈されるようにするには,シェルの適切なクォート記法を使用してください。 ターゲット・ディスクを指定する必要はありません。

    # volassist [-g disk_group] move volume !disk
    

    故障したディスクの交換についての詳細は,6.4.5 項を参照してください。

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 を参照してください。

http://h30097.www3.hp.com/docs/best_practices/

故障したディスクを交換するには,次の手順に従います。

  1. 次のコマンドのいずれかを使用して,故障したディスクのディスク・メディア名を調べます。

  2. 故障したディスクのディスク・メディア名を,-k オプションを使用して保持したまま,そのディスク・グループから削除します。

    # voldg [-g disk_group] -k rmdisk disk_media_name
    

  3. 故障したディスクのディスク・アクセス名を LSM 制御から削除します。

    # voldisk rm disk_access_name
    

    LSM 以外のコマンド (hwmgr redirect など) を実行して故障したディスクを削除したり交換するには,事前にデバイスを LSM から完全に削除しなければなりません。

  4. 故障したディスクを取り外し,新しいディスクと交換します。

  5. 新しいディスクを走査します。

    # hwmgr scan scsi
    

    hwmgr コマンドは,走査が完了する前にプロンプトを表示します。 処理を続行する前に,新しいディスクが検出されたことを確認する必要があります。 たとえば,hwmgr show scsi コマンドを新しいディスクが表示されるまで,何回か実行します。

  6. 以下の手順のいずれかを使用して,新しいディスクにラベルを付け,初期化します。

  7. 必要に応じ (ただし推奨します),新しいディスクのディスク・ラベル情報のバックアップ・コピーを作成します。

    # disklabel disk_access_name > file
    

  8. 新しいディスクに古いディスク・メディア名を割り当てて,新しいディスクを該当するディスク・グループに追加します。

    # voldg [-g disk_group] -k adddisk \
    disk_media_name=disk_access_name
    

    たとえば,故障したディスクのディスク・メディア名が dsk10 で,新しいディスク・アクセス名が dsk82,ディスク・グループが dg03 の場合,次のコマンドを入力します。

    # voldg -g dg03 -k adddisk dsk10=dsk82
    

  9. すべての該当する LSM ボリュームで,回復を開始します。

    # volrecover [-sb]
    

    このコマンドは,回復が必要なすべてのボリュームのプレックス接続操作,RAID5 サブディスクの回復,そして再同期化を行います。 このコマンドは,故障したディスクが原因となるほとんどの問題を解決します。

    これによって,ディスク障害の影響を受けたすべてのボリュームを回復できなかった場合 (たとえば,非冗長ボリュームの場合や複数のディスクで障害が発生したボリュームの場合),ボリュームを回復するためには,6.5.2 項 を参照してください。 また,ボリュームをバックアップから復元する方法は,5.4.3 項 を参照してください。

6.4.6    故障したブート・ディスクの交換

スタンドアロン・システム上のブート・ディスクがミラー・プレックスを使って LSM ボリュームにカプセル化されている場合,オリジナル・ブート・ディスクに発生している障害は,ユーザからは見えません。 ただし,障害が発生している間,システムは次の状態になることがあります。

必要があれば,オリジナル・ブート・ディスクを交換する前に,rootvol ボリュームの正しいプレックスを含む任意のディスクから,システムを再起動します。 rootvol ボリュームのすべてのプレックスが壊れ,システムのブートができない場合は,オペレーティング・システムの再インストールが必要です。

以降の手順では,スタンドアロン・システム上のブート・ディスクがカプセル化され,ブート・ディスク・ボリュームにミラー・プレックスがあることを前提としています。 この手順のステップ 4 で,新しいディスク上に新しい (代りの) ミラーが作成されます。

LSM 制御下の,故障したブート・ディスクを新しいディスクに交換するには,次の手順に従います。

  1. ルート・ボリュームとスワップ・ボリュームの詳細情報を表示し,故障したディスクおよびプレックスの正しい名前を指定できるように確認します。

    # volprint -vht
    

  2. 出力を見て,故障したプレックスの名前と,故障した 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
     
     
    

    以下のリストは,出力の説明です。

    1. ルート (/) パーティションのディスク・アクセス名。 [例に戻る]

    2. ルート (/) パーティションのディスク・メディア名。 [例に戻る]

    3. プライマリ・スワップ・パーティションのディスク・アクセス名。 [例に戻る]

    4. プライマリ・スワップ・パーティションのディスク・メディア名。 [例に戻る]

    5. ブート・ディスクの LSM プライベート・リージョンのディスク・アクセス名 (ディスク・メディア名と同じ)。 [例に戻る]

    6. /usr パーティションのディスク・アクセス名。 [例に戻る]

    7. /usr パーティションのディスク・メディア名。 [例に戻る]

    8. /var パーティションのディスク・アクセス名。 [例に戻る]

    9. /var パーティションのディスク・メディア名。 [例に戻る]

    同じ命名規則が,ルート,スワップ,/usr,および /var パーティション・ボリュームのミラー用のディスクに対しても適用されます。

  3. ブート・ディスクに /usr または /var がカプセル化されている場合,故障したディスク上のプレックスの対応付けを,ルート,スワップ,およびユーザ・ボリュームから解除します。

    たとえば,次のコマンドを実行します。

    # volplex -o rm dis rootvol-02 swapvol-02 vol-dsk0g-02
    

    /usr ボリュームの名前と,/var ボリューム (個別に存在する場合) の名前には,ブート・ディスクのパーティション文字が使用されます (たとえば,vol-dsk0g)。

  4. 故障した LSM ディスクを,ブート・ディスクから削除します。

    1. ディスクを rootdg ディスク・グループから削除します。

      # voldg rmdisk dskna dsknb dskng...
      

    2. ブート・ディスク上に構成されている LSM ディスクを,LSM 制御下から削除します。

      # voldisk rm dskna dsknb dskng...
      

  5. 故障したディスクを物理的に取り外し,交換します。

    LSM 以外のコマンド (hwmgr redirect など) を実行して故障したディスクを削除したり交換するには,事前にデバイスを LSM から完全に削除しなければなりません。

  6. 新しいディスクを走査します。

    # hwmgr scan scsi
    

    hwmgr コマンドは,走査が完了する前にプロンプトを表示します。 処理を続行する前に,新しいディスクが検出されたことを確認する必要があります。 たとえば,hwmgr show scsi コマンドを新しいディスクが表示されるまで,何回か実行します。

  7. デバイス特殊ファイルを修正し,古いディスク名を新しいディスクに再度割り当てます。 このとき新しいディスクを必ず最初にリストするようにしてください。

    # dsfmgr -e new_name old_name
    

  8. 新しいディスクにラベルを付け,すべてのパーティションに unused を設定します。

    # disklabel -rw new_disk
    

  9. ルート・ボリュームを,新しいディスク上にミラー化します。

    # volrootmir -a new_disk
    

6.5    LSM ボリュームのトラブルシューティング

以降の項では,LSM ボリュームの一般的な問題の解決方法について説明します。 LSM ボリュームの回復が必要なときに,「Alert」アイコンと「Alert Monitor」ウィンドウに情報が表示されることがあります。 (Alert Monitor についての詳細は,『システム管理ガイド』を参照してください。)

6.5.1    システム障害後の LSM ボリュームの回復

LSM は通常,システム・クラッシュ後に自動的にボリュームを回復します。 すべてのミラー・ボリューム (スワップ領域以外) の DRL プレックス,およびすべての RAID5 ボリュームの RAID5 ログ・プレックスを使用することによって,ボリューム回復が高速化されます。

高速プレックス接続ログも,システムの再起動後動作を再開します。 ただし,ボリューム rootvolcluster_rootvol のアクティブ FPA ログは例外です。 この場合,LSM は,プライマリ・ボリュームとセカンダリ・ボリュームの両方で FPA ロギングを使用不能にします。 移行プレックスをプライマリ・ボリュームに戻すと,完全な再同期化が行われます。

6.5.2    ディスク障害後の LSM ボリュームの回復

故障したディスクを交換した後 (6.4.5 項),次の該当するボリューム回復手順 (表 6-7) を使用して,ボリューム・データを回復します。

注意

ディスクの故障によって,ディスク・グループ内の LSM 構成データベースのすべてのアクティブ・コピーが失われた場合は,ボリュームを回復する前に,5.3.2 項を参照してください。

表 6-7:  ボリューム回復手順

回復の対象 参照先
単一ディスク障害後のミラーと 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 ログ・プレックスの場合,ログ・プレックスがミラー化されているときだけ,再配置が行われます。 障害が発生した時にホット・スペアリングが使用不能になっていた場合は,回復を開始する必要があります。

LSM ボリュームを回復するには,次のコマンドを入力します。 複数ボリュームで同じディスクを使用している場合には,ボリュームまたはディスクのいずれかを指定する必要があります。

# volrecover [-g disk_group] -sb volume|disk

-s オプションを指定すると,すぐにボリュームを開始しますが回復は遅れます。 -b オプションを指定すると,このコマンドはバックグラウンドで実行されます。 これらのオプションやその他のオプションについての詳細は, volrecover(8) を参照してください。 ディスク・グループ,LSM ボリューム名,またはディスク名を指定しないと,すべてのボリュームが回復対象になります。 LSM ボリュームの回復が不可能な場合は,その LSM ボリュームをバックアップから復元します (5.4.3 項)。

たとえば,ディスク・グループ rootdg の LSM ボリューム vol01 を回復するには,次のコマンドを入力します。

# volrecover -sb vol01

ディスク dsk5 を使用しているすべての LSM オブジェクト (サブディスク,プレックス,またはボリューム) を回復するには,次のコマンドを入力します。

# volrecover -sb dsk5

必要に応じて,ボリュームが回復された (または,回復中である) ことを確認します。

# volprint volume

6.5.2.2    冗長性がないボリュームの回復

冗長性がないボリュームとは,連結プレックスかストライプ・プレックスを 1 つだけ使用するボリュームです。 このプレックスのディスクに障害が発生すると,ボリュームは起動不能になるため,ボリューム・データをバックアップから回復する必要があります。 複数のプレックス,または RAID 5 プレックスの複数のカラムでディスク障害が発生した場合も,ボリュームに冗長性がなくなります。

ボリュームの状態を表示するには,次のコマンドを入力します。

# volinfo -p
vol  tst       fsgen    Unstartable
plex tst-01    NODEVICE

注意

以下の手順では,ディスクが使用可能であるか,故障したディスクを交換済み (6.4.5 項) であることを前提とします。

ボリュームを回復するには,次の手順に従います。

  1. プレックスの状態を stale として設定します。

    # volmend fix stale plex
    

    LSM には,プレックスの状態を特定の順序で変更しなければならないという,内部状態に関する制限があります。 プレックスの状態は clean とマークする前には,stale でなければなりません。

  2. プレックスの状態を clean として設定します。

    # volmend fix clean plex
    

  3. ボリュームを開始します。

    # volume start volume
    

    ボリュームは実行され,使用可能になりますが,不正なデータを含んでいます。

  4. 次の手順のいずれかを実行します。

6.5.2.3    正しいプレックスがないミラー・ボリュームの回復

ミラー・ボリューム内のすべてのデータ・プレックスのディスクに障害が発生した場合,ボリュームは起動不能になります。 一部の (すべてではなく) データ・プレックスに障害が発生した場合は,ボリュームのデータが壊れているか,壊れている可能性があります。 複数のディスクの障害からミラー・ボリュームを回復するには,データをバックアップから復元する必要があります。

正しいプレックスがないボリュームを回復するには,次の手順に従います。

  1. ボリューム内のすべてのプレックスのプレックス状態を clean として設定します。

    # volmend fix clean plex plex...
    

  2. ボリュームを開始します。

    # volume start volume
    

  3. 何がボリュームを使用していたかによって,次の手順のいずれかを実行します。

6.5.2.4    正しいプレックスが 1 つあるミラー・ボリュームの回復

ボリューム内の 1 つのプレックスが正しいデータを持っていることが分かっている場合は,このプレックスを使用して他のプレックスを復元できます。

正しいデータ・プレックスが 1 つあるボリュームを回復するには,次の手順に従います。

  1. 正しいデータ・プレックスの状態を clean として設定します。

    # volmend fix clean valid_plex
    

  2. 他のすべてのデータ・プレックスの状態を stale として設定します。

    # volmend fix stale plex plex...
    

  3. ボリュームを開始し,再同期処理を起動します (必要に応じてバックグラウンドで)。

    # volrecover -s [-b] volume
    

6.5.2.5    複数ディスク障害からの RAID 5 プレックスの回復

RAID 5 プレックスを使用しているボリュームは,ディスクの 1 つに障害が発生しても利用可能なままです。 しかし,RAID5 データ・プレックスの複数のカラムのディスクに障害が発生した場合,LSM は失われたデータを,残りのデータおよびパリティを使用して再構築することはできません。 故障したディスクを交換し,ボリュームを再起動してから,データを復元しなければなりません。

注意

以下の手順では,故障したディスクは交換済みであるものとします (6.4.5 項)。

ボリュームを復元するには,次の手順に従います。

  1. ボリュームを停止します。

    # volume stop volume
    

  2. ボリュームの状態を empty として設定し,ボリュームを再起動したときに,パリティが自動的に再計算されるようにします。

    # volmend -f fix empty volume
    

  3. ボリュームを開始します。 この操作はバックグラウンドで実行して,システムをすぐにコマンド入力状態に戻すこともできます。

    # volume [-o bg] start volume 
     
    

    ボリュームは,パリティの再作成中でも,使用可能です。 パリティがまだ再計算されていないリージョンがアクセスされた場合,LSM は入出力要求を受け付ける前に,アクセスされたデータを含むストライプ全体のパリティを再計算して書き込みます。

  4. ボリューム・データをバックアップから復元します (5.4.3 項)。

    バックアップがなく,データベースなどのアプリケーションでボリュームを使用していた場合,データの復元や再作成については,アプリケーションのドキュメントを参照してください。

6.5.2.6    RAID 5 ログ・プレックスの回復

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

6.5.3    使用不能状態の LSM ボリュームの開始

LSM ボリュームを使用しているファイル・システムがマウントできないか,アプリケーションが LSM ボリュームをオープンできない場合,LSM ボリュームが開始されていないことがあります。

LSM ボリュームが開始されているかどうかを調べるには,次のコマンドを入力します。

# volinfo [-g disk_group] volume

次の出力は,いくつかのボリュームの状態を示しています。

vol   bigvol        fsgen    Startable
vol   vol2          fsgen    Started
vol   datavol       gen      Unstartable

LSM ボリュームには,次の状態があります。

Startable 状態のボリュームを開始するには,次のコマンドを入力します。

# volume [-g disk_group] start volume

6.5.4    ボリューム再同期の状態のチェック

システムに障害が発生して,再起動されると,LSM は障害時に正しく動作していたすべてのボリュームを自動的に回復します。

ログ・プレックスを持つ冗長性のあるボリュームを使用することは,システム障害後のボリューム回復を速くするために推奨されている方法です。 通常の状態では,回復は素早く実行されるため,システムの実行が再開された後は,目立った影響 (性能上の遅れなど) はありません。 ただしボリュームにログがないと,ボリュームのサイズによっては,再同期に長時間 (数分から数時間,またはそれよりも長く) かかることがあります。

進行中のボリューム再同期の状態を表示して,あとどのくらいかかるかを確認することができます。 (故障したディスクの交換時やボリュームへの新しいプレックスの追加時に発生する,プレックスの再同期の状態をチェックすることはできません。 volprint コマンドは,この情報にアクセスすることはできません。 ただし,このような場合,ボリュームは再同期中でも使用可能です。)

進行中のボリューム再同期の残り時間を調べるには,次の手順に従います。

  1. ボリュームの読み取り/書き込みフラグを表示して,現在の回復オフセット値を調べます。

    # volprint -vl volume | grep flags
    

    次のような情報が表示されます。

    flags:    open rwback (offset=121488) writeback
     
    

  2. どの程度回復が進んだかを調べるため,適当な時間 (120 秒程度) が経過した後にフラグを再度表示します。

    # sleep 120 ; volprint -vl volume | grep flags
    

    次のような情報が表示されます。

    flags:    open rwback (offset=2579088) writeback
     
    

  3. オフセットの差分を 2 回の表示の間の時間で割って,進行速度を算出します。 たとえば,120 秒間に再同期が 2457600 セクタ完了したとします。 毎秒約 20480 セクタ (10 MB) が再同期されたことになります。

  4. 再同期速度でボリューム・サイズ (セクタ) を除算します。 この値が,完全な再同期にかかるおよその時間です。 たとえば,速度が 20480 セクタ/秒の場合,200 GB のボリュームの再同期には,約 5 時間半かかります。

    実際にかかる時間は,システム上の他の入出力負荷や,ボリュームやシステムに他の問題や障害が発生したかどうかによって異なります。

6.5.4.1    今後のボリューム再同期処理の速度の変更

進行中のボリューム再同期処理の速度を変更 (または停止) することはできませんが,ボリュームが非常に大きく,回復中のシステムの性能に再同期処理が大きな影響を与える場合は,今後の再同期処理の速度の設定を変更することができます。

注意

この手順は,経験豊かなシステム管理者が,システム性能に対するボリューム再同期処理の影響を評価し,受け入れられない評価結果になった場合だけ使用してください。 使用する管理者は,システム・ファイルやスクリプトの編集に精通していなければなりません。

今後の回復でのボリューム再同期処理の速度を変更するには,エディタを使用して,/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

  1. 指示された行を,次のいずれかに変更します。

    [例に戻る]

/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) が,小さいディスクで利用可能なスペースよりも大きいためです。

ディスク・グループに必要なボリュームを作成するための十分なスペースを持ったディスクがあることを確認するには,サイズ以外のすべてのプロパティを指定して,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)

6.5.6    LSM ボリューム上のロックのクリア

LSM はオブジェクトの構成を変更する場合,変更が書き込まれるまでそのオブジェクトをロックします。 構成の変更が異常終了すると,オブジェクトのロックがそのままとなることがあります。

オブジェクトがロックされているか調べるには,次のコマンドを入力します。

# volprint [-g disk_group] -vh

表示される情報の中で,ロックは TUTIL0 の欄に示されます。

ロックをクリアするには,次のコマンドを入力します。

# volmend [-g disk_group] clear tutil0 object...

ボリュームのリスタートが必要なこともあります (5.4.4 項)。

6.6    ディスク・グループのトラブルシューティング

ディスク・グループのインポート時にエラー・メッセージが出力されたり,コマンドが失敗した場合は,次のような原因が考えられます。

6.6.1    ホスト ID 不一致の解決

ディスク・グループがオリジナル・システムから正常にデポートされなかった場合,ディスク・グループ内のディスクに,オリジナルのホスト 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 がそのディスク・グループ用の構成データベースのコピーを検出できていないことが考えられます。 この現象は稀ですが,次の状況では発生する可能性があります。

ディスク・グループの構成データベースを復元する方法は,5.3.2 項を参照してください。