日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Linux系统高可用集群软件之Keepalived

發(fā)布時(shí)間:2025/3/18 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Linux系统高可用集群软件之Keepalived 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

? ???Keepalived 集群軟件是一個(gè)基于VRRP協(xié)議來實(shí)現(xiàn)的LVS(四層協(xié)議)服務(wù)高可用方案,可以利用避免單節(jié)點(diǎn)故障.LVS服務(wù)需要有2臺(tái)服務(wù)器運(yùn)行Keepalived服務(wù),一臺(tái)為主服務(wù)器(MASTER),一臺(tái)為備份服務(wù)器(BACKUP),但是對(duì)外只有一個(gè)虛擬IP,主服務(wù)器會(huì)發(fā)送特定的消息給備份服務(wù)器,當(dāng)備份服務(wù)器收不到這個(gè)消息的時(shí)候,備份服務(wù)器認(rèn)為主服務(wù)器宕機(jī)并會(huì)接管虛擬IP提供服務(wù),從而保證了服務(wù)的高可用性.

?

1.環(huán)境說明

系統(tǒng):Centos 6.5 64位

軟件:Keepalived ipvsadm

服務(wù):apache

網(wǎng)絡(luò):

node1:192.168.1.100?

node2:192.168.1.102??

vip:192.168.1.105

?

2.配置本地時(shí)間和網(wǎng)絡(luò)

(1)兩臺(tái)服務(wù)器時(shí)間必須一至

[root@node2 ~]# date?????????????????????? --節(jié)點(diǎn)2的時(shí)間
Thu Nov 13 15:11:09 CST 2014
[root@node2 ~]#

[root@node1 ~]# date???????????????????????--節(jié)點(diǎn)1的時(shí)間
Thu Nov 13 15:11:13 CST 2014
[root@node1 ~]#

?

(2)配置本地網(wǎng)絡(luò)

node1節(jié)點(diǎn):

