Symfoware(R) Server 概説書 - FUJITSU -
目次 索引 前ページ次ページ

上へ第5章 Symfoware Serverの機能
上へ5.4 クラスタシステム

5.4.2 ロードシェア

インターネットビジネスは、ユーザにとって使い易さ、コストパフォーマンスの良さから、適用業務の範囲を次第に広げ、さまざまな形態で使われるようになってきました。また適用業務が多様化するとともに、クライアントの数も急増しています。

このため、多クライアントへのサービス拡大に向けて、情報システムは、優れた性能はもちろんのこと、業務拡大に柔軟に対応するスケーラビリティ(高拡張性)と、利用したい時にいつでも利用できる高可用性が重要となります。

Symfoware Serverでは、高拡張性や高可用性を実現するために、クラスタシステム上で、複数ノードでトランザクションを並列に処理するロードシェを用意しています。

また、Symfoware Serverのロードシェアが対応するクラスタシステムには、以下があります。

ロードシェアについての詳細は、“クラスタ導入運用ガイド”を参照してください。

ロードシェアの概要について、以下に示します。

[図:ロードシェア]

image

ロードシェア機能を適用すると、複数ノードに分散配置したデータベースを並列に処理することで、単一ノードに比べて高性能な処理能力を発揮します。また、処理能力が不足した場合には、ノードを追加することで、システムを再構築することなく、ノード数に比例した処理能力を実現できます。

一般的に、クラスタシステムでの並列トランザクション技術には、以下の2つの方式があります。

Shared Everything方式は、クラスタシステムのノード数が増えると、ロック機構のオーバヘッドが大きくなり、処理能力に一定の限界が発生します。

Symfoware Serverでは、Shared Nothing方式を採用し、ノード台数の増加に比例した性能を実現することができます。

Shared Everything方式とShared Nothing方式の差によるロードシェアの適用効果について、以下に示します。

[図:ロードシェアの適用効果]

image

ロードシェアについて、以下の機能を説明します。

スケーラブル・パーティショニン

ロードシェアでは、パーティショニングを採用することにより、このパーティショニングした単位をそれぞれクラスタの各ノードに分散して配置することができます。表やインデックスをパーティショニングして分散配置することにより、ノードごとで自立性の高い運用が可能となります。

フラッシュ・トリートメント・リカバ

ノード数の増加に従って、スケーラブルに処理能力は増大しますが、その分ノードダウンの確率も増えるのは必然です。そのためノードダウン時には少しでも早い切替え速度が要求されます。Symfoware Serverでは、そのような要件に応えるべくフラッシュ・トリートメント・リカバリ機能を提供しています。クラスタ環境における高速インタコネクトを利用し、運用ノードから待機ノードへ、最適な間隔で更新ログを送信する事で、いつ切換えが発生しても、常に更新ログはメモリ上に存在します。このため、ログの読込みはほとんど不要です。さらに切替え時間の短縮を行うべく、ダウンリカバはディレイド・トランザクション・リカバリ方式を採用しました。仕掛中のトランザクションの表やインデックスのリカバリは業務と並行して、バックグラウンドで行うため、瞬時の業務再開が可能です。

高速インタコネクト制

クラスタを構成する各ノードは高速インタコネクト装置で結合されます。ロードシェアは、高速インタコネクトによって高速なノード間通信が可能であり、並列処理と合わせて、トータルスループット性能を保証します。

通信インタフェースは、PRIMECLUSTERでは、次世代I/OアーキテクチャであるInfiniBand仕様に準拠しており、SafeCLUSTERでは、業界標準のVI Architecture(Virtual Interface Architecture)に準拠しています。

2フェーズ・コミット制

ロードシェアでは、表やインデックスをノード間で共用するのではなく、表やインデックスを細分化した単位で管理します。したがって、複数の細分化された表をアクセスするトランザクションは、ノードをまたぐことがあります。このようなトランザクションは自動的に2フェーズ・コミット制御が行われるので、アプリケーションが意識する必要はありません。

ノード間の排他制

Symfoware Serverでは、トランザクションを並列に処理する技術として、Shared Nothing方式を採用しています。この方式では、排他処理はすべてデータを管理するノードごとに行われます。そのため、ノードをまたがったデータアクセスであっても、そのことを意識した排他制御が不要です。また、ノードをまたがったデッドロッを自動検出し、デッドロックの原因となっているトランザクションをキャンセルします。

デッドロックの原因となっているアプリケーションが不明でも、デッドロック発生をモニタするコマンドによって、アプリケーション名と実行ノードを特定することができます。

システム拡張への対

表やインデックスをノード間で共用せずに、各ノードで管理する(Shared Nothing方式)ので、ノード間のロック・オーバヘッドが最小になり、性能スケーラブルなシステム拡張が可能です。 またデータ操作は管理ノードでのリモートアクセス方式をとるため、データベース・バッファの活用効果が最大になります。

業務の拡大やトランザクション量の増加、利用者の増加などによりシステムの処理能力が不足しても、コンピュータをアドオンすることで、システムを拡張することができます。

縮退運

何らかの原因でノードダウンが発生した場合でも、システムの縮退運転が可能です。Symfoware Serverでは、ノードごとに表やインデックスを細分化した単位で管理しているため、ダウンしたノードで管理している表やインデックス以外は継続して利用可能です。したがって、1つのノードダウンがシステムとしての運用停止を引き起こすことはありません。

パラレル・ダウンリカバ

Symfoware Serverでは、ダウンリカバ処理においても並列化技術を導入しています。ログの読み込みを行う専用スレッドが先行して起動し、ログの読み込みを開始します。それに追随してログをデータベースに適用するリカバリスレッドがパーティショニングされた表やインデックスの数に応じて最適な個数が起動します。それぞれのリカバリスレッドが先に読み込まれたログに従って、並列にログ適用処理を実施します。これによりログの読込み、データベースのリカバリ処理すべてが並列に動作し、リカバリ時間が短縮されます。


目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2003