Develop and Download Open Source Software

View UltraMonkey-L7 Pacemaker 環境インストールマニュアル(1.0.13-x 対応版)

file info

category(Tag)
for_PM1.0.x
file name
UltraMonkey-L7_PM_install_manual_v1.0.txt
last update
2013-08-08 18:29
type
Plain Text
editor
hibari
description
UltraMonkey-L7 用の Pacemaker インストールマニュアルです
language
Japanese
translate
UltraMonkey-L7 Pacemaker環境インストールマニュアル v1.0 【v1.0.13-x対応版】

[変更履歴]
2013.06.28  [v1.0]:初版

------------------------------------------------------------------------
1 前提条件
    1.1 主な仕様
    1.2 事前準備
2 インストール
    2.1 ユーザの作成、パスワード設定
    2.2 本体のインストール
    2.3 Pacemaker追加パッケージのインストール
    2.4 Pacemaker設定モジュールのインストール
3 Pacemaker の設定
    3.1 Pacemaker本体モジュールのスクリプト(/etc/init.d/heartbeat) の編集
    3.2 クラスタの基本設定(/etc/ha.d/ha.cf) の編集
    3.3 クラスタの詳細設定(sample.crm) の編集
    3.4 RAスクリプトの配置
4 Pacemaker の動作確認
    4.1 前提条件
    4.2 確認モニタ起動
    4.3 Pacemakerの起動
    4.4 Pacemakerの状態確認
    4.5 ACT/SBY の切替確認

------------------------------------------------------------------------

1 前提条件
    本マニュアルが想定する環境を以下に示します。

1.1 主な仕様
    1.1.1 ハードウェア(推奨)
    CPU:Xeon2.8GHz x2相当、メモリ:4GB相当、HDD10GB相当
    Ethernet:1000BASE-T、1000BASE-SX

    1.1.2 主なソフトウェア
    ・OS:RedHatEnterpriseLinux 5.9 (kernel2.6.18-348) x86_64版
    ・OS:RedHatEnterpriseLinux 6.4 (kernel2.6.32-358) x86_64版
    ・L7負荷分散フレームワーク(l7vs)
    ・L7サーバ監視設定ツール(l7directord)

    1.1.3 本マニュアルで使用するパッケージ
    ・pacemaker-<ver>.x86_64.repo.tar.gz

    本マニュアルでは、上記のソースを使用することとして
    記述しております。
    異なるバージョン等使用する際には注意願います。

    すでにUltraMonkey-L7 v3がインストールされている状態とします。

1.2 事前準備

    1.2.1 RHELリポジトリの設定
        RHELパッケージのリポジトリを設定します。ここでは
        例としてRHELインストールDVDを利用する方法を挙げておきます。

        RHELインストールDVDをマウントします。
        # mount /dev/dvd /media

        マウントしたRHELインストールDVDをリポジトリに設定します。
        # vi /etc/yum.repo.d/rheldvd.repo

        [rhel-server]
        name=Red Hat Enterprise Linux $releasever - $basearch - server
        baseurl=file:///media/Server
        enabled=1
        gpgcheck=1
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

    1.2.2 Pacemakerリポジトリパッケージの取得と展開
        以下のサイトよりPacemakerリポジトリパッケージをダウンロードします。
        http://linux-ha.sourceforge.jp/wp/dl
        ファイル名は以下になります。
        pacemaker-<ver>.x86_64.repo.tar.gz

        取得したリポジトリパッケージを/tmpで展開します。
        # cd /tmp
        # tar zxvf pacemaker-<ver>.x86_64.repo.tar.gz

2 インストール

2.1 yumキャッシュのクリア

    # yum clean all
    Loaded plugins: rhnplugin, security
    Cleaning up Everything ← このログが出力されることを確認する。

2.2 Pacemakerのインストール

    # cd /tmp/pacemaker-<ver>.x86_64.repo
    # yum -c pacemaker.repo install -y pacemaker pacemaker-mgmt \
      pm_crmgen pm_logconvhb pm_diskd pm_extras pm_kvm_tools vm-ctl ipmitool

