SlideShare a Scribd company logo
1 of 42
Download to read offline
Copyright(c) 2016 Linux-HA Japan Project
OpenStackでも重要な役割を果たす
Pacemakerを知ろう!
~クラウドの雲の下では何が起こっているのか~
2016年11月5日
Linux-HA Japan プロジェクト
http://linux-ha.osdn.jp/
森 啓介
2
Copyright(c) 2011 Linux-HA Japan Project 2
自己紹介
 名前: 森 啓介 (Keisuke MORI)
 twitter: @ksk_ha
 Linux-HA Japanプロジェクト関連の活動
 Pacemakerリポジトリパッケージのリリース
 http://linux-ha.osdn.jp/
 ClusterLabs プロジェクトのコミッタ
 Pacemaker、resource-agents などHAクラスタ関連の開発コミュニティ
 https://github.com/ClusterLabs/
 本業
 普段の業務: NTT OSSセンタ
 NTTグループ内におけるPacemaker/Heartbeatの導入支援・サポート
 バグ報告・パッチ作成などによるNTTから開発コミュニティへのフィードバック・貢献
3
Copyright(c) 2011 Linux-HA Japan Project 3
もくじ
 Pacemakerとは
 OpenStack におけるHAの必要性
 Red Hat OpenStack Platform でのHA構成例
 OpenStack HA の今後の動向
4
Copyright(c) 2011 Linux-HA Japan Project 4
もくじ
 Pacemakerとは
 OpenStack におけるHAの必要性
 Red Hat OpenStack Platform でのHA構成例
 OpenStack HA の今後の動向
5
Copyright(c) 2011 Linux-HA Japan Project 5
Pacemakerの概要
サーバ#1 サーバ#2
サービスの監視・制御
サーバ間の監視・制御
 サーバ・アプリケーションの故障監視
6
Copyright(c) 2011 Linux-HA Japan Project 6
Pacemakerの概要
サーバ#1 サーバ#2
サービスのフェイルオーバ
 故障検知時、自動的にフェイルオーバ
 ダウンタイムの最小化
 STONITHによるデータの安全性確保
STONITH(強制電源断)
7
Copyright(c) 2011 Linux-HA Japan Project 7
Pacemakerを詳しく知りたかったら…
Pacemakerとは… 高可用(HA)クラスタソフトウェアです。
Linux-HA Japan プロジェクト 2F 205教室にてデモ展示中!
8
Copyright(c) 2011 Linux-HA Japan Project 8
もくじ
 Pacemakerとは
 OpenStack におけるHAの必要性
 Red Hat OpenStack Platform でのHA構成例
 OpenStack HA の今後の動向
9
Copyright(c) 2011 Linux-HA Japan Project 9
OpenStackにおけるHAの必要性
クラウド時代にHAクラスタなんて
いるのぉ??
10
Copyright(c) 2011 Linux-HA Japan Project 10
クラウドユーザ(テナント)からみた世界
インスタンス
アプリケーション
インスタンス
「インスタンス作って!」
「インスタンス消して!」
インスタンスアクセス
11
Copyright(c) 2011 Linux-HA Japan Project 11
雲の下では…
インスタンス
アプリケーション
nova-compute
インスタンス
コントロールノード
テナントネットワーク(VLAN)
物理ネットワーク
APIアクセス
インスタンスアクセス
nova-compute
コンピュートノード
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Swift
Ceilometer
Heat
12
Copyright(c) 2011 Linux-HA Japan Project 12
コントロールノードの故障
インスタンス
アプリケーション
nova-compute
インスタンス
テナントネットワーク(VLAN)
物理ネットワーク
APIアクセス
インスタンスアクセス
nova-compute
コンピュートノードコントロールノード
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Swift
Ceilometer
Heat
コントロールノード
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Swift
Ceilometer
Heat
データの複製
サービス切替
13
Copyright(c) 2011 Linux-HA Japan Project 13
コンピュートノードの故障
インスタンス
アプリケーション
nova-compute
インスタンス
テナントネットワーク(VLAN)
物理ネットワーク
nova-compute
コンピュートノードコントロールノード
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Swift
Ceilometer
Heat インスタンス
インスタンスの
確実な停止
適切な状態管理 インスタンスの復旧
(nova evacuate)
インスタンスアクセスAPIアクセス
14
Copyright(c) 2011 Linux-HA Japan Project 14
アプリケーションの故障
インスタンス
アプリケーション
nova-compute
インスタンス
テナントネットワーク(VLAN)
物理ネットワーク
nova-compute
コンピュートノードコントロールノード
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Swift
Ceilometer
Heat インスタンス
インスタンスアクセス
アプリケーション
アプリケー
ションの復旧
APIアクセス
15
Copyright(c) 2011 Linux-HA Japan Project 15
OpenStackにおけるHAの必要性
クラウド時代にHAクラスタなんて
いるのぉ??
当然必要よ!
16
Copyright(c) 2011 Linux-HA Japan Project 16
OpenStackにおけるHAの観点
 コントロールノードHA
 コントロールノードの物理故障・通信断
 各OpenStackサービスプロセス・データベースサーバ
・メッセージキューのソフトウェア故障
 コンピュートノードHA
 コンピュートノードの物理故障・通信断
 インスタンスのソフトウェア故障
 アプリケーションHA
 インスタンスのソフトウェア故障
 テナントユーザのサービス(アプリケーション)故障
クラウド提供者
(基盤管理者)
による管理
クラウドユーザ
(テナント)
による管理
17
Copyright(c) 2011 Linux-HA Japan Project 17
OpenStackにおけるHAの必要性
 クラウド提供者(基盤管理者)にとっては…
 クラウドユーザに対するOpenStackサービスの可用性確保
 従来通りの物理環境での HAクラスタが必要
 インスタンスの可用性確保
 従来の HA クラスタのさらなる応用が必要
 クラウドユーザ(テナント)にとっては…
 クラウド提供者(基盤管理者)が可用性を確保しているからこそ安心して利用
が可能
 自分のサービス(アプリケーション)の可用性は自分で確保する必要あり
 クラウド上でのHAクラスタ構成
 クラウド特有の方式 (Ceilometer / Heat / Senlin 等)
18
Copyright(c) 2011 Linux-HA Japan Project 18
主なディストリビューションのHA方式
ディストリ
ビューション
構築方式
HAクラスタ
ソフトウェア
コント
ロール
ノード
HA
コン
ピュー
ト
ノード
HA
データベース
冗長化方式
補足
Openstack.org
(upstream)
手動
Pacemaker
+ Corosync
△ ー Galera
●
公式ドキュメントでは要件・概念と手順の断片が示され
ているのみ。
●
具体的な設定・構築手順等は独自に設計する必要あり。
●
2016年10月時点で日々更新中
Red Hat
OpenStack
Platform 8
(RH OSP)
director
(Triple O)
Pacemaker
+ Corosync
◯ ◯
Galera /
MariaDB
●
コントロールノード構成は3ノード以上
●
全てのOpenStackサービスが同居する構成前提
●
Neutron はL3HA設定によるActive/Active構成
SUSE
OpenStack
Cloud 6
Crowbar +
barclamp
Pacemaker
+ Corosync
◯ ◯
PostgreSQL
+ DRBD
●
コントロールノード構成はDBサーバのみ2ノード、他
のOpenStackサービスは3ノード以上
●
Neutron はスクリプト方式(ha-tools)によるHA方式
Ubuntu
MAAS +
juju
Pacemaker
+ Corosync
◯ ー
Percona
XtraDB
Cluster
Mirantis Fuel
Pacemaker
+ Corosync
◯ ー
Galera /
MySQL
※主に Liberty ベース時点での情報
今日のトピックはココ!
19
Copyright(c) 2011 Linux-HA Japan Project 19
OpenStackにおけるHAの必要性
クラウド時代にHAクラスタなんて
いるのぉ??
当然必要よ!
OpenStackクラウド基盤の高可用化にも
Pacemakerは使われてるの!
20
Copyright(c) 2011 Linux-HA Japan Project 20
もくじ
 Pacemakerとは
 OpenStack におけるHAの必要性
 Red Hat OpenStack Platform でのHA構成例
 OpenStack HA の今後の動向
