使用脚本实现LVS负载均衡

环境:

3台主机

DS:192.168.100.1

RS1:192.168.100.11

RS2:192.168.100.12

VIP:192.168.100.100

安装ipvsadm

./configure --prefix=/usr/local/ipvsadm

make && make install

DS脚本如下:

#!/bin/bash

# description: start LVS of DirectorServer

VIP=192.168.100.100

RIP1=192.168.100.11

RIP2=192.168.100.12

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

logger LVS is $1

case "$1" in

start)

/sbin/ipvsadm --set 30 5 60

/sbin/ifconfig eth0:0 $VIP broadcast $VIP netmask 255.255.255.255 up

/sbin/route add -host $VIP dev eth0:0

/sbin/ipvsadm -A -t $VIP:80 -s wrr -p 3

/sbin/ipvsadm -a -t $VIP:80 -r $RIP1:80 -g -w 1

/sbin/ipvsadm -a -t $VIP:80 -r $RIP2:80 -g -w 1

touch /var/lock/subsys/ipvsadm >/dev/null 2>&1

echo "LVS is started!"

;;

stop)

/sbin/ipvsadm -C

/sbin/ipvsadm -Z

ifconfig eth0:0 down

ifconfig eth0:1 down

route del $VIP

route del $VIP

rm -rf /var/lock/subsys/ipvsadm >/dev/null 2>&1

echo "LVS is stoped"

;;

status)

if [ ! -e /var/lock/subsys/ipvsadm ];then

echo "ipvsadm has stoped"

else

echo "ipvsadm has started"

fi

;;

*)

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

exit 1

esac

exit 0

RS脚本如下:

#!/bin/bash

# description: Config realserver lo and apply noarp

VIP=192.168.100.100

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

case "$1" in

start)

ifconfig lo:0 $VIP netmask 255.255.255.255 broadcast $VIP

/sbin/route add -host $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 $VIP >/dev/null 2>&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"

;;

*)

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

exit 1

esac

exit 0

LVS+Keepalived实现负载均衡高可用

环境:

DS1:192.168.100.1

DS2:192.168.100.2

RS1:192.168.100.11

RS2:192.168.100.12

VIP:192.168.100.100

之前已经安装ipvsadm这里不再阐述

安装keepalived

./configure --prefix=/usr/local/keepalived --with-kernel-dir=/usr/src/kernels/2.6.xxxxx

make && make install

mkdir /etc/keepalived

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

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

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

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

配置keepalived.conf

DS1:

global_defs {

notification_email {

root@localhost

}

notification_email_from root@localhost

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

}

}

virtual_server 192.168.100.100 80 {

delay_loop 6

lb_algo rr

lb_kind DR

nat_mask 255.255.255.0

persistence_timeout 50

protocol TCP

real_server 192.168.100.11 80 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

real_server 192.168.100.12 80 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

DS2:

global_defs {

notification_email {

root@localhost

}

notification_email_from root@localhost

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 90

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.100.100

}

}

virtual_server 192.168.100.100 80 {

delay_loop 6

lb_algo rr

lb_kind DR

nat_mask 255.255.255.0

persistence_timeout 50

protocol TCP

real_server 192.168.100.11 80 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

}

