Symfoware(R) Server 概説書 - FUJITSU - |
目次 索引 |
インターネットビジネスは、ユーザにとって使い易さ、コストパフォーマンスの良さから、適用業務の範囲を次第に広げ、さまざまな形態で使われるようになってきました。また適用業務が多様化するとともに、クライアントの数も急増しています。
このため、多クライアントへのサービス拡大に向けて、情報システムは、優れた性能はもちろんのこと、業務拡大に柔軟に対応するスケーラビリティ(高拡張性)と、利用したい時にいつでも利用できる高可用性が重要となります。
Symfoware Serverでは、高拡張性や高可用性を実現するために、クラスタシステム上で、複数ノードでトランザクションを並列に処理するロードシェアを用意しています。
また、Symfoware Serverのロードシェアが対応するクラスタシステムには、以下があります。
ロードシェアについての詳細は、“クラスタ導入運用ガイド”を参照してください。
ロードシェアの概要について、以下に示します。
ロードシェア機能を適用すると、複数ノードに分散配置したデータベースを並列に処理することで、単一ノードに比べて高性能な処理能力を発揮します。また、処理能力が不足した場合には、ノードを追加することで、システムを再構築することなく、ノード数に比例した処理能力を実現できます。
一般的に、クラスタシステムでの並列トランザクション技術には、以下の2つの方式があります。
Shared Everything方式
データベースをどのノードからも直接アクセスするもので、クラスタシステムを構成するすべてのノードとの間で、データのロック機構を採って処理する方式です。
Shared Nothing方式
データベースのアクセス管理をノードと対応させ、管理下のデータベースは、単一のノードの場合と同じく、そのノード内だけで排他を取り、直接アクセスします。管理外のデータベースに対するアクセスは、そのデータベースを管理するノードに処理要求を出して、間接的にアクセスする方式です。
Shared Everything方式は、クラスタシステムのノード数が増えると、ロック機構のオーバヘッドが大きくなり、処理能力に一定の限界が発生します。
Symfoware Serverでは、Shared Nothing方式を採用し、ノード台数の増加に比例した性能を実現することができます。
Shared Everything方式とShared Nothing方式の差によるロードシェアの適用効果について、以下に示します。
ロードシェアについて、以下の機能を説明します。
ロードシェアでは、パーティショニングを採用することにより、このパーティショニングした単位をそれぞれクラスタの各ノードに分散して配置することができます。表やインデックスをパーティショニングして分散配置することにより、ノードごとで自立性の高い運用が可能となります。
ノード数の増加に従って、スケーラブルに処理能力は増大しますが、その分ノードダウンの確率も増えるのは必然です。そのためノードダウン時には少しでも早い切替え速度が要求されます。Symfoware Serverでは、そのような要件に応えるべくフラッシュ・トリートメント・リカバリ機能を提供しています。クラスタ環境における高速インタコネクトを利用し、運用ノードから待機ノードへ、最適な間隔で更新ログを送信する事で、いつ切換えが発生しても、常に更新ログはメモリ上に存在します。このため、ログの読込みはほとんど不要です。さらに切替え時間の短縮を行うべく、ダウンリカバリはディレイド・トランザクション・リカバリ方式を採用しました。仕掛中のトランザクションの表やインデックスのリカバリは業務と並行して、バックグラウンドで行うため、瞬時の業務再開が可能です。
クラスタを構成する各ノードは高速インタコネクト装置で結合されます。ロードシェアは、高速インタコネクトによって高速なノード間通信が可能であり、並列処理と合わせて、トータルスループット性能を保証します。
通信インタフェースは、PRIMECLUSTERでは、次世代I/OアーキテクチャであるInfiniBand仕様に準拠しており、SafeCLUSTERでは、業界標準のVI Architecture(Virtual Interface Architecture)に準拠しています。
ロードシェアでは、表やインデックスをノード間で共用するのではなく、表やインデックスを細分化した単位で管理します。したがって、複数の細分化された表をアクセスするトランザクションは、ノードをまたぐことがあります。このようなトランザクションは自動的に2フェーズ・コミット制御が行われるので、アプリケーションが意識する必要はありません。
Symfoware Serverでは、トランザクションを並列に処理する技術として、Shared Nothing方式を採用しています。この方式では、排他処理はすべてデータを管理するノードごとに行われます。そのため、ノードをまたがったデータアクセスであっても、そのことを意識した排他制御が不要です。また、ノードをまたがったデッドロックを自動検出し、デッドロックの原因となっているトランザクションをキャンセルします。
デッドロックの原因となっているアプリケーションが不明でも、デッドロック発生をモニタするコマンドによって、アプリケーション名と実行ノードを特定することができます。
表やインデックスをノード間で共用せずに、各ノードで管理する(Shared Nothing方式)ので、ノード間のロック・オーバヘッドが最小になり、性能スケーラブルなシステム拡張が可能です。 またデータ操作は管理ノードでのリモートアクセス方式をとるため、データベース・バッファの活用効果が最大になります。
業務の拡大やトランザクション量の増加、利用者の増加などによりシステムの処理能力が不足しても、コンピュータをアドオンすることで、システムを拡張することができます。
何らかの原因でノードダウンが発生した場合でも、システムの縮退運転が可能です。Symfoware Serverでは、ノードごとに表やインデックスを細分化した単位で管理しているため、ダウンしたノードで管理している表やインデックス以外は継続して利用可能です。したがって、1つのノードダウンがシステムとしての運用停止を引き起こすことはありません。
Symfoware Serverでは、ダウンリカバリ処理においても並列化技術を導入しています。ログの読み込みを行う専用スレッドが先行して起動し、ログの読み込みを開始します。それに追随してログをデータベースに適用するリカバリスレッドがパーティショニングされた表やインデックスの数に応じて最適な個数が起動します。それぞれのリカバリスレッドが先に読み込まれたログに従って、並列にログ適用処理を実施します。これによりログの読込み、データベースのリカバリ処理すべてが並列に動作し、リカバリ時間が短縮されます。
目次 索引 |