Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High...

44
Pacemakerで学ぶ HAクラスタ OSC2019 Tokyo/Spring 2019/2/23 Linux-HA Japan 松浦 健太

Transcript of Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High...

Page 1: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

Pacemakerで学ぶ

HAクラスタ OSC2019 Tokyo/Spring

2019/2/23

Linux-HA Japan 松浦 健太

Page 2: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

はじめに:本日の話の流れ

Linux-HA Japan Project 2

1. 可用性とクラスタ — 可用性とは、可用性を向上させるためには — 「クラスタ」の必要性と分類について

2. Pacemakerとは

— Pacemakerの概要と動作

3. いろんなHAクラスタ — HAクラスタでのサーバ構成とデータ管理

4. まとめ

Page 3: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

可用性とクラスタ

Page 4: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

Linux-HA Japan Project 4

可用性(Availability)=サービス継続性

もしサービスが止まってしまったら??

可用性を高め「止まらないサービス」の実現を目指す

様々な不利益を被ることに・・・

可用性とは

Page 5: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

可用性の向上

Linux-HA Japan Project 5

プレゼンテーション層 データベース層 アプリケーション層

ユーザ

共有ディスク

SPOF

SPOF SPOF SPOF

可用性を高めるためには単一障害点(SPOF:Single Point of Failure ある一点が故障した場合にサービスが停止してしまう部位)の除去が重要

Page 6: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

可用性の向上

Linux-HA Japan Project 6

プレゼンテーション層 データベース層 アプリケーション層

ユーザ

共有ディスク

可用性を高めるためには単一障害点(SPOF:Single Point of Failure ある一点が故障した場合にサービスが停止してしまう部位)の除去が重要

共有ディスク

クラスタ化により 可用性向上!

Page 7: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

クラスタとは

Linux-HA Japan Project 7

ところで、クラスタとは? • 語源は果実や花の房 • 同じようにまとまっているもののことを指す

ぶどう 藤の花

• IT業界でいうクラスタとは、複数のコンピュータを連携させ、 全体で一つのコンピュータのように振る舞わせる仕組みを指す

Page 8: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

クラスタの分類

Linux-HA Japan Project 8

負荷分散クラスタ 同一のサービスを提供する複数台のサーバに対して処理を分配する そのため、一台が停止しても残りのサーバでサービスを継続することができ、 かつ一台のサーバでは得られなかった処理性能を確保することが可能

メインでサービスを提供するサーバ(稼働系,現用系,Activeなどと呼ばれる)と、 それをバックアップするサーバ(待機系,予備系,Standbyなどと呼ばれる)で 構成され、現用系に障害が発生した際に予備系でサービスを引き継ぐことで、 サービスの停止時間を短くする

HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、 一台のコンピュータでは得られない高性能を確保することを目的とする

HA(High Availability:高可用)クラスタ

可用性を向上できるのはこの2つ

Page 9: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

クラスタの分類

Linux-HA Japan Project 9

負荷分散クラスタ 同一のサービスを提供する複数台のサーバに対して処理を分配する そのため、一台が停止しても残りのサーバでサービスを継続することができ、 かつ一台のサーバでは得られなかった処理性能を確保することが可能

メインでサービスを提供するサーバ(稼働系,現用系,Activeなどと呼ばれる)と、 それをバックアップするサーバ(待機系,予備系,Standbyなどと呼ばれる)で 構成され、現用系に障害が発生した際に予備系でサービスを引き継ぐことで、 サービスの停止時間を短くする

HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、 一台のコンピュータでは得られない高性能を確保することを目的とする

HA(High Availability:高可用)クラスタ

Page 10: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

負荷分散クラスタ概要

Linux-HA Japan Project 10

基本構成 • 同じサービスを提供する複数のサーバ群に対して処理を分散させ、

1台あたりのサーバ負荷を低減させる • LB(ロードバランサ)によるWebサーバへの負荷分散や、

WebサーバによるAPサーバへの負荷分散処理等、複数のパターンがある

Page 11: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

クラスタの分類

Linux-HA Japan Project 11

負荷分散クラスタ 同一のサービスを提供する複数台のサーバに対して処理を分配する そのため、一台が停止しても残りのサーバでサービスを継続することができ、 かつ一台のサーバでは得られなかった処理性能を確保することが可能

