トップ OSS紹介 MySQL Cluster

MySQL Cluster

サポート対象

NRIのOpenStandiaが提供するMySQL Cluster最新情報

MySQL Cluster情報

MySQL Clusterとは

MySQL Cluster(マイエスキューエル クラスタ)とは、「NDB」というMySQL Serverのストレージエンジン(※1)の1つで、 負荷分散型・高可用性という特徴を持つインメモリー型のトランザクション・データベースです。

MySQL Clusterは、オープンソースでありながら単一障害点のないシェアード・ナッシング型(※2) の分散アーキテクチャを採用し、障害発生時のフェイルオーバー時間が非常に短く、 99.999%という非常に高い可用性を実現しています。
このため、MySQL Clusterは、複数のホストを用いて構成するような大規模システムや、 通信系など要求水準の高いミッション・クリティカルなシステムで採用されています。

MySQL Clusterは、MySQL 4.1.3 (RPM版はMySQL 4.1.10)から実装が始まり、 現在もバージョンアップとともに性能改善や機能拡張、管理機能の拡充などが進められています。
最新版の8.0系では、下記のような機能が強化されています。

  • MySQL Server 8.0 との統合
  • 動的メモリ管理
  • 3重化、4重化のサポート
  • 格納可能なデータ量の劇的な増加
  • 更なるパフォーマンスの向上
  • 権限管理の簡素化

MySQL Clusterの現在の最新バージョン(GA)は、MySQL Cluster 7.2.35、7.3.30 、7.4.29、7.5.19、7.6.15、8.0.21です。(2020年7月現在)

  • データベース管理システム (DBMS)の基礎となるソフトウェア部品で、実データがどのような形式で、 どのように格納されているかを管理している。ストレージエンジンごとにファイルの保存形式や トランザクション機能、検索処理の仕方などに特徴がある。
    MySQLはマルチ・ストレージエンジン方式のRDBMSで、InnoDB、MyISAM、NDB (MySQL Cluster)、 Memory、Merge、Archive、CSVなどのストレージエンジンをサポートしている。
  • データベースのクラスタ化を実現する代表的な方式の一つ。「シェアード・ナッシング」は、 複数のサーバ構成において、各サーバごとにディスクを用意して処理を行い、ディスクごとに データを分散させる方式をさす。MySQL Clusterの他は、SQL ServerやUNIX/Windows版 DB2がこの方式を採用している。 また、複数のサーバが1つのディスクを共有する「シェアード・ディスク」方式がある。 Oracleやメインフレーム用のDB2がこの方式を採用している。

主な特徴

主な特徴は以下のとおりです。

高速

インメモリー型データベースであるため、トランザクション・スループットが高く、 1秒当たり数万件というトランザクションにも応答可能で、リアルタイム性が求められるシステムに数多く採用されています

高可用性

単一障害点のないシェアード・ナッシング型の分散アーキテクチャの採用、高速自動フェイルオーバーで、99.999%という非常に高 い可用性を実現します
また、標準でレプリケーション機能が実装されています

完全性

完全なACID (atomic, consistent, isolated, durable)トランザクションをサポートしています

拡張性

稼動中のクラスタにも停止時間ゼロでノードを追加したりデータベース・スキーマの更新を行えるため、将来的なスケールアウト対応も容 易です
また、テーブルをノード間で自動的にシャード(分割)でき、低コストなコモディティ・ハードウェア上でデータベースの水平スケールが可能です

リアルタイムレスポンス

応答遅延を一貫して1ミリ秒以下に抑えるリアルタイム設計のため、1秒あたり数万のトランザクション処理が可能です

SQL & NoSQL デークアクセス

RDBMSとNoSQL両方のインターフェースを持ち、両方の技術を組み合わせてソリューションに利用できます

豊富な導入実績

海外ではFacebook、Google、Alcatel-Lucent、NEC、Cisco、米海軍およびZillow.comな ど、要件が厳しい通信、金融、Web、政府機関におけるデータ管理環境での導入事例が多数あり、信頼性は実証済みです

