ITIL 徒然草

コンポーネントの可用性


サービスの構成要素をコンポーネントと呼びます。例えば、サービスの機能を提供する アプリケーションや稼働するサーバなどがコンポーネントです。さらに細かく分解すれば、 サーバのメモリ、ストレージ、電源ユニットなどもコンポーネントになります。

サービスの可用性は、コンポーネントの可用性の積み重ねです。つまり、メモリ、ストレージ、 電源ユニットなどの可用性の積がサーバの可用性であり、そのサーバやアプリケーションなど の可用性の積がサービスの可用性になります。

例えば、3つのコンポーネントに分解できるサービスの、それぞれのコンポーネントの可用性が 99.9%だとすると、0.999 x 0.999 x 0.999 = 0.997002999 となり、サービスの可用性は約99.7% である予測できる訳です。

積であるということは、コンポーネントの数が多ければ多いほど、サービスが中断する 可能性が高まるということです。そこで、考えるのがコンポーネントの冗長化です。 複数のコンポーネントを並列に組み込むことで、1つのコンポーネントが壊れても 別のコンポーネントによってサービスを継続することができます。

ネットワークで複数のルートを確保するとか、ディスクをミラー化するというテクニックは、 コンポーネントの冗長化の身近な例になります。この場合に期待できる可用性も また計算することができます。つまり、どちらも使えない可能性を 計算して、そこから少なくてもどちらか一方が使える可能性を導き出します。

先ほどの例で、3つのコンポーネントの一つを冗長化すると、予測される 可用性は次のようになります。

冗長化したコンポーネントのどちらも使えない可能性
(1 - 0.999) x (1 - 0.999) = 0.000001
少なくてもどちらか一方のコンポーネントが使える可能性
1 - 0.000001 = 0.999999
冗長化されたコンポーネントと他の2つのコンポーネントによるサービスの可用性
0.999 x 0.999 x 0.999999 = 0.998000001999

これは、約99.8%の可用性が期待できるということを意味しています。

ここまでは確率の計算であり、中学までの数学をきちんと学んでいれば 答えを出すことができます。しかし、これはあくまでも計算上の話であるということも 頭に入れておく必要があります。計算による予測と実際の可用性にギャップを 生み出す可能性は残されており、その主な要因はそこに人が介在するということです。

間接的に人が関係する要因をとして、サービスを供給する環境を挙げることができます。 例えば、空調が十分でない環境でサーバを稼働させれば、サーバを構成する コンポーネントの故障間隔は短くなります。つまり、故障しやすくなるわけで、 当然サーバというコンポーネントの可用性も下がり、結果として サービスの可用性も下がります。

サービスの可用性を検討する場合には、人のスキルや行動指針もまた コンポーネントの1つと考える必要があります。

次回は、2009/10/10 の予定です。

第82話 第84話