メインでサービスを提供するサーバ(稼働系,現用系,Activeなどと呼ばれる)と、 それをバックアップするサーバ(待機系,予備系,Standbyなどと呼ばれる)で 構成され、現用系に障害が発生した際に予備系でサービスを引き継ぐことで、 サービスの停止時間を短くする

HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、 一台のコンピュータでは得られない高性能を確保することを目的とする

HA(High Availability:高可用)クラスタ

Page 12: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

HAクラスタ概要

Linux-HA Japan Project 12

• サービス中のサーバに故障が発生した場合、他のサーバに処理を引き継ぐ • サービスを提供する現用系サーバと待機状態にしておく予備系サーバから成る

Active-Standby構成(Act-Sbyと書くことも)が一般的 • 同等の性能を有するサーバを2台配置し、サーバ間でデータの共有が必要な場

合は共有ディスク※を使用

※ 共有ディスクを用いる代わりに、ソフトウェアの機能でデータを他のサーバへレプリケーションすることでデータを共有する構成もある

基本構成

共有ディスク

現用系(Active) 予備系(Standby)

サービス

AP

Page 13: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

負荷分散クラスタとHAクラスタの違い

Linux-HA Japan Project 13

負荷分散クラスタは負荷の分散をしつつ可用性を高める。

一方、HAクラスタは可用性を高めるだけ・・・。

もう負荷分散クラスタで

良くない?

Page 14: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

負荷分散クラスタとHAクラスタの違い

Linux-HA Japan Project 14

負荷分散クラスタとHAクラスタはサービスを2重起動するか否かで 使い分ける。

DBを2重起動した場合

共有ディスク

サービス

AP

サービス

AP

データ 破壊

HAクラスタなら2重起動をしないため問題ない

write write

Page 15: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

Linux-HA Japan Project 15

次章からは このHAクラスタについて 「Pacemaker」を例に 説明します!

Page 16: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

Pacemakerとは

Page 17: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

Pacemakerとは

Linux-HA Japan Project 17

Pacemaker(ぺーすめーかー)とはオープンソースで 開発されている高可用(High Availability)クラスタソフト

Heartbeatの後継として開発されたソフトウェアであり、ソースはGitHubで管理

ClusterLabs : https://github.com/ClusterLabs

バイナリファイルは以下より入手可能

Linux-HA Japanプロジェクト: http://linux-ha.osdn.jp/wp/

Page 18: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

HAクラスタソフト

Linux-HA Japan Project 18

共有ディスク

現用系 予備系

故障検知とサービス引継ぎ ・常時ハードウェア及びサービスアプリケーションの稼動状態を監視 ・現用系サーバ上で故障を検知した場合、 予備系でアプリケーションを起動してサービスを継続→「フェイルオーバ」という

HAクラスタソフトの主な機能

サービス

AP 故障発生

フェイルオーバ

プロセス停止

カーネルハング

ハードウェア故障 etc...

HAクラスタの管理を自動化するソフトウェアをHAクラスタソフトという。

Page 19: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

HAクラスタソフト

Linux-HA Japan Project 19

排他制御 ・スプリットブレイン発生時にサービスを2重起動しない様に、予備系でのサービス起動を抑止 ※ スプリットブレインとは ・クラスタ間で正常に通信が行えず、それぞれ独立してサービス管理を行う状態 ・サービスが2重起動することにより共有ディスクへの書き込みが競合し、データ 破壊が発生するなど、サービス継続に致命的な現象を引き起こす要因となる

共有ディスク

クラスタ間の通信 サービス

AP

<データ破壊のイメージ> 予備系:node02

①node02の応答が 無くなった・・・!

①node01の応答が 無くなった・・・!

通信断!

②サービスを起動しなきゃ!

サービス

AP

write write

データ破壊!

③2重書き込みによるデータ破壊!

現用系:node01

Page 20: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

Pacemakerにできること

Linux-HA Japan Project 20

サーバ#1 サーバ#2

アプリケーション監視・制御

仮想IP

自己監視

ノード監視

ディスク監視・制御

ネットワーク監視・制御

・プロセス監視 ・watchdog

