hajichan.net technical version
トップページ >> サーバ管理(Solaris) >> DiskSuiteディスク交換

サーバ管理

DiskSuiteディスク交換

DiskSuiteミラーリング構成においてのディスク交換手順を記載します。ディスク交換を必要とする障害パターンはおおよそ以下の通りだと思われます。


障害が発生してもシステムは正常に動作し続けますが、早急にディスク交換をした方がいいです。どの場合もディスク交換手順はほぼ同じです。

用語の詳しい意味ややり方は、マニュアル等をご参照下さい。ここでは、あくまで自分の理解したやり方を記載しておきます。

サブミラーが破損した

SDSサブミラー破損図

サブミラーが破損した場合です。もっとも発生頻度が多い障害だと思います。metastatコマンドを使って破損個所を確認すると、保守の必要なサブミラーの箇所に"Needs maintenance"が表示されると思います。

経験上、サーバの高負荷やディスクI/Oの高負荷により一時的にミラーが外れ、"Needs maintenance"となっていたケースがあります。

ディスク交換をする前に、一度、保守の必要なサブミラーに対してミラーディタッチ・アタッチを行って、経過様子見をするのも良いかも知れません。

負荷のない状態で、再度、"Needs maintenance"となったら、ハード的に故障している可能性が非常に高いと判断できます。

尚、ディスク交換については、ディスク交換手順を参照下さい。


【SDSサブミラー破損】
    ディスク1台目 ディスク2台目
ミラー
メタデバイス
マウントポイント サブミラー パーティション サブミラー パーティション
d0 / d10 c0t0d0s0 d20 c0t1d0s0
d1 swap d11 c0t0d0s1 d21 c0t1d0s1
d3 /var d13 c0t0d0s3 d23 c0t1d0s3
状態DB - - c0t0d0s4 - c0t1d0s4
d5 /opt d15 c0t0d0s5 d25 c0t1d0s5
d6 /usr d16 c0t0d0s6 d26 c0t1d0s6
d7 /export d17 c0t0d0s7 d27 c0t1d0s7

状態データベースのパーティションが破損した

SDS状態データベース破損図

状態データベースのパーティションが破損した場合です。このままだと予期せぬ再起動が掛かったときに、過半数以上の状態データベースが異常ということで、シングルユーザモードになってしまう可能性があります。

すぐにディスク交換作業が出来ない場合は、破損した状態データベースのレプリカだけでも削除しておきましょう。

このようにしておけば、ひとまず状態データベースは全て正常状態であるため、予期せぬ再起動が掛かったとしても、シングルユーザモードに移行することなくマルチユーザモードで起動してくるでしょう。

尚、破損した状態データベースの削除の仕方は、以下の通りです。

# metadb -d /dev/dsk/c0t0d0s4

その後のディスク交換手順は共通です。


【SDS状態データベース破損】
    ディスク1台目 ディスク2台目
ミラー
メタデバイス
マウントポイント サブミラー パーティション サブミラー パーティション
d0 / d10 c0t0d0s0 d20 c0t1d0s0
d1 swap d11 c0t0d0s1 d21 c0t1d0s1
d3 /var d13 c0t0d0s3 d23 c0t1d0s3
状態DB - - c0t0d0s4 - c0t1d0s4
d5 /opt d15 c0t0d0s5 d25 c0t1d0s5
d6 /usr d16 c0t0d0s6 d26 c0t1d0s6
d7 /export d17 c0t0d0s7 d27 c0t1d0s7

ディスクの片方が完全に破損した

SDS片肺ディスク破損図

ディスクの片方が完全に破損した場合です。metastatコマンドを使って破損個所を確認すると、大量に"Needs maintenance"が表示されると思います。

こちらも経験上、サーバの高負荷やディスクI/Oの高負荷により一時的に幾つものミラーが外れ、"Needs maintenance"となっていたケースがありましたので、 ディスク交換をする前に、一度、保守の必要なサブミラーに対してミラーディタッチ・アタッチを行って、経過様子見をするのも良いかも知れません。

再度、"Needs maintenance"となったら、ハード的に故障している可能性が高いと判断できます。

尚、ディスク交換については、ディスク交換手順を参照下さい。


【SDS片肺ディスク破損】
    ディスク1台目 ディスク2台目
ミラー
メタデバイス
マウントポイント サブミラー パーティション サブミラー パーティション
d0 / d10 c0t0d0s0 d20 c0t1d0s0
d1 swap d11 c0t0d0s1 d21 c0t1d0s1
d3 /var d13 c0t0d0s3 d23 c0t1d0s3
状態DB - - c0t0d0s4 - c0t1d0s4
d5 /opt d15 c0t0d0s5 d25 c0t1d0s5
d6 /usr d16 c0t0d0s6 d26 c0t1d0s6
d7 /export d17 c0t0d0s7 d27 c0t1d0s7

