mysql 5.6時代のha総まとめ -...
TRANSCRIPT
SCSK株式会社
MySQL 5.6時代のHA総まとめ
2013/5/24
廣濱顕司
Copyright(c) SCSK Corporation Page 2
自己紹介
2003年よりMySQL関連の業務を担当
2003/8にLarry Stefonic氏とサンフランシスコでMTGしたのが全ての始まり
立ち上げ時はMySQL社とのパートナリングその他雑用全般を担当
MySQL関連業務を担当
コンサルティング
トレーニング講師
サポート
最近は以下を担当
コンサルティング
プリセールス
一貫してMySQL ClusterやMySQLのHA案件に注力してきました
趣味
旅行
ガジェット
Copyright(c) SCSK Corporation Page 3
MySQLへのSCSK取り組みと特色
• 1.高い技術力
– 日本語全文検索:MySQL Enterprise + Sennaの開発とサポート(2007年から)
– 過去にMySQL Inc.でソースコードに手を加えていたエンジニアが在席している
• Java系
• 日本語系
– 日本語処理機能をSCSK技術者が改善
• 2.豊富な実績
– 国内通信キャリアへのMySQL Cluster設計・構築・保守実績
– 各種大手ベンダーへプロフェッショナルサービスなどを提供している実績
• ニフティ、楽天証券、ヤフー、通信キャリアなど
• 3.「MySQLと言えばSCSK」
– 国内で唯一オフィシャル・トレーニングを提供している(2005年から)
– IPAによるOSS性能・信頼性評価へ「MySQL担当」として参加
• OSDL DBT-1のMySQL対応とMySQL性能検証
• MySQL Clusterの可用性と性能検証
– 2003年からストラテジックアライアンスパートナーとしてMySQL社と戦略的提携
– 国内トップクラスのMySQL Cluster技術
• オラクル社 日本人コンサルタント退社後、コンサルタント不在のため、SCSKへ案件を紹介頂く事が多い
– 2012/4/27に国内企業初のMySQL Specialized認定取得
– 2013/1/10 MySQLソフトウェアアプライアンスを発表
Copyright(c) SCSK Corporation Page 4
従事した主なMySQLプロジェクト
ニフティ
ココログのブログシステムをPostgreSQLからMySQLへ移行するにあたって、SCSサービスを購入頂いた
トレーニング
サポート
プロフェッショナルサービス(設計、構築、米国企業SixApartとの交渉など) データ移行に際して注意すべき日本語文字列の提示など
参考:http://www.mysqlconf.com/mysql2008/public/schedule/detail/1764
楽天証券
MySQL Clusterの設計、構築、サポートを支援
参考:https://scsk-db.jp/mysql/download/
国内通信キャリア
MySQL Clusterを利用したユーザ認証システム
トレーニング
SCSKサポート
プロフェッショナルサービス(設計、構築) 設計段階からアドバイスしたため、最適な構成で稼働しており、システムダウンなどの大きな不具合が発生していない。
国内通信キャリア
決済システムで利用しているMySQL Clusterの設計見直し及びトラブルシュート。
海外通信機器メーカー
MySQL Clusterを利用した通信業界向けネットワーク機器システム(HLR)のデータベースアセスメント実施。
その他
ECサイト、市場調査会社のWebシステム、などの設計・構築・データ移行
Copyright(c) SCSK Corporation Page 5
目次
はじめに
MySQL Cluster
MySQL Server + LifeKeeper (Veritas Cluster Server / ClusterPro) + 共有ディスク
MySQL Server + DRBD + Pacemaker + Corosync
MySQL Server 5.0以上 + MHA(Master HA)
MySQL Server + Galera Cluster
MySQL Server + ScaleBase
MySQL Server 5.6 Replication + GTIDs + mysqlfailover
おわりに
Copyright(c) SCSK Corporation Page 6
はじめに
MySQLは世界で最も使われているシンプルなオープンソースデータベースソフトです。
MySQLのHAソリューションは多数存在します。
「エンタープライズシステムでMySQLを利用する際に、どのHAソリューションを選択すれば良いのか分かりにくい。」
今までのユーザはみなさん工夫して、
MySQLレプリケーション(非同期)で簡易型のHAシステムを構築したり、
LifeKeeperなどのサードパーティ製品を利用したり、
DRBDやHeartbeatなどのオープンソースソフトウェアを利用したり、
していました。
本セッションでは、最近のMySQL HAソリューションをまとめました。
それぞれを単独で使うのではなく、要件に応じて組み合わせて使うのがおすすめです。
MySQLをある程度使ったことがあり、それぞれのキーワードをある程度聞いたことがある方を想定しています。
Copyright(c) SCSK Corporation Page 7
MySQL HAソリューション一覧
MySQL
Cluster
LifeKeeper DRBD MHA Galera
Cluster
ScaleBase 5.6
Replication
更新負荷分散 ○ × × × ○ ○ ×
参照負荷分散 ○ (○) (○) ○ ○ (○) ○
トポロジー マスター・マスター
アクティブ・スタンバイ
アクティブ・スタンバイ
マスター・スレーブ
マスター・マスター
シャーディング
マスター・スレーブ
テーブル NDB InnoDB InnoDB InnoDB InnoDB +
Patch
InnoDB InnoDB
冗長構成 同期 共有ストレージの二重化
同期 MySQLレプリケーション機能(準同期)
同期 MySQLレプリケーション機能(準同期)
MySQLレプリケーション機能(準同期)
SCSKによる
一括保守サポート
○ ○ ○ ○ ○ ○ ○
枯れてるか? ○ ○ ○ ○ △ △ ×
今後への期待 ○ △ △ ○ ○ ○ ○
後ほど ご紹介します
Copyright(c) SCSK Corporation Page 8
MySQL GAリリースとHAソリューションの歴史
2005年 2010年 2015年
MySQL Server 5.0 MySQL Server 5.1
MySQL Server 5.5
MySQL Cluster 6.2
MySQL Cluster 7.2
MySQL Cluster 7.1
MySQL Cluster 6.3
t
MySQL Server 5.6
DRBD
LifeKeeper
非同期
レプリケーション
MHA GTIDs
ScaleBase
GaleraCluster
準同期
レプリケーション
Copyright(c) SCSK Corporation Page 9
MySQL Cluster
概要
ネットワーク機器向けの高速なメモリデータベースとして登場
現在はディスクへのテーブルの保存なども可能
利点
高性能
高可能性
とりあえず動かすまでのセットアップが簡単
制約
データ容量に制約
NDBテーブルはInnoDBと違い、
利用するアプリケーションを選ぶ
MySQL
Cluster
更新負荷分散 ○
参照負荷分散 ○
トポロジー マスター・マスター
テーブル NDB
冗長構成 同期
SCSKによる
一括保守サポート
○
枯れてるか? ○
今後への期待 ○
Copyright(c) SCSK Corporation Page 10
MySQL Cluster
SCSK事例
携帯電話キャリアのAAA、HLR
携帯電話キャリアの決済システム
証券会社の為替情報
最適構成
Copyright(c) SCSK Corporation Page 11
MySQL Server + LifeKeeper + 共有ディスク
MySQL Server + LifeKeeper (Veritas Cluster Server / ClusterPro) + 共有ディスク
概要
サードパーティソフトウェアを利用したアクティブ・スタンバイ型クラスタ
LifeKeeperはSIOS社が提供しており、SCSKはパートナとしてMySQL以外にも活用
冗長構成は共有ストレージのHWレベルで実現しているため、ディスク、ディスクコントローラ、電源など二重化が必須
利点
InnoDBがそのまま利用できる
GUIインターフェースによる直観的な操作
制約
SIOS社が提供するMySQL ARKはmysqladminコマンドの返り値でMySQL
Serverの生死を確認
重いバッチ処理を実行している場合など、正しく判断できないケースがある
SCSKがスクリプトを作成して対応
共有ストレージ周りでHWの冗長構成をケチると大変なことに
ディスクコントローラなど
LifeKeeper
更新負荷分散 ×
参照負荷分散 (○)
トポロジー アクティブ・スタンバイ
テーブル InnoDB
冗長構成 共有ストレージの二重化
SCSKによる
一括保守サポート
○
枯れてるか? ○
今後への期待 △
Copyright(c) SCSK Corporation Page 12
MySQL Server + LifeKeeper + 共有ディスク
SCSK事例
ECサイト
コンテンツ提供企業の番組情報検索システム
最適構成
サービス用LAN,ハートビート,FCパスの冗長化を推奨
Copyright(c) SCSK Corporation Page 13
MySQL Server + DRBD + Pacemaker + Corosync
MySQL Server + DRBD + Pacemaker + Corosync
DRBD (Distributed Replicated Block Device)
データを複数のサーバに複製して保存するブロックデバイス
サーバ間でデータを同期
Pacemaker + Corosync
ノード管理、リソース制御機能などを担当
概要
ブロックデバイスレベルでデータを同期させる
DRBDはMySQLを意識したソフトウェアでは無い
利点
データの同期に特化しており、仕組みがシンプル
制約
サポートするOSはLinux系のみ
同期するディスクサイズが大きくなると、ノード障害後の再同期が大変
DRBD
更新負荷分散 ×
参照負荷分散 (○)
トポロジー アクティブ・スタンバイ
テーブル InnoDB
冗長構成 同期
SCSKによる
一括保守サポート
○
枯れてるか? ○
今後への期待 △
Copyright(c) SCSK Corporation Page 14
MySQL Server + DRBD + Pacemaker + Corosync
内部構造
Copyright(c) SCSK Corporation Page 15
MySQL Server 5.0以上 + MHA (Master HA)
概要
DeNAに勤めていた松信氏が、自社内向けに開発し、そのあとで公開したツール
レプリケーションが構成されているMySQL Serverのマスターに障害が発生した際に、自動的に複数の稼働しているMySQL Serverのうちの1つをマスターとして設定して、処理を引き継ぐことで、高可用性を実現できるフェイルオーバーツール
利点
MySQLレプリケーションを利用して同期する
制約
松信氏の設計思想の1つが「GTIDsが無いことからの不便さを解消するため」だったが、現在GTIDsサポートをするように、開発を進めているとのこと。
MHA
更新負荷分散 ×
参照負荷分散 ○
トポロジー マスター・スレーブ
テーブル InnoDB
冗長構成 MySQLレプリ
ケーション機能(準同期)
SCSKによる
一括保守サポート
○
枯れてるか? ○
今後への期待 ○
Copyright(c) SCSK Corporation Page 16
MySQL Server 5.0以上 + MHA (Master HA)
Copyright(c) SCSK Corporation Page 17
MySQL Server + Galera Cluster for MySQL
概要
Codership社が提供するInnoDBストレージエンジンをベースとした「マスター・マスター」構成を実現するMySQLパッチ
複数のMySQL Server間で同期レプリケーションを実現します
InnoDBがそのまま使えます
利点
更新の負荷分散が可能
制約
現在はInnoDBのみ
LOCK/UNLOCK TABLESはマスター・マスター構成ではサポートされない
Galera
Cluster
更新負荷分散 ○
参照負荷分散 ○
トポロジー マスター・マスター
テーブル InnoDB +
Patch
冗長構成 同期
SCSKによる
一括保守サポート
○
枯れてるか? △
今後への期待 ○
Copyright(c) SCSK Corporation Page 18
MySQL Server + Galera Cluster for MySQL
最適構成
以下を組み合わせてSCSKが設計・構築・保守サポートをお手伝いします。
HAProxy
冗長構成可能なプロキシソフトウェア
ClusterControl
Severalnines社が提供するGalera Cluster / HAProxyを管理/監視するツール。
MySQL MySQL MySQL
HAProxy
Cluster
Control
HAProxy
APP APP APP
更新/参照
冗長構成
バックアップ取得用
Copyright(c) SCSK Corporation Page 19
MySQL Server + Galera Cluster for MySQL: ClusterControl
自動リカバリ
ノードの追加、削除
HAProxy, garbdの管理
ヘルスチェック
クエリの管理
バックアップスケジューリング
ローリングアップグレード
Copyright(c) SCSK Corporation Page 20
MySQL Server + ScaleBase
概要
ScaleBase社が提供する高機能MySQL Proxy
MySQLのクライアントとサーバの間に配置
ScaleBaseが自動的にシャーディング(データの分散配置)を実施
利点
既存アプリケーションを変更することなく、シャーディングが可能
シャーディングによって更新の負荷分散、参照の負荷分散などが可能
クエリを解析して参照クエリ、更新クエリなどを振り分け可能
制約
対応OSはLinuxのみ
最適構成
ScaleBase
更新負荷分散 ○
参照負荷分散 (○)
トポロジー シャーディング
テーブル InnoDB
冗長構成 MySQLレプ
リケーション機能(準同期)
SCSKによる
一括保守サポート
○
枯れてるか? △
今後への期待 ○
Copyright(c) SCSK Corporation Page 21
MySQL Server + ScaleBase
ScaleBaseのWEB管理コンソール
Copyright(c) SCSK Corporation Page 22
MySQL Server 5.6 Replication + GTIDs + mysqlfailover
GTIDs
トランザクションを一意に識別するためのID
複数のMySQL Serverでレプリケーションを構成している際に、障害時のトラックが容易になる
mysqlfailover
– MySQL Utilitiesに含まれるレプリケーション監視、自動フェイルオーバースクリプト(Python)
概要
レプリケーションが構成されているMySQL Serverのマスターに障害が発生した際に、自動的に複数の稼働しているMySQL Serverのうちの1つをマスターとして設定して、処理を引き継ぐことで、高可用性を実現できるフェイルオーバーツールです。
利点
GTIDsを利用することで、マスター障害発生時の復旧手順が簡単
制約
MySQL 5.6以降が必須
5.6
Replication
更新負荷分散 ×
参照負荷分散 ○
トポロジー マスター・スレーブ
テーブル InnoDB
冗長構成 MySQLレプリケーション機能(準同期)
SCSKによる
一括保守サポート
○
枯れてるか? △
今後への期待 ○
Copyright(c) SCSK Corporation Page 23
まとめ:MySQL HAソリューション一覧
MySQL
Cluster
LifeKeeper DRBD MHA Galera
Cluster
ScaleBase 5.6
Replication
更新負荷分散 ○ × × × ○ ○ ×
参照負荷分散 ○ (○) (○) ○ ○ (○) ○
トポロジー マスター・マスター
アクティブ・スタンバイ
アクティブ・スタンバイ
マスター・スレーブ
マスター・マスター
シャーディング
マスター・スレーブ
テーブル NDB InnoDB InnoDB InnoDB InnoDB +
Patch
InnoDB InnoDB
冗長構成 同期 共有ストレージの二重化
同期 MySQLレプリケーション機能(準同期)
同期 MySQLレプリケーション機能(準同期)
MySQLレプリケーション機能(準同期)
SCSKによる
一括保守サポート
○ ○ ○ ○ ○ ○ ○
枯れてるか? ○ ○ ○ ○ △ △ △
今後への期待 ○ △ △ ○ ◎ ◎ ○
Copyright(c) SCSK Corporation Page 24
お問い合わせ先
SCSK株式会社
ITマネジメント事業部門
基盤インテグレーション事業本部
基盤インテグレーション第一部
Tel: 03-5166-1178
Fax: 03-5166-1648
E-mail: [email protected]
http://scsk-db.jp/mysql/