・ファイルシステム監視 ・共有ディスク排他制御

・ハートビート通信 ・STONITH(強制電源断)

・ping疎通確認 ・仮想IP制御

・起動・停止・監視

Pacemakerではフェイルオーバや排他制御などを行うために以下の様な機能を実装

共有ディスク

本講演にて主に 説明する機能

Page 21: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

Pacemakerとは 故障検知とサービス引継ぎ 排他制御

Page 22: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

アプリケーションの監視・制御(起動)

Linux-HA Japan Project 22

サーバ#2 サーバ#1

起動

共有ディスク

PostgreSQL

アプリケーションなどの起動停止はPacemakerより実施

Pacemaker起動

起動

Page 23: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

アプリケーションの監視・制御(監視)

Linux-HA Japan Project 23

サーバ#2 サーバ#1

監視

故障発生

共有ディスク

PostgreSQL

Pacemakerはアプリケーション起動後、定期的に監視処理を実施

正常 故障 検知

Page 24: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

アプリケーションの監視・制御(フェイルオーバ)

Linux-HA Japan Project 24

サーバ#2 サーバ#1

停止

共有ディスク

PostgreSQL

フェイルオーバ

故障検知後はアプリケーションを現用系で停止してから予備系で起動

起動

Page 25: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

Pacemakerにできること

Linux-HA Japan Project 25

PostgreSQLの起動は ”$ pg_ctl -w start” Apacheの起動は ”$ apachectl start” 対象毎に起動・停止・監視方法はバラバラ なのにどうやって一括管理するの?

どうやって様々な種類のアプリケーション等を

監視・制御しているの?

Pacemakerは様々な対象を起動/停止/監視することが可能

・・・だけど

PostgreSQLやApacheの起動停止、Filesystemのmount、仮想IPの割り当てetc....

Page 26: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

Linux-HA Japan Project 26

Pacemakerの"故障検知とサービス引継ぎ"の実現

Pacemakerは起動/停止/監視する対象ごとに用意されている「リソースエージェント(RA)」と呼ばれる実行ファイルを仲介することで対象にあわせた制御・監視が可能

• 多くのRAはシェルスクリプトで、起動/停止/監視する対象にあわせたstart関数、stop関数、monitor関数などを実装 (例: PostgreSQL用のRAのstart関数では”$ pg_ctl -w start”を実行)

• Pacemakerではデフォルトで様々な対象ごとのRAを同梱しており、また自作して追加することも可能

PostgreSQL RA

Apache RA

ファイルシステム RA

リソース エージェント

PostgreSQL RA

スクリプト関数実行 start() / stop() / monitor()

コマンド実行 pg_ctl start / pg_ctl stop / SELECT now();

共有ディスク

PostgreSQLの制御・監視に おけるRA実行の具体的な流れ

Page 27: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

Pacemakerに同梱されているRA一覧

Linux-HA Japan Project 27

AoEtarget LVM-activate Stateful aws-vpc-route53 garbd lxd-info ovsmonitor sg_persist AudibleAlarm LinuxSCSI SysInfo awseip hulft machine-info pgagent slapd CTDB MailTo VIPArip awsvip iSCSILogicalUnit mariadb pgsql symlink ClusterMon ManageRAID VIPcheck azure-lb iSCSITarget minio pingd syslog-ng Delay ManageVE VirtualDomain clvm ids mpathpersist portblock tomcat Dummy NodeUtilization WAS conntrackd iface-bridge mysql postfix varnish EvmsSCC Pure-FTPd WAS6 db2 iface-vlan mysql-proxy pound vmware Evmsd Raid1 WinPopup dhcpd ipsec nagios proftpd vsftpd Filesystem Route Xen dnsupdate iscsi named rabbitmq-cluster zabbixserver ICP SAPDatabase Xinetd docker jboss nfsnotify redis IPaddr SAPInstance ZFS eDir88 jira nfsserver rkt IPaddr2 SendArp anything ethmonitor kamailio nginx rsyncd IPsrcaddr ServeRAID apache exportfs ldirectord oraasm rsyslog IPv6addr SphinxSearchDaemon asterisk fio lvmlockd oracle scsi2reservation LVM Squid aws-vpc-move-ip galera lxc oralsnr sfex HealthCPU HealthSMART SysInfo SystemHealth attribute controld diskd ifspeed o2cb ping remote などなど....