ディスク交換手順

ディスク交換をするためには、破損パーティションのあるディスクへのミラーリング解除とそのディスク上にある状態データベースのレプリカを削除して、ディスク交換前に完全に1面ミラーの状態にしておきます。

その後、システムをシャットダウンし、故障ディスクを交換し、起動します。システム起動後、新ディスクのパーティションを正常系と同じように切り直して、ミラーリングの開始と状態データベースのレプリカを作成して完成です。

以下、c0t0d0ディスクとc0t1d0ディスクでミラーリングを構成しているシステムに於いて、c0t0d0ディスクの6番目のパーティションが破損した際を例に取って説明します。

metastatコマンドを使って破損個所を正確に把握します。破損個所は、"Needs maintenance"と表示されます。-tオプションを付加すれば、破損した日時も出力されます。

# metastat
---
d6: Mirror
    Submirror 0: d16
      State: Needs maintenance
    Submirror 1: d26
      State: Okay
    Pass: 1
    Read option: roundrobin (default)
    Write option: parallel (default)
    Size: 6145360 blocks

破損パーティションのあるディスクへのミラーリングを全て解除します。破損しているサブミラーを解除するためには、-fオプションで強制的に解除します。

# metadetach d0 d10
d0: submirror d10 is detached
# metadetach d1 d11
d1: submirror d11 is detached
# metadetach d3 d13  
d3: submirror d13 is detached
# metadetach d5 d15
d5: submirror d15 is detached
# metadetach -f d6 d16   // -fにて強制解除
d6: submirror d16 is detached
# metadetach d7 d17
d7: submirror d17 is detached

1面ミラーなっていることを確認する。

# metastat -p
---
d0 -m d20 1
d20 1 1 c0t1d0s0
d1 -m d21 1
d21 1 1 c0t1d0s1
d3 -m d23 1
d23 1 1 c0t1d0s3
d5 -m d25 1
d25 1 1 c0t1d0s5
d6 -m d26 1
d26 1 1 c0t1d0s6
d7 -m d27 1
d27 1 1 c0t1d0s7
d10 1 1 c0t0d0s0
d11 1 1 c0t0d0s1
d13 1 1 c0t0d0s3
d15 1 1 c0t0d0s5
d16 1 1 c0t0d0s6
d17 1 1 c0t0d0s7

破損パーティションのあるディスク上の状態データベースのレプリカを削除します。

# metadb -d  /dev/dsk/c0t0d0s4

状態データベースを確認します。正常系のディスクの状態データベースのみ出力されます。

# metadb
---
a    p  luo        16              1034            /dev/dsk/c0t1d0s4
a    p  luo        1050            1034            /dev/dsk/c0t1d0s4
a    p  luo        2084            1034            /dev/dsk/c0t1d0s4

以上の行程で完全に1面ミラーになったのでシステムをシャットダウンします。

# sync; sync; /etc/telinit 0

ディスク交換後、システムを起動します。-rオプションで新ディスクを認識させます。

ok> boot -r

新ディスクが認識されているかformatコマンドで確認します。

# format

新ディスクのパーティションを設定します。formatコマンド若しくは、prtvtocコマンドとfmthardコマンドを使用します。

以下、prtvtocコマンドとfmthardコマンドを使用した場合を記載します。正常ディスク(/dev/rdsk/c0t1d0s0)のVTOC情報を読み出して、新ディスク(/dev/rdsk/c0t0d0s0)のVTOC情報に書き込みます。

# prtvtoc /dev/rdsk/c0t1d0s0 | fmthard -s - /dev/rdsk/c0t0d0s0

ミラーリングを開始して、2面ミラーにします。

# metattach d0 d10
d0: submirror d10 is attached
# metattach d1 d11
d1: submirror d11 is attached
# metattach d3 d13
d3: submirror d13 is attached
# metattach d5 d15
d5: submirror d15 is attached
# metattach d6 d16
d6: submirror d16 is attached
# metattach d7 d17
d7: submirror d17 is attached

確認します。同期中(Resyncing)となっているはずです。

# metastat

新ディスク上に状態データベースのレプリカを作成します。-aオプションで追加、-cオプションで複製を3つ、と言う意味です。

# metadb -a -c 3  /dev/dsk/c0t0d0s4

状態データベースが合計6つあることを確認します。

# metadb
---
a m  p  luo        16              1034            /dev/dsk/c0t0d0s4
a    p  luo        1050            1034            /dev/dsk/c0t0d0s4
a    p  luo        2084            1034            /dev/dsk/c0t0d0s4
a    p  luo        16              1034            /dev/dsk/c0t1d0s4
a    p  luo        1050            1034            /dev/dsk/c0t1d0s4
a    p  luo        2084            1034            /dev/dsk/c0t1d0s4
ページのトップへ戻る