MySQLと掛けてIKEAと解く、その心は?
 〜 MySQL Users Conference Japan 2007レポート 〜

MySQLをテーマとしたアジア初のカンファレンス「MySQL Users Conference Japan 2007」が開催された。新たなエンジン「Falcon」をはじめ、この中で紹介された最新技術動向を紹介する。

高橋 睦美
@IT編集部
2007/9/21

アジア初のカンファレンス開催

 MySQLは9月11日および12日に、アジア太平洋地域では初めてのカンファレンスとなる「MySQL Users Conference Japan 2007」を開催した。2日間にわたり、パフォーマンスチューニングやMySQLの可用性を高めるテクニック、導入事例などをテーマとしたセッションが行われた。

MySQL Users Conference Japan 2007の模様。基調講演会場は立ち見が出るほどの盛況となった

 MySQLは、オープンソースのデータベースソフトウェアだ。ほかのDBMSに比べ性能に優れ、「さくさく」動作する点が評価されている。米国ではGoogleがカスタマイズを加え、導入していることで知られており、国内でも楽天が採用するなど、オンラインサービスを提供する企業での導入が特に多い。

 データベース本体を開発している法人としてのMySQL(スウェーデン)は、基本的にMySQLをGPL(General Public License)v2に基づいてオープンソースとして提供しつつ、有償のサポートサービス「MySQL Enterprise」をはじめとするサービスを通じて収益を得ている。また、自社開発のソフトウェアなどにMySQLを組み込み、販売する場合には有償の「コマーシャルライセンス」を購入する必要がある。

 MySQLは今回のカンファレンスに合わせ、MySQL認定資格試験を日本語で提供することを発表した。英語以外での認定試験提供は、これが初となる。同時に、MySQL Enterpriseの最新バージョンとなる「MySQL Enterprise Fall 2007 Release」を発表し、そう遠くない時期に日本語版も提供する方針を明らかにしている。

関連記事:
MySQLで「これまで手の届かなかった人にもデータベースを」(@ITNews)

 MySQL Enterpriseは、インストール/設定ウィザードやソフトウェアアップデート、サービスパック、サポートサービスなどをパッケージ化した企業向けの有償サービスだ。新バージョンでは、データベースの稼働状況を監視するツール「MySQL Enterprise Monitor」が強化され、新たに「Replication Monitor」が追加された。これにより、アプリケーションに影響を及ぼす恐れのある問題を早期に発見し、問題解決を支援できるという。

OracleやSQL Serverは頭痛の種?

 カンファレンスの2日目に行われたパネルディスカッションの中では、現在ベータ版が提供されている次期バージョンの「MySQL 5.1 Community Server」や、その次のバージョン「MySQL 6.0」で組み込まれる予定となっている新たなストレージエンジン「Falcon」とともに、新たなソフトウェアプログラム「MySQL Proxy」への言及があった。

 MySQL Proxyは、同じくオープンソースとして、無償で提供されるソフトウェアだ。MySQLの生みの親である“モンティ”ことマイケル・ウィデニウス氏によると、これはMySQLサーバのフロントエンドで利用するもので、MySQLに対する負荷分散やクエリのリライト、ロギングなどが行える。カスタマイズも可能という。

パネルディスカッションには、MySQLの生みの親であるマイケル・ウィデニウス氏も参加した

 なおこのパネルディスカッションでは、MySQLとOracle DatabaseやMicrosoft SQL Serverといった商用データベースとの違いについての質問があった。これに答えてMySQLのブライアン・アカー氏は、データストレージやリトリーブの方法に加え、複数のストレージエンジンが利用できることなどを挙げ、「技術的にいって、根本的にほかのデータベースとはプラットフォームが異なる」と述べた。

 ユーザー企業として参加したMTV Japanのパトリック・ボールダン氏は、OracleやMicrosoft SQL Serverも利用している立場から、次のように語った。

 「Oracleの場合、セットアップはうまくいくけれど、その後に頭を抱えることになる。認定のデータベースアドミニストレータがいないと難しいだろう。ドキュメントがややこしかったり、ドライバが見つからなかったりで、PHPとOracleをつなぐのに4日もかかったりする」(ボールダン氏)

 一方Microsoft SQL Serverは「Windows導入のために費用が掛かり、これも頭痛の種になる」(同氏)と述べた。ApacheとPHPを連携させようとすると、ODBCドライバを探す必要があるため、途端に設定が難しくなる。その意味で「MySQLを動かす方がストレスが少ない」という。