21
Copyright(c) 2011 Linux-HA Japan Project 21
インスタンス
nova-compute
Pacemaker_remote
インスタンス
nova-compute
Pacemaker_remote
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Swift
Ceilometer
Heat
Pacemaker
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Swift
Ceilometer
Heat
Pacemaker
Red Hat OpenStack Platform 8 のHA構成概要
※ストレージノードは省略
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Swift
Ceilometer
Heat
Pacemaker
コントロールノードHA
インスタンス
nova-compute
Pacemaker_remote
コンピュートノードHA
NovaEvacuate
RA
fence_compute
22
Copyright(c) 2011 Linux-HA Japan Project 22
Red Hat OpenStack Platform 8 HA構成の特徴
 コントロールノードHA
 ノード構成: 3ノード以上
 クォーラム制御(多数決制御)のため
 すべてのOpenStackサービス・データベースサーバ等が同居する構成が前提
 ストレージノードのみ分離可能
 本資料では説明の単純化のためNFSサーバを使用している
 コンピュートノードHA
 Pacemaker_remote機能, NovaEvacuate RA による実装方式
 OSP director (Triple O) によるHA構成の自動構築
 実際にサービスを提供するOpenStack環境(オーバークラウド)を、
構築用の別のマシン(アンダークラウド)から自動構築する
 コントロールノードHAは自動構築が可能
 コンピュートノードHAについては自動構築対象外
 ドキュメントに手動構築手順あり
23
Copyright(c) 2011 Linux-HA Japan Project 23
インスタンス
nova-compute
インスタンス
nova-compute
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Swift
Ceilometer
Heat
Pacemaker
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Swift
Ceilometer
Heat
Pacemaker
RH OSP 8 のHA環境構築の流れ
※ストレージノードは省略
overcloud-full.qnow2
OSP director
Heat templates
openstack
overcloud deploy
① インストール・設定
(アンダークラウド構築)
② テンプレートカスタマイズ
(オーバークラウド設定)
③ オーバークラウド作成
コマンド実行
④ PXEブート・構築実行
アンダークラウド オーバークラウド
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Swift
Ceilometer
Heat
Pacemaker
⑤作成後の追加設定
(フェンシング設定追加)
コントロールノード
インスタンス
nova-compute
コンピュートノード
24
Copyright(c) 2011 Linux-HA Japan Project 24
RH OSP 8 のHA環境構築
 オーバークラウド作成コマンド オプション例
 ポイント
 コントロールノードのノード数を指定する
 HA構成のためには 3ノード以上、奇数ノード数が必要
 --control-scale 1 : 冗長化なし
 --control-scale 2 : 冗長化なし(1ノード故障時にサービス停止)
 偶数ノード数では半数のノードが故障した時点でサービス停止となる(クォーラム制御)
 --control-scale 3 : 冗長化あり
[stack@bl460g9n6 ~]$ openstack overcloud deploy
-–templates
-e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml
-e /usr/share/openstack-tripleo-heat-templates/environments/network-management.yaml
-e ~/templates/network-environment.yaml
-e ~/templates/storage-environment.yaml
--control-scale 3
--compute-scale 1
--control-flavor control
--compute-flavor compute
--ntp-server 192.168.28.80
--neutron-network-type vxlan
--neutron-tunnel-types vxlan
25
Copyright(c) 2011 Linux-HA Japan Project 25
RH OSP 8 のHA環境構築
 オーバークラウド作成後の追加設定
 コントローラノードのフェンシング設定追加
 ポイント
 フェンシング機能(STONITH機能)設定はハードウェアに依存するため、環
境に合わせ手動で設定追加を行う。
 一般的には IPMI 経由による強制電源断
 フェンシング機能はデータベース・メッセージキューのデータ整合性を保障
するために非常に重要(スプリットブレインの防止)
$ sudo pcs stonith create my-ipmilan-for-controller01 fence_ipmilan pcmk_host_list=overcloud-
controller-0 ipaddr=192.168.28.43 login=USERID passwd=PASSW0RD lanplus=1 op monitor interval=60s
$ sudo pcs constraint location my-ipmilan-for-controller01 avoids overcloud-controller-0
$ sudo pcs stonith create my-ipmilan-for-controller02 fence_ipmilan pcmk_host_list=overcloud-
controller-1 ipaddr=192.168.28.42 login=USERID passwd=PASSW0RD lanplus=1 op monitor interval=60s
$ sudo pcs constraint location my-ipmilan-for-controller02 avoids overcloud-controller-1
$ sudo pcs stonith create my-ipmilan-for-controller03 fence_ipmilan pcmk_host_list=overcloud-
controller-2 ipaddr=192.168.28.41 login=USERID passwd=PASSW0RD lanplus=1 op monitor interval=60s
$ sudo pcs constraint location my-ipmilan-for-controller03 avoids overcloud-controller-2
$ sudo pcs property set stonith-enabled=true
26
Copyright(c) 2011 Linux-HA Japan Project 26
何ができあがったの?
 crm_mon コマンドで見てみよう
 Pacemaker のリソース稼働状況を確認するコマンド
 表示例: よくあるWeb・DBサーバの冗長構成の場合は…
