keepalivedの(25)のインストールおよび構成

1.信頼性の高いコンセプト

HA(ご利用可能)、高可用性クラスタは、一般に、2つの以上のノードがあり、アクティブノードとバックアップ・ノードに、有効なビジネス継続性ソリューションです。

 

2.信頼性の高いソフトウェアkeepalivedの

キープアライブは、通常で展開、高い信頼性を実現することができるソフトウェアである2 、サーバー上の主なものに分かれています。keepalivedのは、一旦、機械上の検出処理を行うことができるマスターは、プロセスの問題を検出し、に自分自身を切り替えますバックアップし、別のノード通知に切り替え、状態マスター状態。

3.keepalivedインストール

 

ダウンロード keepalivedの公式ウェブサイト:のhttp://keepalived.org

 

keepalivedのにエキスは/ usr / local / srcにするディレクトリ

 

タール-zxvf keepalivedの-1.2.19.tar.gz -Cは/ usr / local / srcに

 

/usr/local/src/keepalived-1.2.19 ディレクトリ

 

CD /usr/local/src/keepalived-1.2.19

 

ようになった設定

 

./configure --prefix =は/ usr / local / keepalivedの

 

コンパイルとインストール

 

作る&& make installを

 

4. keepalivedのサービスは、(serviceコマンドで起動することができます)システム内に追加しました

実行可能ファイルをコピーします。

CPは/ usr / local / keepalivedの/ sbinに/ keepalivedのは/ usr / sbinに/

init.dディレクトリのファイルをにコピーさなどの下にブートエントリを追加します

CP /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived

keepalivedのは、うにファイルをコピーするなどの下で

CPは/ usr / local / keepalivedのの/ etc /のsysconfig / keepalivedのは/ etc /のsysconfig /

作成 keepalivedのフォルダを

ます。mkdir -pの/ etc / keepalivedの

keepalivedのコピーへの設定ファイルなどの下で

CP /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf

実行権限を追加します。

chmodの+ X /etc/init.d/keepalived

 

## 以上のワンタイムコマンド実行のすべて:

CPは/ usr / local / keepalivedの/ sbinに/ keepalivedのは/ usr / sbinに/

CP /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/keepalived

CPは/ usr / local / keepalivedのの/ etc /のsysconfig / keepalivedのは/ etc /のsysconfig /

ます。mkdir -pの/ etc / keepalivedの

CP /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf

chmodの+ X /etc/init.d/keepalived

chkconfigを--add keepalivedの

chkconfigのは、上のkeepalivedの

 

追加 keepalivedの自動的にアクティブ化を起動します

chkconfigを--add keepalivedの

chkconfigのは、上のkeepalivedの

 

5.仮想IP keepalivedのを設定

設定ファイルを変更します。 /etc/keepalived/keepalived.confを

#MASTERのノード

global_defs {

}

vrrp_instance VI_1 {

    状態MASTER#が指定Aがノードにスペアノード上に設けられている主ノードであるBACKUP

    インターフェイスeth0の#バインド仮想IPのネットワーク・インタフェース

    #VRRPがvirtual_router_id 51 に配置されたグループ名は、各ノードが同じに属することを示すために同じ2つのノードでなければならないのVRRP グループ

    優先順位100#の優先順位(マスタノード1から254までの間)、ノードは待機ノードの優先度よりも低くなければなりません

    advert_int 1つの#マルチキャスト送信間隔ハートビート検出間隔、同じ2つのノードが提供されなければなりません

    認証{#提供された認証情報、両方のノードが同意しなければなりません

        AUTH_TYPE PASS

        auth_pass 1111

    }

    virtual_ipaddress {    #指定虚拟IP(用户可见的ip地址), 两个节点设置必须一样

        192.168.33.60/24    #如果两个nginxip分别是192.168.33.61,,...62,则此处的虚拟ip跟它俩同一个网段即可

    }

}

 

#BACKUP节点

global_defs {

}

vrrp_instance VI_1 {

    state BACKUP  # 备用节点

    interface eth0

    virtual_router_id 51

    priority 99

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.33.60/24

    }

}

 

#分别启动两台机器上的keepalived

service keepalived start

测试:

杀掉master上的keepalived进程,你会发现,在slave机器上的eth0网卡多了一个ip地址

查看ip地址的命令:  ip addr 

 

6.配置keepalived对管理的nginx进行心跳检测

 

原理:

 

Keepalived并不跟nginx耦合,它俩完全不是一家人

 

但是keepalived提供一个机制:让用户自定义一个shell脚本去检测用户自己的程序,返回状态给keepalived就可以了

 

#MASTER节点

 

global_defs {

}

 

vrrp_script chk_health {

    script "[[ `ps -ef | grep nginx | grep -v grep | wc -l` -ge 2 ]] && exit 0 || exit 1"  # 自定义脚本内容 返回1表示nginx挂了,返回0表示没挂

    interval 1    #每隔1秒执行上述的脚本,去检查用户的程序ngnix

    weight -2    # 如果本机器的nginx挂了,就降低自己的权重2

}

 

vrrp_instance VI_1 {

    state MASTER

    interface eth0

    virtual_router_id 1

    priority 100

    advert_int 2

    authentication {

        auth_type PASS

        auth_pass 1111

    }

 

    track_script {

        chk_health  # 用户自定义的脚本名

    }

 

    virtual_ipaddress {

        10.0.0.10/24

    }

 

    notify_master "/usr/local/keepalived/sbin/notify.sh master"  # 当切换到master状态时,要执行的脚本

    notify_backup "/usr/local/keepalived/sbin/notify.sh backup"  # 当切换到backup状态时,要执行的脚本

    notify_fault "/usr/local/keepalived/sbin/notify.sh fault"  # 当出现异常时,要执行的脚本

}

 

 

 

#添加切换通知脚本

 

vi /usr/local/keepalived/sbin/notify.sh

 

#!/bin/bash

 

case "$1" in

    master)

        /usr/local/nginx/sbin/nginx

        exit 0

    ;;

backup)

        /usr/local/nginx/sbin/nginx -s stop

        /usr/local/nginx/sbin/nginx

        exit 0

    ;;

    fault)

        /usr/local/nginx/sbin/nginx -s stop

        exit 0

    ;;

    *)

        echo 'Usage: notify.sh {master|backup|fault}'

        exit 1

    ;;

esac

 

 

 

#添加执行权限

 

chmod +x /usr/local/keepalived/sbin/notify.sh

 

global_defs {

}

 

vrrp_script chk_health {

    script "[[ `ps -ef | grep nginx | grep -v grep | wc -l` -ge 2 ]] && exit 0 || exit 1"

    interval 1

    weight -2

}

 

vrrp_instance VI_1 {

    state BACKUP

    interface eth0

    virtual_router_id 1

    priority 99

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

 

    track_script {

        chk_health

    }

 

    virtual_ipaddress {

        10.0.0.10/24

    }

 

    notify_master "/usr/local/keepalived/sbin/notify.sh master"

    notify_backup "/usr/local/keepalived/sbin/notify.sh backup"

    notify_fault "/usr/local/keepalived/sbin/notify.sh fault"

}

 

 

 

#在第二台机器上添加notify.sh脚本

 

#分别在两台机器上启动keepalived

 

service keepalived start

 

おすすめ

転載: www.cnblogs.com/paradis/p/11366666.html