17.8. 高可用性

17.8.1. HornetQ Shared の共有ストアについて

共有ストアを使用する場合、ライブサーバーとバックアップサーバーの両方が共有のファイルシステムを使用して同じデータディレクトリ全体を共有します。これには、ページングディレクトリ、ジャーナルディレクトリ、大型のメッセージ、およびバインディングジャーナルが含まれます。フェイルオーバーが発生し、バックアップサーバーが引き継ぐと、共有ファイルシステムより永続ストレージをロードします。その後、クライアントの接続が可能になります。

重要

HornetQ は SAN 上の GFS2 の共有ストアをサポートし、NFSv4 上の高可用性もサポートします。高可用性に NIO を使用できないため、これらのオプションには journal-type 属性を ASYNCIO に設定する必要があります。

重要

HornetQ は、以下に示す厳格な設定ガイドライン下で NFS をサポートします。
このような形式の高可用性はデータレプリケーションとは異なります。これは、ライブおよびバックアップノードの両方が共有ファイルシステムにアクセスできなければならないためです。通常は、高性能なストレージエリアネットワーク (SAN) になります。

警告

Red Hat Enterprise Linux を使用している場合を除き、NIO (ノンブロッキング I/O) の使用時は共有ジャーナルの格納に NFS マウントを使用しないでください。これは、使用される NFS 実装が原因です。
Red Hat Enterprise Linux の NFS 実装は、ダイレクト I/O (O_DIRECT フラグセットでファイルを開く) およびカーネルベースの非同期 I/O の両方をサポートします。これらの機能が両方あるため、厳格な設定ルール下で NFS を共有ストレージオプションとして使用可能です。
  • HornetQ は、ジャーナルタイプ ASYNCIO を使用するよう設定する必要があります。
  • Red Hat Enterprise Linux NFS クライアントのキャッシュは無効にする必要があります。

重要

サーバーログは、JBoss Enterprise Application Platform 6 が起動された後にチェックし、ネイティブライブラリーが正常にロードされ、ASYNCIO ジャーナルタイプが使用されることを確認する必要があります。ネイティブライブラリーのロードに失敗した場合は、HornetQ が失敗して NIO ジャーナルタイプを使用し、これはサーバーログに示されます。

重要

非同期 I/O を実装するネイティブライブラリーを使用するには、libaio が、JBoss Enterprise Application Platform 6 が実行されている Red Hat Enterprise Linux システムにインストールされている必要があります。

注記

上記の規定下で NFS を使用する場合、高可用性の NFS 設定を使用することが推奨されます。
共有ストアの高可用性の利点は、ライブノードとバックアップノードの間でレプリケーションが発生しないことです。そのため、通常の操作中にレプリケーションのオーバーヘッドによってパフォーマンスが劣化しません。
共有ストアのレプリケーションの難点は、共有ファイルシステムが必要となり、バックアップサーバーが有効になると共有ストアからジャーナルをロードする必要があることです。ストアに格納されているデータの量によってはロードに時間がかかることがあります。
通常の操作中に最良のパフォーマンスが必要で、高速の SAN にアクセスでき、若干速度が遅いフェイルオーバーを許可する (データの量に応じて) 場合は、共有ストアの高可用性が推奨されます。