2 Nodes configured
16 Resources configured
Online: [ pm01 pm02 ]
Full list of resources:
Resource Group: master-group
filesystem (ocf::heartbeat:Filesystem): Started pm01
apache (ocf::heartbeat:apache): Started pm01
vip-master (ocf::heartbeat:IPaddr2): Started pm01
vip-rep (ocf::heartbeat:IPaddr2): Started pm01
Resource Group: grpStonith1
prmStonith1-1 (stonith:external/stonith-helper): Started pm02
prmStonith1-2 (stonith:external/ipmi): Started pm02
Resource Group: grpStonith2
prmStonith2-1 (stonith:external/stonith-helper): Started pm01
prmStonith2-2 (stonith:external/ipmi): Started pm01
Master/Slave Set: msPostgresql [pgsql]
Masters: [ pm01 ]
Slaves: [ pm02 ]
Master/Slave Set: msDrbd [drbd]
Masters: [ pm01 ]
Slaves: [ pm02 ]
Clone Set: clnPing [prmPing]
Started: [ pm01 pm02 ]
Clone Set: clnDiskd1 [prmDiskd1]
Started: [ pm01 pm02 ]
ノード数: 2
稼働リソース数: 16
27
Copyright(c) 2011 Linux-HA Japan Project 27
RH OSP 8 でのcrm_mon出力
3 nodes and 118 resources configured
Online: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Full list of resources:
Clone Set: haproxy-clone [haproxy]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
ip-172.18.0.10 (ocf::heartbeat:IPaddr2): Started overcloud-controller-0
ip-172.16.0.11 (ocf::heartbeat:IPaddr2): Started overcloud-controller-1
ip-172.16.0.10 (ocf::heartbeat:IPaddr2): Started overcloud-controller-2
ip-172.19.0.10 (ocf::heartbeat:IPaddr2): Started overcloud-controller-0
ip-192.0.2.26 (ocf::heartbeat:IPaddr2): Started overcloud-controller-1
ip-10.1.1.10 (ocf::heartbeat:IPaddr2): Started overcloud-controller-2
Master/Slave Set: redis-master [redis]
Masters: [ overcloud-controller-1 ]
Slaves: [ overcloud-controller-0 overcloud-controller-2 ]
Master/Slave Set: galera-master [galera]
Masters: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: mongod-clone [mongod]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: rabbitmq-clone [rabbitmq]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: memcached-clone [memcached]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: fs-varlibglanceimages-clone [fs-varlibglanceimages]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-nova-scheduler-clone [openstack-nova-scheduler]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: neutron-l3-agent-clone [neutron-l3-agent]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-ceilometer-alarm-notifier-clone [openstack-ceilometer-alarm-notifier]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-heat-engine-clone [openstack-heat-engine]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-ceilometer-api-clone [openstack-ceilometer-api]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: neutron-metadata-agent-clone [neutron-metadata-agent]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: neutron-ovs-cleanup-clone [neutron-ovs-cleanup]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: neutron-netns-cleanup-clone [neutron-netns-cleanup]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-heat-api-clone [openstack-heat-api]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-cinder-scheduler-clone [openstack-cinder-scheduler]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-nova-api-clone [openstack-nova-api]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-heat-api-cloudwatch-clone [openstack-heat-api-cloudwatch]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-ceilometer-collector-clone [openstack-ceilometer-collector]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-keystone-clone [openstack-keystone]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-nova-consoleauth-clone [openstack-nova-consoleauth]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-glance-registry-clone [openstack-glance-registry]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-ceilometer-notification-clone [openstack-ceilometer-notification]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-cinder-api-clone [openstack-cinder-api]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: neutron-dhcp-agent-clone [neutron-dhcp-agent]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-glance-api-clone [openstack-glance-api]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: neutron-openvswitch-agent-clone [neutron-openvswitch-agent]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-nova-novncproxy-clone [openstack-nova-novncproxy]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: delay-clone [delay]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: neutron-server-clone [neutron-server]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: httpd-clone [httpd]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-ceilometer-central-clone [openstack-ceilometer-central]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-ceilometer-alarm-evaluator-clone [openstack-ceilometer-alarm-evaluator]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
Clone Set: openstack-heat-api-cfn-clone [openstack-heat-api-cfn]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
openstack-cinder-volume (systemd:openstack-cinder-volume): Started overcloud-controller-0
Clone Set: openstack-nova-conductor-clone [openstack-nova-conductor]
Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ]
my-ipmilan-for-controller01 (stonith:fence_ipmilan): Started overcloud-controller-1
my-ipmilan-for-controller02 (stonith:fence_ipmilan): Started overcloud-controller-2
my-ipmilan-for-controller03 (stonith:fence_ipmilan): Started overcloud-controller-0
ノード数: 3
稼働リソース数: 118
なるほど、わからん…
28
Copyright(c) 2011 Linux-HA Japan Project 28
RH OSP 8 におけるPacemakerリソース構成
Pacemaker + Corosync
Active/Active
構成
Active/Standby
構成
Master/Slave
構成
Pacemaker
管理対象
Pacemaker
管理対象外
コントロールノード#2 コントロールノード#3コントロールノード#1
HAProxy
memcached
MongoDB
RabbitMQ
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Ceilometer
Heat
仮想IP
cinder-volume
Redis
Galera
Swift
Open vSwitch
ntpd, DBus, ...
Galera
Redis
HAProxy
memcached
MongoDB
RabbitMQ
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Ceilometer
Heat
HAProxy
memcached
MongoDB
RabbitMQ
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Ceilometer
Heat
Galera
Redis
Swift
Open vSwitch
ntpd, DBus, ...
Swift
Open vSwitch
ntpd, DBus, ...
29
Copyright(c) 2011 Linux-HA Japan Project 29
Pacemaker管理対象リソース
 OpenStack関連サービス: 29リソース
 ほぼ全てActive/Active構成
 全ノードで起動し、HAProxyにより負荷分散
 systemd経由による故障監視。プロセス故障のみ検知可能
 cinder-volume のみ Active/Standby 構成
 cinder-volume の制約による(現時点では stateful サービスであり Active/Active構成不可)
 データベース、RabbitMQサービス起動完了後に起動するよう順序依存関係を制御
 データベース・RabbitMQサービス: 5リソース
 Galera, RabbitMQ 独自の実装によりミラーリング対応・Active/Active構成が可能
 ただし実際に読み書きを行うノードはHAproxy設定により1ノードのみに制限
 クラスタとしての起動手順をリソースエージェント(OCF RA)により制御
 仮想IP、HAProxy、他: 12リソース
 ノード故障時の切替、負荷分散
 STONITHエージェント等(図には未記載)
※Active/Activeリソースは3ノード全てで起動するため、crm_monで
表示されるリソース数の合計は118リソースとなる。詳細内訳は省略
30
Copyright(c) 2011 Linux-HA Japan Project 30
Pacemakerリソースの起動順序制御
 Pacemakerの制御により、以下の順序で起動される
 (1)仮想IP、データベース、
メッセージキューの起動
 (2) 仮想IP起動完了後
HAProxy起動
 (3) (1)(2)全て起動完了後、
Keystone起動
 (4) Keystone起動完了後、
各OpenStackサービス起動
HAProxy
memcached
MongoDB
RabbitMQ
Keystone
Glance
Nova
Neutron
CinderCeilometer
Heat
仮想IP
cinder-volume
Redis
Galera
31
Copyright(c) 2011 Linux-HA Japan Project 31
リソースエージェント(OCF RA)
Linux Kernel
Pacemakerのリソース制御方法
 OCFリソースとsystemdリソース
HAProxy
memcached
MongoDB
RabbitMQ
Keystone
Glance
Nova
Neutron
Cinder
仮想IPRedis
Galera
Systemd
Pacemaker
Systemd ユニットファイル
起動・停止・監視
(D-Bus API)
起動・停止・監視
(OCF API)
OS起動時の
自動起動
Ceilometer
Heat
32
Copyright(c) 2011 Linux-HA Japan Project 32
Pacemaker管理対象外のサービス
 OpenStack関連サービス
 swift
 OS起動と同時に起動、systemd による監視・再起動
 RH OSP における設計指針は不明だが、swift は他のサービスに比較して独立性が高く systemd
による再起動のみで十分と判断したと推測
 Open vSwitch
 現状 systemd では故障検知不可能
 systemctl status はプロセス故障時にも OK を返却する
 したがってPacemakerのリソースに追加しても故障検知はできない
 意図した仕様なのか不具合なのかは不明
 監視が必要な場合は個別に監視処理を追加する必要あり
 独自にリソースエージェントの作成、運用監視システム等による監視など
 各種OSサービス
 ntpd, D-Bus, 他
 必要に応じて運用監視システム等により監視
 物理環境のHAクラスタにおいても通常は Pacemaker では管理していない
33
Copyright(c) 2011 Linux-HA Japan Project 33
Pacemaker導入によるメリット
 故障検知と自動フェイルオーバによるダウンタイム短縮
 切替時間目安:
 約70~80秒程度(負荷なし、ノード電源断~dashboard画面アクセス再開まで)
 内訳: Pacemaker内部処理 30~40秒程度 + OpenStackサービス再開処理 30~40秒程度
 故障箇所・故障タイミング・負荷等条件により大きく変わるのであくまで目安で
 フェンシング(STONITH)によるデータ整合性の担保も含む
 Galera, RabbitMQ 単体だけで担保できるのか?
 全ての故障、全てのネットワーク構成、全ての故障タイミング、
ネットワーク一時分断・復活 etc...
 起動手順・依存関係の自動化による運用手順簡易化
 Q. そんなん systemd があるやん?
 A. systemdだけではできないこともあるんやよ
 Galera, RabbitMQ のクラスタ構成に必要なノード別の起動手順
 起動「完了」まで待ってからの次の起動
 ノードをまたぐ順序関係
34
Copyright(c) 2011 Linux-HA Japan Project 34
もくじ
 Pacemakerとは
 OpenStack におけるHAの必要性
 Red Hat OpenStack Platform でのHA構成例
 OpenStack HA の今後の動向
35
Copyright(c) 2011 Linux-HA Japan Project 35
コントロールノードHAの今後
 OpenStackサービスはPacemaker管理外で良いんじゃね?
 という方向で今開発コミュニティは動いてます
