Your SlideShare is downloading. ×
0
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by SRA OSS, Inc. 日本支社 長田悠吾

2,748

Published on

PostgreSQLの組み込みレプリケーション機能を使うと、信頼性の高い非同期レプリケーションシステムが構成できます。更に、pgpool-IIというクラスタ管理ツールを組み合わせることにより、ユーザにあまりクラスタ構成を意識させることなく、動的にDBノードを追加してスケールアウト可能な参照負荷分散DBクラスタを作ることも可能です。本講演では、こうしたシステムの作り方をデモを交えて解説します。

PostgreSQLの組み込みレプリケーション機能を使うと、信頼性の高い非同期レプリケーションシステムが構成できます。更に、pgpool-IIというクラスタ管理ツールを組み合わせることにより、ユーザにあまりクラスタ構成を意識させることなく、動的にDBノードを追加してスケールアウト可能な参照負荷分散DBクラスタを作ることも可能です。本講演では、こうしたシステムの作り方をデモを交えて解説します。

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,748
On Slideshare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
17
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. PostgreSQLで動的にスケールアウト 可能な負荷分散DBクラスタを作ろう! db tech showcase Tokyo 2015 2015/6/10 SRA OSS, Inc. 日本支社 長田 悠吾
  • 2. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 2 ● 長田 悠吾 (ナガタ ユウゴ) ● SRA OSS, Inc. 日本支社 ● マーケティング部 OSS技術グループ ● pgpool-II 開発者 ● PostgreSQL 関連の技術調査 ● OSS の技術サポート ● PostgreSQL の開発にも参加 自己紹介
  • 3. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 3 ● 1999年よりPostgreSQLサポートを中心にOSSビジネス を開始 ● PostgreSQL、Hinemos、Zabbix などのOSSサポート ● PowerGresファミリーの開発、販売 ● トレーニング、導入、設計コンサルティングサービス 会社紹介
  • 4. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 4 本日のお話 ● 動的にスケールアウト可能な負荷分散DBクラスタ 「サーバを複数台使って高い参照性能を得る」 「サーバの追加はサービスを停止せずにできる」 PostgreSQL 組み込みのレプリケーション機能 クラスタ管理ツール pgpool-II の 負荷分散 & 高可用化 機能 +
  • 5. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 5 アジェンダ ● データベースのクラスタリング ● PostgreSQL のレプリケーション機能 ● pgpool-II のクラスタリング機能 ● PostgreSQL と pgpool-II によるシステム構成 ● スケールアウト性能 ● デモ
  • 6. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 6 ● 代表的なオープンソースのRDBMSの1つ ● カリフォルニア大学で開発された研究用RDBMSの Ingres(1970)を先祖に持つ ● オーナー企業を持たず、コミュニティによる開発が続けられ ている ● 年1回のメジャーバージョンアップ ● 最新リリースは9.4.3 ● 年内には 9.5 がリリース?? ● PostgreSQLライセンスで配布 ● BSDタイプの緩いライセンス PostgreSQL とは
  • 7. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 7 ● アプリケーションとPostgreSQLの間に入って、 クラスタリング機能を提供するミドルウェア ● アプリケーションからは普通のPostgreSQLに 見える ● オープンソースソフトウェア(BSDライセンス) ● メジャーバージョンアップは年1回 ● 最新リリースは 3.4.2 ● 秋ごろに 3.5 をリリース予定 クエリ クエリ PostgreSQL pgpool-II pgpool-II とは アプリケーション
  • 8. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 8 データベースクラスタリング
  • 9. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 9 ● 目的は? ● 高可用性の確保 – サービスを停止させたくない – 1つのデータベースが故障しても、別のデータベースが肩代わりする → データの複製を複数もつことができる ● 参照負荷分散 – 大量のアクセスをさばきたい – 負荷を分散して検索性能を向上 → ノードを増やすことでスケールアウトさせたい ● 並列処理 – 大量のデータを解析したい – 複数のサーバで並列的に処理 データベースクラスタリング
  • 10. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 10 データベースのスケールアウト構成 ● 複数のデータベースサーバに処理を分散させる ・・・ データの複製/分散 サーバの数を 増やすと性能が スケールする 処理/サービス の分散
  • 11. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 11 PostgerSQL + pgpool-II によるスケールアウト構成 ● 複数の PostgreSQL サーバにクエリを分散させる データベースの複製 (レプリケーション) サーバは動的に 追加が可能 参照クエリの 負荷分散 pgpool-II PostgreSQL PostgreSQL PostgreSQL PostgreSQL のレプリケーション機能 と pgpool-II の負荷分散機能 による  動的にスケールアウト可能な   負荷分散DBクラスタ ・・・
  • 12. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 12 PostgreSQL のレプリケーション機能
  • 13. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 13 PostgreSQLのクラスタ技術 ● HAクラスタ ● Pacemaker+DRBD、共有ストレージなどを利用 ● 待機側はサービス停止 ● ストリーミングレプリケーション ● PostgreSQL自体が持つ、非同期レプリケーション機能 ● プライマリ(更新可能) + 複数のスタンバイDB(検索のみ) ● 簡単、確実、速い ● pgpool-II ● クライアントとPostgreSQLの間に入って同期レプリケーション機能を提供 ● コネクションプーリング、負荷分散、自動フェイルオーバなど他の機能もあ る ● Postgres-XC ● PostgreSQLを改造したクラスタシステム ● 書き込み性能の負荷分散
  • 14. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 14 PostgreSQL のレプリケーション機能 ● ストリーミングレプリケーション(PostgreSQL 9.0 ~) ● マスタからスレーブにトランザクションログ(WAL)を転送することによりデータ の複製を実現 ● 対象はデータベース全体 ● 転送とリカバリの遅延のため、マスタとスレーブが常に同じ内容とは限らない WAL転送 WAL 書き込み WAL 書き込み リカバリし続ける クライアント 参照クエリ更新クエリ 参照クエリ マスタへは更新・参照 の両方とも可能 スレーブは参照クエリを受け付ける ことができる (Hot Standby) プライマリ スタンバイ
  • 15. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 15 ● 複数のスタンバイにレプリケーション可能 ● スレーブが参照クエリを受け付けることを利用して 参照性能をスケールアウトさせることが可能 レプリケーション クライアント 参照クエリ更新クエリ 参照クエリ プライマリ スタンバイ 参照 クエリ スタンバイ 複数スタンバイへのレプリケーション
  • 16. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 16 カスケードレプリケーション ● カスケードレプリケーション(PostgreSQL 9.2 ~) ● スレーブからさらに別のスレーブへのレプリケーションが可能 ● スタンバイ増加によるプライマリへの負荷の集中を回避 クライアント 参照 更新/参照 複製 複製 プライマリ スタンバイ
  • 17. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 17 その他のレプリケーション関連機能 ● 同期レプリケーション (PostgreSQL 9.1~) ● スタンバイ側のディスクに WAL が書き込まれることを保証するモード – 注意:データの同期を保証するものではない ● レプリケーションスロット (PostgreSQL 9.4~) ● レプリケーション状態や付帯情報を保持する枠組み – スタンバイに必要な WAL が削除され、レプリケーション不能になるのを防止 – スタンバイが参照しているデータが物理的に削除されてコンフリクトが起きる のを防止 ● 論理デコーディング (PostgreSQL 9.4~) ● テーブルへの更新内容をSQLレベルの更新情報として出力するモード ● 将来的な機能拡張を実現するための基盤となる – 部分レプリケーション、マルチマスタレプリケーション、異種DBへのレプrケー ション・・・・などの機能は今は実現できていない
  • 18. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 18 レプリケーション クライアント 参照クエリ更新クエリ 参照クエリ プライマリ スタンバイ 参照 クエリ スタンバイ 肝心の負荷分散は? 更新クエリ、参照クエリの振り分けは?  ・・・アプリケーション側で対応?? DBサーバを追加する場合は?  ・・・プライマリのバックアップ      &同期を手動で? プライマリがダウンしたら更新クエリが処理できなくなる?!  ・・・スタンバイの昇格も手動で? PostgreSQL の機能だけではできないこと
  • 19. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 19 pgpool-II のクラスタリング機能
  • 20. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 20 ● アプリケーションからは1台の PostgreSQL のように見える ● PostgreSQL のSQLパーサが移植されており、同じように構文を理解可能 ● 多彩な機能を持つ ● 性能向上 – コネクションプーリング – 参照負荷分散 – クエリキャッシュ ● 高可用性 – 自動フェイルオーバ – watchdog ● クラスタ管理 – オンラインリカバリ ● クラスタとアプリケーションの親和性 – クエリの自動振り分け pgpool-II の機能 クエリ クエリ PostgreSQL pgpool-IIアプリケーション
  • 21. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 21 クエリの振り分け
  • 22. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 22 ● 更新クエリはプライマリサーバへ ● 参照クエリはサーバ間で振り分け    → 参照負荷分散 更新・参照 更新・参照 プライマリ レプリケーション pgpool-II 参照 参照 スタンバイ スタンバイ - 振り分けの重みを指定可能 - レプリケーション遅延が大きいサーバには振り分けない - 3.4 からはよりきめ細やかな振り分けが可能に! クエリの自動振り分け アプリケーション
  • 23. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 23 ● アプリケーション名、DB名にしたがって、クエリの振り分け 先を指定できる (pgpool-II 3.4~) 更新・参照 プライマリ (アプリ2) レプリケーション pgpool-II スタンバイ (アプリ1) スタンバイ (アプリ2) 参照 更新・参照 アプリケーション2 アプリケーション1 検索 検索 クエリの自動振り分け
  • 24. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 24 ● 例1) ● 重い検索を行うデータ分析アプリケーションからのクエリは、分析専用 のスタンバイサーバへ振り分ける ● Web アプリケーションのクエリ処理を邪魔しない 更新・参照 プライマリ レプリケーション pgpool-II スタンバイ (分析用) スタンバイ 参照 更新・参照 Webアプリケーション 分析アプリケーション 重い検索 重い検索 クエリの自動振り分け
  • 25. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 25 クエリの自動振り分け 更新・参照 プライマリ レプリケーション pgpool-II スタンバイ (バックアップ用) スタンバイ 参照 更新・参照 Webアプリケーション 管理コンソール pg_dump pg_dump ● 例2) ● バックアップツール(pg_dump)からのアクセスは、バックアップ専用の スタンバイサーバへ振り分ける ● Web アプリケーションのクエリ処理を邪魔しない
  • 26. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 26 クエリの自動振り分け 更新・参照 プライマリ レプリケーション pgpool-II スタンバイ スタンバイ 参照 更新のみ! Webアプリケーション 参照 ● 例3) ● 参照クエリは全てスタンバイに送りたい
  • 27. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 27 クエリの自動振り分け 更新・参照 スタンバイ レプリケーション pgpool-II スタンバイ 参照 更新のみ! Webアプリケーション 参照 プライマリ ● 例3) ● 参照クエリは全てスタンバイに送りたい ● たとえ、プライマリノードが変わったとしても
  • 28. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 28 ノードの障害
  • 29. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 29 ● DBサーバの障害を自動検出(ヘルスチェック機能) ● ダウンしたPostgreSQLを切り離す → 負荷分散の対象から外れる 更新・参照 プライマリ レプリケーション pgpool-II スタンバイ 障害発生 更新・参照 参照 障害発生 自動フェイルオーバ
  • 30. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 30 更新・参照 プライマリ レプリケーション pgpool-II スタンバイ スタンバイ 障害発生 ● プライマリサーバに障害が発生した場合は? ● そのままでは更新ができなくなってしまう 更新・参照 参照 参照 自動フェイルオーバ
  • 31. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 31 更新・参照 レプリケーション pgpool-II スタンバイ プライマリ 障害発生 ● プライマリサーバに障害が発生した場合 ● そのままでは更新ができなくなってしまう ● 負荷分散の対象から切り離す ● スタンバイをどれかプライマリに昇格させる 更新・参照 参照 フェイルオーバ時に実行される具体的な処理は ユーザがスクリプトで定義可能 自動フェイルオーバ
  • 32. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 32 ノードの復旧
  • 33. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 33 更新・参照 レプリケーション pgpool-II スタンバイ プライマリ ● ダウンしたスタンバイをプライマリに再同期させる ● 同期中もプライマリでは更新が可能 更新・参照 参照 同期中 オンラインリカバリ
  • 34. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 34 更新・参照 レプリケーション pgpool-II スタンバイ プライマリ ● ダウンしたスタンバイをプライマリに再同期させる ● 同期中もプライマリでは更新が可能 ● 同期完了後、マスタからのレプリケーションが再開され、 自動的に負荷分散の対象となる 更新・参照 参照 参照 スタンバイ オンラインリカバリ時の処理もスクリプトで定義 オンラインリカバリ
  • 35. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 35 動的なノードの追加
  • 36. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 36 更新・参照 レプリケーション スタンバイ プライマリ ● 新しいスタンバイサーバの追加 ● pgpool-II に新しいサーバの情報を 読み込ませてから、オンラインリカバリ ● プライマリとの同期が行われる ● 同期完了後、負荷分散の対象となる 更新・参照 参照 参照 スタンバイ 同期中 pgpool-II スタンバイサーバの追加 <サーバ情報> - hostname - port No. … リロード
  • 37. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 37 更新・参照 レプリケーション スタンバイ プライマリ ● スタンバイの増設が容易 ● システムの運用を止める必要がない ● 参照性能を動的にスケールアウト可能 更新・参照 参照 参照 スタンバイ pgpool-II 参照 スタンバイサーバの追加
  • 38. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 38 PostgreSQL と pgpool-II のシステム構成
  • 39. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 39 ● もし、pgpool-II に障害が発生したら?! ● 単一障害点 (Single Point of Failure) じゃない の? 更新・参照 プライマリ レプリケーション pgpool-II 参照 スタンバイ スタンバイ 障害発生 更新・参照 参照 単一障害点?
  • 40. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 40 ● pgpool-II 組み込みのHA機能 ● pgpool-II を Active/Standby 構成にする ● 仮想IPでpgpool-IIにアクセス 更新・参照 プライマリ レプリケーション pgpool-II (Standby) 参照 参照 スタンバイ スタンバイ pgpool-II (Active) 更新・参照 仮想IP 相互監視 watchdog
  • 41. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 41 watchdog● Active pgpool-II に障害発生すると・・・ ● Standby pgpool-II が Active に昇格 ● 仮想IPでの付け替えが行われる 更新・参照 プライマリ レプリケーション pgpool-II (Active) 参照 参照 スタンバイ スタンバイ pgpool-II (Down) 仮想IP 相互監視更新・参照 マルチマスタ的構成
  • 42. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 42 マルチマスタ的構成 ● APサーバと pgpool-II を1台のサーバに同居させた構成 ● pgpoo-II が冗長化されている ● APサーバ/pgpool-II のペアを増やすことで、APサーバの性能をスケー ルアウト可能 ● Watchdog の機能により pgpool-II 間でバックエンド情報が共有さ れる pgpool-II クライアント PostgreSQL 負荷分散装置 AP サーバ pgpool-IIAP サーバ pgpool-IIAP サーバ ・ ・ ・ ・ ・ ・ 情報共有
  • 43. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 43 スケールアウト性能
  • 44. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 44 スケールアウト性能 ● 参照性能は本当にスケールアウトするか? ● pgpool-II(3.2.1) & PostgreSQL(9.2.1)で、ノード数を増やすと 全体の処理能力が向上するかを確認 ● 1~4台の PostgreSQL で検証 ● マルチマスタ的構成と似た構成 ● APサーバに相当する位置に、ベンチマークツール(pgbench)が配置 されている。 ※PostgreSQL エンタープライズ・コンソーシアム  性能ワーキングループ(WG1) 2012 年度成果物より引用
  • 45. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 45 スケールアウト性能(結果) ノード数が増えるほど、合計の tps が増える (スケールメリットあり) ノード数 tps: トランザクション/秒 1ノード毎のtps 全ノードのtps合計 ※PostgreSQL エンタープライズ・コンソーシアム  性能ワーキングループ(WG1) 2012 年度成果物より引用
  • 46. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 46 デモ
  • 47. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 47 デモの内容 ● 運用中のシステムに新しいスレーブを追加 ● ベンチマーク処理を中断せずに新しいノードが追加可能 ● 自動的に新しいスレーブに参照クエリが振り分けられるようになる ● デモ手順 1. PostgreSQL サーバ2台 + pgpool-II のクラスタを作成 2. ログを確認しながら、ベンチマーク (pgbench) を実行 3. 3台目のサーバ情報を pgpoo-II に登録 4. オンラインリカバリを実行 5. 新しいサーバにクエリが振り分けられることをログで確認 更新・参照 レプリケーション スタンバイ プライマリ 更新・参照 参照 参照 スタンバイ 同期中 pgpool-II <サーバ情報> - hostname - port No. … リロード
  • 48. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 48 まとめ ● PostgreSQL 組み込みのレプリケーション機能 ● ストリーミングレプリケーション = 信頼性の高い非同期レプリケーション ● pgpool-II のクラスタリング機能 ● 参照負荷分散 ● クエリの自動振り分け ● 自動フェイルオーバ ● オンラインリカバリ ● 新規ノードの動的な追加 ● これらの組み合わせによる pgpool-II PostgreSQL PostgreSQL PostgreSQL ・・・ 動的にスケールアウト可能な負荷分散データベースクラスタ 
  • 49. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 49 参考URL ● PostgreSQL ドキュメント ● http://www.postgresql.jp/document/9.4/html/ ● pgpool-II オフィシャルサイト ● http://www.pgpool.net/ ● http://www.pgpool.net/jp/ ● SRA OSS, Inc. 日本支社 ● セミナー資料、事例情報、技術情報 ● http://www.pgecons.org/ ● Let's Postgres ● PostgreSQL 情報のポータルサイト ● http://lets.postgresql.jp/ ● PostgreSQL エンタープライズコンソーシアム (PGECons) ● PostgreSQL の検証報告書 ● http://www.pgecons.org/
  • 50. Copyright © 2014 SRA OSS, Inc. Japan All rights reserved. 50 オープンソースとともに URL: http://www.sraoss.co.jp/ E-mail: sales@sraoss.co.jp Tel: 03-5979-2701

×