2.3 インストール後作業

    2.2.3 一時的なyumリポジトリの無効化
        1.2.1 で例として挙げたDVDのリポジトリを削除します。
        # rm /etc/yum.repos.d/rheldvd.repo

        その後、umountコマンドでDVDをアンマウントします。
        # umount /media

    2.2.4 Pacemakerリポジトリパッケージの削除
        /tmpに展開したPacemakerリポジトリパッケージを削除します。
        # rm -rf /tmp/pacemaker-<ver>.x86_64.repo

    2.3.7 RAファイルとCRMファイルを所定のディレクトリに配置

        # cp -p /usr/share/doc/$(UML7_VERSION)/heartbeat-ra/L7vsd /usr/lib/ocf/resource.d/heartbeat/L7vsd
        # cp -p /usr/share/doc/$(UML7_VERSION)/heartbeat-ra/L7directord /usr/lib/ocf/resource.d/heartbeat/L7directord
        # mkdir ~/pm_def
        # cp -p /usr/share/doc/$(UML7_VERSION)/heartbeat-ra/sample.crm ~/pm_def/sample.crm

        RAファイルに実行権限がついていることを確認します。
        # ls -l /usr/lib/ocf/resource.d/heartbeat/L7vsd
        # ls -l /usr/lib/ocf/resource.d/heartbeat/L7directord


3 Pacemaker の設定

3.1 Pacemaker の構成

    以下のドキュメント(英語)に従って必要ファイルの設定を行います
        http://www.clusterlabs.org/doc/en-US/Pacemaker/1.0/html/Pacemaker_Explained/index.html
        - authkeys
        - ha.cf
        - logd.cf

        (※参考例 authkeys)
        # vim /etc/ha.d/authkeys
        auth 1
        1 sha1 ClusterKey01
        
        (※参考例 ha.cf)
        # vim /etc/ha.d/ha.cf
        pacemaker on
        logfacility local1

        debug 0
        udpport (ポート番号)*1
        keepalive 2
        warntime 7
        deadtime 10
        initdead 48

        bcast (NIC名)*2

        node (LBサーバ名)*3
        node (LBサーバ名)*4

        watchdog /dev/watchdog
        respawn root /usr/lib64/heartbeat/ifcheckd

        *1 : インターコネクト通信用ポート番号を設定
        *2 : インターコネクトLANのネットワークデバイス名を設定(※ 対向Nodeに直結したLAN)
        *3 : Primary LBサーバ名を設定
        *4 : Secondary LBサーバ名を設定

        (※参考例 syslog.conf)
        # vim /etc/syslog.conf
        以下を追記
        local1.info /var/log/ha-log

        (※参考例 rsyslog.conf)
        # vim /etc/rsyslog.conf
        以下を追記
        local1.info /var/log/ha-log;RSYSLOG_TraditionalFileFormat
        $EscapeControlCharactersOnReceive off