36
Copyright(c) 2011 Linux-HA Japan Project 36
これが…
Pacemaker + Corosync
Active/Active
構成
Active/Standby
構成
Master/Slave
構成
Pacemaker
管理対象
Pacemaker
管理対象外
コントロールノード#2 コントロールノード#3コントロールノード#1
HAProxy
memcached
MongoDB
RabbitMQ
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Ceilometer
Heat
仮想IP
cinder-volume
Redis
Galera
Swift
Open vSwitch
ntpd, DBus, ...
Galera
Redis
HAProxy
memcached
MongoDB
RabbitMQ
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Ceilometer
Heat
HAProxy
memcached
MongoDB
RabbitMQ
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Ceilometer
Heat
Galera
Redis
Swift
Open vSwitch
ntpd, DBus, ...
Swift
Open vSwitch
ntpd, DBus, ...
37
Copyright(c) 2011 Linux-HA Japan Project 37
こうなる! (?)
Pacemaker + Corosync
Active/Active
構成
Active/Standby
構成
Master/Slave
構成
Pacemaker
管理対象
Pacemaker
管理対象外
コントロールノード#2 コントロールノード#3コントロールノード#1
HAProxy
memcached
MongoDB
RabbitMQ
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Ceilometer
Heat
仮想IP
cinder-volume
Redis
Galera
Swift
Open vSwitch
ntpd, DBus, ...
Galera
Redis
HAProxy
memcached
MongoDB
RabbitMQ
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Ceilometer
Heat
HAProxy
memcached
MongoDB
RabbitMQ
Keystone
Horizon
Glance
Nova
Neutron
Cinder
Ceilometer
Heat
Galera
Redis
Swift
Open vSwitch
ntpd, DBus, ...
Swift
Open vSwitch
ntpd, DBus, ...
Pacemaker
管理対象外
38
Copyright(c) 2011 Linux-HA Japan Project 38
コントロールノードHAの今後
 OpenStackサービスはPacemaker管理外とする方向
 ACT/SBYリソースのみ管理対象とする
 cinder-volume、他にもあれば (neutron-lbaas-agent ?)
 cinder-volume のACT/ACT対応は現在議論中、対応完了すれば管理外とする
 ただし全てのOpenStackサービスは起動順序に依存しないことが前提
 データベースやメッセージキュー等の依存サービスがダウンしても、フェイルオーバ後に自
動的に復旧できること
 開発コミュニティにて検証中
 RH OSPでは…
 Mitakaベース(RH OSP 9)では keystone が管理外となっている
 おそらく Newtonベースの RH OSP 以降で大きく変更されるのでは
39
Copyright(c) 2011 Linux-HA Japan Project 39
コントロールノードHAの今後
 OpenStackサービスはPacemaker管理外とする方向
 開発コミュニティでは異論もあり、議論継続中
 管理すべきだよ派
 systemdのプロセス監視だけでは不十分、OCF RA等でサービス監視もやりたい
 OpenStackサービスはSTONITH無くてホントに大丈夫なん?
 管理しなくてもいいよ派
 サービス監視は運用監視ツール(Nagiosとか)でやればいいんじゃねーの
 起動順序の依存関係はOpenStackサービス側で解決すればいいよね
 それよりもHeatテンプレートの維持管理とかバージョンアップを楽にしようよ
40
Copyright(c) 2011 Linux-HA Japan Project 40
コンピュートノードHAの今後
 現状以下の3方式があり、これから統合されていく予定
 NovaEvacuate RA (Red Hat, SUSE)
 商用サポート提供済み、ただし故障対応範囲に制約あり
 Masakari (NTT)
 故障対応範囲が充実、ただしPacemakerとの連携に向上の余地あり
 Mistral (Intel)
 OpenStack全体のアーキテクチャとして望ましい、ただし現状試験実装レベル
 現時点での見込み
 Mistral のワークフローベースにMasakariの機能を統合していく方針
NovaEvacuate RA Masakari Mistral
HA対象インスタンスのタグ管理 ◯ ◯ ◯
故障時アクションのカスタマイズ - - 予定あり
自己監視 ◯ ◯ 実装中
インスタンス故障監視 - ◯ 予定あり
force_down API対応 ◯ - 予定あり
nova-compute故障対応 - ◯ 予定あり
並行実行 - - ◯
出典: http://aspiers.github.io/openstack-summit-2016-austin-compute-ha/
41
Copyright(c) 2011 Linux-HA Japan Project 41
OpenStack HA コミュニティの活動
 IRCミーティング
 毎週月曜
 https://wiki.openstack.org/wiki/Meetings/HATeamMeeting
 ドキュメント改善
 公式HAドキュメントのメンテナがAndrew Beekhof 氏(Pacemaker開発者)
に
 http://docs.openstack.org/ha-guide/
 現在 (まさに今!) 随時更新中
 プロジェクト間活動に向けたユーザストーリー・仕様書
42
Copyright(c) 2011 Linux-HA Japan Project 42
おわり
 Pacemakerをこれからもよろしくお願いします!

More Related Content

What's hot

日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会Yushiro Furukawa
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)NTT DATA Technology & Innovation
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観Yamato Tanaka
 
OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門VirtualTech Japan Inc.
 
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...Tatsuya Watanabe
 
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!Hirotaka Sato
 
OpenStack マルチノード環境構築
OpenStack マルチノード環境構築OpenStack マルチノード環境構築
OpenStack マルチノード環境構築HommasSlide
 
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方Toru Makabe
 
plotnetcfg入門 | Introduction to plotnetcfg
plotnetcfg入門 | Introduction to plotnetcfgplotnetcfg入門 | Introduction to plotnetcfg
plotnetcfg入門 | Introduction to plotnetcfgKentaro Ebisawa
 
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越Kentaro Ebisawa
 
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月VirtualTech Japan Inc.
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 VirtualTech Japan Inc.
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)NTT DATA Technology & Innovation
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1Etsuji Nakai
 
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)VirtualTech Japan Inc.
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep DiveHirofumi Ichihara
 
Ingressの概要とLoadBalancerとの比較
Ingressの概要とLoadBalancerとの比較Ingressの概要とLoadBalancerとの比較
Ingressの概要とLoadBalancerとの比較Mei Nakamura
 

What's hot (20)

日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会
 
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
Kubernetesでの性能解析 ~なんとなく遅いからの脱却~(Kubernetes Meetup Tokyo #33 発表資料)
 
TripleO Deep Dive
TripleO Deep DiveTripleO Deep Dive
TripleO Deep Dive
 
ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観ML2/OVN アーキテクチャ概観
ML2/OVN アーキテクチャ概観
 
OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門
 
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
PacemakerのMaster/Slave構成の基本と事例紹介(DRBD、PostgreSQLレプリケーション) @Open Source Confer...
 
「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!「おうちクラウド」が今熱い!
「おうちクラウド」が今熱い!
 
OpenStack マルチノード環境構築
OpenStack マルチノード環境構築OpenStack マルチノード環境構築
OpenStack マルチノード環境構築
 
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
OpenStack超入門シリーズ いまさら聞けないSwiftの使い方
 
plotnetcfg入門 | Introduction to plotnetcfg
plotnetcfg入門 | Introduction to plotnetcfgplotnetcfg入門 | Introduction to plotnetcfg
plotnetcfg入門 | Introduction to plotnetcfg
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越"SRv6の現状と展望" ENOG53@上越
"SRv6の現状と展望" ENOG53@上越
 
OpenStack Octavia入門
OpenStack Octavia入門OpenStack Octavia入門
OpenStack Octavia入門
 
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
NFVアプリケーションをOpenStack上で動かす為に - OpenStack最新情報セミナー 2017年7月
 
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:講義No1
 
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
OpenStackで始めるクラウド環境構築入門(Horizon 基礎編)
 
Container Networking Deep Dive
Container Networking Deep DiveContainer Networking Deep Dive
Container Networking Deep Dive
 
Ingressの概要とLoadBalancerとの比較
Ingressの概要とLoadBalancerとの比較Ingressの概要とLoadBalancerとの比較
Ingressの概要とLoadBalancerとの比較
 

Similar to OpenStackでも重要な役割を果たすPacemakerを知ろう!

BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
OpenShift v3 Technical Overview
OpenShift v3 Technical OverviewOpenShift v3 Technical Overview
OpenShift v3 Technical OverviewNakayama Kenjiro
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストールYasuhiro Arai
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...NTT DATA Technology & Innovation
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osakaNaotaka Jay HOTTA
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Yasuhiro Arai
 
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化するKibanaでsysstatを可視化する
Kibanaでsysstatを可視化するKensuke Maeda
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座Masahito Zembutsu
 
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...ksk_ha
 
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)NTT DATA Technology & Innovation
 
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf) Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf) VirtualTech Japan Inc.
 
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタRancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタTakashi Kanai
 