遠隔地レプリケーション

遠隔地レプリケーションを使用して複数のクラスタを遠隔地に分散することで、ディザスタ・リカバリ構成およびグローバルなWebサー ビスのスケーラビリティ構成の構築が可能です
遠隔地レプリケーションは、データセンター間の運用モデルとしての推奨オプションであり、非同期でアクティブ/アクティブまたはアクティブ/パッシブ構成 で実装可能です

管理が容易

MySQL本体はインストールまでの時間が短く(インストールと設定が15分で完了と言われています)、マルチOSに対応しています
また、7.3からは、GUIの自動インストーラ機能も追加され、DB管理者のデータベースの作成と管理を簡素化します

万全なサポート

MySQL Clusterは開発元の日本オラクル株式会社と、パートナー企業提供によるハイレベルで正式な保守サポートが提供されます
NRIでは、「オープンソース・ワンストップサービスOpenStandia(オープンスタンディア)」で、MySQL Clusterを含む約50種類のオープンソースをワンストップでサポートします

コスト効果

MySQL Clusterは高機能なDBMSでありながら、データベースのライセンスコストを削減することができます
さらに、ストレージエンジン自体に負荷分散、高可用性機能が盛り込まれているため、クラスタリングソフトや負荷分散装置、および高額な外部ディスク(共有 ストレージ)を必要としない分、他のクラスタリングソリューションよりも低コストでDBの冗長構成が実現できます

導入事例

MySQL Clusterは、海外ではFacebook、Google、Alcatel-Lucent、NEC、Cisco、Ericsson、Juniper、Shopatron、Telenor、UTStarcom、米海軍およびZillow.comなど、要件が厳しい通信、金融、Web、政府機関におけるデータ管理環境での数多くの導入事例があります。
国内でも、大手メディア企業や証券会社などといった大規模システムでの導入実績が増えています。

MySQLに関するシステム構築実績が豊富なNRI OpenStandiaチームが手がけた、 国内大手メディア企業へのMySQL Cluster事例はこちらをご覧ください。

類似プロダクト

同様の機能を提供する商用製品としては、以下のようなものがあります。

  • Oracle RAC (Real Application Clusters)
  • IBM DB2 pureScale

商用製品との機能比較

主な機能と、商用製品との機能等の比較は以下のとおりです。

機能

MySQL Cluster

商用製品A

データベース・インスタンスおよびクラスタ・データベースの管理

ACID 準拠、トランザクションデータベース

インメモリインデックス
およびデータ

ディスクベースのデータ

アーキテクチャ

分散型シェアードナッシング

シェアードディスク

データレプリケーション

遠隔地レプリケーション

自動フェイルオーバ
および自己修正

オンラインのスキーマアップデートおよびシステムメンテナンス

市販システムによるスケールアップおよびスケールアウト

×

オンラインでのノード追加

オンラインバックアップ

SQL インターフェース

NDB API (C / C++ / Java)

ロードバランシング

データベース監視、管理

24時間365日サポート

無制限サポート・
インシデント

ナレッジベース

メンテナンス・リリース、バグ修正、パッチ、アップデートの提供

MySQL Clusterの構成要素

MySQL Clusterは、2層アーキテクチャ(インターフェース層(SQL&NoSQL)とストレージ層)を採用しています。
一つ(または複数)の管理サーバがクラスタ構成のマスタとして、全体のノード構成情報を管理します。

管理サーバ(Management Server)

  • MySQL Cluster全体のノード構成情報を管理
  • データノードとSQLノードの起動・停止、フェイルオーバーなどを実行
  • 実体はndb_mgmdというプロセス

データノード(Data Node)

  • クラスタのデータを保持
  • 複数台で同期レプリケーションされる
  • 実体はndbdというプロセス

APIノード(API Node)

  • クライアントからの接続を受け付け、結果を返すためのノード
  • SQLの構文を解析しデータノードからデータを取得したり、最適化、ソート、結合などを実行
  • APIノードが実行操作を受信すると、データノードとのインターフェースであるNDB APIがプロトコル変換する
  • NDB Clusterストレージエンジンを使用した従来の MySQLサーバ(通常のmysqldプロセス)がSQLノードに該当

