Submit Search
HAクラスタで PostgreSQLレプリケーション構成の 高可用化
9 likes
10,337 views
T
Takatoshi Matsuo
Postgre sql day2012
Technology
Read more
1 of 27
Download now
Downloaded 119 times
1
2
Most read
3
4
Most read
5
Most read
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
More Related Content
PDF
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
kazuhcurry
PDF
PG-REXで学ぶPacemaker運用の実例
kazuhcurry
PDF
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Yuichi Ito
PDF
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
Google Cloud Platform - Japan
PDF
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
PDF
Hadoopエコシステムのデータストア振り返り
NTT DATA OSS Professional Services
Pacemaker + PostgreSQL レプリケーション構成(PG-REX)のフェイルオーバー高速化
kazuhcurry
PG-REXで学ぶPacemaker運用の実例
kazuhcurry
Docker入門: コンテナ型仮想化技術の仕組みと使い方
Yuichi Ito
[GKE & Spanner 勉強会] Cloud Spanner の技術概要
Google Cloud Platform - Japan
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
Hadoopエコシステムのデータストア振り返り
NTT DATA OSS Professional Services
What's hot
(20)
PDF
超実践 Cloud Spanner 設計講座
Samir Hammoudi
PDF
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
試して覚えるPacemaker入門 『リソース設定編』
健太 松浦
PPTX
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
PDF
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Masahito Zembutsu
PPTX
地理分散DBについて
Kumazaki Hiroki
PDF
実践!DBベンチマークツールの使い方
Fujishiro Takuya
PDF
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
PDF
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
NTT DATA Technology & Innovation
PDF
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
PDF
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
KafkaとPulsar
Yahoo!デベロッパーネットワーク
PPT
Cassandraのしくみ データの読み書き編
Yuki Morishita
PPTX
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
PDF
PostgreSQL: XID周回問題に潜む別の問題
NTT DATA OSS Professional Services
PDF
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
infinite_loop
PPTX
はじめてのElasticsearchクラスタ
Satoyuki Tsukano
PPTX
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Takeshi Hirosue
PDF
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
Google Cloud Platform - Japan
PDF
Redmine + MySQL 応答性能の調査結果と対策
Kuniharu(州晴) AKAHANE(赤羽根)
超実践 Cloud Spanner 設計講座
Samir Hammoudi
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
試して覚えるPacemaker入門 『リソース設定編』
健太 松浦
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
NTT DATA Technology & Innovation
Docker Compose入門~今日から始めるComposeの初歩からswarm mode対応まで
Masahito Zembutsu
地理分散DBについて
Kumazaki Hiroki
実践!DBベンチマークツールの使い方
Fujishiro Takuya
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
NTT DATA Technology & Innovation
YugabyteDBを使ってみよう - part2 -(NewSQL/分散SQLデータベースよろず勉強会 #2 発表資料)
NTT DATA Technology & Innovation
Apache Kafkaって本当に大丈夫?~故障検証のオーバービューと興味深い挙動の紹介~
NTT DATA OSS Professional Services
レプリケーション遅延の監視について(第40回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
KafkaとPulsar
Yahoo!デベロッパーネットワーク
Cassandraのしくみ データの読み書き編
Yuki Morishita
分析指向データレイク実現の次の一手 ~Delta Lake、なにそれおいしいの?~(NTTデータ テクノロジーカンファレンス 2020 発表資料)
NTT DATA Technology & Innovation
PostgreSQL: XID周回問題に潜む別の問題
NTT DATA OSS Professional Services
PHP+MySQLを使ったスケーラブルなソーシャルゲーム開発
infinite_loop
はじめてのElasticsearchクラスタ
Satoyuki Tsukano
Spring Fest 2017 「エンタープライズで利用するSpring Boot」#jsug #sf_h1
Takeshi Hirosue
株式会社コロプラ『GKE と Cloud Spanner が躍動するドラゴンクエストウォーク』第 9 回 Google Cloud INSIDE Game...
Google Cloud Platform - Japan
Redmine + MySQL 応答性能の調査結果と対策
Kuniharu(州晴) AKAHANE(赤羽根)
Ad
Similar to HAクラスタで PostgreSQLレプリケーション構成の 高可用化
(20)
PDF
ゆるふわLinux-HA 〜PostgreSQL編〜
Taro Matsuzawa
PPTX
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
NTT DATA Technology & Innovation
PDF
PostgreSQLレプリケーション徹底紹介
NTT DATA OSS Professional Services
PDF
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by ...
Insight Technology, Inc.
PDF
PostgreSQL10徹底解説
Masahiko Sawada
PDF
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
Tatsuya Watanabe
PDF
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
Insight Technology, Inc.
PDF
PostgreSQL9.1でつくる高可用性にまつわるエトセトラ
NTT DATA OSS Professional Services
PDF
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
Uptime Technologies LLC (JP)
PDF
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
PDF
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
NTT DATA Technology & Innovation
PDF
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
Takatoshi Matsuo
PDF
JPUGしくみ+アプリケーション勉強会(第25回)
Yoshinori Nakanishi
PDF
論理レプリケーション用スロットのフェールオーバ機能 (第48回 PostgreSQLアンカンファレンス 発表資料)
NTT DATA Technology & Innovation
PDF
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう by PostgreS...
Insight Technology, Inc.
PDF
PostgreSQLレプリケーション(pgcon17j_t4)
Kosuke Kida
PDF
Chugoku db 17th-postgresql-9.6
Toshi Harada
PDF
PostgreSQL9.3新機能紹介
NTT DATA OSS Professional Services
PDF
PostgreSQL on Amazon EC2の可能性
Serverworks Co.,Ltd.
PDF
20171106 ntt-tx-postgre sql-10
Toshi Harada
ゆるふわLinux-HA 〜PostgreSQL編〜
Taro Matsuzawa
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
NTT DATA Technology & Innovation
PostgreSQLレプリケーション徹底紹介
NTT DATA OSS Professional Services
[db tech showcase Tokyo 2015] B17:PostgreSQLで動的にスケールアウト可能な負荷分散DBクラスタを作ろう! by ...
Insight Technology, Inc.
PostgreSQL10徹底解説
Masahiko Sawada
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
Tatsuya Watanabe
[D31] PostgreSQLでスケールアウト構成を構築しよう by Yugo Nagata
Insight Technology, Inc.
PostgreSQL9.1でつくる高可用性にまつわるエトセトラ
NTT DATA OSS Professional Services
5ステップで始めるPostgreSQLレプリケーション@hbstudy#13
Uptime Technologies LLC (JP)
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
PostgreSQLレプリケーション10周年!徹底紹介!(PostgreSQL Conference Japan 2019講演資料)
NTT DATA Technology & Innovation
Pacemaker+PostgreSQLレプリケーションで共有ディスクレス高信頼クラスタの構築@OSC 2013 Tokyo/Spring
Takatoshi Matsuo
JPUGしくみ+アプリケーション勉強会(第25回)
Yoshinori Nakanishi
論理レプリケーション用スロットのフェールオーバ機能 (第48回 PostgreSQLアンカンファレンス 発表資料)
NTT DATA Technology & Innovation
[db tech showcase Tokyo 2014] C31: PostgreSQLをエンタープライズシステムで利用しよう by PostgreS...
Insight Technology, Inc.
PostgreSQLレプリケーション(pgcon17j_t4)
Kosuke Kida
Chugoku db 17th-postgresql-9.6
Toshi Harada
PostgreSQL9.3新機能紹介
NTT DATA OSS Professional Services
PostgreSQL on Amazon EC2の可能性
Serverworks Co.,Ltd.
20171106 ntt-tx-postgre sql-10
Toshi Harada
Ad
HAクラスタで PostgreSQLレプリケーション構成の 高可用化
1.
HAクラスタで PostgreSQLレプリケーション構成の 高可用化 2012/11/30 PostgreSQL Day
2012 松尾隆利 1
2.
レプリケーション対応機能開発経緯 ~ 2009年 ■ PG-REX
というプロジェクトが存在 PG• PostgreSQL 8.3 + 独自パッチ 独自パッチ パッチで同期レプリケーションを実装 • HeartbeatでHAクラスタ化 Heartbeat 2010年 ■ PostgreSQL9.0 + Pacemaker PostgreSQL9.0 Pacemakerで開発 • 同期レプリケーション実現の独自パッチと、HAクラスタ化用独自パッチあり 同期レプリケーション実現の独自パッチと、HAクラスタ化用独自パッチあり レプリケーション実現 パッチと クラスタ化用独自 → 制御スクリプト(pgsql RA)をコミュニティへ投稿するもリジェクト 2011年 ■ PostgreSQL9.1 + Pacemakerで開発 (社外からも応援あり) PostgreSQL9.1 • RAほぼ作り直し → コミュニティ絶賛!(tremendous job !!) 2012年 ■ 4月13日 コミュニティのリポジトリにマージ! ■ 5月16日 resource-agents 3.9.3 としてリリース Pacemakerのコンポーネント名 Copyright(c)2012 NTT, Inc. All Rights Reserved. 2
3.
HAクラスタの今までの構成 ~Active/Standby 構成~ PostgreSQLのデータは共有ディスク上に配置し、2台のサーバ間 で共有 通常はActiveサーバでサービスを提供し、Activeサーバ故障時は StandbyサーバがActiveとなりサービスを提供
(フェイルオーバ) フェイルオーバ Standby Active Active 故障 故障発生 マウント マウント DBデータ DBデータ 共有ディスク 共有ディスク Copyright(c)2012 NTT, Inc. All Rights Reserved. 3
4.
レプリケーション構成 ~Master/Slave 構成~ PostgreSQLのデータはローカルディスク上に配置し、 PostgreSQLのストリーミングレプリケーション機能を用いて共有 通常はMasterサーバでサービスを提供し、Masterサーバ故障時は SlaveサーバがMasterに昇格しサービスを継続 フェイルオーバ Slave Master Master 故障 レプリケーション DBデータ ローカルディスク DBデータ ローカルディスク Copyright(c)2012
NTT, Inc. All Rights Reserved. 故障発生 DBデータ ローカルディスク DBデータ ローカルディスク 4
5.
Active/Standby vs Master/Slave Active/Standby Master/Slave ハードウェア費用 共有ディスク(相当のもの)必須 運用のしやすさ データは1箇所のみ データの安全性 最新データは 共有ディスク上のみ サービス継続性 フェイルオーバ時に リカバリに時間を要する Slave故障がサービスに影響 DB性能 レプリケーションの オーバヘッドなし 共有ディスク構成をとれない 高速ストレージを活用可 負荷分散 構成上不可能 実績 2箇所のデータの整合性を考慮 最新データは2箇所に分散 (同期レプリケーション使用時) ReadOnlyクエリを Slaveで処理可能 これから・・・・ それぞれ一長一短。サービスの要件に応じて選択すること。 Copyright(c)2012
NTT, Inc. All Rights Reserved. 5
6.
レプリケーション構成のHAクラスタ化 3大機能 ①フェイルオーバ フェイルオーバ Master 故障発生 Master 故障 Slave 古 DBデータ DBデータ ②同期・非同期の切替 同期・非同期の DBデータ DBデータ Slave 故障発生 非同期 Master レプリケーション ③ データの状態管理 ③
データの状態管理 ③ データの状態管理 ③ データの状態管理 Master 同期 レプリケーション 故障 DBデータ Copyright(c)2012 NTT, Inc. All Rights Reserved. 古 DBデータ 6
7.
基本構成 負荷分散 しないならば 削除可 サービス提供用LAN Read Only Read/Write 仮想IP3 (vip-slave) 仮想IP1 (vip-master) PostgreSQL (Master) レプリケーション用 レプリケーション用LAN 仮想IP2 (vip-rep) 制御 制御 pgsql RA Pacemaker PostgreSQL (Slave) pgsql
RA Pacemaker用 Pacemaker用LAN Pacemaker STONITH 用LAN サーバ#1 ローカルディスク Copyright(c)2012 NTT, Inc. All Rights Reserved. ※次ページからは省略 ページからは省略 サーバ#2 ローカルディスク 7
8.
基本動作1 : Masterのフェイルオーバ vip-master vip-master PostgreSQL ①故障 (Master) vip-master vip-master vip-slave vip-rep PostgreSQL 故障 ②停止 (Master) PostgreSQL (Slave) vip-slave vip-slave vip-rep vip-rep PostgreSQL (Master) ⑤(Slave) pgsql
RA pgsql RA pgsql RA pgsql RA pgsql RA pgsql RA Pacemaker Pacemaker Pacemaker Pacemaker Pacemaker サーバ#1 サーバ#1 サーバ#1 サーバ#2 サーバ#2 サーバ#2 古 ① #1のPostgreSQLの故障を検知 Copyright(c)2012 NTT, Inc. All Rights Reserved. ② ③ ④ ⑤ ⑥ ④ #1のPostgreSQLを停止 仮想IP(vip-master, vip-rep, vip-slave)を停止 #1のデータが古いことを記録 #2のPostgreSQLをMasterに昇格(promote) #2で仮想IP(vip-master, vip-rep, vip-slave) を起動 8
9.
基本動作2 : 同期・非同期の切替 ② vip-slave ③検知 vip-master PostgreSQL (Master) vip-slave 同期 vip-rep PostgreSQL ①故障 (Slave) ⑤ vip-slave vip-master PostgreSQL (Master) ⑦
非同期 同期 vip-rep PostgreSQL 故障 ④停止 (Slave) pgsql RA pgsql RA pgsql RA pgsql RA Pacemaker Pacemaker Pacemaker Pacemaker サーバ#1 サーバ#2 サーバ#1 サーバ#2 サーバ#2 ⑥ ① ② ~ ③ Slaveの故障発生 Masterのトランザクション停止 レプリケーションのタイムアウト待ち~ #1でレプリケーション切断を検知 SELECT * from pg_stat_replication Copyright(c)2012 NTT, Inc. All Rights Reserved. ④ ⑤ ⑥ ⑦ 古 古 #2のPostgreSQLを停止 #2の仮想IP(vip-slave)を#1に付け替え #2のデータが古いことを記録 #1のPostgreSQLを非同期設定に変更 → トランザクション再開 9
10.
ここまでが基本動作 次はフェイルオーバ後の復旧 Copyright(c)2012 NTT, Inc.
All Rights Reserved. 10
11.
TimelineID PostgreSQLがSlaveからMasterへ昇格した際インクリメントされる数値 TimelineIDが異なるとレプリケーション接続ができない フェイルオーバ時 フェイルオーバ時 フェイルオーバ Master Slave レプリケーション Slave→ Slave→Master 故障 5 5 5 5 6 異なる TimelineIDをそろえるには 新Masterのデータを旧Masterへコピーする必要あり Copyright(c)2012 NTT, Inc.
All Rights Reserved. 11
12.
運用1: フェイルオーバ後の復旧 ⑥ vip-master vip-master pgsql RA pgsql
RA pgsql RA Pacemaker Pacemaker サーバ#1 サーバ#1 サーバ#1 古 vip-rep vip-rep 故 故 ③ フラグ・クリア ロック削除 ② データ同期 ⑤ 同期 レプリケーション PostgreSQL PostgreSQL (Slave) (Master) PostgreSQL ④ (Slave) PostgreSQL vip-rep (Master) pgsql RA pgsql RA pgsql RA pgsql RA pgsql RA pgsql RA Pacemaker Pacemaker Pacemaker Pacemaker サーバ#2 サーバ#2 サーバ#2 サーバ#1 サーバ#2 新 ① 故障の復旧 ② #1のデータを#2と同期 → TimelineIDがそろう ③ #1のロックファイル削除と Pacemaker上の故障フラグを クリア Copyright(c)2012 NTT, Inc. All Rights Reserved. vip-slave vip-slave vip-slave vip-slave vip-slave vip-slave PostgreSQL ①故障復旧 故障 故障 (Master) vip-master (手動) ④ #1のPostgreSQLをSlaveで起動 ⑤ レプリケーション開始 → 非同期で接続→同期設定に切替 ⑥ #2の仮想IP(vip-slave)を#1に付け替え 12
13.
次は起動方法 Copyright(c)2012 NTT, Inc.
All Rights Reserved. 13
14.
PostgreSQLとPacemakerの状態遷移 Masterを直接 起動可能 recovery.conf なしで起動 recovery.conf ありで起動 pg_ctl
promote Slave STOP Master 停止 停止 × start promote Slave STOP stop Master demote PostgreSQLのMasterは必ずSlaveを経由して起動される PostgreSQLのMasterは必ずSlaveを経由して起動される → Master起動時もTimelineIDがインクリメントされる → Master起動時もTimelineIDがインクリメントされる Copyright(c)2012 NTT, Inc. All Rights Reserved. 14
15.
運用2 : 起動 vip-slave ③仮想IP起動 vip-slave vip-master PostgreSQL 停止 ) (Master) ②起動 ⑥ vip-slave vip-master vip-rep PostgreSQL 停止 停止 (Master) ) vip-rep PostgreSQL 停止 (Slave) ⑤起動 pgsql
RA pgsql RA pgsql RA pgsql RA Pacemaker Pacemaker Pacemaker サーバ#1 サーバ#1 サーバ#2 ① 新 古 ① データが新しい方のサーバーを選択 ② 選択したサーバのPacemakerを起動 → Slaveで起動 → Masterに遷移 → TimelineIDがずれる ③ 仮想IPが#1で起動 Copyright(c)2012 NTT, Inc. All Rights Reserved. 新 (手動) サーバ#2 ④ データ同期 古 ④ #2のデータを#1と同期 (手動) → TimelineIDがそろう ⑤ Pacemaker起動 → レプリケーション開始 ⑥ #1の仮想IP(vip-slave) を#2に付け替え 15
16.
高可用化まとめ 3大機能 ■ Masterのフェイルオーバ ■ レプリケーションの同期・非同期の切替 ■
データの状態管理 運用時の注意 ■ TimelineIDがずれているとレプリケーションできないため注意 • 難しくてよくわからない場合は、 『Slave 起動前に Master データのコピーが必要』 と覚えておけばOK ※ 単純にTimelineID を合わせるためには、WALアーカイブのみをコピーすれば可能だが、 フェイルオーバするとサーバ間のデータの整合性が崩れる可能性があり、これを避けるためにも 全データのコピーを推奨 Copyright(c)2012 NTT, Inc. All Rights Reserved. 16
17.
デモ Copyright(c)2012 NTT, Inc.
All Rights Reserved. 17
18.
デモ環境 サービス提供用LAN 仮想IP1 (vip-master) PostgreSQL (msPostgresql) <Master> Pacemaker ホスト名 : pm01 ローカルディスク Copyright(c)2012
NTT, Inc. All Rights Reserved. 仮想IP3 (vip-slave) レプリケーション用 レプリケーション用LAN 仮想IP2 (vip-rep) Pacemaker用 Pacemaker用LAN PostgreSQL (msPostgresql) <Slave> Pacemaker ホスト名 : pm02 ローカルディスク 18
19.
Pacemaker状態表示例 (crm_mon –Af
実行時) Online: [ pm01 pm02 ] vipvip-slave (ocf::heartbeat:IPaddr2): masterResource Group: master-group vipvip-master (ocf::heartbeat:IPaddr2): vipvip-rep (ocf::heartbeat:IPaddr2): Master/Slave Set: msPostgresql Masters: [ pm01 ] Slaves: [ pm02 ] Clone Set: clnPingd Started: [ pm01 pm02 ] Node Attributes: * Node pm01: + default_ping_set master+ master-pgsql:0 pgsql-data+ pgsql-data-status pgsql+ pgsql-status pgsql-master+ pgsql-master-baseline + pm02-eth1 pm02pm02+ pm02-eth2 * Node pm02: + default_ping_set master+ master-pgsql:1 pgsql-data+ pgsql-data-status pgsql+ pgsql-status pm01+ pm01-eth1 pm01+ pm01-eth2 Migration summary: * Node pm01: * NTT, Inc. All Copyright(c)2012Node pm02: Rights Reserved. Started pm02 Started pm01 Started pm01 仮想IPの 状態 PostgreSQLの の Master/Slaveの状態 の状態 : : : : : : : 100 1000 LATEST PRI 00000000150000B0 up up : : : : : : 100 100 STREAMING|SYNC HS:sync up up pm01ノードの ノードのPostgreSQLと と ノードの データの状態 promote直前の 直前のxlogの位置 の位置 直前の pm02ノードの ノードのPostgreSQLと ノードの と データの状態 19
20.
Pacemaker状態表示 省略後(今回のデモ用表示) vip-slave (ocf::heartbeat:IPaddr2): Started
pm02 Resource Group: master-group vip-master (ocf::heartbeat:IPaddr2): Started pm01 vip-rep (ocf::heartbeat:IPaddr2): Started pm01 Master/Slave Set: msPostgresql Masters: [ pm01 ] Slaves: [ pm02 ] --------------------------------------------------------* Node pm01: + pgsql-data-status : LATEST + pgsql-status : PRI * Node pm02: + pgsql-data-status : STREAMING|SYNC + pgsql-status : HS:sync --------------------------------------------------------* Node pm01: * Node pm02: Copyright(c)2012 NTT, Inc. All Rights Reserved. 仮想IPの 状態 PostgreSQLの の Master/Slaveの状態 の状態 pm01ノードの ノードのPostgreSQLと ノードの と データの状態 pm02ノードの ノードのPostgreSQLと ノードの と データの状態 故障状態が表示される 20
21.
【デモ】 Slaveの故障 pm02のPostgreSQLのプロセスをkill # killall
-9 postgres vip-slaveの移動 vip-slave vip-master vip-slave Started pm02 ↓ Started pm01 故障 PostgreSQL (Master) 非同期 設定に切替 (表示上わからない) Pacemaker PM01 vip-rep PostgreSQL (停止) 故障 検知 Pacemaker PM02 データ状態の 記録 STREAMING|SYNC ↓ DISCONNECTED Copyright(c)2012 NTT, Inc. All Rights Reserved. 21
22.
【デモ】 Slaveの復旧 pm02のフェイルカウントクリア # crm resource
cleanup msPostgresql pm02 vip-slaveの移動 vip-slave vip-slave vip-master PostgreSQL (Master) 同期 設定に切替 vip-rep Pacemaker PostgreSQL (Slave) Pacemaker PM01 PM02 Started pm01 ↓ Started pm02 データ状態の 記録 DISCONNECTED ↓ STREAMING|SYNC Slave起動 Copyright(c)2012 NTT, Inc. All Rights Reserved. HS:sync 22
23.
【デモ】 Masterの故障 pm01のPostgreSQLのプロセスをkill # killall
-9 postgres 故障 検知 vip-masterの移動 vip-master vip-master vip-slave 故障 vip-repの移動 Started pm01 ↓ Started pm02 データ状態の 記録 LATEST ↓ DISCONNECTED Copyright(c)2012 NTT, Inc. All Rights Reserved. PostgreSQL (停止) Pacemaker PM01 vip-rep vip-rep PostgreSQL (Master) Started pm01 ↓ Started pm02 Masterに昇格 Pacemaker PM02 23
24.
PostgreSQL制御スクリプト (pgsql RA)
の最近の動き resource-agent 3.9.4 (11/23リリース) での変更内容 ■ Pacemaker 1.1.x の仕様変更に追従 • Pacemaker 1.0.x との互換は保持 ■ recovery.confの、archive_cleanup_commandや recovery_end_commandを設定可能に ■ promote時にPostgreSQLをpromoteするのではなく、 recovery.confを削除して再起動させることでMaster化可能に • Timeline ID のインクリメント防止可能に – ただしexperimental 機能 ■ その他細かなバグ修正 Copyright(c)2012 NTT, Inc. All Rights Reserved. 24
25.
動作環境 Pacemaker 1.0.12 以上推奨 resource-agents
3.9.3 以上必須 ■ Linux-HA Japan Pacemakerリポジトリパッケージ 1.0.12-1.2 以上に同梱 (2012年7月リリース) PostgreSQL 9.1 以上 ■ 9.0では動きません Copyright(c)2012 NTT, Inc. All Rights Reserved. 25
26.
参考 ソースコード (GitHub上のRA直リンク) ■ URL
: https://github.com/ClusterLabs/resource-agents/blob/master/heartbeat/pgsql ドキュメントおよび設定例 (GitHubのWiki) ■ https://github.com/t-matsuo/resource-agents/wiki/ Pacemakerダウンロード・インストール ■ http://linux-ha.sourceforge.jp/ PG-REX(PostgreSQL + Pacemaker)利用マニュアル ■ http://sourceforge.jp/projects/pg-rex/releases/55691 Copyright(c)2012 NTT, Inc. All Rights Reserved. 26
27.
Question? Copyright(c)2012 NTT, Inc.
All Rights Reserved. 27
Download