OpenStack QuickStart - Icehouse
OpenStack QuickStart - IcehouseOpenStack QuickStart - Icehouse
OpenStack QuickStart - IcehouseHideki Saito
 
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料Yasutaka Hamada
 
Pacemaker 操作方法メモ
Pacemaker 操作方法メモPacemaker 操作方法メモ
Pacemaker 操作方法メモMasayuki Ozawa
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1Etsuji Nakai
 
Linux-HA Japanプロジェクトのこれまでとこれから
Linux-HA JapanプロジェクトのこれまでとこれからLinux-HA Japanプロジェクトのこれまでとこれから
Linux-HA Japanプロジェクトのこれまでとこれからksk_ha
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよnpsg
 

Similar to OpenStackでも重要な役割を果たすPacemakerを知ろう! (20)

BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
BigtopでHadoopをビルドする(Open Source Conference 2021 Online/Spring 発表資料)
 
OpenShift v3 Technical Overview
OpenShift v3 Technical OverviewOpenShift v3 Technical Overview
OpenShift v3 Technical Overview
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
 
Cloudstack user group meeting in osaka
Cloudstack user group meeting in osakaCloudstack user group meeting in osaka
Cloudstack user group meeting in osaka
 
Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)Apache CloudStack 4.0 インストール(ver0.5)
Apache CloudStack 4.0 インストール(ver0.5)
 
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化するKibanaでsysstatを可視化する
Kibanaでsysstatを可視化する
 
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
【18-E-3】クラウド・ネイティブ時代の2016年だから始める Docker 基礎講座
 
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...VirtualBox と Rocky Linux 8 で始める Pacemaker  ~ VirtualBox でも STONITH 機能が試せる! Vi...
VirtualBox と Rocky Linux 8 で始める Pacemaker ~ VirtualBox でも STONITH 機能が試せる! Vi...
 
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
Apache Bigtop3.2 (仮)(Open Source Conference 2022 Online/Hiroshima 発表資料)
 
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf) Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
Havana版 RDO-QuickStart-2 (140421-Havana-RDO-QuickStart-2.pdf)
 
Rancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタRancher2.3とwindows Containerで作るkubernetesクラスタ
Rancher2.3とwindows Containerで作るkubernetesクラスタ
 
OpenStack QuickStart - Icehouse
OpenStack QuickStart - IcehouseOpenStack QuickStart - Icehouse
OpenStack QuickStart - Icehouse
 
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
2014/11/04 第2回 一撃サーバー構築シェルスクリプト勉強会(さっぽろ!) 発表資料
 
Pacemaker 操作方法メモ
Pacemaker 操作方法メモPacemaker 操作方法メモ
Pacemaker 操作方法メモ
 
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
OpenStackクラウド基盤構築ハンズオンセミナー 第1日:ハンズオンNo1
 
Linux-HA Japanプロジェクトのこれまでとこれから
Linux-HA JapanプロジェクトのこれまでとこれからLinux-HA Japanプロジェクトのこれまでとこれから
Linux-HA Japanプロジェクトのこれまでとこれから
 
Lxc on cloud
Lxc on cloudLxc on cloud
Lxc on cloud
 
ラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよラズパイ2で動く Docker PaaSを作ってみたよ
ラズパイ2で動く Docker PaaSを作ってみたよ
 
osoljp 2011.08
osoljp 2011.08osoljp 2011.08
osoljp 2011.08
 

