可用性:availabilityとは、必要なタイミングで、
要求されるサービスを提供できるシステム性能のことです。
サービスが利用できなければ、そのサービスで獲得できたはずの
利益が失われてしまします。(→利益機会逸失と言います)
可用性が高いということは、障害が発生しにく、障害が発生しても
その障害規模が小さく、修復が早いということです。
つまり可用性対策とは、可用性を高めるための対策です。
そのためには、日頃から障害が起きないように
「運用面での対策」
と
「障害や災害が起きた場合の対策」
を行う必要があります。
そのためには、起こりえる障害を予想して、項目を洗い出し、
それら項目に対して、事前に策を講じなければなりません。
可用性対策として用いられる基本的な考え方には、 システムの個々の構成要素の信頼性を高めて故障そのものを起こさないようにする 『フォールトアボイダンス』(Fault Avoidance)と、 故障しても問題が大きくならないように工夫する 『フォールト・トレランス』(Fault Tolerance:耐障害性) の2つの考え方があります。 (fault”は欠点、失敗の意味で、“tolerance”は耐久力の意味の語です。
フォールト・トレランスには、冗長性を持たせて信頼性を高める方法が使われます。
例えばシステムの一部が故障しても、全体には影響を与えずに処理を続け、
その間に故障部分を修理できるようにするわけです。
それには無停電電源装置の導入や、交換のし易さなども含みます。
これを発展させて、故障してもシステムが停止することなく処理を継続し続けるシステムを
フォールトトレランスシステムと呼びます。
(ノンストップコンピュータに要求される技術といえます。)
フォールト・トレランスの性能を上げる場合、
フェールソフト(fail soft)とフェールセーフ(fail safe)の
考え方があります。
フェールソフトとは、故障した個所を切り離すなどして
障害の影響が他に及ぼされるのを防ぎ、システム稼動をし続けるための技術です。
システムの要所を冗長化し、故障時に対する自動的対処機能などです。
特に、性能や機能を縮小してもサービスをし続けることを
フォールバック(fallback:縮退運転)と呼びます。
例えば、通信などで、回線状況でが悪化しても、低速のモードに切り替えるなどして
質が低下しても接続は維持する機能やサービスなどです。
また、「設備を必要最小限よりも多く用意して、システムを冗長化させて
障害に備えることにより、フェールソフトを実現する」の考え方のフェールオーバー
も使われます。
フェールソフトの例として、RAID(Redundant Array of Inexpensive Disks)1やRAID5利用のシステムや、デュアルシステム、
デュプレックスシステムなどが挙げられます。
デュアルシステムは、2つのシステムに同じ処理を行わせること
により信頼性を高めるシステムで、
デュプレックスシステムは、同じ構成のシステムを2系統用意するが、
処理を行うのは一方だけです。
デュプレックスシステムは次の2つの種類があります。
ホットスタンバイ:一方は通電するが待機状態にしておき、 主系に障害が発生すると即時に切り替えます可能です。
コールドスタンバイ:一方は動作させずに待機させ、 主系に障害が発生する時点で立ち上げて切り替えます。
他にシステムの電源をいるているがサービスを起動していない待機を、 ウォームスタンバイと呼ぶ場合もあるようです。
フェールセーフは、
故障が発生したときに、被害を最小限にとどめる安全思想の対策です。
故障に備えて二重安全装置を装備するなどの対策が挙げられます。
停止してはならないシステムを前提する場合や、
データが壊れることを防ぐをとを前提する場合など、
守るべき対象によって違いますが、
危険な状態へと移行しないことを突詰めると
結果的、フェールソフトを実践することに結びつきます。
また、障害時につながる可能性を下げる考えの一つで、
フールプルーフ(fool proof)が挙げられます。
これは、利用者が誤った操作をしても障害がおきないように
設計の段階で安全対策を施しておくことです。
(例:電池の+と−を逆にした時、セットできないような構造など)
直訳すれば「愚か者にも耐えられる」で、「人間はミスするもの」を前提に
した安全設計です。