日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

LVS+Keepalived实现高可用集群

發(fā)布時(shí)間:2023/12/20 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LVS+Keepalived实现高可用集群 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

LVS+Keepalived介紹

LVS

LVSLinuxVirtual Server的簡(jiǎn)寫(xiě),意即Linux虛擬服務(wù)器,是一個(gè)虛擬的服務(wù)器集群系統(tǒng)本項(xiàng)目在19985月由章文嵩博士成立,是中國(guó)國(guó)內(nèi)最早出現(xiàn)的自由軟件項(xiàng)目之一。目前有三種IP負(fù)載均衡技術(shù)(VS/NATVS/TUNVS/DR);十種調(diào)度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。

Keepalvied

Keepalived在這里主要用作RealServer的健康狀態(tài)檢查以及LoadBalance主機(jī)和BackUP主機(jī)之間failover的實(shí)現(xiàn)


IP配置信息:


LVS-DR-Master ? ? master.director ? ? ? 192.168.88.147

LVS-DR-BACKUP ? ?slave.director ? ? ? ? 192.168.88.148

LVS-DR-VIP ? ? ? ?lo:0 ? ? ? ? ? ? ? ? 192.168.88.100

WEB1-Realserver ?webo.davy ? ? ? ? ? 192.168.88.134

WEB2-Realserver ?web0.davy ? ? ? ? ? 192.168.88.138

GateWay ? ? ? ? ? ? ? ? ? ? ? ? ? ? 192.168.88.253


主從director安裝LVSKeepalvied軟件包


1. 下載相關(guān)軟件包

#mkdir/usr/local/src/lvs

#cd/usr/local/src/lvs

#wgethttp://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz

#wgethttp://www.keepalived.org/software/keepalived-1.1.15.tar.gz

2. 安裝LVSKeepalived

#lsmod|grep ip_vs

#uname-r

2.6.18-53.el5PAE

#ln -s/usr/src/kernels/2.6.18-53.el5PAE-i686/ /usr/src/linux

#tarzxvf ipvsadm-1.24.tar.gz

#cdipvsadm-1.24

#make&& make install

#find /-name ipvsadm ?# 查看ipvsadm的位置

#tarzxvf keepalived-1.1.15.tar.gz

#cdkeepalived-1.1.15

#./configure ?&& make && make install

#find /-name keepalived ?# 查看keepalived位置

#cp/usr/local/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/

#cp/usr/local/etc/sysconfig/keepalived /etc/sysconfig/

#mkdir/etc/keepalived

#cp/usr/local/etc/keepalived/keepalived.conf /etc/keepalived/

#cp/usr/local/sbin/keepalived /usr/sbin/

#servicekeepalived start|stop ? ? #做成系統(tǒng)啟動(dòng)服務(wù)方便管理.

3.在主負(fù)載均衡服務(wù)器上配置keepalived.conf

主調(diào)度器

#vi /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

? ? ?notification_email {

? ? ?acassen@firewall.loc

? ? ?failover@firewall.loc

sysadmin@firewall.loc

? ?}

? ?notification_email_from

Alexandre.Cassen@firewall.loc

? ?smtp_server 127.0.0.1

? ?smtp_connect_timeout 30

? ?router_id LVS_DEVEL

}

vrrp_instance VI_1 {

? ? state MASTER

? ? interface eth0

? ? virtual_router_id 51

? ? priority 100

? ? advert_int 1

? ? authentication {

? ? ? ? auth_type PASS

? ? ? ? auth_pass 1111

? ? }

? ? virtual_ipaddress {

? ? ? ? 192.168.88.100

? ? }

}

virtual_server 192.168.88.100 80 {

? ? delay_loop 6

? ? lb_algo wrr

? ? lb_kind DR

? ? persistence_timeout 60

? ? protocol TCP

? ? real_server 192.168.88.134 80 {

? ? ? ? weight 3 ? ? ? ? ? ?

? ? ? ? TCP_CHECK {

? ? ? ? connect_timeout 10 ?

? ? ? ? nb_get_retry 3

? ? ? ? delay_before_retry 3

? ? ? ? connect_port 80

}

? ? }

? ? real_server 192.168.88.138 80 {

? ? ? ? weight 3

? ? ? ? TCP_CHECK {

? ? ? ? connect_timeout 10

? ? ? ? nb_get_retry 3

? ? ? ? delay_before_retry 3

? ? ? ? connect_port 80

? ? ? ? }

? ? ?}

}

從服務(wù)器

#vi/etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

? ? ?notification_email{

? ? ?acassen@firewall.loc

? ? ?failover@firewall.loc

? ? ?sysadmin@firewall.loc

? ?}

? ?notification_email_from

Alexandre.Cassen@firewall.loc

? ?smtp_server 127.0.0.1

? ?smtp_connect_timeout 30

? ?router_id LVS_DEVEL

}

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.2.170

? ? }

}