MySQL Clusterの構成要素

動作環境

前提となる動作環境は、以下のとおりです。

8.0

7.6

7.5

7.4

7.3

7.2

OS アーキテクチャ
Oracle Linux / Red Hat / CentOS

Oracle Linux 8 / Red Hat Enterprise Linux 8 / CentOS 8

x86_64

Oracle Linux 7 / Red Hat Enterprise Linux 7 / CentOS 7

x86_64

Oracle Linux 6 / Red Hat Enterprise Linux 6 / CentOS 6

x86_32, x86_64

Oracle Solaris

Solaris 11
(Update 3+)

SPARC_64

Solaris 11
(Update 3+)

x86_64

Solaris 10
(Update 11+)

SPARC_64, x86_32, x86_64

Canonical

Ubuntu 18.04 LTS

x86_64

Ubuntu 16.04 LTS

x86_64

Ubuntu 14.04 LTS

x86_64

SUSE

SUSE Enterprise Linux 15 / OpenSUSE 15

x86_64

SUSE Enterprise Linux 12

x86_64

SUSE Enterprise Linux 11
(11.4+)

x86_64

Debian

Debian GNU/Linux 9

x86_64

Debian GNU/Linux 8

x86_64

Microsoft Windows Server

Microsoft Windows 2019 Server

x86_64

Microsoft Windows 2016 Server

x86_64

Microsoft Windows 2012 Server
(incl R2)

x86_64

Microsoft Windows

Microsoft Windows 10

x86_64

Apple

macOS 10.14

x86_64

macOS 10.13

x86_64

General LINUX

x86_64

その他 システム要件

CPU

  • Intel/AMD x86, UltraSPARC(メモリ要求から64ビットを推奨)

メモリ

  • 16GB以上のRAM(最小1GB、データサイズやData Node数、レプリケーション設定に依存)

ハードディスク

  • 18GB以上(3GB最小)

ネットワーク

  • 1+ nodes (Gigabit Ethernet - TCP/IP)

※コモディティ・ハードウェアとローカルのストレージを利用したスケールアウトに最適化されている

※クラスタリングソフト、負荷分散装置、外部ディスク(共有ストレージ)などは不要

MySQL コネクタ

アプリケーションは、MySQL コネクタを使用して開発できます。
MySQL Cluster は、さらにJavaScript、Memcached、C++、Java、JPAおよびHTTP/RESTを介してネイティブNoSQLコネクティビティ を提供します。

  • ADO.NET Driver for MySQL (Connector/NET)
  • ODBC Driver for MySQL (Connector/ODBC)
  • JDBC Driver for MySQL (Connector/J)
  • C++ Driver for MySQL (Connector/C++)
  • C Driver for MySQL (Connector/C)
  • C API for MySQL (mysqlclient)

MySQL コミュニティ提供ドライバ

  • PHP Drivers for MySQL(mysqli, ext/mysqli, PDO_MYSQLND, PHP_MYSQLND)
  • Perl Driver for MySQL (DBD::mysql)
  • Python Driver for MySQL (MySQLdb)
  • Ruby Driver for MySQL (DBD::MySQL)
  • Ruby Driver for MySQL (ruby-mysql)
  • C++ Wrapper for MySQL C API (MySQL++)

MySQL Clusterのライセンス

MySQL Clusterは、オープンソースのデータベースであり、利用者が利用用途に応じて「GPLライセンス(GNU General Public License)」か、「商用ライセンス」のいずれかを選択する、「デュアルライセンスモデル」を採用しています。
MySQL Cluster には GPLライセンスで利用できるコミュニティ版と、商用ライセンスの MySQL Cluster Carrier Grade Edition(MySQL Cluster CGE) があります。