※ systemdのユニットファイルを使用して管理することも可能

以下の様なRAがPacemakerのパッケージに同梱されており、Pacemakerから監視・制御が可能

Page 28: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

Pacemakerとは アプリケーションの監視・制御 排他制御

Page 29: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

クラスタ間の通信

Linux-HA Japan Project 29

Pacemakerではクラスタ間でハートビート通信と呼ばれる通信を定期的に送信しあうことでお互いのサーバの状態確認やサービス起動停止の一括制御を実現

ハートビート通信

共有ディスク サーバ#2 サーバ#1

生きてる? 元気だよ

サービス 起動して

OK

Page 30: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

クラスタ間の通信

Linux-HA Japan Project 30

ハートビートLAN

共有ディスク サーバ#2 サーバ#1

通信断発生!

サーバ#1からの応答が 無くなった・・・!

ノード故障が発生したかな? サービスを起動しなきゃ!

この状態ってもしかして・・・?

「スプリットブレイン」です

もしハートビート通信が途絶したら....

Page 31: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

スプリットブレイン対策

Linux-HA Japan Project 31

HW制御ボード HW制御ボード

STONITH(Shoot The Other Node In The Head) ・スプリットブレイン(両系がActive状態)になる前に 対向ノードの強制電源断を実行する機能(排他制御機能) ・サーバ付属のリモートHW制御ボード(iLOなど)を操作

ハートビートLAN

共有ディスク

サーバ#2 サーバ#1

ハートビートLANとは 別の通信経路を使用

サーバの電源と 連動しないデバイスを使用

STONITHLAN

iLOポート

Page 32: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

スプリットブレイン対策

Linux-HA Japan Project 32

STONITHLAN

ハートビートLAN

共有ディスク

サーバ#2 サーバ#1

通信断発生!

①サーバ#2の応答が 無くなった・・・!

<STONITHによる排他制御イメージ>

HW制御ボード HW制御ボード

①サーバ#1の応答が 無くなった・・・!

②’サービスを起動 しなきゃ!

②サーバ#2でサービスを 起動させてはいけない!

2重起動を免れた!

Page 33: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

【補足】STONITHが使えない環境の場合

Linux-HA Japan Project 33

sfex ・共有ディスクのsfex専用パーティションに、ディスクのロック情報を定期的に書き込む ・Active系によりロック情報が更新されていれば、Active系が生存していると判断し、 Standby系でのリソース起動を抑止 ・STONITHが使用できる環境においても、信頼性を高めるために本機能を併用することがある

VIPcheck ・Standby系からActive系の仮想IP(VIP)に対してpingを送信 ・ping応答があれば、Active系が生存していると判断し、Standby系でのリソース起動を抑止

HW制御ボードなどが存在せずSTONITHが使用できない場合は 以下のような機能によりスプリットブレイン対策を行うことが可能

各機能の詳細についてはOSC 2015 Tokyo/Fallに講演している

『試して覚えるPacemaker入門 排他制御機能編』 の資料を参照してください。 http://linux-ha.osdn.jp/wp/archives/4338

Page 34: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

いろんな HAクラスタ

Page 35: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

HAクラスタの構成

Linux-HA Japan Project 35

【1+1Cross構成】 2の業務APを別ノードで起動させ、それぞれのノードを相互に現用系、予備系とする構成

【1+1構成】 現用系と予備系が1:1の構成

【N+1構成】 複数台の現用系ノードに対して1台の予備系ノードを置く構成

【N+M構成】 複数台の現用系ノードに対して複数台の予備系ノードを置く構成

サービス AP1

現用系

サービス AP1

サービス AP2

予備系

現用系(サービスAP1) 予備系(サービスAP1)

現用系(サービスAP2) 予備系(サービスAP2)

サービス AP1

サービス AP2

サービス AP3

サービス AP1

サービス AP2

サービス AP3

現用系 現用系 現用系 予備系

現用系 現用系 現用系 予備系 予備系

HAクラスタには現用系1台、予備系1台の1+1構成の他に、以下の様な構成も可能

Page 36: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

