「可用性要件」を満たすデータベースのシステム構成を考える(2/3 ページ)
本連載は、企業の成長に不可欠な「データ活用」を推進していくために必要なデータ基盤の基礎を“あらためて”解説していきます。今回は、データベースシステムに求められる非機能要件について整理し、中でも優先度の高い可用性要件を満たすデータベースシステムの構成について解説します。【更新版】
サーバの可用性を高めるには
サーバに障害が発生すると、それが復旧するまでサービスを提供できません。そうならないように備えるならば、予備のサーバを複数台用意しておけばよさそうです。しかし、それだけで十分でしょうか。
サーバを複数台用意していたとしても障害の対処に時間がかかってしまうのであれば、結局は可用性要件を満たせていないことなります。つまり、障害の発生を認識し、データベースシステムやアプリケーションを一時停止した上で予備のサーバにストレージをつなぎ換えて、データベースシステムやアプリケーションをあらためて起動させる──。このような自動化の仕組みが必要になるでしょう。
この仕組みを実現するソフトウェアが「クラスタリングソフトウェア」です。クラスタリングソフトウェアは、データベースシステムを含むアプリケーションやCPU、メモリ、ストレージなどをリソースとして管理するソフトウェアです。具体的には、システムが正常に動いているかどうかを監視する「リソースの死活監視」を実施して、障害の発生を検知した場合には、自動的に予備のサーバへ切り替える仕組みを提供します。
このクラスタリング構成には「フェイルオーバー型クラスタリング」と「ロードバランス型クラスタリング」があります。
「フェイルオーバー型クラスタリング構成」とは何か
フェイルオーバー型クラスタリング構成では、シングルインスタンス構成と同じように1つのインスタンスが1つのデータベースを管理しています。シングルインスタンス構成との違いは、クラスタリングソフトウェアによってサーバ障害が検知されると、自動的に待機サーバでインスタンスが起動する仕組みが実装されていることです(図2)。
システムが自動的に障害の検知、リソースの切り替え、待機サーバでの復旧までを行うので、障害からは迅速に復旧できます。つまり、シングルインスタンス構成よりも「可用性の高い構成」といえます。
切り替えの時間は、「障害の検知」→「リソースの停止」→「リソースの切り替え」→「リソースの起動」の合計時間となります。その時間がシステムの可用性要件を満たすのであれば、シンプルな構成で高い可用性を持つデータベースシステムを構築できたということになります。
「ロードバランス型クラスタリング構成」とは何か
前述したフェイルオーバー型クラスタリング構成は、稼働する1台のノードで処理を行う構成でした。それに対して、構成するノードのリソースを全て使ってアプリケーションからの要求を処理するクラスタリング構成のことを、ロードバランス型クラスタリング構成と呼びます。データベースシステムでは、各ノードでインスタンスを起動し、共有ストレージ上のデータベースを管理する構成となります(図3)。
例えばOracle Databaseでは、「Oracle Real Application Clusters」と呼ばれるOracle Database独自のクラスタリング機能を用いて実装します。
ロードバランス型クラスタリング構成では、フェイルオーバー型クラスタリング構成と違い、あるノードでハードウェア障害が発生したとしても、他のノードに接続しているアプリケーションは障害の影響を受けずに処理を継続できます。また、障害が発生したノードにアクセスしていたアプリケーションも、他のノードに接続を切り替えればサービスを止めずに済みます。こうすることで高い可用性を実現します。
ハードウェアにSPOFが存在しないように実装する
どちらのクラスタリング構成においても、シングルインスタンス構成時のハードウェアに加えて、複数台のサーバと共有ストレージ、クラスタソフトウェアが「ハートビート通信」(システムが正常に稼働していることを伝えるための信号と、それを認識する仕組み)を行うためのネットワークが必要となります。それぞれのハードウェアにSPOF(単一障害点:それに障害が発生すると、システム全体の障害につながってしまう箇所)が存在しないように実装することで、さらに可用性を高められます(図4)。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- SQLの基礎 「SELECT」文を覚えよう
- SQLとはどういう言語か
「SQLは何となく苦手」という人は意外と多いものです。すでに何らかのプログラミング言語を習得している人を見ても、SQLを苦手としている人は少なくありません。そこで、実際にSQLを入力して結果を見ながら学習する連載を始めます。用意するのはインターネットにつながったWebブラウザだけ。気軽に始めてみてください。(編集部) - RDBMS製品のビッグ3、それぞれの“癖”をつかもう
本連載はOracleを使ったデータベースシステムの開発・運用管理にある程度の知識を持つ読者を対象に、Oracle以外の商用RDBMSであるMicrosoft SQL ServerとIBM DB2とのアーキテクチャの違いを明らかにし、マルチベンダに対応できるデータベースシステムの設計・開発・運用ノウハウを紹介していく。(編集局) - NoSQLはRDBMSに取って代わるものなのか?
「memcached」や「Apache Cassandra」、「Apache CouchDB」など、RDBMSとは異なる考えで設計してあるデータベース管理システムが普及しつつあります。この連載では、これら新しいデータベース管理システムの特徴と、RDBMSとの使い分け方について解説します。(編集部)