MySQL Cluster Carrier Grade Edition では、保守サポート提供のほか、 「MySQL Enterprise Monitor」や、「MySQL Enterprise Backup」 など、 MySQL Enterprise Edition(サブスクリプション) のすべてのサポート内容・追加ソフトウェアに加え、 MySQL Cluster データベースの作成と管理を簡素化する「MySQL Cluster Manager」等の機能を利用することができます

NRIは、日本オラクル株式会社と正式なMySQLパートナーシップを結んでいる、 MySQL 販売パートナーです。お客様のシステム用件に応じた、最適なMySQLライセンスを販売・ご提供します。 MySQLの保守サポートも実施しています。

コミュニティ版とMySQL Cluster Carrier Grade Editionの違いは以下のとおりです。

MySQL Cluster Community Edition

MySQL Cluster Carrier Grade Edition

機能

MySQL Clusterデータベース
(アプリケーション、データ管理ノード)

ACID 準拠、トランザクションデータベース

外部キー制約

分散型シェアード・ナッシング・アーキテクチャ

単一障害点なし

自動シャーディング

マルチマスター・レプリケーション

分散型クロス・シャードJOIN

リアルタイム応答

同期データ・レプリケーション

遠隔地レプリケーション

マルチサイト・クラスタリング

自動1秒未満フェイルオーバーおよび自己修正リカバリ

オンライン・ノード追加/削除

オンライン・スキーマ・アップデートおよびシステム・メンテナンス

マルチスレッド・データノード:コモディティ・システムによるスケール

SQLインターフェース

NoSQL API: Memcached ネイティブ・キー・バリュー型アクセス

NoSQL using JavaScript & node.js ネイティブJavaScriptアクセス

NoSQL API: NDB API(C++) ネイティブ C++ アクセス

NoSQL API:Java and JPA ネイティブJava & JPA アクセス

NoSQL API:HTTP/REST ネイティブHTTP/RESTアクセス

スキーマおよびスキーマレス・データモデル

仮想マシン(VM:Virtual Machine)環境での運用

インメモリーおよびディスクベース・テーブル

コモディティ・ハードウェア環境での最適化

データベース監視、管理

NDBINFOリアルタイム・クラスタ監視

MySQL Enterprise Monitor

MySQL Enterprise Backup

MySQL Enterprise Security

MySQL Enterprise Audit

MySQL Enterprise Scalability

MySQL Enterprise High-Availability

MySQL Cluster Manager

MySQL Cluster Geo-Replication

Oracle Premier Support for MySQL

24時間365日
サポート

無制限サポート・
インシデント

ナレッジベース

メンテナンス・リリース、バグ修正、パッチ、アップデートの提供

ライセンス体系

GPL

コマーシャル

MySQL Clusterに最適なアプリケーション

  • 大容量 OLTP
  • リアルタイム分析
  • eコマース および不正検出機能を備えた金融取引
  • モバイルおよびマイクロペイメント
  • セッション管理およびキャッシング
  • フィード・ストリーミング、解析およびレコメンデーション
  • コンテンツ管理および配信
  • 大規模マルチレイヤ・オンライン・ゲーム
  • コミュニケーションおよびプレゼンス・サービス
  • サブスクライバ / ユーザー・プロファイル管理およびエンタイトルメント(権限付与)

オープンソース年間サポートサービス

OpenStandiaではOSSを安心してご利用いただけるように、オープンソース年間サポートサービスをご提供しております。
サポートしているOSSは下記ページをご参照ください。

お気軽にお問い合わせください

関連OSS

  • PostgreSQL
    サポート対象

    PostgreSQL

    ポストグレエスキューエル。多くのOS・プラットフォームで稼動するオープンソースのリレーションナルデータベース管理システムです。

  • MariaDB
    サポート対象

    MariaDB

    マリアデービー。MySQLから派生したオープンソースのリレーショナルデータベース管理システム(RDBMS)です。

  • MySQL
    サポート対象

    MySQL

    マイエスキューエル。多くのOS・プラットフォームで稼動するオープンソースのリレーションナルデータベース管理システム

オープンソースに関するさまざまな課題、OpenStandiaがまるごと解決します。
下記コンテンツも
あわせてご確認ください。