mysql 5.6時代のha総まとめ -...

24
SCSK株式会社 MySQL 5.6時代のHA総まとめ 2013/5/24 廣濱顕司

Upload: others

Post on 30-Aug-2019

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

SCSK株式会社

MySQL 5.6時代のHA総まとめ

2013/5/24

廣濱顕司

Page 2: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

Copyright(c) SCSK Corporation Page 2

自己紹介

2003年よりMySQL関連の業務を担当

2003/8にLarry Stefonic氏とサンフランシスコでMTGしたのが全ての始まり

立ち上げ時はMySQL社とのパートナリングその他雑用全般を担当

MySQL関連業務を担当

コンサルティング

トレーニング講師

サポート

最近は以下を担当

コンサルティング

プリセールス

一貫してMySQL ClusterやMySQLのHA案件に注力してきました

趣味

旅行

ガジェット

Page 3: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

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ソフトウェアアプライアンスを発表

Page 4: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · 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システム、などの設計・構築・データ移行

Page 5: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

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

おわりに

Page 6: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

Copyright(c) SCSK Corporation Page 6

はじめに

MySQLは世界で最も使われているシンプルなオープンソースデータベースソフトです。

MySQLのHAソリューションは多数存在します。

「エンタープライズシステムでMySQLを利用する際に、どのHAソリューションを選択すれば良いのか分かりにくい。」

今までのユーザはみなさん工夫して、

MySQLレプリケーション(非同期)で簡易型のHAシステムを構築したり、

LifeKeeperなどのサードパーティ製品を利用したり、

DRBDやHeartbeatなどのオープンソースソフトウェアを利用したり、

していました。

本セッションでは、最近のMySQL HAソリューションをまとめました。

それぞれを単独で使うのではなく、要件に応じて組み合わせて使うのがおすすめです。

MySQLをある程度使ったことがあり、それぞれのキーワードをある程度聞いたことがある方を想定しています。

Page 7: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · 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による

一括保守サポート

○ ○ ○ ○ ○ ○ ○

枯れてるか? ○ ○ ○ ○ △ △ ×

今後への期待 ○ △ △ ○ ○ ○ ○

後ほど ご紹介します

Page 8: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

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

準同期

レプリケーション

Page 9: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

Copyright(c) SCSK Corporation Page 9

MySQL Cluster

概要

ネットワーク機器向けの高速なメモリデータベースとして登場

現在はディスクへのテーブルの保存なども可能

利点

高性能

高可能性

とりあえず動かすまでのセットアップが簡単

制約

データ容量に制約

NDBテーブルはInnoDBと違い、

利用するアプリケーションを選ぶ

MySQL

Cluster

更新負荷分散 ○

参照負荷分散 ○

トポロジー マスター・マスター

テーブル NDB

冗長構成 同期

SCSKによる

一括保守サポート

枯れてるか? ○

今後への期待 ○

Page 10: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

Copyright(c) SCSK Corporation Page 10

MySQL Cluster

SCSK事例

携帯電話キャリアのAAA、HLR

携帯電話キャリアの決済システム

証券会社の為替情報

最適構成

Page 11: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

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による

一括保守サポート

枯れてるか? ○

今後への期待 △

Page 12: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

Copyright(c) SCSK Corporation Page 12

MySQL Server + LifeKeeper + 共有ディスク

SCSK事例

ECサイト

コンテンツ提供企業の番組情報検索システム

最適構成

サービス用LAN,ハートビート,FCパスの冗長化を推奨

Page 13: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

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による

一括保守サポート

枯れてるか? ○

今後への期待 △

Page 14: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

Copyright(c) SCSK Corporation Page 14

MySQL Server + DRBD + Pacemaker + Corosync

内部構造

Page 15: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

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による

一括保守サポート

枯れてるか? ○

今後への期待 ○

Page 16: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

Copyright(c) SCSK Corporation Page 16

MySQL Server 5.0以上 + MHA (Master HA)

Page 17: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

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による

一括保守サポート

枯れてるか? △

今後への期待 ○

Page 18: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

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

更新/参照

冗長構成

バックアップ取得用

Page 19: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

Copyright(c) SCSK Corporation Page 19

MySQL Server + Galera Cluster for MySQL: ClusterControl

自動リカバリ

ノードの追加、削除

HAProxy, garbdの管理

ヘルスチェック

クエリの管理

バックアップスケジューリング

ローリングアップグレード

Page 20: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

Copyright(c) SCSK Corporation Page 20

MySQL Server + ScaleBase

概要

ScaleBase社が提供する高機能MySQL Proxy

MySQLのクライアントとサーバの間に配置

ScaleBaseが自動的にシャーディング(データの分散配置)を実施

利点

既存アプリケーションを変更することなく、シャーディングが可能

シャーディングによって更新の負荷分散、参照の負荷分散などが可能

クエリを解析して参照クエリ、更新クエリなどを振り分け可能

制約

対応OSはLinuxのみ

最適構成

ScaleBase

更新負荷分散 ○

参照負荷分散 (○)

トポロジー シャーディング

テーブル InnoDB

冗長構成 MySQLレプ

リケーション機能(準同期)

SCSKによる

一括保守サポート

枯れてるか? △

今後への期待 ○

Page 21: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

Copyright(c) SCSK Corporation Page 21

MySQL Server + ScaleBase

ScaleBaseのWEB管理コンソール

Page 22: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

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による

一括保守サポート

枯れてるか? △

今後への期待 ○

Page 23: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

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による

一括保守サポート

○ ○ ○ ○ ○ ○ ○

枯れてるか? ○ ○ ○ ○ △ △ △

今後への期待 ○ △ △ ○ ◎ ◎ ○

Page 24: MySQL 5.6時代のHA総まとめ - scsk-db.jpscsk-db.jp/mysql/files/pdf/seminar_130524_session2.pdf · mysqlは世界で最も使われているシンプルなオープンソースデータベースソフトです。

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/