サイト運用から顧客体験管理までCXM・CMSのHeartCoreシリーズ

MySQL Cluster Carrier Grade Edition

概要

MySQL Cluster Carrier Grade Editionは、共有ディスクを使用せずアクティブ-アクティブのクラスタ構成が組めるデータベース「MySQL Cluster」の商用パッケージで、コンサルティングなどのサポートサービスはもちろん、クラスタ化の作業を簡素化する「MySQL Cluster Manager」が含まれています。(MySQL Enterprise Editionに包含されているMySQL Enterprise MonitorやMySQL Enterprise Backupなどの追加機能もすべて提供されます。)

MySQL Clusterは、元々MySQLとは開発の基盤が異なっており、NDB(Ericsson Network DataBase)と呼ばれる携帯通信網の加入者データベースで使われていた技術を、MySQLと統合したものです。
そのため、現在ではNoSQLとSQLの両方が使えるデータベースとなっています。

単一障害点のない構成が組めるなど、その可用性の高さから、電子取引や管制システムなどミッションクリティカルな分野に多く利用されています。

図1

主な特徴

高可用性

MySQL Clusterは、単一障害点が無い構成を組めるデータベースで、99.999%の高可用性を達成するための設計が成されており、年間5分程度ダウンタイムで済みます。
アーキテクチャは、分散ノードアーキテクチャを採用しています。データを格納する「データノード」、SQLによるデータアクセスに関わる「SQLノード」、データノードとSQLノードを管理する「管理ノード」の3つのノードから構成されます。データの格納にデータノードのストレージエンジンを使い、データにSQLノードを通じてSQLでアクセスし、データはレプリケーションが行われることで保障されているという仕組みをとっています。

  • ノード復旧機能が充実している
  • 複数ホストでの実行により障害時でもMySQL Clusterをダウンさせない
  • ノード停止によるデータ損失が無い
  • シェアード・ナッシングを採用し、複数プロセスにて論理的にデータを共有できる

スケーラビリティ

最大255のノードをサポートしていますが、当初はノードは少なく設定しても十分にクラスタの機能を発揮します。データおよびトランザクションの増加にともなって拡張できるので、段階的にコストをかけることができます。

また、自動シャーディングと呼ばれる技術により、データを分解して複数のサーバーに分散することで、参照処理だけでなく、書き込み処理に対しても高い拡張性を持っています。
シャーディングは、アプリケーションに対して透過的に実行され、アプリケーションはクラスタ内の任意のノードに接続可能です。クエリーは正しいシャードへ自動的に接続されます。

リアルタイムパフォーマンス

MySQL Clusterは、デフォルトではデータをメモリ上に持つインメモリデータベースであるため、トランザクションを高速に処理できるという特長から、オンラインゲームなどのリアルタイム性が求められるアプリケーションにも適しています。(インメモリであっても、データの永続性は担保されています)。

フェイルオーバーおよびリカバリ

ノードで障害が発生した場合には1秒以内に他のノードをメインに変更できる(ファイルオーバー)ので、システムが停止するということをありません。
障害発生時の対応として、自己自動修復・自動再起動・自動再構成を行います。
クラスタの障害対応は万全が期されていますが、障害がおこらないようにするために、ノードの追加・データベースの変更・ハードウェアやソフトウェアのメンテナンス作業も必要です。
その作業も、システムやデータベースを止めることなくオンラインで可能です。

遠隔地レプリケーション

サイトの障害対応として、本番サーバーを複数の土地に用意してデータをレプリケーションするという方法があります。MySQLは、このレプリケーションも可能です。
トランザクション・ログを非同期でディスクに書き込み、ボトルネックを抑えています。
また、複数のMySQLサーバーノードやアプリケーションノードも付けるので、トランザクションアプリケーションでも問題ありません。
書き込みリクエストを全てのデータノードに分配する等、トランザクションに必要な処理能力を提供しています。

図2

データアクセス

SQL以外にもネイティブC++、Java、OpenJPA, LDAPおよびHTTPインタフェースでデータを管理できます。MySQL Cluster7.3では、新たにnode.js向けJavaScriptコネクタが追加されました。

低総所有コスト

コモディティ化された各種オペレーティングシステムやハードウェアで使うことができ、環境の負荷増大に応じてノード追加変更できるため、導入に関するコストを抑えます。

ENGLISH

コンテンツメニュー

03-3493-5160