OpenStackでも重要な役割を果たすPacemakerを知ろう!

  • 1. Copyright(c) 2016 Linux-HA Japan Project OpenStackでも重要な役割を果たす Pacemakerを知ろう! ~クラウドの雲の下では何が起こっているのか~ 2016年11月5日 Linux-HA Japan プロジェクト http://linux-ha.osdn.jp/ 森 啓介
  • 2. 2 Copyright(c) 2011 Linux-HA Japan Project 2 自己紹介  名前: 森 啓介 (Keisuke MORI)  twitter: @ksk_ha  Linux-HA Japanプロジェクト関連の活動  Pacemakerリポジトリパッケージのリリース  http://linux-ha.osdn.jp/  ClusterLabs プロジェクトのコミッタ  Pacemaker、resource-agents などHAクラスタ関連の開発コミュニティ  https://github.com/ClusterLabs/  本業  普段の業務: NTT OSSセンタ  NTTグループ内におけるPacemaker/Heartbeatの導入支援・サポート  バグ報告・パッチ作成などによるNTTから開発コミュニティへのフィードバック・貢献
  • 3. 3 Copyright(c) 2011 Linux-HA Japan Project 3 もくじ  Pacemakerとは  OpenStack におけるHAの必要性  Red Hat OpenStack Platform でのHA構成例  OpenStack HA の今後の動向
  • 4. 4 Copyright(c) 2011 Linux-HA Japan Project 4 もくじ  Pacemakerとは  OpenStack におけるHAの必要性  Red Hat OpenStack Platform でのHA構成例  OpenStack HA の今後の動向
  • 5. 5 Copyright(c) 2011 Linux-HA Japan Project 5 Pacemakerの概要 サーバ#1 サーバ#2 サービスの監視・制御 サーバ間の監視・制御  サーバ・アプリケーションの故障監視
  • 6. 6 Copyright(c) 2011 Linux-HA Japan Project 6 Pacemakerの概要 サーバ#1 サーバ#2 サービスのフェイルオーバ  故障検知時、自動的にフェイルオーバ  ダウンタイムの最小化  STONITHによるデータの安全性確保 STONITH(強制電源断)
  • 7. 7 Copyright(c) 2011 Linux-HA Japan Project 7 Pacemakerを詳しく知りたかったら… Pacemakerとは… 高可用(HA)クラスタソフトウェアです。 Linux-HA Japan プロジェクト 2F 205教室にてデモ展示中!
  • 8. 8 Copyright(c) 2011 Linux-HA Japan Project 8 もくじ  Pacemakerとは  OpenStack におけるHAの必要性  Red Hat OpenStack Platform でのHA構成例  OpenStack HA の今後の動向
  • 9. 9 Copyright(c) 2011 Linux-HA Japan Project 9 OpenStackにおけるHAの必要性 クラウド時代にHAクラスタなんて いるのぉ??
  • 10. 10 Copyright(c) 2011 Linux-HA Japan Project 10 クラウドユーザ(テナント)からみた世界 インスタンス アプリケーション インスタンス 「インスタンス作って!」 「インスタンス消して!」 インスタンスアクセス
  • 11. 11 Copyright(c) 2011 Linux-HA Japan Project 11 雲の下では… インスタンス アプリケーション nova-compute インスタンス コントロールノード テナントネットワーク(VLAN) 物理ネットワーク APIアクセス インスタンスアクセス nova-compute コンピュートノード Keystone Horizon Glance Nova Neutron Cinder Swift Ceilometer Heat
  • 12. 12 Copyright(c) 2011 Linux-HA Japan Project 12 コントロールノードの故障 インスタンス アプリケーション nova-compute インスタンス テナントネットワーク(VLAN) 物理ネットワーク APIアクセス インスタンスアクセス nova-compute コンピュートノードコントロールノード Keystone Horizon Glance Nova Neutron Cinder Swift Ceilometer Heat コントロールノード Keystone Horizon Glance Nova Neutron Cinder Swift Ceilometer Heat データの複製 サービス切替
  • 13. 13 Copyright(c) 2011 Linux-HA Japan Project 13 コンピュートノードの故障 インスタンス アプリケーション nova-compute インスタンス テナントネットワーク(VLAN) 物理ネットワーク nova-compute コンピュートノードコントロールノード Keystone Horizon Glance Nova Neutron Cinder Swift Ceilometer Heat インスタンス インスタンスの 確実な停止 適切な状態管理 インスタンスの復旧 (nova evacuate) インスタンスアクセスAPIアクセス
  • 14. 14 Copyright(c) 2011 Linux-HA Japan Project 14 アプリケーションの故障 インスタンス アプリケーション nova-compute インスタンス テナントネットワーク(VLAN) 物理ネットワーク nova-compute コンピュートノードコントロールノード Keystone Horizon Glance Nova Neutron Cinder Swift Ceilometer Heat インスタンス インスタンスアクセス アプリケーション アプリケー ションの復旧 APIアクセス
  • 15. 15 Copyright(c) 2011 Linux-HA Japan Project 15 OpenStackにおけるHAの必要性 クラウド時代にHAクラスタなんて いるのぉ?? 当然必要よ!
  • 16. 16 Copyright(c) 2011 Linux-HA Japan Project 16 OpenStackにおけるHAの観点  コントロールノードHA  コントロールノードの物理故障・通信断  各OpenStackサービスプロセス・データベースサーバ ・メッセージキューのソフトウェア故障  コンピュートノードHA  コンピュートノードの物理故障・通信断  インスタンスのソフトウェア故障  アプリケーションHA  インスタンスのソフトウェア故障  テナントユーザのサービス(アプリケーション)故障 クラウド提供者 (基盤管理者) による管理 クラウドユーザ (テナント) による管理
  • 17. 17 Copyright(c) 2011 Linux-HA Japan Project 17 OpenStackにおけるHAの必要性  クラウド提供者(基盤管理者)にとっては…  クラウドユーザに対するOpenStackサービスの可用性確保  従来通りの物理環境での HAクラスタが必要  インスタンスの可用性確保  従来の HA クラスタのさらなる応用が必要  クラウドユーザ(テナント)にとっては…  クラウド提供者(基盤管理者)が可用性を確保しているからこそ安心して利用 が可能  自分のサービス(アプリケーション)の可用性は自分で確保する必要あり  クラウド上でのHAクラスタ構成  クラウド特有の方式 (Ceilometer / Heat / Senlin 等)
  • 18. 18 Copyright(c) 2011 Linux-HA Japan Project 18 主なディストリビューションのHA方式 ディストリ ビューション 構築方式 HAクラスタ ソフトウェア コント ロール ノード HA コン ピュー ト ノード HA データベース 冗長化方式 補足 Openstack.org (upstream) 手動 Pacemaker + Corosync △ ー Galera ● 公式ドキュメントでは要件・概念と手順の断片が示され ているのみ。 ● 具体的な設定・構築手順等は独自に設計する必要あり。 ● 2016年10月時点で日々更新中 Red Hat OpenStack Platform 8 (RH OSP) director (Triple O) Pacemaker + Corosync ◯ ◯ Galera / MariaDB ● コントロールノード構成は3ノード以上 ● 全てのOpenStackサービスが同居する構成前提 ● Neutron はL3HA設定によるActive/Active構成 SUSE OpenStack Cloud 6 Crowbar + barclamp Pacemaker + Corosync ◯ ◯ PostgreSQL + DRBD ● コントロールノード構成はDBサーバのみ2ノード、他 のOpenStackサービスは3ノード以上 ● Neutron はスクリプト方式(ha-tools)によるHA方式 Ubuntu MAAS + juju Pacemaker + Corosync ◯ ー Percona XtraDB Cluster Mirantis Fuel Pacemaker + Corosync ◯ ー Galera / MySQL ※主に Liberty ベース時点での情報 今日のトピックはココ!
  • 19. 19 Copyright(c) 2011 Linux-HA Japan Project 19 OpenStackにおけるHAの必要性 クラウド時代にHAクラスタなんて いるのぉ?? 当然必要よ! OpenStackクラウド基盤の高可用化にも Pacemakerは使われてるの!
  • 20. 20 Copyright(c) 2011 Linux-HA Japan Project 20 もくじ  Pacemakerとは  OpenStack におけるHAの必要性  Red Hat OpenStack Platform でのHA構成例  OpenStack HA の今後の動向
  • 21. 21 Copyright(c) 2011 Linux-HA Japan Project 21 インスタンス nova-compute Pacemaker_remote インスタンス nova-compute Pacemaker_remote Keystone Horizon Glance Nova Neutron Cinder Swift Ceilometer Heat Pacemaker Keystone Horizon Glance Nova Neutron Cinder Swift Ceilometer Heat Pacemaker Red Hat OpenStack Platform 8 のHA構成概要 ※ストレージノードは省略 Keystone Horizon Glance Nova Neutron Cinder Swift Ceilometer Heat Pacemaker コントロールノードHA インスタンス nova-compute Pacemaker_remote コンピュートノードHA NovaEvacuate RA fence_compute
  • 22. 22 Copyright(c) 2011 Linux-HA Japan Project 22 Red Hat OpenStack Platform 8 HA構成の特徴  コントロールノードHA  ノード構成: 3ノード以上  クォーラム制御(多数決制御)のため  すべてのOpenStackサービス・データベースサーバ等が同居する構成が前提  ストレージノードのみ分離可能  本資料では説明の単純化のためNFSサーバを使用している  コンピュートノードHA  Pacemaker_remote機能, NovaEvacuate RA による実装方式  OSP director (Triple O) によるHA構成の自動構築  実際にサービスを提供するOpenStack環境(オーバークラウド)を、 構築用の別のマシン(アンダークラウド)から自動構築する  コントロールノードHAは自動構築が可能  コンピュートノードHAについては自動構築対象外  ドキュメントに手動構築手順あり
  • 23. 23 Copyright(c) 2011 Linux-HA Japan Project 23 インスタンス nova-compute インスタンス nova-compute Keystone Horizon Glance Nova Neutron Cinder Swift Ceilometer Heat Pacemaker Keystone Horizon Glance Nova Neutron Cinder Swift Ceilometer Heat Pacemaker RH OSP 8 のHA環境構築の流れ ※ストレージノードは省略 overcloud-full.qnow2 OSP director Heat templates openstack overcloud deploy ① インストール・設定 (アンダークラウド構築) ② テンプレートカスタマイズ (オーバークラウド設定) ③ オーバークラウド作成 コマンド実行 ④ PXEブート・構築実行 アンダークラウド オーバークラウド Keystone Horizon Glance Nova Neutron Cinder Swift Ceilometer Heat Pacemaker ⑤作成後の追加設定 (フェンシング設定追加) コントロールノード インスタンス nova-compute コンピュートノード
  • 24. 24 Copyright(c) 2011 Linux-HA Japan Project 24 RH OSP 8 のHA環境構築  オーバークラウド作成コマンド オプション例  ポイント  コントロールノードのノード数を指定する  HA構成のためには 3ノード以上、奇数ノード数が必要  --control-scale 1 : 冗長化なし  --control-scale 2 : 冗長化なし(1ノード故障時にサービス停止)  偶数ノード数では半数のノードが故障した時点でサービス停止となる(クォーラム制御)  --control-scale 3 : 冗長化あり [stack@bl460g9n6 ~]$ openstack overcloud deploy -–templates -e /usr/share/openstack-tripleo-heat-templates/environments/network-isolation.yaml -e /usr/share/openstack-tripleo-heat-templates/environments/network-management.yaml -e ~/templates/network-environment.yaml -e ~/templates/storage-environment.yaml --control-scale 3 --compute-scale 1 --control-flavor control --compute-flavor compute --ntp-server 192.168.28.80 --neutron-network-type vxlan --neutron-tunnel-types vxlan
  • 25. 25 Copyright(c) 2011 Linux-HA Japan Project 25 RH OSP 8 のHA環境構築  オーバークラウド作成後の追加設定  コントローラノードのフェンシング設定追加  ポイント  フェンシング機能(STONITH機能)設定はハードウェアに依存するため、環 境に合わせ手動で設定追加を行う。  一般的には IPMI 経由による強制電源断  フェンシング機能はデータベース・メッセージキューのデータ整合性を保障 するために非常に重要(スプリットブレインの防止) $ sudo pcs stonith create my-ipmilan-for-controller01 fence_ipmilan pcmk_host_list=overcloud- controller-0 ipaddr=192.168.28.43 login=USERID passwd=PASSW0RD lanplus=1 op monitor interval=60s $ sudo pcs constraint location my-ipmilan-for-controller01 avoids overcloud-controller-0 $ sudo pcs stonith create my-ipmilan-for-controller02 fence_ipmilan pcmk_host_list=overcloud- controller-1 ipaddr=192.168.28.42 login=USERID passwd=PASSW0RD lanplus=1 op monitor interval=60s $ sudo pcs constraint location my-ipmilan-for-controller02 avoids overcloud-controller-1 $ sudo pcs stonith create my-ipmilan-for-controller03 fence_ipmilan pcmk_host_list=overcloud- controller-2 ipaddr=192.168.28.41 login=USERID passwd=PASSW0RD lanplus=1 op monitor interval=60s $ sudo pcs constraint location my-ipmilan-for-controller03 avoids overcloud-controller-2 $ sudo pcs property set stonith-enabled=true
  • 26. 26 Copyright(c) 2011 Linux-HA Japan Project 26 何ができあがったの?  crm_mon コマンドで見てみよう  Pacemaker のリソース稼働状況を確認するコマンド  表示例: よくあるWeb・DBサーバの冗長構成の場合は… 2 Nodes configured 16 Resources configured Online: [ pm01 pm02 ] Full list of resources: Resource Group: master-group filesystem (ocf::heartbeat:Filesystem): Started pm01 apache (ocf::heartbeat:apache): Started pm01 vip-master (ocf::heartbeat:IPaddr2): Started pm01 vip-rep (ocf::heartbeat:IPaddr2): Started pm01 Resource Group: grpStonith1 prmStonith1-1 (stonith:external/stonith-helper): Started pm02 prmStonith1-2 (stonith:external/ipmi): Started pm02 Resource Group: grpStonith2 prmStonith2-1 (stonith:external/stonith-helper): Started pm01 prmStonith2-2 (stonith:external/ipmi): Started pm01 Master/Slave Set: msPostgresql [pgsql] Masters: [ pm01 ] Slaves: [ pm02 ] Master/Slave Set: msDrbd [drbd] Masters: [ pm01 ] Slaves: [ pm02 ] Clone Set: clnPing [prmPing] Started: [ pm01 pm02 ] Clone Set: clnDiskd1 [prmDiskd1] Started: [ pm01 pm02 ] ノード数: 2 稼働リソース数: 16
  • 27. 27 Copyright(c) 2011 Linux-HA Japan Project 27 RH OSP 8 でのcrm_mon出力 3 nodes and 118 resources configured Online: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Full list of resources: Clone Set: haproxy-clone [haproxy] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] ip-172.18.0.10 (ocf::heartbeat:IPaddr2): Started overcloud-controller-0 ip-172.16.0.11 (ocf::heartbeat:IPaddr2): Started overcloud-controller-1 ip-172.16.0.10 (ocf::heartbeat:IPaddr2): Started overcloud-controller-2 ip-172.19.0.10 (ocf::heartbeat:IPaddr2): Started overcloud-controller-0 ip-192.0.2.26 (ocf::heartbeat:IPaddr2): Started overcloud-controller-1 ip-10.1.1.10 (ocf::heartbeat:IPaddr2): Started overcloud-controller-2 Master/Slave Set: redis-master [redis] Masters: [ overcloud-controller-1 ] Slaves: [ overcloud-controller-0 overcloud-controller-2 ] Master/Slave Set: galera-master [galera] Masters: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: mongod-clone [mongod] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: rabbitmq-clone [rabbitmq] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: memcached-clone [memcached] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: fs-varlibglanceimages-clone [fs-varlibglanceimages] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-nova-scheduler-clone [openstack-nova-scheduler] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: neutron-l3-agent-clone [neutron-l3-agent] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-ceilometer-alarm-notifier-clone [openstack-ceilometer-alarm-notifier] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-heat-engine-clone [openstack-heat-engine] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-ceilometer-api-clone [openstack-ceilometer-api] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: neutron-metadata-agent-clone [neutron-metadata-agent] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: neutron-ovs-cleanup-clone [neutron-ovs-cleanup] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: neutron-netns-cleanup-clone [neutron-netns-cleanup] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-heat-api-clone [openstack-heat-api] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-cinder-scheduler-clone [openstack-cinder-scheduler] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-nova-api-clone [openstack-nova-api] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-heat-api-cloudwatch-clone [openstack-heat-api-cloudwatch] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-ceilometer-collector-clone [openstack-ceilometer-collector] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-keystone-clone [openstack-keystone] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-nova-consoleauth-clone [openstack-nova-consoleauth] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-glance-registry-clone [openstack-glance-registry] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-ceilometer-notification-clone [openstack-ceilometer-notification] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-cinder-api-clone [openstack-cinder-api] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: neutron-dhcp-agent-clone [neutron-dhcp-agent] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-glance-api-clone [openstack-glance-api] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: neutron-openvswitch-agent-clone [neutron-openvswitch-agent] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-nova-novncproxy-clone [openstack-nova-novncproxy] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: delay-clone [delay] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: neutron-server-clone [neutron-server] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: httpd-clone [httpd] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-ceilometer-central-clone [openstack-ceilometer-central] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-ceilometer-alarm-evaluator-clone [openstack-ceilometer-alarm-evaluator] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] Clone Set: openstack-heat-api-cfn-clone [openstack-heat-api-cfn] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] openstack-cinder-volume (systemd:openstack-cinder-volume): Started overcloud-controller-0 Clone Set: openstack-nova-conductor-clone [openstack-nova-conductor] Started: [ overcloud-controller-0 overcloud-controller-1 overcloud-controller-2 ] my-ipmilan-for-controller01 (stonith:fence_ipmilan): Started overcloud-controller-1 my-ipmilan-for-controller02 (stonith:fence_ipmilan): Started overcloud-controller-2 my-ipmilan-for-controller03 (stonith:fence_ipmilan): Started overcloud-controller-0 ノード数: 3 稼働リソース数: 118 なるほど、わからん…
  • 28. 28 Copyright(c) 2011 Linux-HA Japan Project 28 RH OSP 8 におけるPacemakerリソース構成 Pacemaker + Corosync Active/Active 構成 Active/Standby 構成 Master/Slave 構成 Pacemaker 管理対象 Pacemaker 管理対象外 コントロールノード#2 コントロールノード#3コントロールノード#1 HAProxy memcached MongoDB RabbitMQ Keystone Horizon Glance Nova Neutron Cinder Ceilometer Heat 仮想IP cinder-volume Redis Galera Swift Open vSwitch ntpd, DBus, ... Galera Redis HAProxy memcached MongoDB RabbitMQ Keystone Horizon Glance Nova Neutron Cinder Ceilometer Heat HAProxy memcached MongoDB RabbitMQ Keystone Horizon Glance Nova Neutron Cinder Ceilometer Heat Galera Redis Swift Open vSwitch ntpd, DBus, ... Swift Open vSwitch ntpd, DBus, ...
  • 29. 29 Copyright(c) 2011 Linux-HA Japan Project 29 Pacemaker管理対象リソース  OpenStack関連サービス: 29リソース  ほぼ全てActive/Active構成  全ノードで起動し、HAProxyにより負荷分散  systemd経由による故障監視。プロセス故障のみ検知可能  cinder-volume のみ Active/Standby 構成  cinder-volume の制約による(現時点では stateful サービスであり Active/Active構成不可)  データベース、RabbitMQサービス起動完了後に起動するよう順序依存関係を制御  データベース・RabbitMQサービス: 5リソース  Galera, RabbitMQ 独自の実装によりミラーリング対応・Active/Active構成が可能  ただし実際に読み書きを行うノードはHAproxy設定により1ノードのみに制限  クラスタとしての起動手順をリソースエージェント(OCF RA)により制御  仮想IP、HAProxy、他: 12リソース  ノード故障時の切替、負荷分散  STONITHエージェント等(図には未記載) ※Active/Activeリソースは3ノード全てで起動するため、crm_monで 表示されるリソース数の合計は118リソースとなる。詳細内訳は省略
  • 30. 30 Copyright(c) 2011 Linux-HA Japan Project 30 Pacemakerリソースの起動順序制御  Pacemakerの制御により、以下の順序で起動される  (1)仮想IP、データベース、 メッセージキューの起動  (2) 仮想IP起動完了後 HAProxy起動  (3) (1)(2)全て起動完了後、 Keystone起動  (4) Keystone起動完了後、 各OpenStackサービス起動 HAProxy memcached MongoDB RabbitMQ Keystone Glance Nova Neutron CinderCeilometer Heat 仮想IP cinder-volume Redis Galera
  • 31. 31 Copyright(c) 2011 Linux-HA Japan Project 31 リソースエージェント(OCF RA) Linux Kernel Pacemakerのリソース制御方法  OCFリソースとsystemdリソース HAProxy memcached MongoDB RabbitMQ Keystone Glance Nova Neutron Cinder 仮想IPRedis Galera Systemd Pacemaker Systemd ユニットファイル 起動・停止・監視 (D-Bus API) 起動・停止・監視 (OCF API) OS起動時の 自動起動 Ceilometer Heat
  • 32. 32 Copyright(c) 2011 Linux-HA Japan Project 32 Pacemaker管理対象外のサービス  OpenStack関連サービス  swift  OS起動と同時に起動、systemd による監視・再起動  RH OSP における設計指針は不明だが、swift は他のサービスに比較して独立性が高く systemd による再起動のみで十分と判断したと推測  Open vSwitch  現状 systemd では故障検知不可能  systemctl status はプロセス故障時にも OK を返却する  したがってPacemakerのリソースに追加しても故障検知はできない  意図した仕様なのか不具合なのかは不明  監視が必要な場合は個別に監視処理を追加する必要あり  独自にリソースエージェントの作成、運用監視システム等による監視など  各種OSサービス  ntpd, D-Bus, 他  必要に応じて運用監視システム等により監視  物理環境のHAクラスタにおいても通常は Pacemaker では管理していない
  • 33. 33 Copyright(c) 2011 Linux-HA Japan Project 33 Pacemaker導入によるメリット  故障検知と自動フェイルオーバによるダウンタイム短縮  切替時間目安:  約70~80秒程度(負荷なし、ノード電源断~dashboard画面アクセス再開まで)  内訳: Pacemaker内部処理 30~40秒程度 + OpenStackサービス再開処理 30~40秒程度  故障箇所・故障タイミング・負荷等条件により大きく変わるのであくまで目安で  フェンシング(STONITH)によるデータ整合性の担保も含む  Galera, RabbitMQ 単体だけで担保できるのか?  全ての故障、全てのネットワーク構成、全ての故障タイミング、 ネットワーク一時分断・復活 etc...  起動手順・依存関係の自動化による運用手順簡易化  Q. そんなん systemd があるやん?  A. systemdだけではできないこともあるんやよ  Galera, RabbitMQ のクラスタ構成に必要なノード別の起動手順  起動「完了」まで待ってからの次の起動  ノードをまたぐ順序関係
  • 34. 34 Copyright(c) 2011 Linux-HA Japan Project 34 もくじ  Pacemakerとは  OpenStack におけるHAの必要性  Red Hat OpenStack Platform でのHA構成例  OpenStack HA の今後の動向
  • 35. 35 Copyright(c) 2011 Linux-HA Japan Project 35 コントロールノードHAの今後  OpenStackサービスはPacemaker管理外で良いんじゃね?  という方向で今開発コミュニティは動いてます
  • 36. 36 Copyright(c) 2011 Linux-HA Japan Project 36 これが… Pacemaker + Corosync Active/Active 構成 Active/Standby 構成 Master/Slave 構成 Pacemaker 管理対象 Pacemaker 管理対象外 コントロールノード#2 コントロールノード#3コントロールノード#1 HAProxy memcached MongoDB RabbitMQ Keystone Horizon Glance Nova Neutron Cinder Ceilometer Heat 仮想IP cinder-volume Redis Galera Swift Open vSwitch ntpd, DBus, ... Galera Redis HAProxy memcached MongoDB RabbitMQ Keystone Horizon Glance Nova Neutron Cinder Ceilometer Heat HAProxy memcached MongoDB RabbitMQ Keystone Horizon Glance Nova Neutron Cinder Ceilometer Heat Galera Redis Swift Open vSwitch ntpd, DBus, ... Swift Open vSwitch ntpd, DBus, ...
  • 37. 37 Copyright(c) 2011 Linux-HA Japan Project 37 こうなる! (?) Pacemaker + Corosync Active/Active 構成 Active/Standby 構成 Master/Slave 構成 Pacemaker 管理対象 Pacemaker 管理対象外 コントロールノード#2 コントロールノード#3コントロールノード#1 HAProxy memcached MongoDB RabbitMQ Keystone Horizon Glance Nova Neutron Cinder Ceilometer Heat 仮想IP cinder-volume Redis Galera Swift Open vSwitch ntpd, DBus, ... Galera Redis HAProxy memcached MongoDB RabbitMQ Keystone Horizon Glance Nova Neutron Cinder Ceilometer Heat HAProxy memcached MongoDB RabbitMQ Keystone Horizon Glance Nova Neutron Cinder Ceilometer Heat Galera Redis Swift Open vSwitch ntpd, DBus, ... Swift Open vSwitch ntpd, DBus, ... Pacemaker 管理対象外
  • 38. 38 Copyright(c) 2011 Linux-HA Japan Project 38 コントロールノードHAの今後  OpenStackサービスはPacemaker管理外とする方向  ACT/SBYリソースのみ管理対象とする  cinder-volume、他にもあれば (neutron-lbaas-agent ?)  cinder-volume のACT/ACT対応は現在議論中、対応完了すれば管理外とする  ただし全てのOpenStackサービスは起動順序に依存しないことが前提  データベースやメッセージキュー等の依存サービスがダウンしても、フェイルオーバ後に自 動的に復旧できること  開発コミュニティにて検証中  RH OSPでは…  Mitakaベース(RH OSP 9)では keystone が管理外となっている  おそらく Newtonベースの RH OSP 以降で大きく変更されるのでは
  • 39. 39 Copyright(c) 2011 Linux-HA Japan Project 39 コントロールノードHAの今後  OpenStackサービスはPacemaker管理外とする方向  開発コミュニティでは異論もあり、議論継続中  管理すべきだよ派  systemdのプロセス監視だけでは不十分、OCF RA等でサービス監視もやりたい  OpenStackサービスはSTONITH無くてホントに大丈夫なん?  管理しなくてもいいよ派  サービス監視は運用監視ツール(Nagiosとか)でやればいいんじゃねーの  起動順序の依存関係はOpenStackサービス側で解決すればいいよね  それよりもHeatテンプレートの維持管理とかバージョンアップを楽にしようよ
  • 40. 40 Copyright(c) 2011 Linux-HA Japan Project 40 コンピュートノードHAの今後  現状以下の3方式があり、これから統合されていく予定  NovaEvacuate RA (Red Hat, SUSE)  商用サポート提供済み、ただし故障対応範囲に制約あり  Masakari (NTT)  故障対応範囲が充実、ただしPacemakerとの連携に向上の余地あり  Mistral (Intel)  OpenStack全体のアーキテクチャとして望ましい、ただし現状試験実装レベル  現時点での見込み  Mistral のワークフローベースにMasakariの機能を統合していく方針 NovaEvacuate RA Masakari Mistral HA対象インスタンスのタグ管理 ◯ ◯ ◯ 故障時アクションのカスタマイズ - - 予定あり 自己監視 ◯ ◯ 実装中 インスタンス故障監視 - ◯ 予定あり force_down API対応 ◯ - 予定あり nova-compute故障対応 - ◯ 予定あり 並行実行 - - ◯ 出典: http://aspiers.github.io/openstack-summit-2016-austin-compute-ha/
  • 41. 41 Copyright(c) 2011 Linux-HA Japan Project 41 OpenStack HA コミュニティの活動  IRCミーティング  毎週月曜  https://wiki.openstack.org/wiki/Meetings/HATeamMeeting  ドキュメント改善  公式HAドキュメントのメンテナがAndrew Beekhof 氏(Pacemaker開発者) に  http://docs.openstack.org/ha-guide/  現在 (まさに今!) 随時更新中  プロジェクト間活動に向けたユーザストーリー・仕様書
  • 42. 42 Copyright(c) 2011 Linux-HA Japan Project 42 おわり  Pacemakerをこれからもよろしくお願いします!