3.3 クラスタの詳細設定 (~/pm_def/sample.crm) の編集

    3.3.1 VIPcheckプリミティブ・パラメータ の編集

    ※ -> 編集部分

        # vim ~/pm_def/sample.crm
        ・・・
        primitive prmVIPcheck ocf:heartbeat:VIPcheck \
                params \
                        target_ip="MODIFY_TARGET_VIP" \ (*1)
                        count="1" \
                        wait="10" \
                op start interval="0s" timeout="90s" on-fail="restart" start_delay="4s"
        ・・・

        *1 : Virtual-IPを設定する

    3.3.2 VIPプリミティブ・パラメータ の編集

    ※ -> 編集部分

        # vim ~/pm_def/sample.crm
        ・・・
        primitive prmVIP ocf:heartbeat:IPaddr2 \
                params \
                        ip="MODIFY_VIP_IP" \ (*1)
                        nic="MODIFY_VIP_NIC" \ (*2)
                        cidr_netmask="MODIFY_VIP_NETMASK" \ (*3)
                op start interval="0s" timeout="60s" on-fail="restart" \
                op monitor interval="10s" timeout="60s" on-fail="restart" \
                op stop interval="0s" timeout="60s" on-fail="block"
        ・・・

        *1 : Virtual-IPを設定する
        *2 : Virtual-IPに接続するネットワークデバイス名
        *3 : ネットマスク

    3.3.3 Pingdプリミティブ・パラメータ の編集

    ※ -> 編集部分

        # vim ~/pm_def/sample.crm
        ・・・
        primitive prmPingd ocf:pacemaker:pingd \
                params \
                        name="default_ping_set" \
                        host_list="MODIFY_PING_TARGET_IP" \ (*1)
                        multiplier="100" \
                op start interval="0s" timeout="60s" on-fail="restart" \
                op monitor interval="10s" timeout="60s" on-fail="restart" \
                op stop interval="0s" timeout="60s" on-fail="ignore"
        ・・・

        *1 : GWなど監視先IPアドレスを設定する

    3.3.4 Diskdプリミティブ・パラメータ の編集

    ※ -> 編集部分

        # vim ~/pm_def/sample.crm
        ・・・
        primitive prmDiskd ocf:pacemaker:diskd \
                params \
                        name="diskcheck_status_internal" \
                        device="MODIFY_TARGET_DISK_DEV" \ (*1)
                        interval="10" \
                op start interval="0s" timeout="60s" on-fail="restart" \
                op monitor interval="10s" timeout="60s" on-fail="restart" \
                op stop interval="0s" timeout="60s" on-fail="ignore"
        ・・・

        *1 : /dev/sdaなど監視ディスクデバイス名を設定する

    3.3.5 Primary/Secondaryサーバの編集

    ※ -> 編集部分

        # vim ~/pm_def/sample.crm
        ・・・
        location rsc_location-grpUltraMonkey-1 grpUltraMonkey \
                rule 200: #uname eq MODIFY_PRYMARY_HOST \ (*1)
                rule 100: #uname eq MODIFY_SECONDARY_HOST \ (*2)
                rule -INFINITY: not_defined default_ping_set or default_ping_set lt 100 \
                rule -INFINITY: not_defined diskcheck_status_internal or diskcheck_status_internal eq ERROR
        ・・・

        *1 : Primary LBサーバ
        *2 : Secondary LBサーバ

    3.3.6 不要ファイルの削除

        /var/lib/heartbeat/crm 配下にファイルがある場合、全ファイルを削除

    3.3.7 【参考】各種設定情報のネットワーク図

                                  Virtual-IP 
                                      |
            +---------------------------------------------------+
            |                                                   |
    +------------------+     インターコネクトLAN      +--------------------+
    | Primary LBサーバ |------------------------------| Secondary LBサーバ |
    +------------------+                              +--------------------+


4 Pacemaker の動作確認

4.1 前提条件

    4.1.1 L7vsdを起動

        # /etc/init.d/l7vsd start

    4.1.2 L7directordの停止

        # /etc/init.d/l7directord stop

    4.1.3 /etc/hostsの設定確認

        /etc/hostsが適切に設定してあることを確認

4.2 確認モニタ起動
    ※ どちらの Node でも可

    4.2.1 モニタ起動コマンドを実行し、以下が表示されることを確認

    # crm_mon -1
    Not connected: Refresh in 2s...

4.3 Pacemaker の起動
    ※ 両 Node で実施

    4.3.1 Pacemaker 起動コマンドを実行し、以下が表示されることを確認
	
    # service heartbeat start
    Starting High-Availability services:  [  OK  ]

    4.3.2 【参考】Pacemaker を停止する方法は、以下のコマンドを実行する

    # service heartbeat stop
    Stopping High-Availability services:  [  OK  ]

4.4 クラスタの詳細設定 (~/pm_def/sample.crm) のロード
    ※どちらか片方の Node のみで実施

    4.3.1 Pacemaker が起動していることを確認。

    # crm_mon -1
    heartbeat is running.

        ============
        Last updated: 時間表示
         :(省略)
        2 Nodes configured, unknown expected votes (*1)
        0 Resources configured.
        ============

        Online: [ PrimaryNode名 SecondaryNode名 ] (*2)

        Node Attributes:
        * Node PrimaryNode名:
        + SecondaryNode名-eth2 : up
        * Node SecondaryNode名:
        + PrimaryNode名-eth2 : up

        Migration summary:
        * Node PrimaryNode名:
        * Node SecondaryNode名:

		*1 : ノード数の確認
		*2 : 全ノードが Online

    4.3.2 sample.crm をロードする

        # crm options sort-elements no
        # crm configure load update ~/pm_def/sample.crm
    
