Jbossのドキュメントを読んだところによると、
高可用性とは、1つ以上のサーバーに障害が発生した後もシステムが機能し続ける能力と定義しています。高可用性の一部はフェイルオーバーです。これは、サーバーに障害が発生した場合にクライアント接続をあるサーバーから別のサーバーに移行して、クライアントアプリケーションが引き続き動作できるようにする機能として定義されています。
フェイルオーバーは高可用性の一部ですか?フェイルオーバーと高可用性をどのように区別できますか?
高可用性
サーバーシステムが何らかの方法で障害に耐性があるという事実を指します。ほとんどの場合、これはハードウェアの冗長性を使用して行われます。マシンに冗長電源があると仮定します。1つに障害が発生した場合、マシンは稼働し続けます。
フェイルオーバー
次に、アプリケーションの冗長性(フェイルオーバー)があります。これは通常、複数のハードウェアインストールで実行されているアプリケーションが、それらのハードウェアインストールのいずれかから一貫した方法でクライアントに応答する機能を指します。そうすれば、ハードウェアに完全な障害が発生した場合、または特定のマシンでO/Sが停止した場合でも、別のマシンで続行できます。
SQL Serverは、次の4つの方法でアプリケーションの冗長性を処理します。
フェイルオーバーは、高可用性(HA)を実現する手段です。 HAを機能と考え、フェイルオーバーをその機能の可能な実装の1つと考えてください。 HAを達成する際の考慮事項は、フェイルオーバーだけではありません。
たとえば、Cassandraはレプリケーションを通じてHAを実現しますが、可用性の程度はデータ整合性設定によって決定されます。本質的に、これらの設定は、応答する必要のあるノードの数を決定します。成功するためのアクション(読み取りまたは書き込み)。応答するノードが多いほど可用性が低くなり、必要なノードが少ないほど可用性が高くなります。これは、厳密に言えば、フェイルオーバーとは関係のないHAの例です。