LVS+Keepalived介绍

LVS

LVS是LinuxVirtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一。目前有三种IP负载均衡技术(VS/NAT、VS/TUN和VS/DR);十种调度算法(rrr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq)。

Keepalvied

Keepalived在这里主要用作RealServer的健康状态检查以及LoadBalance主机和BackUP主机之间failover的实现

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安装LVS和Keepalvied软件包

1. 下载相关软件包

#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. 安装LVS和Keepalived

#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     #做成系统启动服务方便管理.

3.在主负载均衡服务器上配置keepalived.conf

主调度器

#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

}

}

}

从服务器

#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  启动keepalived 服务,keepalived就能利用keepalived.conf配置文件,实现负载均衡和高可用.

配置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

赋给权限 chmod 755realserver.sh

附上realserver机上的/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

添加以下内容如上所示:

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 查看是否绑定

启动realserver启本,在DR上可以查看LVS当前状态:

查看lvs服务是否正常

#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  监听日志,查看状态,测试LVS负载均衡及高可用性是否有效。

转载于:https://blog.51cto.com/davideylee/1386475

LVS+Keepalived实现高可用集群相关推荐

  1. linux集群-keepalived介绍-用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> linux集群介绍: 以功能划分:高可用和负载均衡 高可用集群:通常为两台服务器,一台工作,另外一台作为冗余.实现高可用的开源 ...

  2. 集群介绍 、keepalived介绍 、 用keepalived配置高可用集群

    集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 实现高可用的开源软件有:heartbeat.ke ...

  3. 用Keepalived搭建高可用集群

    一.集群介绍 1.根据功能划分为两大类:高可用和负载均衡 2.高可用:一台工作,另一台冗余,当一台服务器故障宕机时,另一台服务器提供服务.开源软件有heartbeat,keepalived. 3.负载 ...

  4. 用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> 一 集群介绍 1.概述 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供 ...

  5. 18.1 集群介绍 18.2 keepalived介绍 18.3/18.4/18.5 用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> 第十八章 Linux集群 18.1 集群介绍 Linux集群根据功能划分为两大类:高可用和负载均衡. 高可用集群 高可用集群通 ...

  6. Java架构师成长直通车:LVS+Nginx实现高可用集群

    LVS+Nginx实现高可用集群 常见服务器 安装 Nginx(CentOS) Nginx 的进程模型 Nginx 事件处理 nginx.conf 核心配置文件 Nginx 的跨域配置和防盗链 负载均 ...

  7. LVS+Nginx实现高可用集群

    LVS+Nginx实现高可用集群 常见服务器 [安装 Nginx(CentOS)](#安装 Nginx(CentOS)) [Nginx 的进程模型](#Nginx 的进程模型) [Nginx 事件处理 ...

  8. 集群介绍+用keepalived配置高可用集群(总结)

    1.集群介绍 根据功能划分为两大类:高可用和负载均衡 高可用集群通常为两台服务器,一台工作,另外一台作为冗余,当提供服务的机器宕机,冗余将接替继续提供服务 高可用集群,英文原文为High Availa ...

  9. 18.3/18.4/18.5 用keepalived配置高可用集群

    2019独角兽企业重金招聘Python工程师标准>>> 用keepalived配置高可用集群 准备两台机器130和132,130作为master,132作为backup 两台机器都执 ...

最新文章

  1. VC++深入详解 孙鑫 高清PDF + 配套视频下载
  2. C#实现RSA加密解密
  3. Cannot resolve xxx.5.5
  4. java-回调机制详解
  5. 翠香猕猴桃 和 薄皮核桃,快来下单
  6. LeetCode 892. 三维形体的表面积(数学)
  7. python 百度ocr安装_Python调用百度OCR实现图片文字识别的示例代码
  8. python操作excel常用的方法
  9. HTML DOM教程 19-HTML DOM Button 对象
  10. oracle自动创建分区存储过程,oracle 存储过程创建表分区
  11. 第七次全国人口普查,数据来了!
  12. 商务出行-国外各大机场一览
  13. python循环语句while教案_while循环教学设计
  14. C#自制坦克大战小游戏
  15. 简单使用PHP 的 Silm框架.
  16. Android补间动画之透明度动画
  17. Day25 - Event Capture, Propagation, Bubbling and Once
  18. 小米平板3最简单刷成开发版获得ROOT权限的步骤
  19. 51Nod 2069 牛奶 c/c++题解
  20. 微信小程序云开发定时推送订阅消息

热门文章

  1. 推荐一个博客,或许给技术流的自己一些启示
  2. CUDA 编程实例:计算点云法线
  3. 阿里技术大神:你没做错啥,你错在啥都没做
  4. JavaWeb三大组件之Servlet
  5. iOS中的图像处理(一)——基础滤镜
  6. IOS-网络(GCD)
  7. java代码,输入n多个数,求其平均值,虽有重复,但是第二次,我就乱写了
  8. 史上最快消息内核——ZeroMQ
  9. SSH(Secure Shell Protocol)命令之 grep
  10. hive中的UDAF的使用流程记载