RIGHT:[[Sun 関係覚え書き]]

FC-AL のディスクでの復旧方法については,こちらも
参照のこと-> [[Sun/FC-AL HDD におけるミラーリング復旧手順]]

参考文献:[[BigAdmin>http://www.sun.com/bigadmin/content/submitted/troubleshoot_raid.html]]


*概要 [#q48a00f8]
Solstice DiskSuite を用いてシステムディスクをミラーしている場合,
片方のディスクが壊れて使えないとシステムが再起動しなくなる.
これは,データベースのレプリカ(metadb) が半数以下となってしまうためである.

そうなった場合の対処法について説明する.

また,ディスク交換後の方法を説明する.

*データベースレプリカのエラー [#hd847503]
-問題: データベース(=metadb)が壊れたり,利用できなくなる.
-結果: ディスクが Fail し,I/O エラーが発生する.
-現象: 起動時にデータベースが半数以下となるとエラーメッセージが出る.
そして,システムはシングルユーザモードとして起動する.

*推奨する手順 [#v7a25c59]
**1. [#lea766a5]
ok> プロンプトで,boot コマンドを発行する.
すると,データベースのレプリカが壊れているので,
シングルユーザモードになる.

 ok > boot
 ...
 Hostname: yazid
 metainit: yazid: stale databases
 Insufficient metadevice database replicas located.
 Use metadb to delete databases which are broken.
 Ignore any "Read-only file system" error messages.
 Reboot the system when finished to reload the metadevice
 database.
 After reboot, repair any broken database replicas which were
 deleted.
 Type Ctrl-d to proceed with normal startup,
 (or give root password for system maintenance): 
 Entering System Maintenance Mode.

**2. [#vd11110e]
metadb コマンドを使ってメタデバイスのステータスを見る.
出力された結果に "unknown" や M フラッグがついていることで,
利用できなくなったデータベースのレプリカを見分けることができる.

 # metadb -i
 flags      first blk      block count
 a m  p lu    16           1034                /dev/dsk/c0t0d0s7
 a    p  l    1050         1034                /dev/dsk/c0t0d0s7
 M    p       unknown      unknown             /dev/dsk/c0t1d0s7
 M    p       unknown      unknown 

**3. [#u394b900]
障害のあるディスクのデータベースレプリカを -d オプションを使って削除する.
このとき root(/)パーティションはリードオンリーとなっているので,
mddb.cf に関するエラーメッセージは無視してよい.

 # metadb  -d  -f  c0t1d0s7
 metadb: demo: /etc/opt/SUNWmd/mddb.cf.new: Read-only file system.

で,削除されたことを確認.

 # metadb  -i
 flags        first blk       block count
 a m  p  lu   16              1034            /dev/dsk/c0t0d0s7
 a    p  l    1050            1034            /dev/dsk/c0t0d0s7

**4. [#u4c5565e]
システムを再起動する.

**5. [#w2170876]
metadb コマンドを使ってデータベースレプリカを追加しなおし,
正常な状態に戻す.

 # metadb -a -c 2 c0t1d0s7
 # metadb -i
 flags        first blk  block count
 a m  p  luo  16           1034         dev/dsk/c0t0d0s7
 a    p  luo  1050         1034         dev/dsk/c0t0d0s7
 a       u    16           1034         dev/dsk/c0t1d0s7
 a       u    1050         1034         dev/dsk/c0t1d0s7

----
*メタデバイスのエラー [#zfade4df]
-問題: サブミラーが "Needs maintenance" の状態となり,ミラーから外れる.
-結果: ディスクが Fail し,不意のシャットダウンが起こる.
そして,ミラーしているディスク同士の同期の不具合が起こる.
-現象: "Needs maintenance" エラーが metastat の出力に表示される.

*推奨する手順 [#q873c25d]
**1. [#wf58b068]
障害のあるディスクを交換する

**2. [#ma3ea1fa]
元のディスクと同じ大きさでパーティションを作成する.
もし,meta データベースをリカバリするなら,上述の方法で行う.

**3. [#ef5b26fd]
Solaris OS にログインし,metastat コマンドを発行する.
次のような結果が表示されるだろう.

 # metastat
 
	 d0: Mirror
     Submirror 0: d10
       State: Needs maintenance
     Submirror 1: d20
       State: Okay
 ...
 d10: Submirror of d0
     State: Needs maintenance
     Invoke: "metareplace d0 /dev/dsk/c0t3d0s0 <new device>"
     Size: 47628 blocks
     Stripe 0:
 Device              Start Block  Dbase State        Hot Spare
 /dev/dsk/c0t3d0s0          0     No    Maintenance 

 d20: Submirror of d0
     State: Okay
     Size: 47628 blocks
     Stripe 0:
 Device              Start Block  Dbase State        Hot Spare
 /dev/dsk/c0t2d0s0          0     No    Okay 

**4. [#za5c1fa2]
この結果から c0t3d0s0 が障害を起こし,交換されたことがわかる.
metareplace コマンドを使ってデバイスを利用可能にする.

 # metareplace -e d0 c0t3d0s0
 Device /dev/dsk/c0t3d0s0 is enabled

もしくは,障害のあったデバイスを新しいディスクの別のデバイスに移したい場合,
次のようにコマンドを打つ.

 # metareplace  d0 c0t3d0s0   <new device name>

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS