システム設計におけるエラー検知とエラー通知について
1.エラーの定義
エラー(ここで論じるのはシステムエラーとする)の定義は、予期されるシステム可動上の問題のことを指す。
エラーのシステムに対する影響度の度合いによっては、エラーの重篤度として定義される。重篤度が一番高いエラーは、システムが操作不能に陥った場合である。
ただし、
システム保全(メンテナンス)のためや、改造を施した場合に発生するエラーはあくまで発生原因が人が操作したことによるものであって、それらはシステム可動上の問題ではないことから、一般的なシステムエラーとしてはカウントしない。
2.システムエラーの重篤度評価のの設計
システムを可動する上での影響度合いを定義する。
エラーの重篤度は、可用性の担保としての指標と同じである。重篤度が大きいものは、システムの継続可動ができない状態であり、重篤度が小さいものは、継続可動には影響ないが、例えばシステムパラメータ等に不具合があり、推測結果と実際の結果が一致しない場合なと、後々調査が必要なものはこれらに該当する。
システム設計では、システムの可動をある程度確保するために、重篤度の設計は重要である。
大:可動継続性を担保できない
小:システムエラーは発生するが可動継続は可能
3.可動継続性とレジリエンス
可動継続性(可用性の担保)とは、システムが健全に操作し続けられる度合いを示す。
不意なエラーによるシステム停止が発生しないような設計要件は、高可用性設計として、例えば、システムの冗長化設計(Redundant design)のような、仕組みを施すのが重要である。
もう一つの高可用性に関する設計指針である、異常発生からの復旧について、それが問題なく操作でるような仕組みも考えなくてはならない。高レジリエンス(Resilience)=可動継続性とレジリエンスを表現するパラメータとして以下を示す。
・MTBF(Mean Time Between Failer)
平均故障時間
・MTTR(Mean Time To Repair)
平均故障復旧時間(平均修理時間)
前者は、可溶性を示す指標として、後者はレジリエンスを示す指標として表現される
4.エラーの発生頻度
エラーの発生頻度と、エラーの重篤性の間には、以下の相関関係がある。概ねこの法則が当てはまらない場合は、システム設計における頑健性(Robustness)の設計に誤りがあると言える。
なお、発生頻度の絶対的数値については、かなり予見は難しい。設計段階においては、比較的発生頻度での評価となることは、仕方がない。
私見だが、こういう部分が、携わるシステムエンジニアの知見と経験に左右されるものであると思う。
・発生頻度が高い→重篤性は低い
・発生頻度が低い→重篤性は高い
5.人によるレジリエンス
比較的重篤性が高いエラーが発生した場合、そのほとんどは、自己修復しない。よって、エラーに対する問題の復旧作業は人によって行われる。
エラーの重篤度に応じて、人に対する通知(Alart)のレベルも考える必要がある。
最高重篤度のエラーにおいては、緊急の復旧対応の場合、一刻も早く、現在の様をエラー通知として管理者に伝え、可用性の担保と最短での復元を目指さなければならない。
一方、重篤度が低いエラーの通知はどうするか、の問題だが、一般的にシステム可動性の確保に応じた対応になる。可用性がある程度担保されているのであれば、通知の緊急性は低いと考えられる。
レジリエンスとして評価される場合は、
エラーの重篤性の評価、通知プロセスの最適、回復(リカバリ)作業のしやすさなどで決定される。
夏