PR

システム全体の可用性を高める方法の一つは,システムを構成するサーバーなどを並列化することである。Part1では,「直列」と「並列」の稼働率の違いを示したうえで,可用性レベルの目標を明らかにする。

 24時間365日止めることのできない企業の基幹システム,すなわちミッションクリティカル(mission critical)なシステムでは99.999%といった高い稼働率が要求される。稼働率99.999%(ファイブ・ナインとも呼ばれる)とは,次式で求められるように,1年間のうち5分程度しかシステム停止が許されないということである。

   365日×24時間×60分 × (1 - 0.99999) = 5.256 (分)

 近年ではミッションクリティカルなシステムをオープンサーバーによって構築する事例が増えつつあるが,システムを構成する個々のコンポーネントの稼働率がまちまちなオープンシステムでは,システム構築・運用の仕方によって思わぬ個所がシステム全体の信頼性を左右する場合がある。

 こうした特性を押さえるために,Part1では,高信頼なシステムを構築しようとしたときの基本的な考え方について解説する。

可用性と稼働率の基本を知る

 可用性(Availability)は,稼働率によって計測することができる。システムに障害が発生しにくく,また万が一発生しても迅速に復旧できるシステムは,高可用(High Availability)なシステムと呼ばれる。従って,高可用なシステムほど高信頼であるとも言える。

 稼働率は次式で求めることができる。

稼働率

 ここで,MTBFは平均故障間隔(Mean Time Between Failure),MTTRは平均修理時間(Mean Time To Repair)である。

 この式からも分かるように,なるべく故障せず(MTBFが長い),壊れたとしてもすぐに修理できる(MTTRが短い)システムの稼働率が高い。

 複数のコンポーネントによって構成されるシステムの稼働率は,各コンポーネントの組み合わせ方で変わってくる。例えば,装置Aの稼働率をα,装置Bの稼働率をβとすると,この装置を直列につなぐのか,並列につなぐのかによって稼働率の計算式は次のように変わる。

 直列構成の場合,稼働率=α×βとなる(図1)。

図1●装置を直列につなぐ
図1●装置を直列につなぐ

 一方の並列構成では,稼働率=1-(1-α)×(1―β)となる(図2)。

図2●装置を並列につなぐ
図2●装置を並列につなぐ

実際の数字で稼働率を比べる

 この計算式だけでピンと来ないなら,実際に次のように数字を当てはめてみると分かりやすいだろう。

 MTBF=50000時間,MTTR=3時間のディスクドライブがあったとする(このMTBF,MTTRの値は最近のディスクドライブの品質から考えるとかなり低い値であるが,説明を簡単にするために,あえて小さい値を用いる)。

 このディスクドライブ単体の稼働率は

   50,000÷(50,000 + 3) = 99.994 (%)

と計算できる。

 このディスクドライブを2台直列につないだ構成と並列につないだ構成の,どちらのシステムの可用性が高いか評価してみよう。

 2台のディスクドライブを直列構成にしたとき,その稼働率は

   0.99994 × 0.99994 = 99.988 (%)

であり,ディスクドライブ単体の稼働率よりも低くなる。

図3●ディスクドライブを直列につなぐ
図3●ディスクドライブを直列につなぐ

 ただし,この構成の稼働率は,2台直列につないだディスクのうちどちらか1台のみが壊れたら,システムとして稼働できない状態になることを前提としている。例えば,ディスクAとディスクBにまたがった形でファイルシステムを配置したり,ディスクAにインデックスを,ディスクBにデータを配置するような構成の場合,どちらか1台のディスク障害によりシステムの稼働が停止する。この構成であっても,ソフトウエアのミラーリング機能によって,ディスクA,ディスクBをミラーリングする場合は,ディスク1台が故障したとしても,システムとして稼働できる場合がある。

 さて,2台のディスクドライブを並列構成にするとどうなるだろうか。2台並列構成の稼働率は

   1 - ( 1- 0.99994) × ( 1- 0.99994) = 99.9999996 (%)

となり,ディスクドライブ単体の稼働率よりも高くなる(図4)。

図4●ディスクドライブを並列につなぐ
図4●ディスクドライブを並列につなぐ

 この構成の稼働率は,ソフトウエアのミラーリング機能によって,ディスクA,ディスクBをミラーリングすることを前提としている。ミラーリングによって,どちらか一方のディスクが壊れても,システムとして稼働できる。