障害発生範囲の切り分け

Last-modified: 2008-02-22 (金) 18:28:18

障害がどこで発生しているかで、原因がどこにあるか考えることができます。どこで発生しているかという切り分けの単位はどのようにして作ればいいのでしょうか。

 

例えば以下の環境を考えて見ます。

 

ローカルにサーバーA、リモートのサイトにバックアップ用にサーバーBがあります。サーバーA及びサーバーBはまったく同じ構成であるとします。
サーバーには複数のプログラムがあります。このプログラムは以下のようにインストールされています。

Disk1 - FolderA - P1/P2
      |
      - FolderB - P3/P4
Disk2 - FolderA - P5/P6
      |
      - FolderB - P7/P8

障害がDisk1-FolderB-P3で発見されたとします。通常、正常終了すべきプログラムがメッセージを出すことなく異常終了します。

このようなときに切り分けるためには以下のステップを踏みます。

・プログラムを構成している要素を明らかにする

上記の場合にはプログラムはサーバー→Disk->フォルダ->プログラムとなっています。

 

・構成の組み合わせを最下層から洗い出す

以下のような組み合わせが考えられます。

プログラム
フォルダ->プログラム
Disk->フォルダ->プログラム
サーバー->Disk->フォルダ->プログラム
 

・上記の組み合わせに対してテストすべき項目の一覧を作る
プログラム

Disk1-FolderB-P4

フォルダ->プログラム

Disk1-フォルダA->P1

Disk->フォルダ->プログラム

Disk2-フォルダB->P3

サーバー->Disk->フォルダ->プログラム

リモートサーバー-Disk1-FolderB-P3

・テストをします。

 

どの項目で問題が発生しているかにより原因の推測が容易になります。例えばプログラム(P4)で発生しないということであれば、P3に特有な原因と考えられます。リモートサーバーでも発生しているのであれば、ネットワーク広範囲にわたる理由が考えられます。