4.4 Pacemakerの状態確認

    4.4.1 モニタで、以下が表示がされることを確認

    *1) Node数を確認
    *2) リソースグループ数+cloneリソース数を確認
    *3)  2つのNodeが「online」 と表示されていることを確認(※起動していないときはOFFLINE)
    *4)  prmVIPcheck、prmVIP、prmL7directordの3項目がResource Groupになっていることを確認
    *5)  上記3項目がStartedとなっていることを確認

        # crm_mon -fA
        ============
        Last updated: Tue Jul  2 14:23:40 2013
        Stack: Heartbeat
        Current DC: Node名 (f8342456-2d38-4a17-89f3-c98cb826473e) - partition with quorum
        Version: 1.0.12-066152e
        2 Nodes configured, unknown expected votes (*1)
        4 Resources configured.                    (*2)
        ============

        Online: [ PrimaryNode名 SecondaryNode名 ] (*3)

         Resource Group: grpUltraMonkey                                                +
             prmVIPcheck     (ocf::heartbeat:VIPcheck):       Started PrimaryNode名    |(*4)
             prmVIP     (ocf::heartbeat:IPaddr2):       Started PrimaryNode名          |(*5)
             prmL7directord     (ocf::heartbeat:L7directord):   Started PrimaryNode名  +
         Clone Set: clnL7vsd
             Started: [ PrimaryNode名 SecondaryNode名 ]
         Clone Set: clnPingd
             Started: [ PrimaryNode名 SecondaryNode名 ]
         Clone Set: clnDiskd
             Started: [ PrimaryNode名 SecondaryNode名 ]

        Node Attributes:
        * Node PrimaryNode名:
            + default_ping_set                  : 100       
            + diskcheck_status_internal         : normal    
            + SecondaryNode名-eth2              : up        
        * Node SecondaryNode名:
            + default_ping_set                  : 100       
            + diskcheck_status_internal         : normal    
            + PrimaryNode名-eth2                : up        


4.5 ACT/SBY の切替確認

    4.5.1 ACT(本例では、Primary Node)のPacemakerを停止し、ACT/SBYを切替

    # service heartbeat stop
    Stopping High-Availability services:  [  OK  ]


    4.5.2 モニタで、以下が表示されることを確認

    *1) Secondary Node が online と表示されていることを確認
    *2) Primary Node が OFFLINE と表示されていることを確認
    *3) Resource Groupの prmVIPcheck、prmVIP、prmL7directord が
        Secondary Node で Started していることを確認

        ============
        Last updated: Tue Jul  2 15:26:38 2013
        Stack: Heartbeat
        Current DC: SecondaryNode名 (f8342456-2d38-4a17-89f3-c98cb826473e) - partition with quorum
        Version: 1.0.12-066152e
        2 Nodes configured, unknown expected votes
        4 Resources configured.
        ============

        Online: [ SecondaryNode名 ] (*1)
        OFFLINE: [ PrimaryNode名 ]  (*2)

         Resource Group: grpUltraMonkey                                                  +
             prmVIPcheck     (ocf::heartbeat:VIPcheck):       Started SecondaryNode名    |(*3)
             prmVIP     (ocf::heartbeat:IPaddr2):       Started SecondaryNode名          |
             prmL7directord     (ocf::heartbeat:L7directord):   Started SecondaryNode名  +
         Clone Set: clnL7vsd
             Started: [ SecondaryNode名 ]
             Stopped: [ prmL7vsd:0 ]         
         Clone Set: clnPingd
             Started: [ SecondaryNode名 ]
             Stopped: [ prmPingd:0 ]         
         Clone Set: clnDiskd
             Started: [ SecondaryNode名 ]
             Stopped: [ prmDiskd:0 ]         

        Node Attributes:
        * Node SecondaryNode名:
            + default_ping_set                  : 100       
            + diskcheck_status_internal         : normal    

        Migration summary:
        * Node SecondaryNode名: