开发和下载开源软件

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

文件信息

类别(标签)
for_PM1.0.x
文件名
UltraMonkey-L7_PM_install_manual_v1.0.txt
最后更新
2013-09-25 10:41
类型
Plain Text
编辑器
hibari
描述
UltraMonkey-L7 用の Pacemaker インストールマニュアルです
语言
日语
翻译
UltraMonkey-L7 Pacemaker環境インストールマニュアル v1.1 【v1.0.13-x対応版】

[変更履歴]
2013.08.09  [v1.0]:初版
2013.09.25  [v1.1]:3.1 Pacemaker の構成からlogd.cfを削除 4.1 前提条件を修正
------------------------------------------------------------------------
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: Xeon 5160 3.00GHz 相当、メモリ: 4GB 相当、HDD: 10GB 相当
	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負荷分散フレームワーク(l7vsd)
	・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

		(※参考例 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/L7directordを起動

		# /etc/init.d/l7vsd start
		# /etc/init.d/l7directord start
		正常に起動できることを確認

	4.1.2 L7vsd/L7directordの停止

		# /etc/init.d/l7vsd stop
		# /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.4.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.4.2 sample.crm をロードする

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

	4.5.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.6 ACT/SBY の切替確認

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

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


	4.6.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名: