OSC2016 Kyoto セミナー資料・アンケート結果公開

2年ぶりに夏本番のOSC京都に出展しました!

7月29日(金),30日(土) に京都リサーチパーク(KRP)にて開催された オープンソースカンファレンス2016 Kyoto にLinux-HA Japanも参加し、ブース展示および講演を行いました。
まさに“暑い夏の京都”でしたが、2日間で約1,000名の来場があり、Linux-HA Japanの展示ブースにもOSS初心者から経験者まで多くの皆さまにお越しいただき、ありがとうございました。

講演は「HAクラスタでできること! Pacemakerの構築運用に役立つノウハウを紹介!」というタイトルで、Pacemakerを利用したシステムの保守運用に役立つ2つのツールを活用しながら、システム故障発生時の「クラスタシステムの動作」や「復旧手順」の考え方から、故障ケース毎の「動作検証方法」の実例まで、Pacemakerの構築運用の基本ノウハウを紹介させていただきました。
以下にセミナーの資料を公開しますので、Pacemakerの構築運用に関わる理解を少しでも深めていただけたらうれしい限りです。

セミナー資料: HAクラスタでできること! . . . → Read More: OSC2016 Kyoto セミナー資料・アンケート結果公開

OSC2016 Tokyo/Spring セミナー資料・アンケート結果公開

2月26日(金),27日(土) に明星大学 日野キャンパスにて開催されたオープンソース カンファレンス2016 Tokyo/Spring にLinux-HA Japanも参加し、ブース展示および講演を行いました。

講演は「Pacemaker + PostgreSQL レプリケーション構成(PG-REX)の運用性向上 ~スロットの覚醒~」というタイトルで、PostgreSQLの非共有ディスク型クラスタ構成であるPG-REXと最新機能のレプリケーションスロットについてお話しさせていただきました。
今回も多くの方(30名程度)に聴講しに来ていただいて、誠にありがとうございました。

以下にセミナーの資料を公開しますので、参考にしていただければと思います。

セミナー資料:Pacemaker + . . . → Read More: OSC2016 Tokyo/Spring セミナー資料・アンケート結果公開

Nightlyビルド公開します

Pacemaker本家コミュニティにて、開発最新版のPacemaker 1.1.10 がリリースされました。本バージョンに大きな問題がなければ、Pacemakerはメジャーバージョンアップするとの予告が出ており、1.1.10 は重要なバージョンと言えそうです。

これを記念して、Linux-HA Japanでは、いち早く最新のパッケージを使ってみたいという方のために、RHEL6(x86_64)および互換OS向けのNightlyビルドを公開したいと思います。

http://linux-ha.sourceforge.jp/nightly/

ビルド対象のパッケージは、Pacemaker 1.0系(安定版)、1.1系(開発版)、および周辺コンポーネントです。

Nightlyビルドには、Pacemaker 1.0系と1.1系両方のコンポーネントが混在しているため、どのコンポーネントを組み合わせればよいかわからない人は以下を組み合わせてみてください。

Pacemaker 1.0系 (安定版)

cluster-glue . . . → Read More: Nightlyビルド公開します

Fedora 19 上でPostgreSQL ストリーミングレプリケーションのクラスタリング

先日リリースされたFedora 19には、Linux-HA Japanで開発したPostgreSQLのストリーミングレプリケーションのクラスタリング機能がついに同梱されました。

Pacemaker のバージョンも開発版で比較的新しい 1.1.9 が同梱されているので、これを使ってPostgreSQLストリーミングレプリケーションのクラスタリングに挑戦してみたいと思います。

環境

今回、Fedoraのインストール手順方法は割愛しますが、以下の環境を用意してください。
※ 超スモール構成のため、商用での利用は推奨しません。信頼性を確保するには、Pacemaker用やレプリケーション用の専用LANを準備し、STONITHの導入を検討してください。

fe19-sr

  • ホスト名は、52-fe19 と 53-fe19 とします。 (単に私の手元の環境で使っているホスト名で、深い意味はありません。。。)
  • 皆大好きなSELinuxやファイアウォールは無効にしておきます。
  • 設定が複雑になるので、ネットワーク監視やディスク監視は行いません。
  • 超スモール環境のためネットワークは2本で挑戦します。なお、よく悪者扱いされるNetworkManagerは停止し、IPは手動で設定してください。また、/etc/hostsにホスト名を定義するとトラブル可能性があるので定義しないでください。
    • 1本目用途 : PostgreSQLへのアクセス用+Pacemaker通信用
      • 52-fe19のIP 192.168.0.152
      • 53-fe19のIP 192.168.0.153
      • PostgreSQLアクセス用の仮想IP(vip-master) 192.168.0.252
    • 2本目用途 : レプリケーション用 + Pacemaker通信用
      • 52-fe19のIP 192.168.1.152
      • 53-fe19のIP 192.168.1 .153
      • レプリケーション用仮想IP(vip-rep) 192.168.1.252

