Pacemakerでお手軽Dockerクラスタリング!

Similar documents
コンテナを止めるな! 〜PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは

アジェンダ はクラウド上でも十分使えます 1. の概要 とは の導入事例 で利用される構成 2. をクラウドで使う クラウドサービスの分類 Amazon Web Services による構成例 2

スライド 0

3 検証結果 3.1 ソフトウェアのインストール Red Hat Enterprise Linux 5.7 は最小構成でインストールし 最新バージョンにアップデートした Thirdware Linux-HA を構成するパッケージ (DRBD Heartbeat Pacemaker) は LINBIT

挑戦!Pacemakerで自由自在にHAクラスタリング

SIOS Protection Suite for Linux v9.3.2 AWS Direct Connect 接続クイックスタートガイド 2019 年 4 月

目次 Pacemaker ってなに? Pacemaker の設定とは? Pacemaker のリソース設定 リソース定義 パラメータ設定 リソース種類選択 リソース制約 クラスタ設定 さいごに Linux-HA Japan の紹介 Linux-HA Japan Project 2

自己紹介 名前 所属 飯田雄介 ( いいだゆうすけ ) 主な活動 Linux-HA Japan プロジェクト Pacemaker 本体の機能改善や 外部ツールの開発を行っています Linux-HA Japan から pm_logconv や pm_crmgen といったツールを提供しています 2

JTF2014-LPI-KDC-LPIC3-LPI304seminar

Confidential

スライド 1

はしがき 本書は CLUSTERPRO MC ProcessSaver 1.0 for Linux ( 以後 ProcessSaver と記載します ) と CLUSTERPRO X 3.1 for Linux ( 以後 CLUSTERPRO と記載します ) を組み合わせて フェイルオーバクラスタ

BIGLOBEクラウドホスティングAPIリファレンス

スライド 1

クラスタ構築手順書

CLUSTERPRO MC RootDiskMonitor 1.0 for Windows FAQ 集 2013(Mar) NEC Corporation 導入に関する質問 運用に関する質問 動作環境に関する質問

CLUSTERPRO MC ProcessSaver 2.2 for Linux 構築ガイド 2017(Oct) NEC Corporation 責任範囲 適用範囲 概要 事前準備 クラスター設定 動作確認

概要 ここでは先程デモを行った OpenStack の中で仮想マシンのデータがどのように管理されているかをご紹介致します OpenStack の中でデータがどのように配置され 管理されているかを知ることは 可用性を検討する上で非常に重要になります 2

Microsoft PowerPoint VIOPS.ppt

FUJITSU Cloud Service for OSS 「コンテナサービス」 ご紹介資料

Automation for Everyone <デモ で実感できる、組織全体で活用できるAnsible Tower>

CLUSTERPRO X 4.0 for Windows VM/Linux VM/Solaris VM 仮想マシン用ライセンス体系資料

スライド 1

目次 基本構成 推奨する主な構成. 仮想マシン用ライセンス概要. VMware vsphere 5 環境の高可用構成 2. ライセンス体系 2. VMware vsphere 4 環境の高可用構成. 共有ディスク型 ( 仮想マシン2 台 ). VMware vsphere 4 環境の高可用構成 2

FUJITSU Software Systemwalker Centric Manager Lite Edition V13.5 機能紹介資料

2

スライド 0

100123SLES11HA.pptx

CLUSTERPRO MC ProcessSaver 1.2 for Windows 導入ガイド 第 4 版 2014 年 3 月 日本電気株式会社

Microsoft PowerPoint - VMware Lab Manager製品資料 ppt

2017/8/2 HP SiteScope software 監視機能対応表 この監視機能対応表は HP SiteScope software v11.33) に対応しています モニタ モニタ説明 モニタ説明 SiteScope for Windows SiteScope for Linux ネット

OpenStack 環境における Container as a Service の提供と課題 株式会社サイバーエージェント アドテク本部 技術戦略室 Central Infrastructure Agency 青山 真也