[root@node1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=08:00:27:EE:3D:F6
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

[root@node1 ~]# vim /etc/hosts???????????????? --兩臺(tái)服務(wù)器相互解析

192.168.1.100 node1
192.168.1.102 node2

[root@node1 ~]#

?

node2節(jié)點(diǎn):

[root@node2 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=08:00:27:A5:94:4C
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.102
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

[root@node2 ~]# vim /etc/hosts

192.168.1.100 node1
192.168.1.102 node2

[root@node2 ~]#

?

3.安裝所需要的軟件包,配置httpd服務(wù)

node1節(jié)點(diǎn):

[root@node1 ~]# yum install httpd keepalived ipvsadm -y????????? --安裝所需的軟件

[root@node1 ~]# vim /etc/httpd/conf/httpd.conf

ServerName 127.0.0.1

[root@node1 ~]# echo "node1" > /var/www/html/index.html?????????? --定義web首頁

[root@node1 ~]# /etc/init.d/httpd restart
Stopping httpd:??????????????????????????????????????????? [FAILED]
Starting httpd:??????????????????????????????????????????? [? OK? ]

[root@node1 ~]# chkconfig httpd on??????????????????? --重啟web服務(wù)

[root@node1 ~]#

?

node2節(jié)點(diǎn):

[root@node2 ~]# yum install httpd keepalived ipvsadm -y

[root@node2 ~]# vim /etc/httpd/conf/httpd.conf

ServerName 127.0.0.1

[root@node2 ~]# echo "node2" > /var/www/html/index.html

[root@node2 ~]# /etc/init.d/httpd restart
Stopping httpd:??????????????????????????????????????????? [FAILED]
Starting httpd:??????????????????????????????????????????? [? OK? ]

[root@node2 ~]# chkconfig httpd on

?

4.配置keepalived集群服務(wù)

node1節(jié)點(diǎn):

[root@node1 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore?
[root@node1 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore?
[root@node1 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_announce

[root@node1 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_announce

[root@node1 ~]# ifconfig eth0:1 192.168.1.105 broadcast 192.168.1.105 netmask 255.255.255.255 up
[root@node1 ~]# route add -host 192.168.1.105 dev eth0:1

[root@node1 ~]# ifconfig?
eth0????? Link encap:Ethernet? HWaddr 08:00:27:EE:3D:F6??
????????? inet addr:192.168.1.100? Bcast:192.168.1.255? Mask:255.255.255.0
????????? inet6 addr: fe80::a00:27ff:feee:3df6/64 Scope:Link
????????? UP BROADCAST RUNNING MULTICAST? MTU:1500? Metric:1
????????? RX packets:1600615 errors:0 dropped:0 overruns:0 frame:0
????????? TX packets:1574022 errors:0 dropped:0 overruns:0 carrier:0
????????? collisions:0 txqueuelen:1000?
????????? RX bytes:106099219 (101.1 MiB)? TX bytes:102403193 (97.6 MiB)

eth0:1??? Link encap:Ethernet? HWaddr 08:00:27:EE:3D:F6??
????????? inet addr:192.168.1.105? Bcast:192.168.1.105? Mask:255.255.255.255
????????? UP BROADCAST RUNNING MULTICAST? MTU:1500? Metric:1

lo??????? Link encap:Local Loopback??
????????? inet addr:127.0.0.1? Mask:255.0.0.0
????????? inet6 addr: ::1/128 Scope:Host
????????? UP LOOPBACK RUNNING? MTU:16436? Metric:1
????????? RX packets:5087 errors:0 dropped:0 overruns:0 frame:0
????????? TX packets:5087 errors:0 dropped:0 overruns:0 carrier:0
????????? collisions:0 txqueuelen:0?
????????? RX bytes:403339 (393.8 KiB)? TX bytes:403339 (393.8 KiB)

[root@node1 ~]# route? -n
Kernel IP routing table
Destination???? Gateway???????? Genmask???????? Flags Metric Ref??? Use Iface
192.168.1.105?? 0.0.0.0???????? 255.255.255.255 UH??? 0????? 0??????? 0 eth0
192.168.1.0???? 0.0.0.0???????? 255.255.255.0?? U???? 0????? 0??????? 0 eth0
169.254.0.0???? 0.0.0.0???????? 255.255.0.0???? U???? 1002?? 0??????? 0 eth0
0.0.0.0???????? 192.168.1.1???? 0.0.0.0???????? UG??? 0????? 0??????? 0 eth0

[root@node1 ~]# cd /etc/keepalived/
[root@node1 keepalived]# vim keepalived.conf????????? --配置keepalived文件


! Configuration File for keepalived

global_defs {
?? notification_email {
?????
z597011036@qq.com??????????? --宕機(jī)后郵件報(bào)警
?? }
?? notification_email_from root?????? --從哪個(gè)用戶發(fā)出
?? smtp_server localhost??????????????? --郵件服務(wù)器
?? smtp_connect_timeout 30
?? router_id LVS_DEVEL
}

vrrp_instance VI_1 {
??? state MASTER?????????????????? --主節(jié)點(diǎn)
??? interface eth1???????????????????? --監(jiān)聽的網(wǎng)卡
??? virtual_router_id 51??????????? --虛擬路由ID號(hào)
??? priority 100???????????????????????? --配置優(yōu)先級(jí)
??? advert_int 1
??? authentication {
??????? auth_type PASS???????? --認(rèn)證類型
??????? auth_pass keep????????? --認(rèn)證密碼
??? }
??? virtual_ipaddress {

????????192.168.1.105?????????? --虛擬IP地址
??? }
}

virtual_server 192.168.1.105 80 {??????? --虛擬IP和端口設(shè)置
??? delay_loop 6
??? lb_algo rr????????
??? lb_kind DR
??? nat_mask 255.255.255.0
??? protocol TCP

??? real_server 192.168.1.100 80 {??????? --主服務(wù)器的IP和端口
??????? weight 1?????????????????? --權(quán)重
??????? HTTP_GET {???????????--啟用HTTP服務(wù)
??????????? url {
????????????? path /
????????????? status_code 200????????? --監(jiān)控狀態(tài)碼為200,如果返回不是200表示宕機(jī)
??????????? }
??????????? connect_timeout 3

??????????? nb_get_retry 3

??? ????????delay_before_retry 3
???????? }
??? }
??? real_server 192.168.1.102 80 {????????????? --從服務(wù)器的IP和端口
???????? weight 1??????????????????????? --權(quán)重
???????? HTTP_GET {
???????????? url {
?????????????? path /
?????????????? status_code 200
???????????? }
???????????? connect_timeout 3
???????????? nb_get_retry 3
???????????? delay_before_retry 3
???????? }
???? }

}
[root@node2 keepalived]#??

?

node2節(jié)點(diǎn):

[root@node2 ~]# echo "1" > /proc/sys/net/ipv4/conf/lo/arp_ignore?
[root@node2 ~]# echo "1" > /proc/sys/net/ipv4/conf/all/arp_ignore?
[root@node2 ~]# echo "2" > /proc/sys/net/ipv4/conf/all/arp_ignore?
[root@node2 ~]# echo "2" > /proc/sys/net/ipv4/conf/lo/arp_ignore

[root@node2 ~]# ifconfig eth0:1 192.168.1.105 broadcast 192.168.1.105 netmask 255.255.255.255 up
[root@node2 ~]# route add -host 192.168.1.105 dev eth0:1

[root@node2 ~]# ifconfig?
eth0????? Link encap:Ethernet? HWaddr 08:00:27:A5:94:4C??
????????? inet addr:192.168.1.102? Bcast:192.168.1.255? Mask:255.255.255.0
????????? inet6 addr: fe80::a00:27ff:fea5:944c/64 Scope:Link
????????? UP BROADCAST RUNNING MULTICAST? MTU:1500? Metric:1
????????? RX packets:1601817 errors:0 dropped:0 overruns:0 frame:0
????????? TX packets:1574326 errors:0 dropped:0 overruns:0 carrier:0
????????? collisions:0 txqueuelen:1000?
????????? RX bytes:104324952 (99.4 MiB)? TX bytes:104338539 (99.5 MiB)

eth0:1??? Link encap:Ethernet? HWaddr 08:00:27:A5:94:4C??
????????? inet addr:192.168.1.105? Bcast:192.168.1.105? Mask:255.255.255.255
????????? UP BROADCAST RUNNING MULTICAST? MTU:1500? Metric:1

lo??????? Link encap:Local Loopback??
????????? inet addr:127.0.0.1? Mask:255.0.0.0
????????? inet6 addr: ::1/128 Scope:Host
????????? UP LOOPBACK RUNNING? MTU:16436? Metric:1
????????? RX packets:6824 errors:0 dropped:0 overruns:0 frame:0
????????? TX packets:6824 errors:0 dropped:0 overruns:0 carrier:0
????????? collisions:0 txqueuelen:0?
????????? RX bytes:2407997 (2.2 MiB)? TX bytes:2407997 (2.2 MiB)

[root@node2 ~]# cd /etc/keepalived/
[root@node2 keepalived]# vim keepalived.conf


! Configuration File for keepalived

global_defs {
?? notification_email {
?????
z597011036@qq.com
?? }
?? notification_email_from root
?? smtp_server localhost
?? smtp_connect_timeout 30
?? router_id LVS_DEVEL
}

vrrp_instance VI_1 {
??? state?BACKUP??????????????? --備用節(jié)點(diǎn)
??? interface eth1
??? virtual_router_id 51
??? priority 101??????????????????
??? advert_int 1
??? authentication {
??????? auth_type PASS
??????? auth_pass keep
??? }
??? virtual_ipaddress {

????????192.168.1.105
??? }
}

virtual_server 192.168.1.105 80 {
??? delay_loop 6
??? lb_algo rr
??? lb_kind DR
??? nat_mask 255.255.255.0
??? protocol TCP

??? real_server 192.168.1.100 80 {
??????? weight 1
??????? HTTP_GET {
??????????? url {
????????????? path /
????????????? status_code 200
??????????? }
??????????? connect_timeout 3

??????????? nb_get_retry 3

??? ????????delay_before_retry 3
???????? }
??? }
?? real_server 192.168.1.102 80 {
???????? weight 1
???????? HTTP_GET {
???????????? url {
?????????????? path /
?????????????? status_code 200
???????????? }
???????????? connect_timeout 3
???????????? nb_get_retry 3
???????????? delay_before_retry 3
???????? }
???? }

}
[root@node2 keepalived]#??

?

5.啟動(dòng)keepalived服務(wù)和ipvsadm的狀態(tài)

node1和node2啟動(dòng)服務(wù):

[root@node1 keepalived]# /etc/init.d/keepalived restart
Stopping keepalived:?????????????????????????????????????? [? OK? ]
Starting keepalived:?????????????????????????????????????? [? OK? ]
[root@node1 keepalived]#

[root@node2 ~]# /etc/init.d/keepalived restart
Stopping keepalived:?????????????????????????????????????? [? OK? ]
Starting keepalived:?????????????????????????????????????? [? OK? ]
[root@node2 ~]#

[root@node1 keepalived]# ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
? -> RemoteAddress:Port?????????? Forward Weight ActiveConn InActConn
TCP? 192.168.1.105:80 rr
? -> 192.168.1.100:80???????????? Local?? 1????? 0????????? 0?????????
? -> 192.168.1.102:80???????????? Route?? 1????? 0????????? 0?????????
[root@node1 keepalived]#


6.測試是否正常










本文轉(zhuǎn)自 z597011036 51CTO博客,原文鏈接:http://blog.51cto.com/tongcheng/1576111,如需轉(zhuǎn)載請(qǐng)自行聯(lián)系原作者

總結(jié)

以上是生活随笔為你收集整理的Linux系统高可用集群软件之Keepalived的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。