インストール

両ノードに、yumを使って必要なパッケージを一気にインストールし、PostgreSQLのアーカイブディレクトリを作成しておきます。(両ノードで実行)

# yum install postgresql-server pacemaker corosync pcs
読み込んだプラグイン:langpacks, refresh-packagekit
(省略)
完了しました!
# su - postgres
$ mkdir /var/lib/pgsql/pg_archive

PostgreSQLの設定

PostgreSQLのデータベースクラスタを作成します。(52-fe19上で実行)

$ cd /var/lib/pgsql/data
$ initdb
データベースシステム内のファイルの所有者は"postgres"ユーザでした。
このユーザがサーバプロセスを所有しなければなりません。
(省略)
成功しました。以下を使用してデータベースサーバを起動することができます。

    postmaster -D /var/lib/pgsql/data
または
    pg_ctl -D /var/lib/pgsql/data -l logfile start

postgresql.conf ファイルに以下を設定します。その他の設定はデフォルトのままで構いません。なお、synchronous_standby_names パラメータが設定されている場合は、必ずコメントアウトして無効にしておいてください。(52-fe19上で設定)

listen_addresses = '*'
wal_level = hot_standby
synchronous_commit = on
archive_mode = on
archive_command = 'cp %p /var/lib/pgsql/pg_archive/%f'
max_wal_senders=5
wal_keep_segments = 32
hot_standby = on
restart_after_crash = off
replication_timeout = 5000
wal_receiver_status_interval = 2
max_standby_streaming_delay = -1
max_standby_archive_delay = -1
synchronous_commit = on
restart_after_crash = off
hot_standby_feedback = on

pg_hba.conf ファイルを設定します。(セキュリティは全く考慮していません) (52-fe19上で設定)

host    all             all     127.0.0.1/32        trust
host    all             all     192.168.0.0/16      trust
host    replication     all     192.168.0.0/16      trust

PostgreSQLを起動します。(52-fe19上で実行)

$ pg_ctl -D . start
サーバは起動中です。

53-fe19 にデータをコピーします。(53-fe19上で実行)

# su - postgres
$ pg_basebackup -h 192.168.0.152 -U postgres -D /var/lib/pgsql/data -X stream -P

手動でレプリケーション接続できるか試します。53-fe19に/var/lib/pgsql/data/recovery.confを作成します。

standby_mode = 'on'
primary_conninfo = 'host=192.168.1.152 port=5432 user=postgres'
restore_command = 'cp /var/lib/pgsql/pg_archive/%f %p'
recovery_target_timeline = 'latest'

53-fe19のPostgreSQLを起動します。(53-fe19上で実行)

$ pg_ctl -D /var/lib/pgsql/data/ start

52-fe19上で以下のSQLを使ってレプリケーションの状態を確認します。

$ psql -c "select client_addr,sync_state from pg_stat_replication;"
  client_addr  | sync_state 
---------------+------------
 192.168.1.153 | async
(1 行)

無事レプリケーション接続できました。では、一旦両ノードのPostgreSQLを停止します。(両ノードで実行)

$ pg_ctl -D /var/lib/pgsql/data stop
$ exit

Corosyncの設定

corosyncの設定ファイル/etc/corosync/corosync.confを用意します。(両ノードで作成)

quorum {
           provider: corosync_votequorum
           expected_votes: 2
}
aisexec {
    user: root
    group: root
}
service {
    name: pacemaker
    ver: 0
    use_mgmtd: yes 
}
totem {
    version: 2
    secauth: off 
    threads: 0
    rrp_mode: active
    clear_node_high_bit: yes 
    token: 4000
    consensus: 10000
    rrp_problem_count_timeout: 3000
    interface {
        ringnumber: 0
        bindnetaddr: 192.168.0.0
        mcastaddr: 226.94.1.1
        mcastport: 5405
    }   
    interface {
        ringnumber: 1
        bindnetaddr: 192.168.1.0
        mcastaddr: 226.94.1.1
        mcastport: 5405
    }   
}
logging {
    fileline: on
    to_syslog: yes 
    syslog_facility: local1
    syslog_priority: info
    debug: off 
    timestamp: on
}

Corosyncを起動します。(両ノードで実行)

# systemctl start corosync.service

/var/log/messages に以下のようなメッセージが出ればcorosyncの起動成功です。

[MAIN  ] main.c:275 Completed service synchronization, ready to provide service.

ちなみに私の環境では、52-fe19でこのログが出続けていますが、原因はよくわかりません。。。とりあえず動いているようなのでこのまま先に進みます。(おぃ! )

Incrementing problem counter for seqid 2087 iface 192.168.0.152 to [1 of 10]

次はPacemkaerの起動・設定に入っていきます。

Pacemakerリポジトリパッケージ1.0.13-1.1リリース

. . . → Read More: Pacemakerリポジトリパッケージ1.0.13-1.1リリース

