コンピュータの性能を表す指標には、高速や高機能といった指標のほかにも信頼性という指標があります。信頼性とは安定してコンピュータを利用できるかという指標です。信頼性の要素は5つあり、それぞれの頭文字をとってRASISと呼ばれます。
信頼性です。故障が無く動作し、要求された性能を出せることです。評価にはMTBFなどを用います。
可用性です。使いたい時に使えることです。使いたい時に故障しておらず、故障していてもできる限り動作が可能なことです。稼働率などで評価します。
保守性です。故障や障害などを早期に発見し、修復が容易なことです。MTTRなどで評価します。
完全性です。データが不意の事故や人為的事故による破壊から守られており、データの完全性が保障されていることです。また、破壊されても修復が可能なことです。
安全性です。権限の無い者による不正なシステムへのアクセスを防いだりすることを保障することです。
信頼性を向上させるシステム構成は、システムを二重化することでひとつのシステムに障害が発生しても、もう片方のシステムに切り替えることで障害を回避する技術が主流です。システム二重化システム構成にもデュプレックスとデュアルがあります。一方、二重化しない一重のシステム構成のことをシンプレックスシステムと呼びます。障害が発生するとシステム全体が停止するため信頼性は一般的に低いです。
システムを二つ用意しておき、主系システムに障害が発生すると予備の従系に処理を切り替えます。処理の切り替えに時間がかかる点が弱点となります。ただしバッチ処理などの途中で処理が中断しても影響がない処理においては正常稼働時でも徒系システムを使用します。このデュプレックスシステムの徒系の待機状態には3つあります。
主系システムダウン時に瞬時に処理を徒系に切り替えできるように、オペレーティングシステムが稼働しておりプログラムもロードされている状態で待機します。
徒系ではオペレーティングシステムは稼働していますが、それ以外は稼働していない状態で待機します。主系システムダウン時にはプログラムをロードしてから実行します。
徒系システムでは全く異なる処理を実行しているか、電源が入っていない状態で待機します。主系システムダウン時には徒系システムを再起動させて処理を切り替えます。
同一機能を持ったシステムを二つ用意しておき、同時に二つのシステムを並列実行します。それぞれのシステムで得られた処理結果をお互いに照合することでシステムに障害が発生していないことを保障します。障害発生時は障害が発生しているシステムを切り離し、正常なシステムで処理を続行します。高い信頼性を得られますが、ランニングコストが高くつきます。
システムはHDDの故障などの部分的な障害は多いですが、地震などの災害でシステムを設置しているコンピュータセンタ全体が機能しなくなる事態も考えられます。このような状況に備えて異なった場所にバックアップセンタを設置します。
通常稼働させているコンピュータセンタから離れた場所にバックアップデータなどを用意しておき、通常利用しているコンピュータセンタが災害にあった場合でも比較的早期に復旧させることができます。
災害に備えて遠隔地に通信回線などの施設・設備を備えたスペースを確保しておき、災害発生時にはそのスペースに機器を搬入して処理を行います。復旧までの時間は比較的かかります。
システムを多重化するなどの冗長化によって障害が発生してもそれに耐えられるようにするという考え方です。システムの機能や性能が低下しても全体が停止しないようにします。
システム構成要素の個々の性能を上げることによって障害を避けようとする考え方です。物理的制約によってシステムを二重化できない場合に信頼性を高める方法のひとつです。スペースシャトルなどのシステムは物理的に積載できる重量が決められているため、システムの二重化が不可能です。そのため、機器個々の性能を上げることによって信頼性を確保します。
障害が発生しても被害につながらないようにするという考え方です。例えば踏み切りの遮断機は電磁石でバーを上げていますが、障害が発生すると磁力を失いバーが下ります。ノートPCなどで採用されている、落下を感知してHDDのヘッドを安全な位置に退避させるシステムもフェールセーフの考え方と言えます。
障害のある部分を切り離すなどしてシステムを縮小させても全体を停止させないようにする考え方です。いわゆるフォールバック(縮退)運転です。
初心者が誤操作などをして問題が発生しないようにする考え方です。息なり電源を切らないように、コンピュータの電源が入っている時は電源ボタンを押しても電源が切れないようにしたりする例などが挙げられます。
稼働率とは、システムがどれだけ障害を起こさずに稼働し続けるかという指標で、MTBFやMTTRで表します。一般的にMTBFが長ければ長いほど、MTTRが短ければ短いほど稼働率が高く信頼性が高いと言えます。
平均故障間隔です。故障から故障までの平均時間で、故障までの時間が長いほど信頼性は高いと言えます。この値はシステム全体が停止し、修理が必要になる間での時間ですのでシステムの二重化などで値を大きくすることがきます。
MTBF = 総稼働時間 / 総故障件数
故障している時間及び故障を修理している間の時間です。保守の困難性を表す指標で、システム全体が停止している時間ということになります。値が小さいほど故障している時間が短く信頼性が高いと言えます。
MTTR = 総修復時間 / 総故障件数
稼働率は可用性の指標のひとつで、MTBFとMTTRから計算します。全体の時間でシステム全体が停止していない時間の割合です。
稼働率 = MTBF / (MTBF + MTTR)
2______ 4__________ 3________ |修理| | 修理 | | 修理 | +--------------+----+------------+--------+----------------+------+ | 稼働 | | 稼働 | | 稼働 | ^^^^^^^^^^^^^^^^7 ^^^^^^^^^^^^^^6 ^^^^^^^^^^^^^^^^^^8
システムの稼働率を計算する場合、並列システムと直列システムとでは計算方法が異なります。直列システムは端末と端末が直列につながったシステムで、全ての端末が稼働している場合に限り、システムが稼働していると見なします。並列システムは端末と端末が並列につながったシステムで、どれかひとつでも端末が稼働していればシステムが稼働していると見なします。
[直列システム] +---------+ +---------+ -----| 端末A |-----| 端末B |----- +---------+ +---------+ [並列システム] +---------+ +-----| 端末A |-----+ | +---------+ | -------+ +------- | +---------+ | +-----| 端末B |-----+ +---------+
直列システムの場合、端末Aと端末Bの両方が稼働していなければシステムが稼働していないと見なすため、システム全体の稼働率は端末Aの稼働率と端末Bの稼働率を掛け合わせることで求められます。
直列システムで、それぞれの端末の稼働率が0.7の時、端末が5台のときのシステム全体の稼働率はいくらか
端末をTとおくと、全体の稼働率はT^5となります。
全体の稼働率 = T1 * T2 * T3 * T4 * T5
全体の稼働率 = 0.7 * 0.7 * 0.7 * 0.7 * 0.7 = 0.16807
以上の式により、この場合のシステム全体の稼働率は0.16807となります。
並列システムでは端末のうちどれかひとつでも稼働していればシステムが稼働していると見なすため、システム全体の稼働率は端末が稼働してない確立を全ての端末分掛け合わせ、1からその数を引くことで求められます。
[問題] 並列システムで、それぞれの端末の稼働率が0.7の時、端末が5台のときのシステム全体の稼働率はいくらか
端末をTとおくと、全体の稼働率は1 - (1 - T)^5となります。
全体の稼働率 = 1 - (1 - T1) * (1 - T2) * (1 - T3) * (1 - T4) * (1 - T5)
全体の稼働率 = 1 - (0.3 * 0.3 * 0.3 * 0.3 * 0.3) = 1 - 0.00243 = 0.99757
以上の式により、この場合のシステム全体の稼働率は0.99757となります。
並列システムで、それぞれの端末の稼働率が0.7の時、端末が3台のときのシステム全体の稼働率はいくらか。ただし、端末のうち2台が稼働していなければ全体が稼働していると見なさない
端末が3つ並列に並んだシステムの場合、次のような場合があります。
----------------------------------------------------------------- 状態 | 端末1 | 端末2 | 端末3 | 式 | 値 ----------------------------------------------------------------- 3つ稼働 | * | * | * | x^3 | x^3 ----------------------------------------------------------------- | * | * | - | x^2 * (1-x) | 2つ稼働 |-------------------------------------| | * | - | * | x^2 * (1-x) | 3x^2 * (1-x) 1つダウン|-------------------------------------| | - | * | * | x^2 * (1-x) | ----------------------------------------------------------------- | * | - | - | x * (1-x) | 1つ稼働 |-------------------------------------| | - | * | - | x * (1-x) | 3x * (1-x) 2つダウン|-------------------------------------| | - | - | * | x * (1-x) | ----------------------------------------------------------------- 3つダウン| - | - | - | (1-x)^3 | (1-x)^3 -----------------------------------------------------------------
この問題では2つ稼働していれば全体が稼働していると見なすため、2つ稼働しており1つダウンしている場合と全てが稼働している場合をたしたものとなります。上記の表でxを稼働率とすると、全体の稼働率はx^3 + 3x^2 * (1-x)となります。つまり、0.7 * 0.7 * 0.7 + 3 * 0.3^2 * (1 - 0.7) = 0.343 + 0.081 = 0.424が全体の稼働率です。