HAクラスタにおけるデータ管理

Linux-HA Japan Project 36

共有ディスクを使用して、同じデータファイルにアクセスする

HAクラスタではフェイルオーバ後に処理を引き継ぐため、 予備系でも現用系と同一のデータが必要

共有ディスク

ハートビートLAN

現用系(Active) 予備系(Standby)

サービス

AP

もう一つのやり方が...

データをレプリケーションして、同じデータを保有する

Page 37: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

シェアードナッシングHA構成

Linux-HA Japan Project 37

• OSS製品ではPostgreSQLの機能やDRBDを使用することでレプリケーションが可能。 • 高価な共有ディスクがないためコストは安いがレプリケーションによるオーバヘッドが

あるため性能は共有ディスクを使用したほうが高い。

現用系 予備系

レプリケーション

データを更新する際に、更新内容をネットワーク経由で予備系にレプリケーションする構成

データ更新

サービス

AP

サービス

AP

Page 38: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

Linux-HA Japan Project 38

PacemakerとPostgreSQLのレプリケーション機能によるシェアードナッシングHA構成についてもっと知りたい方へ

オープンソースカンファレンス2017 Kyoto 「試して覚えるPacemaker入門 PG-REX(Pacemaker + PostgreSQLによるシェアードナッシングHA構成)構築」

http://linux-ha.osdn.jp/wp/archives/4627

オープンソースカンファレンス2018 Osaka 「試して覚えるPacemaker入門 PG-REX(Pacemaker + PostgreSQLによる

シェアードナッシングHA構成)運用」

http://linux-ha.osdn.jp/wp/archives/4664

PacemakerとDRBDによるシェアードナッシングHA構成についてもっと知りたい方へ

SIOS社(旧サードウェア社)提供の日本語マニュアル

https://blog.3ware.co.jp/ドキュメント/

参考資料

Page 39: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

まとめ

Page 40: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

まとめ

Linux-HA Japan Project 40

可用性とクラスタ • 可用性を向上させるためにクラスタを導入しSPOFを除去 • 「負荷分散クラスタ」の同一のサービスを複数サーバで提供することで処理の分散と

可用性の向上を実現 • 「HAクラスタ」は故障発生時に同一のサービスを別のサーバで立ち上げなおすことで

可用性の向上を実現 • 「負荷分散クラスタ」と「HAクラスタ」はサービスを2重起動するか否かでどちらの構成

とするか決める

PacemakerによるHAクラスタ • HAクラスタソフトの主な機能として故障検知とサービス引継ぎ、スプリットブレイン対策

のための排他制御がある • Pacemakerではリソースエージェント(RA)を使用することで様々な対象の故障検知や

サービス引継ぎが可能 • スプリットブレイン対策としてSTONITHが使用可能 • HAクラスタは現用系、予備系を1+1構成だけではなくN+M構成など様々な構成が可能 • 動的なデータは共有ディスクの使用やレプリケーションすることで予備系に共有

Page 41: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

コミュニティ紹介

Page 42: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

Linux-HA Japan Project 42

Linux-HA Japan URL

http://linux-ha.osdn.jp/

Pacemaker関連の最新情報を日本語で発信

Pacemakerのダウンロードも

こちらからどうぞ (インストールが楽なリポジトリパッケージを公開しています)

https://ja.osdn.net/projects/linux-ha/

コミュニティ紹介

Page 43: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

Linux-HA Japan Project 43

• ML登録用URL http://linux-ha.osdn.jp/

の「メーリングリスト」をクリック

• MLアドレス [email protected]

日本におけるHAクラスタについての活発な意見交換の場として「Linux-HA Japan日本語メーリングリスト」 も開設しています

Linux-HA-Japan MLでは、Pacemaker、Heartbeat3、Corosync

DRBDなど、HAクラスタに関連する話題は歓迎!

※スパム防止のために、登録者以外の投稿は許可制です

コミュニティ紹介

Page 44: Pacemakerで学ぶ HAクラスタlinux-ha.osdn.jp/wp/wp-content/uploads/OSC2019_Tokyo...HPC(High Performance Computing)クラスタ 複数台のコンピュータを結合させて演算処理を分担し、

ご清聴ありがとうございました