real_server 192.168.100.12 80 {

weight 1

TCP_CHECK {

connect_timeout 3

nb_get_retry 3

delay_before_retry 3

}

两台DS都启动keepalived

/etc/init.d/keepalived start

两台RS也需要都运行上文的脚本

ipvsadm -ln 查看LVS状态

ipvsadm -lnc 查看LVS链接状态

可通过一个测试页面进行测试,代码如下(每两秒刷新一次,不缓存数据):

通过不同的客户端访问,页面会轮流出现node1和node2

<html>

<head>

<title>test</title>

<meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache"/>

<meta http-equiv="Refresh" content="2"/>

</head>

<body>this is node1或2</body>

</html>

转载于:https://blog.51cto.com/ivanhope/1175691

LVS+Keepalived实现负载均衡高可用相关推荐

  1. LVS原理详解及部署之五:LVS+keepalived实现负载均衡高可用

    本文我们主要讲解的是LVS通过keepalived来实现负载均衡和高可用,而不是我们第三篇文章介绍的通过手动的方式来进行配置.通过脚本的方式来显示RS节点的健康检查和LVS的故障切换.此文会通过一个实 ...

  2. Lvs+keepAlived实现负载均衡高可用集群(DR实现)

    第1章 LVS 简介 1.1 LVS介绍 LVS是Linux Virtual Server的简写,意为Linux虚拟服务器,是虚拟的服务器集群系统,可在UNIX/LINUX平台下实现负载均衡集群功能. ...

  3. LVS+Keepalived-DR模式负载均衡高可用集群

    LVS+Keepalived DR模式负载均衡+高可用集群架构图 工作原理: Keepalived采用VRRP热备份协议实现Linux服务器的多机热备功能. VRRP,虚拟路由冗余协议,是针对路由器的 ...

  4. Nginx+KeepAlived实现负载均衡高可用原理

    作者:田超凡 原创博文,严禁复制转载,仿冒必究 nginx负载均衡高可用 什么是负载均衡高可用 nginx作为负载均衡器,所有请求都到了nginx,可见nginx处于非常重点的位置,如果nginx服务 ...

  5. LVS+Keepalive 实现负载均衡高可用集群

    一.LVS 介绍 目前LVS已经被集成到Linux内核模块中.LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器,该项目在Linux内核中实现了基于IP的数据请求负载均 ...

  6. Ansible(四)ansible roles实现(apache+haproxy+keepalived)负载均衡+高可用

    1.ansible roles简介 <1> roles 用于层次性.结构化地组织playbook. <2> roles 能够根据层次型结构自动装载变量文件.tasks以及han ...

  7. saltstack实现haproxy+keepalived负载均衡+高可用(二)

    一键部署haproxy+keepalived实现负载均衡+高可用 实验环境: !!!!    特别注意: www.westos.org为test1的minion名字 test1: 172.25.1.1 ...

  8. linux系统下对网站实施负载均衡+高可用集群需要考虑的几点

    随着linux系统的成熟和广泛普及,linux运维技术越来越受到企业的关注和追捧.在一些中小企业,尤其是牵涉到电子商务和电子广告类的网站,通常会要求作负载均衡和高可用的Linux集群方案. 那么如何实 ...

  9. keepalive+nginx实现负载均衡高可用_超详细的LVS+keepalived+nginx实现高性能高可用负载均衡集群教程...

    概述 前面已经介绍了前两部分内容,下面主要介绍在nginx服务器方面的配置和测试整个集群是否可用. 在realserver端配置VIP 1.两台nginx服务器都要执行下面脚本: #vi /etc/r ...

最新文章

  1. display会影响canvas吗_多动症会影响智商吗?
  2. 设置共享,实现Linux和Windows之间的共享
  3. mailmessage html编码,C#MailMessage顯示HTML標記的AlternateViews
  4. ubuntu12.04 e680 usbnet
  5. Highcharts 散点图介绍
  6. Github链接地址
  7. oracle转mysql总结经验,oracle转mysql总结(转)
  8. PHP微信公众平台源码 支持多账号 仿pigcms 小猪微信 已经修改完毕 完整可用
  9. C语言霍夫曼编码压缩,数据结构大作业——哈夫曼编码压缩BMP格式文件
  10. C#登录窗口(访问数据库)的制作,类文件的制作及使用
  11. 用python解析html
  12. CNN for Sentence Classification-textcnn阅读笔记
  13. 小D课堂 - 零基础入门SpringBoot2.X到实战_第2节 SpringBoot接口Http协议开发实战_11、SpringBoot2.x目录文件结构讲解...
  14. 决策树CART介绍*
  15. 1.0 Linux 网络相关概念和修改IP地址的方法
  16. 工业物联网案例:城市供水管网渗漏监测预警系统
  17. 赛普拉斯CYpress,初接触之一电磁感应触摸按键demo
  18. vmware 下ubuntu共享主机文件
  19. 西南大学考研计算机808真题和复试
  20. 【从线性回归到 卷积神经网络CNN 循环神经网络RNN Pytorch 学习笔记 目录整合 源码解读 B站刘二大人 绪论(0/10)】

热门文章

  1. sql declare用法_SQL语句的优化分析
  2. 机器学习实战——KNN及部分函数注解
  3. mysql自动备份工具 linux_自动备份MYSQL方法 (Linux)
  4. 河北机电职业技术学院计算机分数线,河北机电职业技术学院历年分数线 2021河北机电职业技术学院录取分数线...
  5. java dayofweek_Java日期时间API系列22-----Jdk8中java.time包中的新的日期时间API类,Month月份和DayOfWeek星期的计算。...
  6. ResNeX论文概述
  7. java 判断是否是昨天_java判断日期是否是今天
  8. php 开发商城 注意,开发PHP商城要注意的一些常见安全问题
  9. linux命令 bind,Linux bind命令
  10. ortools解决tsp_ortools系列:后话