可用性
可用性とは、システム稼働の持続性を図る尺度です。システムが本来稼働すべき時間に対して、実際に稼働していた時間、またはサービスを提供していた時間の割合で示されます。
一般的な可用性レベル
システムの可用性のレベルは、9(ナイン)の数によって区分され、さらに「高可用性」や「フォールトトレラント」などの用語で示されます。システムの利用可能な時間の割合が99%(ツーナイン)の場合、全体の1%の時間はシステムを利用できないことになります。1年間を525,600分とした場合、「99(ツーナイン)」のシステムでは、そのうちの5,256分、つまり約88時間(4日間)はシステムがダウンするものと想定されます。特定の状況下では、この ダウンタイムのコストが高くつくこともあります。
可用性 | 「9(ナイン)」の数 | 年間のダウンタイム | 一般的な名称 |
---|---|---|---|
99.9% | スリーナイン | 526分以下 | 可用性がある |
99.99% | フォーナイン | 53分以下 | 可用性が高い |
99.999% | ファイブナイン | 5分以下 | フォールトトレラント |
一般的に、「フォーナイン」および「ファイブナイン」を実現する平均的な可用性の高いシステムを、「高可用性」または「フォールト トレラント」システムと呼びます。
可用性を高める一般的な方法
企業では、可用性を高めるために、システムの信頼性と回復力の向上、バックアップ/リカバリ機能の実装、フェイルオーバー サービスを備えた冗長型クラスタ(物理または仮想)の導入など、すでに実績ある方法を採用しています。
高耐久性、ファンレス設計、IP40規格準拠
信頼性と回復力の高いシステムの使用
可用性を向上させる方法の1つとして、より信頼性の高いシステムを使用することが考えられます。システムの耐久性と信頼性が高ければ高いほど、システムが故障する可能性は低くなります。故障が少ないほど時間の稼働が可能となり、利用可能な時間も当然長くなります。
これに関連した可用性向上の方法として、より回復力の高いシステム、つまり障害から迅速に復旧できるシステムを実装することが挙げられます。システムの修復からサービス再開までの時間を短縮することで、ダウンタイムを短縮し全体的な可用性を向上させることができます。システムが毎回迅速に復旧できるのであれば、故障の頻度はそれほど重要ではなくなることは興味深い点です。
バックアップとリカバリ機能の実装
ただし、信頼性と回復力には限界があります。多くの場合、システムの可用性だけでなくデータ保護とデータの整合性も考慮しなければなりません。
可用性に対して、より総合的なアプローチを採用している企業は、定期的にデータをバックアップし、予備システムをインベントリに装備しています。本番システムが重大な障害に見舞われた場合、予備システムでサービスを再開し、必要なデータをアーカイブからリカバリします。
バックアップおよびリカバリサービスを設定するには、ある程度のスキルが必要です。また、リカバリに要する時間は、アプリケーション、データ量、スペアパーツがすぐに入手可能かどうかによって、数時間から数日までさまざまです。
ネイティブ/仮想クラスタリングとフェイルオーバー サービスの使用
企業によっては、サービス復旧までの時間に数時間や数日を要しても許容できる場合もあります。しかしながら、相対的なダウンタイムのコストが高い企業では、アプリケーションとデータの両方について、より回復力の高いアプローチが必要です。
クラスタリングやフェイルオーバーはバックアップやリカバリと同じ原理を用いていますが、サービス復旧までの時間を短縮するためには、システムを複製してすぐに再開できるようにするといった事前の準備が求められます。そのような冗長システムでは、複数システムが組み合わされ、データが共有されます。通常、1つのシステムがプライマリとして機能し、そのシステム上でユーザーがアプリケーションやデータにアクセスできるようにします。一方、セカンダリシステムはバックアップとして機能し、必要になるまで休止状態にするか(パッシブ)、別のアプリケーションを実行するために使用します(アクティブ)。プライマリシステムに障害が発生すると、共有データへの接続が確立されている限り、それまで実行していたアプリケーションがセカンダリシステムに「フェイルオーバー」し、セカンダリシステムで実行を再開します。
仮想化技術の出現により、クラスタリングやフェイルオーバーの概念は仮想システムにまで拡張されました。現在、仮想化技術とクラスタリング技術は、仮想マシン(VM)のポータビリティを活用して、仮想マシン上で実行されるフェイルオーバーアプリケーションと物理システムを組み合わせるようになっています。