Pacemakerリポジトリパッケージ 1.0.12-1.3 をリリース

Pacemakerリポジトリパッケージ1.0.12-1.3をリリースしました。

変更内容はjboss RAのバグフィックスのみです。
jboss RAを使用していない環境では、アップデートは必要ありません。

リリースノート、変更履歴の確認、およびパッケージのダウンロードは 以下のURLをご参考ください。

RHEL6用
. . . → Read More: Pacemakerリポジトリパッケージ 1.0.12-1.3 をリリース

STONITH plugin “eject” is out now!

Split Brain is the most awful situation in the cluster world,
. . . → Read More: STONITH plugin “eject” is out now!

新STONITHプラグイン eject をリリース!

皆さんPacemaker使っていますか~?

PacemakerのようなHAクラスタを構築する上で注意しないといけないのがスプリットブレインですよね。PacemakerにはIPMIのように電源を制御できるハードウェアがサーバに搭載されていると、それを使用してスプリットブレインを回避できますが、安いPCにはそんなハードウェア搭載されてないよ!っていう人も多いと思います。

そんな人向けに、特殊なハードウェアを必要としないSTONITHプラグイン “eject” を本日 2011年4月1日にリリースしました!!
本プラグインはスプリットブレイン時に、光学ドライブを開閉させ対向ノードの電源ボタンを押すことで、STONITHの機能を実現します。

本プラグインを使用するには以下の条件が必要になりますのでよーく読んでくださいね。

使用条件

電源ボタンが搭載されていて、カバー等で覆われていないこと
光学ドライブが搭載されていること

光学ドライブのモータ駆動力が弱いと使用できません

2台のPCを向かい合わせで設置できること
BIOSで電源ボタン長押しじゃなくても、PCを再起動もしくは電源OFFできるように設定できること
PCの設置位置を微妙に調整できる繊細さを持っていること

なお、ハードウェアの制約により以下のことは実現できませんのでご注意。

制約

電源OFF、再起動、電源ONを使い分けることはできません
動作結果の確認はできません

ejectできればかならずSTONITHが成功したとみなします

フェイルオーバ後、PCの位置を調整し直す必要があります

インストール方法

インストール方法はいたって簡単。ダウンロードした”eject“を展開後、以下のディレクトリに配置するだけです。

32bit環境の場合

/usr/lib/stonith/plugins/external/

64bit環境の場合

/usr/lib64/stonith/plugins/external/

ファイルのパーミッションは755(rwxr-xr-x)を設定してください、

本プラグインで必要なパラメータは “hostname”のみです。対向ノードのホスト名を設定してください。

本日は2011年4月1日です (^ ^)
使用は自己責任でお願いします。動作報告はメーリングリストまでお願いします。

参考資料

エアコンをリモート操作する仕組みを作った
遠隔操作でハムスターを暑さから救おう!2.0

Presented by eject . . . → Read More: 新STONITHプラグイン eject をリリース!

DRBD-MCを使って10分でクラスタを組もう(動画デモ)

DRBD-MCと言うGUIツールがあります。

※参考:

Linux-HAをGUIで管理「DRBD Management Console」

これを使って、サーバー2台でDRBD+Pacemaker クラスタを実際に10分と少しで、構築してみました。

動画は、ころちゃんが案内してくれますよ。

画像が小さいと思われる場合、こちらで:HDなので、文字もきちんとみれます。

http://www.youtube.com/watch?v=FXgTBjkR9vA

デモは、仮想環境上で実施していますが、だいたい、こんな構成です。

OS:CentOS5.5 最新版

DISK:40GB  事前に、20GBのroot、4GBのSWAPと、16GBの空白ボリューム

(FDISKを忘れずに)

NIC:3ポート (うち2ポートはインターコネクト用)

DRBD-MC  0.8.12  (http://oss.linbit.com/drbd-mc/ よりダウンロードしてください)

Oracle Java およびそれの動作する環境(本デモでは、Windows7上で実施しています)

本家Linbitの構築デモ(英語) Using DRBDMC . . . → Read More: DRBD-MCを使って10分でクラスタを組もう(動画デモ)

OSC2010 Tokyo/Fall セミナー資料公開

無事OSC 2010 Tokyo/Fall を終えました。ご来場ありがとうございました。

今回は多くの人にPacemakerをより知ってもらおうと、HAクラスタという地味な分野にもかかわらずPacemakerネタだけで2セッションも講演させていただきました。興味持って聞いてくださった方ありがとうございました。

早速ですが、オープンソースカンファレンス2010 Tokyo/Fall で行ったセミナーのスライドを公開いたします。

2010/09/10  Pacemakerを使いこなそう!~HAクラスタで止まらないサービスを~ (松尾 隆利)

スプリットブレイン・クォーラム・STONITH 等

2010/09/11  . . . → Read More: OSC2010 Tokyo/Fall セミナー資料公開