HAクラスタで PostgreSQLを高可用化 (後編) ~ レプリケーション編 ~

Red Hat Enterprise Linuxのcron(8)デーモンにデフォルト定義されたtmpwatch命令の動作による、WebOTXのトラブル対処方法

PRIMERGY RX300S6 におけるクラスタ製品「DB/Control」と「DBC/APKeeper」の動作検証報告

DHCPサーバのクラスタ化

使用する前に

HAクラスタで PostgreSQLを高可用化 (後編) ~ レプリケーション編 ~

SAMBA Stunnel(Mac) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxxxx 部分は会社様によって異なります xxxxx 2 Mac OS 版ダウンロー

Heartbeat + Xenで仮想化クラスタリングしてみよう!

Microsoft Word - nvsi_090203_r1_sanboot_vaultdr.doc

/ COMBINATION 入出力の状態 バッテリ状態などをリアルタイムで確認できます 停電などのイベント発生時および一定時間ごとの の状態を履歴として記録し表示できます Webブラウザ またはTelnet 端末を使用して, 遠隔からの状態確認や設定変更ができます Java Web Start また

CLUSTERPRO MC ProcessSaver 2.3 for Windows 導入ガイド 第 5 版 2018 年 6 月 日本電気株式会社

Zabbix で PostgreSQL を監視! pg_monz のご紹介 Zabbix Conference Japan 年 11 月 20 日 SRA OSS, Inc. 日本支社マーケティング部

Docker Haruka Iwao Storage Solution Architect, Red Hat K.K. February 12, 2015

付録

R80.10_FireWall_Config_Guide_Rev1

クラスタ環境でのデータベースのアップグレード手順

実演!Pacemakerで楽々クラスタリング

Red Hat OpenShift上でのInterstage Application Serverの動作手順(Java EE 7編)

Microsoft Word - qtsi_120246jp_rhev.doc

Red Hat OpenShift上でのInterstage Application Serverの動作手順(Java EE 6編)

HAクラスタをフェイルオーバ失敗から救おう!

クラスタ環境でのデータベースのアップグレード

監視アラート対応手順書(FOR LINUX)

平成22年度「技報」原稿の執筆について

CLUSTERPRO MC ProcessSaver 2.1 for Windows 構築ガイド 2016(Mar) NEC Corporation はじめに 責任範囲 適用範囲 概要 事前準備 クラスタ設定

Mobile Access簡易設定ガイド

目次 第 1 章 環境構築 システム概要 ロードバランサ ジーンコードサーバー コンテンツサーバー (PC サイトサーバー ) コンテンツサーバー (PC サイトサーバー ) DNS... 6

内容環境... 3 対応 OS の変更... 3 関連アプリケーションの追加... 4 機能追加... 5 グラフ機能... 5 稼働率... 8 サービス一括削除 自動復旧エスカレーションコマンド AWS カスタムメトリックス監視 NRPE 任意監視... 11

CLUSTERPRO MC ProcessSaver 1.0 for Windows 構築ガイド 2012(Sep) NEC Corporation はじめに責任範囲適用範囲概要事前準備クラスタ設定

CLUSTERPRO X 4.0 for Windows VM/Linux VM/Solaris VM 仮想マシン用ライセンス体系資料

CLUSTERPRO X IIJ GIO インフラストラクチャー P2 動作検証報告 2017 年 11 月日本電気株式会社クラウドプラットフォーム事業部 CLUSTERPROグループ 1 NEC Corporation 2017

Windows Server 2003 Service Pack 適用手順書

SAMBA Stunnel(Windows) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxx 部分は会社様によって異なります xxxxx 2 Windows 版ダウンロード ボ

CLUSTERPROXSingleServerSafe SingleServerSafe ご紹介 2007 年 10 月

システムインテグレータのIPv6対応

<MW-400k > InterSec/MW400k アップデート適用手順書 2017 年 8 月 1 版

iDIVO_Manager_service対応OSと必須ソフトウェア