virtual_server 192.168.2.17080 {

? ? delay_loop 6

? ? lb_algo wrr

? ? lb_kind DR

? ? persistence_timeout 60

? ? protocol TCP

? ? real_server 192.168.2.171 80 {

? ? ? ? weight 3 ? ? ? ? ? ?

? ? ? ? TCP_CHECK {

? ? ? ? connect_timeout 10 ?

? ? ? ? nb_get_retry 3

? ? ? ? delay_before_retry 3

? ? ? ? connect_port 80

}

? ? }

? ? real_server 192.168.2.17280 {

? ? ? ? weight 3

? ? ? ? TCP_CHECK {

? ? ? ? connect_timeout 10

? ? ? ? nb_get_retry 3

? ? ? ? delay_before_retry 3

? ? ? ? connect_port 80

? ? ? ? }

? ? ?}

}

? #/etc/init.d/keepalived start ?啟動(dòng)keepalived 服務(wù),keepalived就能利用keepalived.conf配置文件,實(shí)現(xiàn)負(fù)載均衡和高可用.


配置Realserver腳本.


#!/bin/bash

# Written by NetSeek

# description: Config realserver lo and applynoarp

WEB_VIP=192.168.88.100

. /etc/rc.d/init.d/functions

case "$1" in

start)

? ? ? ?ifconfig lo:0 $WEB_VIP netmask255.255.255.255 broadcast $WEB_VIP

? ? ? ?/sbin/route add -host $WEB_VIP dev lo:0

? ? ? ?echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore

? ? ? ?echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce

? ? ? ?echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore

? ? ? ?echo "2">/proc/sys/net/ipv4/conf/all/arp_announce

? ? ? ?sysctl -p >/dev/null 2>&1

? ? ? ?echo"RealServer Start OK"

? ? ? ?;;

stop)

? ? ? ?ifconfig lo:0 down

? ? ? ?route del $WEB_VIP >/dev/null2>&1

? ? ? ?echo "0">/proc/sys/net/ipv4/conf/lo/arp_ignore

? ? ? ?echo "0">/proc/sys/net/ipv4/conf/lo/arp_announce

? ? ? ?echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore

? ? ? ?echo "0">/proc/sys/net/ipv4/conf/all/arp_announce

? ? ? ?echo "RealServer Stoped"

? ? ? ?;;

status)

? ? ? ? # Status of LVS-DR real server.

? ? ? ? islothere=`/sbin/ifconfig lo:0 | grep$WEB_VIP`

? ? ? ? isrothere=`netstat -rn | grep"lo:0" | grep $web_VIP`

? ? ? ? if [ ! "$islothere" -o !"isrothere" ];then

? ? ? ? ? ? # Either the route or the lo:0device

? ? ? ? ? ? # not found.

? ? ? ? ? ? echo "LVS-DR real serverStopped."

? ? ? ? else

? ? ? ? ? ? echo "LVS-DR Running."

? ? ? ? fi

;;

*)

? ? ? ? # Invalid entry.

? ? ? ? echo "$0: Usage: $0{start|status|stop}"

? ? ? ? exit 1

;;

esac

exit 0

賦給權(quán)限 chmod 755realserver.sh

附上realserver機(jī)上的/etc/sysctl.conf

# Kernel sysctl configuration file for Red HatLinux

#

# For binary values, 0 is disabled, 1 isenabled. ?See sysctl(8) and

# sysctl.conf(5) for more details.

# Controls IP packet forwarding

net.ipv4.ip_forward = 1

# Controls source route verification

net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing

net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debuggingfunctionality of the kernel

kernel.sysrq = 0

# Controls whether core dumps will append thePID to the core filename.

# Useful for debugging multi-threadedapplications.

kernel.core_uses_pid = 1

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

或者采用secondary ipaddress方式配置

# vi/etc/sysctl.conf

添加以下內(nèi)容如上所示:

net.ipv4.conf.lo.arp_ignore = 1

net.ipv4.conf.lo.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

#sysctl –p

#ip addr add 61.164.122.8/32 dev lo

#ip add list 查看是否綁定

啟動(dòng)realserver啟本,在DR上可以查看LVS當(dāng)前狀態(tài):


查看lvs服務(wù)是否正常


#watch ipvsadm –ln

IP Virtual Server version 1.2.1 (size=4096)

Prot LocalAddressort Scheduler Flags

? -> RemoteAddressort ? ? ? ? ? Forward Weight ActiveConn InActConn

TCP 61.164.122.8:80 wrr persistent 60

? -> 61.164.122.10:80 ? ? ? ? ? ?Route ? 3 ? ? 0 ? ? ? ? ?0

? -> 61.164.122.9:80 ? ? ? ? ? ? Route ? 3 ? ? 0 ? ? ? ? ?0

#tail f/var/log/message ?監(jiān)聽(tīng)日志,查看狀態(tài),測(cè)試LVS負(fù)載均衡及高可用性是否有效。




轉(zhuǎn)載于:https://blog.51cto.com/davideylee/1386475

總結(jié)

以上是生活随笔為你收集整理的LVS+Keepalived实现高可用集群的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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