高可用性を実現する複数のアプローチ

 初日に行われた「MySQL高可用性ソリューションの概要」と題したセッションでは、文字通り、MySQLの可用性を高めるための複数の技術について説明が行われた。MySQLのジミー・ゲレロ氏によると、たとえシステムに障害が発生してもリソースを利用可能な状態にし続けるために、いくつかのアプローチが用意されているという。

 1つは、マスターとスレーブの間でデータベースをコピーする「レプリケーション」(複製)だ。これを実現するのが「MySQL Replication」で、ステートメントや行ベースでデータのレプリケーションが行える。ただし、すべてのサーバ間で同じデータを保持する同期型ではなく、非同期型での複製だ。また、マスターに何らかの障害が発生したときの切り替え処理は自動的に行うことができない。

 もう1つ、高可用性実現のために広く利用されているアプローチが「クラスタリング」である。複数のノードを用意しておき、どこか1つのノードに障害が発生したらすぐに別のノードを起動し、処理を継続させる方法だ。ゲレロ氏によると、このクラスタリングを実現するにも複数の方法が用意されているという。

 最もシンプルな方法は、MySQL Replicationを活用するものだ。この場合、使いやすいことが特徴で、負荷分散装置を組み合わせればスケールアウトも容易だが、「システム復帰後のデータ再同期など、すべての問題を解決できるわけではない」(同氏)という。

 次に紹介されたのは、MySQL Replicationとオープンソースのクラスタ構築ソフトウェア「Heartbeat」を組み合わせる方法だ。バーチャルIP間を割り当てたノード間で動作を確認し、失敗した場合にフェイルオーバーを行うHeartbeatを連動させることにより、障害時の稼働を自動的に継続させることができる。ただし、必ずしもデータの整合性が保たれているとは保証されない。つまり、トランザクションまでもが複製されているとは限らない点が課題という。

 こうした課題に対し有効な解決策が、ブロックレベルでのレプリケーションを実現する「Distributed Redundant Block Device(DRBD)」を活用する方法だ。DRBDでは、RAID 1に似たクラスタリングシステムを構築できる。これを用いてブロックレベルでデータをレプリケーションし、2つのデータベースをまったく同じ状態に保つというアプローチだ。

 MySQL ReplicationとHeartbeat、DRBDの3つのツールを組み合わせると、アクティブなサーバとパッシブなサーバとの間で、同期型のブロックレプリケーションを実現しつつ、障害時にはIPレベルのフェイルオーバーによって処理を継続できる。システム復旧後のデータの再同期も自動的に実施可能だ。「これをスケールアウトさせていけば、スケーラビリティと高い可用性を確保できる」(ゲレロ氏)。MySQL ReplicationとDRBDを組み合わせ、アプリケーションをパーティション化することにより、可用性を確保しつつ、参照系、更新系双方のスケーラビリティを高めることも可能だと説明した。

 さらなる選択肢として、「MySQL Cluster」も用意されている。これはシェアードナッシング型のクラスタシステムで、高価なストレージデバイスを導入することなく利用できる点が特徴だ。

 ゲレロ氏は、MySQLは高価なインフラを必要とするスケールアップ型ではなく、スケールアウト型の拡張が可能であると述べる。セッションで紹介した一連のアプローチについては「いずれも長短あるが、いずれもオープンソースで提供されている」とし、適用するSLAやコスト、あるいは予算など、さまざまな要因を踏まえて、最適な手法を選択してほしいと述べた。

 
1/2

Index
MySQLと掛けてIKEAと解く、その心は?
 〜 MySQL Users Conference Japan 2007レポート 〜
Page 1
アジア初のカンファレンスを開催
OracleやSQL Serverは頭痛の種?
高可用性を実現する複数のアプローチ

  Page 2
次世代エンジン「Falcon」の特徴とは
Sennaを使って日本語全文検索を可能に
オープンソースには進化論が当てはまる――CEOインタビュー

Linux Square全記事インデックス


 Linux Squareフォーラム データベース関連記事
連載:快速MySQLでデータベースアプリ!(全11回)
軽快な動作で知られるRDBMS、MySQLでDBアプリの構築を行う。MySQLのインストールに始まり、PerlやRubyなどのスクリプトでデータベースを操作する方法までを完全解説
連載:今から始める MySQL入門(連載中)
定番のLAMP(Linux+Apache+MySQL+PHP)構成でWebアプリケーション開発に挑戦! サンプルアプリの構築を進めながら、基礎知識や操作方法について詳しく解説する
連載:Oracleマイスター養成講座(全6回)
本連載では、Oracleの管理・チューニング方法を紹介していく。これからOracleを始める人、そしてOracleをより深く理解したい人のための、一歩踏み込んだ実用講座
連載:DB2マイスター養成講座(全7回)
本連載では、DB2 UDBの実践的な運用・管理方法を紹介していく。DB2を利用するうえで必要な知識を、実運用を前提にDB2のプロが解説
特集:エンタープライズ市場に向かうMySQL 5.0[前編]
MySQL 5.0の新機能をアルファ版でチェック
1月に公開された5.0アルファ版は大幅に拡張されており、エンタープライズ市場への進出を予感させる
特集:Linuxで動くリレーショナルデータベース・カタログ
データベースサーバのOSとしてLinuxを採用するケースが増えている。Linuxで動作する7つの主なリレーショナルデータベースを紹介する。製品導入の際の参考にしてほしい

MONOist組み込み開発フォーラムの中から、Linux関連記事を紹介します


Linux & OSS フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Linux & OSS 記事ランキング

本日 月間