目次 1. 本書の役割 Windows Agent サポート OS とエディション サポート言語 Agent 稼働前提条件 Azure SDK リリース済み Windows Agent のサポート

AWS Deck Template

Microsoft Word - nvsi_050090jp_oracle10g_vlm.doc

ServerView RAID Manager VMware vSphere ESXi 6 インストールガイド

改版履歴 版数改版履歴改版年月日 1 新規作成 2013/3/29 2 TESTIO_MODE を追加 OVER_ACTION VG_STALL_ACTION の設定値を変更 2013/9/30 3 CLUSTERPRO MC StorageSaver for BootDisk (for Linux

CLUSTERPRO/システム構築ガイド

Linux のインストール

ロードバランサー配下のシボレス IdP 環境設定に関する検証実験 2009 年 12 月 22 日国立情報学研究所学術ネットワーク研究開発センター山地一禎, 中村素典

アジェンダ クラスタリングとは 今回の構成 DRBD Zabbix 等の構成ソフトウェア Zabbix2.0 新機能 構築方法 バックアップについて 参考資料 2

Microsoft Word - esm_update_jp.doc

Microsoft PowerPoint - 【2.TSA & UDB編】Linux on zSeries 環境における DB2 クラスター機能検証報告書.ppt

Microsoft Windows Internet Explorer は 米国 Microsoft Corporation の 米国およびその他の国における登録商標または商標です Linux は Linus Torvalds 氏の日本およびその他の国における登録商標または商標です Red Hat

Pacemake-1.0とは違うのだよ、1.0とは! ~Pacemaker-1.1新機能のご紹介~

Microsoft PowerPoint (セミナー用)DRBD紹介資料.ppt [互換モード]

PowerPoint プレゼンテーション

KVMを用いたプライベートクラウド環境の構築

目次 1. Serverspec とは 1.1. Serverspecとは 1.2. Serverspecで出来る事 2. セットアップ 2.1. 必要なもの 2.2. インストール 3. デモ 3.1. デモ環境について 3.2. テスト対象サーバーの登録 3.3. サンプルテストの中身 3.4.

Microsoft Word - nvsi_060132jp_datadomain_restoreDRAFT4.doc

Administration of Veritas Cluster Server 6.0 for UNIX の管理練習問題 例題 1. installvcs -installonly が正常に実行されたことが記録されるテキストファイルは次のどれですか (2 つ選択 ) a. インストールログ b.

クラスタ連携ガイド MSCS/MSFC 編

スライド 1

2. システム構成 の運用環境によってインストールするソフトウェアが異なりますので 本項にあわせ次項の構成例もご確認いただき 必要なソフトウェアを選択してください 3 からの変更点は ESMPRO/AC による電源管理を行うために 4 以外に別途 ESMPRO/AC の制御端末となるサーバが必須にな

JapanCert 専門 IT 認証試験問題集提供者 1 年で無料進級することに提供する

更新履歴 Document No. Date Comments 次 D JP 2017/05/01 初版 1. 概要 はじめに 情報源 A10 Lightning Application Delivery Service(ADS) 導 構成 動作概要 構築概要 2. 事

Pacemaker + KVMで仮想化クラスタリング ~仮想化連携機能のご紹介~ OSC2011Tokyo/Fall

SAMBA Remote(Mac) 編 PC にソフトをインストールすることによって OpenVPN でセキュア SAMBA へ接続することができます 注意 OpenVPN 接続は仮想 IP を使用します ローカル環境にて IP 設定が被らない事をご確認下さい 万が一仮想 IP とローカル環境 IP

McAfee Application Control ご紹介

CLUSTERPRO MC RootDiskMonitor CLUSTERPRO MC StorageSaver for BootDisk 仮想環境 ( ゲスト OS) での設定手順 (Linux 版 Windows 版 ) 2017(Apr) NEC Corporation 仮想環境 ( ゲスト

スライド 1


Transcription:

Pacemaker でお手軽 Docker クラスタリング! 2018 年 8 月 4 日 OSC2018 Kyoto Linux-HA Japan 竹下雄大

本日の内容 Pacemaker ってなに? Pacemaker でお手軽 Docker クラスタリング! Linux-HA Japan Project 2

Pacemaker ってなに? Linux-HA Japan Project 3

Pacemaker ってなに? Pacemaker はオープンソースの HA クラスタソフトです Linux-HA Japan Project 4

Pacemaker ってなに? High Availability = 高可用性つまり サービス継続性 一台のコンピュータでは得られない高い信頼性を得るために 複数のコンピュータを結合 ( クラスタ化 ) し ひとまとまりとする ためのソフトウェアです Linux-HA Japan Project 5

Pacemaker ってなに? HA クラスタを導入すると 故障で現用系でサービスが運用できなくなったときに 自動で待機系でサービスを起動させます このことを フェイルオーバ と言います サービス フェイルオーバ サービス 現用系 故障 Linux-HA Japan Project 待機系 6

Pacemaker ってなに? はこの HA クラスタソフトとして実績のある Heartbeat と呼ばれていたソフトの後継です Linux-HA Japan Project 7

Pacemaker ってなに? Pacemaker で監視できること 仮想 IP アプリケーション監視 制御 起動 停止 稼働監視 自己監視 プロセス監視 watchdog ネットワーク監視 制御 ping 疎通確認 仮想 IP 制御 ノード監視 ハートビート通信 STONITH( 強制電源断 ) ディスク監視 制御 ファイルシステム監視 共有ディスク排他制御 サーバ #1 サーバ #2 Linux-HA Japan Project 8

Pacemaker ってなに? Pacemaker で監視できること 仮想 IP 自己監視 プロセス監視 watchdog ネットワーク監視 制御 ping 疎通確認 仮想 IP 制御 アプリケーション監視 制御どこかが故障すると 故障検知してサーバ #2 へフェイルオーバ 起動 停止 稼働監視 故障パターンと故障時動作については下記を参照 http://linux-ha.osdn.jp/wp/archives/4499 ノード監視 ハートビート通信 STONITH( 強制電源断 ) ディスク監視 制御 ファイルシステム監視 共有ディスク排他制御 サーバ #1 サーバ #2 Linux-HA Japan Project 9

Pacemaker ってなに? Pacemaker が起動 / 停止 / 監視を制御する対象をリソースと呼ぶ 例 :Apache PostgreSQL 共有ディスク 仮想 IP アドレス リソースの制御はリソースエージェント (RA) を介して行う RA が各リソースの操作方法の違いをラップし Pacemaker で制御できるようにしている 多くはシェルスクリプト 自作のアプリも RA を作成する事で制御可能! OCF リソースエージェント開発者ガイド :http://linux-ha.osdn.jp/wp/archives/4328 PostgreSQL RA Apache RA リソースエージェント リソース 共有ディスク RA Linux-HA Japan Project 10

Pacemaker の主な戦場 ベアメタル環境 仮想環境 KVM VMware などの非クラウド Linux-HA Japan Project 11

昨今のトレンド クラウド コンテナ (Docker) Linux-HA Japan Project 12

昨今のトレンド クラウド コンテナ (Docker) クラウドやコンテナでは Pacemaker の存在感は薄い? Linux-HA Japan Project 13

クラウドの HA OpenStack ControllerノードのHAはPacemaker ComputeノードのHAは コミュニティで方式検討中 the mistral-based POC (Intel) Masakari (NTT SIC) OCF RAs (Red Hat, SUSE) Pacemaker を利用 出展 :https://www.slideshare.net/enakai/red-hat-enterprise-linux-openstackplatform-7-vm-instance-ha-architecture パブリッククラウド インスタンスの冗長性はクラウド事業社が担保 インスタンス内で稼働するミドルウェア アプリケーションはユーザが HA 化 Pacemaker でもインスタンスの HA 可 出展 :https://github.com/ntt-sic/masakari Linux-HA Japan Project 14

コンテナ (Docker) の HA サービスを商用環境で運用する際には HA が非常に重要 Docker コンテナでも同様 Docker コンテナの HA はオーケストレーションツールの利用が主流 Kubernetes Docker Swarm などもあるが デファクトスタンダードの地位を確立 OpenShift Origin / OpenShift Container Platform ( 商用 ) Kubernates をベースに CI/CD 環境を付け加えたもの Docker イメージ管理 Docker コンテナ + アプリケーションの自動ビルド オーケストレーションツールの簡便さは開発者 運用者のもの インフラエンジニアには極めて高度なスキルが求められる コンテナだけでなく KVS Ansible CNI などの関連技術への理解が必要 開発が早く 学んだ技術がすぐに陳腐化 複雑なアーキテクチャ 困難なトラブルシューティング Kubernetes on OpenStack ( ω` ) ( ) 個人的な所感です Linux-HA Japan Project 15

Pacemaker でお手軽 Docker クラスタリング! Linux-HA Japan Project 16

Pacemaker でお手軽 Docker クラスタリング! Pacemaker で Docker コンテナクラスタリングできます! Docker RA OSC2017 Tokyo/Springで紹介 http://linux-ha.osdn.jp/wp/archives/4601 Bundle 今日のテーマ Pacemaker による Docker コンテナ HA の特徴 NativeなDockerの機能だけでクラスタ化可能 ( オーケストレーションツールよりは ) 簡単なアーキテクチャ まだほとんど誰もやっていないので 今ならパイオニアになれる! Linux-HA Japan Project 17

bundle とは 一般用語での意味 英辞郎 on the WEB(https://eow.alc.co.jp/) より bundle 自動 足早に 急いで さっさと 立ち去る 出て行く 急いで さっさと 素早く 荷物をまとめる 他動 ~ を束にする 束ねる 包む くくる 荷物を まとめる 商品を バンドリングする 複数の商品を セット売りする 1 セットにして販売する 名 束 束状構造塊 一団 一括 一つにまとめた物包み 小包 俗 札束 大金 植物 維管束 米俗 かわい子ちゃん いかす女 Linux-HA Japan Project 18

bundle とは Pacemaker での意味 隔離された環境とインフラをまとめる特別な syntax 隔離された環境 :Docker コンテナ (Pacemaker 1.1.17 現在 ) インフラ : ミドルウェア ネットワーク http://clusterlabs.org/pacemaker/doc/en-us/pacemaker/1.1/html/pacemaker_explained/s-resourcebundle.html 具体的には以下をまとめたもの docker RA : Docker コンテナを管理する RA IPaddr2 RA : 仮想 IP を管理する RA remote RA : Docker コンテナをリモートノードとして管理する RA <primitive リソース > RA : コンテナ内で動作するアプリケーションの RA Pacemake-1.1.17 以降で利用可能 な Docker コンテナを管理する ための特別な機能 Pacemaker 1.1.18 以降では rkt も管理可能 Linux-HA Japan Project 19

bundle の構成 ( イメージ ) コンテナ コンテナ primitive リソース primitive リソース Pacemaker Remote Pacemaker Remote Docker Docker Pacemaker bundle bundle remote RA docker RA remote RA docker RA IPaddr2 RA primitive リソース RA IPaddr2 RA primitive リソース RA corosync corosync Linux-HA Japan Project 20

bundle の構成 ( イメージ ) 1. Docker RAがコンテナを作成 2. remote RA/primitiveリソース RAがPacemaker Remote 経由でコンテナ内アプリ ケーションを管理 コンテナ コンテナ primitive リソース primitive リソース Pacemaker Remote Pacemaker Remote Docker Docker Pacemaker vip bundle bundle remote RA docker RA remote RA docker RA IPaddr2 RA primitive リソース RA IPaddr2 RA primitive リソース RA corosync corosync Linux-HA Japan Project 21

bundle の構成 ( イメージ ) 同じコンテナをスケール 異なるコンテナ (Apache/NFS サーバ ) コンテナ コンテナ Apache Apache Apache NFS サーバ Pacemaker Remote Pacemaker Remote Pacemaker Remote Pacemaker Remote Docker Docker Pacemaker Vip 1-1 Vip 1-2 Vip 1-3 Vip 2-1 bundle 1 bundle 2 bundle 1 bundle 2 corosync corosync Linux-HA Japan Project 22

bundle の構成 (xml) 以下の要素から構成される bundle : 必須 docker : 必須 network : 必須 storage : オプション primitive : オプション RA のパラメータ 一つの bundle リソース定義 複数の異なる bundle を定義することも可能 <bundle id="httpd-bundle"> <docker image="pcmktest:http" replicas= 3" replicas-per-host= 2" options="--log-driver=journald"/> <network ip-range-start="192.168.0.200" host-interface="ens3" host-netmask="24"> <port-mapping id="httpd-port" port="80"/> </network> <storage> <storage-mapping id="httpd-root" source-dir-root="/var/local/containers" target-dir="/var/www/html" options="rw"/> <storage-mapping id="httpd-logs" source-dir-root="/var/log/pacemaker/bundles" target-dir="/etc/httpd/logs" options="rw"/> </storage> <primitive class="ocf" id="httpd" provider="heartbeat" type="apache"> <operations> <op name="start" interval="0s" timeout="60s" on-fail="restart" id="httpd-start-0s"/> <op name="monitor" interval="10s" timeout="60s" on-fail="restart" id="httpd-monitor-10s"/> <op name="stop" interval="0s" timeout="60s" on-fail="block" id="httpd-stop-0s"/> </operations> </primitive> Linux-HA Japan Project </bundle> storage-mapping 要素は複数設定可能 ip-range-start を起点に コンテナ毎に VIP が付与される Primitive リソースはひとつのみ 23

bundle の構成 (xml) 以下の要素から構成される bundle : 必須 docker : 必須 network : 必須 storage : オプション primitive : オプション RA のパラメータ " <docker image="pcmktest:http" replicas= 3" replicas-per-host= 2" options="--log-driver=journald"/> < コンテナの概要を記述 コンテナの数 1 ノード上で起動するコンテナの最大数 docker image 名 docker run のオプション コマンド Linux-HA Japan Project 24

bundle の構成 (xml) 以下の要素から構成される bundle : 必須 docker : 必須 network : 必須 storage : オプション primitive : オプション RA のパラメータ "/ <network ip-range-start="192.168.0.200" host-interface="ens3" host-netmask="24"> <port-mapping id="httpd-port" port="80"/> </network> コンテナとホストのネットワーク経路を指定 コンテナと紐付く VIP 各コンテナと 1 : 1 に対応 ip-range-start から順に付与 publish port Linux-HA Japan Project 25

bundle の構成 (xml) 以下の要素から構成される bundle : 必須 docker : 必須 network : 必須 storage : オプション primitive : オプション RA のパラメータ コンテナにマウントする volume を指定 複数の volume が存在する場合は 各 volume 毎に storage-mapping 要素を記述 <storage> <storage-mapping id="httpd-root" source-dir-root="/var/local/containers" target-dir="/var/www/html" options="rw"/> <storage-mapping id="httpd-logs" source-dir-root="/var/log/pacemaker/bundles" target-dir="/etc/httpd/logs" options="rw"/> </storage> Linux-HA Japan Project 26

bundle の構成 (xml) 以下の要素から構成される bundle : 必須 docker : 必須 network : 必須 storage : オプション primitive : オプション RA のパラメータ コンテナ内で起動する primitive リソースを指定 1 つの bundle には 1 つの primitive リソースのみ 通常の primitive リソース定義と同じ内容 <primitive class="ocf" id="httpd" provider="heartbeat" type="apache"> <operations> <op name="start" interval="0s" timeout="60s" on-fail="restart" id="httpd-start-0s"/> <op name="monitor" interval="10s" timeout="60s" on-fail="restart" id="httpd-monitor-10s"/> <op name="stop" interval="0s" timeout="60s" on-fail="block" id="httpd-stop-0s"/> </operations> </primitive> Linux-HA Japan Project 27

bundle 要素と RA の関係 各要素から RA のパラメータが生成される bundle docker network storage primitive docker RA IPaddr2 RA remote RA <primitive> RA Linux-HA Japan Project 28

bundle の起動 cibadmin または pcs によるリソース管理 Pacemaker-1.1.17-1.1ではcrmshによるリソース管理不可具体的な設定例 作成したXMLの反映方法などは下記を参照 https://wiki.clusterlabs.org/wiki/bundle_walk-through https://www.clusterlabs.org/pacemaker/doc/en- US/Pacemaker/1.1/html/Pacemaker_Explained/s-resource-bundle.html Apache と NFS サーバを bundle で起動した例 6 nodes configured 16 resources configured Online: [ pm03 pm04 ] GuestOnline: [ httpd-bundle-0@pm03 httpd-bundle-1@pm03 httpd-bundle-2@pm04 nfsserverbundle-0@pm04 ] Full list of resources: コンテナ内リソースは apache RA で管理 httpd の bundle NFS サーバの bundle Docker container set: httpd-bundle [pcmktest:http] (unique) httpd-bundle-0 (192.168.0.200) (ocf::heartbeat:apache): Started pm03 httpd-bundle-1 (192.168.0.201) (ocf::heartbeat:apache): Started pm03 httpd-bundle-2 (192.168.0.202) (ocf::heartbeat:apache): Started pm04 Docker container: nfsserver-bundle [remote_test] nfsserver-bundle-0 (192.168.0.250) (ocf::heartbeat:nfsserver): Started pm04 replicas= 3 replicas= 1 コンテナ内リソースは nfsserver RA で管理 Linux-HA Japan Project 29

作成される Docker コンテナ docker ps 詳細はdocker inspect <CONTAINER ID> で # docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f0a521f0477a pcmktest:http "/usr/sbin/pacemak..." 27 seconds ago Up 22 seconds 192.168.0.201:80->80/tcp, 192.168.0.201:3121->3121/tcp httpd-bundle-docker-1 867ecaae027f pcmktest:http "/usr/sbin/pacemak..." 33 seconds ago Up 30 seconds 192.168.0.200:80->80/tcp, 192.168.0.200:3121->3121/tcp httpd-bundle-docker-0 VIP は自動的に連番が振られる コンテナ名は <bundle id>-docker- 連番 bundle により コンテナと 1 : 1 に対応する VIP が割り当てられるため クライアントは VIP を通して 任意のコンテナにアクセス可能 VIP とコンテナの IP は dockerd によってルーティングされる 一方 オーケストレータのように内部 LB は持たないため 負荷分散用途では別途 LB が必要 bundle で起動するコンテナには Pacemaker Remote が必要 典型的には pacemaker_remoted + 管理するアプリケーション Linux-HA Japan Project 30

作成される Docker コンテナ コンテナ内のプロセス COMMAND が pacemaker_remoted( デフォルト ) の場合 PID 1 は pcmk-init Primitive リソースの故障 コンテナの故障 # docker exec -it httpd-bundle-docker-0 ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 75504 2516? Ss 00:46 0:00 pcmk-init root 5 0.0 0.0 77792 3752? Ss 00:46 0:00 /usr/sbin/pacemaker_remoted root 44 0.0 0.0 221952 3484? Ss 00:46 0:00 /sbin/httpd -DSTATUS -f /etc/httpd/conf/httpd.conf -c PidFile /var/run//httpd.pid apache 49 0.0 0.0 222088 3724? S 00:46 0:00 /sbin/httpd -DSTATUS -f /etc/httpd/conf/httpd.conf -c PidFile /var/run//httpd.pid apache 50 0.0 0.0 222088 3724? S 00:46 0:00 /sbin/httpd -DSTATUS -f /etc/httpd/conf/httpd.conf -c PidFile /var/run//httpd.pid apache 51 0.0 0.0 222088 3724? S 00:46 0:00 /sbin/httpd -DSTATUS -f /etc/httpd/conf/httpd.conf -c PidFile /var/run//httpd.pid apache 52 0.0 0.0 222088 3724? S 00:46 0:00 /sbin/httpd -DSTATUS -f /etc/httpd/conf/httpd.conf -c PidFile /var/run//httpd.pid apache 53 0.0 0.0 222088 3724? S 00:46 0:00 /sbin/httpd -DSTATUS -f /etc/httpd/conf/httpd.conf -c PidFile /var/run//httpd.pid root 576 0.0 0.0 47452 1676 pts/0 Rs+ 00:53 0:00 ps aux オーケストレーションツールではコンテナ内のアプリケーションが故障するとコンテナが停止 ( 再起動 ) するが bundle ではコンテナは停止しない コンテナ内のアプリケーションが再起動する Linux-HA Japan Project 31

bundle vs Docker RA bundle Docker RA( 単体 ) 制御できるコンテナ Pacemaker Remote コンテナ制限なし コンテナで起動できるリソース スケーラビリティ RA で管理できるもの (lsb/systemd を含む ) 大 制限なし ( コンテナに依存 ) 小 1500 まで起動できた報告有 Docker リソースの clone 化でコンテナのスケーラビリティはある程度確保できるが IP や volume の動的な割り当てが困難 監視レベル RAによるサービス監視 ワンライナー または HEALTHCHECKによる簡易 チェック M/S リソース管理可能不可 Docker RA: コンテナを管理 bundle: コンテナ + インフラ ( ネットワーク volume リソース ) を管理 Linux-HA Japan Project 32

bundle を利用するモチベーション オーケストレーションツールではなく bundle を使うモチベーションは? Linux-HA Japan Project 33

bundle を利用するモチベーション オーケストレーションツールの方が適合するケース 以下のようなキーワードを目的にコンテナを運用する場合 DevOps, CI/CD マイクロサービス SoE bundle の方が適合するケース 高集約率を目的に従来システム (SoR) をコンテナに移行する場合 高い信頼性が求められる リリース頻度が低い Ex) 基幹系システム 物理サーバ上の DB とコンテナを連携する場合 コンテナと DB( 物理 ) を Pacemaker だけで管理可能 インフラエンジニアの負担を軽減したい場合 ただし Pacemaker 1.1.17-1.1 では Technology Preview 扱いです Linux-HA Japan Project 34

bundle の具体的な利用シーン bundle は Red Hat 社でも Technology Preview であることから 具体的な利用シーンはまだ少ない (2018.8 現在 ) Red Hat OpenStack Platform 12 以降で利用する場合に限りフルサポート https://access.redhat.com/articles/3388681 https://access.redhat.com/documentation/enus/red_hat_openstack_platform/12/html/understanding_red_hat_openstack_platfor m_high_availability/pacemaker#pacemaker-services Controller ノードで起動する各種ミドルウェアをコンテナ化し bundle で管理 HAProxy RabbitMQ Galera redis Linux-HA Japan Project 35

さいごに Linux-HA Japan URL http://linux-ha.osdn.jp/ http://osdn.jp/projects/linux-ha/ Pacemaker 関連の最新情報を日本語で発信 Pacemaker のダウンロードもこちらからどうぞ ( インストールが楽なリポジトリパッケージを公開しています ) Linux-HA Japan Project 36

さいごに 日本における HA クラスタについての活発な意見交換の場として Linux-HA Japan 日本語メーリングリスト も開設しています Linux-HA-Japan ML では Pacemaker Heartbeat3 Corosync DRBD など HA クラスタに関連する話題は歓迎! ML 登録用 URL http://linux-ha.osdn.jp/ の メーリングリスト をクリック ML アドレス linux-ha-japan@lists.osdn.me スパム防止のために 登録者以外の投稿は許可制です Linux-HA Japan Project 37

ご清聴ありがとうございました Linux-HA Japan 検索 Linux-HA Japan Project 38