keepalived简介

它是由C语言编写的路由热备软件,主要提供简单高效的负载均衡及高可用解决方案。keepalived通过VRRP协议实现高可用架构。lvs实现集群分发,keepalived实现调度器的主备方案,两者结合实现集群系统的高负载高可用。

VRRP协议是为了防止单点故障而设计的主从灾备协议,VRRP将两台或者多台路由设备虚拟成一个设备,对外提供一个虚拟路由ip地址,主路由设备处于启用状态时,不断的发送自身信息到备用设备,以表明主路由状态正常,当备用设备收不到主设备的信息时,备用设备会根据自身的优先级选举出新的主设备,并保证提供所有业务功能。

LVS+keepalived实例

服务器名称                                        网络接口                                        IP地址

router 外网接口eth1 122.126.152.183
内网接口eth0 192.168.1.1
lvs_1.test.com eth0 192.168.1.5
eth0 VIP 192.168.1.2
lvs_2.test.com eth0 192.168.1.6
eth0 VIP 192.168.1.2
web1.test.com eth0 192.168.1.7
lo:0 VIP 192.168.1.2
web1.test.com eth0 192.168.1.8
lo:0 VIP 192.168.1.2

首先安装配置web1和web2

设置web1网路参数及回环设备lo:0设置VIP

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.1.7

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

ONBOOT=yes

vim /etc/sysconfig/network-scripts/ifcfg-lo:0

DEVICE=lo:0

BOOTPROTO=static

IPADDR=192.168.1.2

NETMASK=255.255.255.255

GATEWAY=192.168.1.1

ONBOOT=yes

修改ARP参数

vim /etc/sysctl.conf

net.ipv4.conf.eth0.arp_ignore = 1

net.ipv4.conf.eth0.arp_announce = 2

net.ipv4.conf.all.arp_ignore = 1

net.ipv4.conf.all.arp_announce = 2

执行 sysctl -p

service network restart

iptables -F

iptables -X

service iptables save

setenforce 0

sed -i s/enforcing/disabled/g /etc/sysconfig/selinux

yum install -y httpd

echo "web1  192.168.1.7" > /var/www/html/index.html

service httpd restart

chkconfig httpd on

web2机器上执行与web1相同步骤,注意修改部分参数

lvs_1调度器操作

首先设置网络

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.1.5

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

ONBOOT=yes

TYPE=Ethernet

service network restart

安装部署keepalived ipvsadm

yum install -y gcc openssl-devel popt-devel libnl libnl-devel kernel-devel ipvsadm

下载keepalived

wget http://www.keepalived.org/software/keepalived-1.3.0.tar.gz

tar zxf keepalived-1.3.0.tar.gz -C /usr/src/

cd /usr/src/keepalived-1.3.0/

./configure

make && make install

ln -s /usr/local/etc/keepalived/ /etc/

ln -s /usr/local/etc/rc.d/init.d/keepalived /etc/init.d/

ln -s /usr/local/etc/sysconfig/keepalived /etc/sysconfig/

ln -s /usr/local/sbin/keepalived /usr/sbin/

lvs_1为主设备,lvs_2为从设备,下面修改配置文件

vim /etc/keepalived/keepalived.conf

global_defs {

notification_email {

test@163.com

}

notification_email_from root@localhost

smtp_server 127.0.0.1

smtp_connect_timeout 30

router_id lvs_1

}

vrrp_instance LVS_HA {

state MASTER                #lvs_2为BACKUP

interface eth0

virtual_router_id 60        #lvs_2的VRID必须与lvs-1相同

priority 100                    #lvs-2为从设备,必须小于 lvs-1的参数

advert_int 1

authentication {

auth_type PASS

auth_pass 1111

}

virtual_ipaddress {

192.168.1.2/24

}

}

virtual_server 192.168.1.2 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.1.7 80 {

weight 1

TCP_CHECK {

connect_timeout 20

connect_port 80

nb_get_retry 3

}

}

real_server 192.168.1.8 80 {

weight 1

TCP_CHECK {

connect_timeout 20

connect_port 80

nb_get_retry 3

}

}

}

service keepalived start

chkconfig keepalived on

ip addr show        #查看虚拟ip

ipvsadm -Ln        #查看lvs规则

iptables -F

iptables -X

service iptables save

setenforce 0

sed -i s/enforcing/disabled/g /etc/sysconfig/selinux

lvs_2机器上执行相同操作,注意修改部分参数

下面配置router机器,这里用做软路由,生产环境直接用硬件路由设备

vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.1.1

NETMASK=255.255.255.0

ONBOOT=yes

DNS=8.8.8.8

vim /etc/sysconfig/network-scripts/ifcfg-eth1

DEVICE=eth1

BOOTPROTO=static

IPADDR=122.126.152.183

NETMASK=255.255.255.254

ONBOOT=yes

DNS=8.8.8.8

service network restart

iptables -F

iptables -X

iptables -t nat -F

iptables -t nat -X

iptables -t nat -I PREROUTING -d 122.126.152.183 -p tcp -dport 80 -j DANT --to--destination 192.168.1.2:80

iptables -t nat -I PREROUTING -s 192.168.1.0/24 -p tcp -j SNAT --to-source 122.126.152.183

service iptables save

setenforce 0

sed -i s/enforcing/disabled/g /etc/sysconfig/selinux

vim /etc/sysctl.conf

net.ipv4..ip_forward = 1

sysctl -p

客户端测试

浏览器访问http://122.126.152.183 将得到不同real server的数据包

本文转自super李导51CTO博客,原文链接:http://blog.51cto.com/superleedo/1894886 ,如需转载请自行联系原作者

keepalived双机热备原理及实例部署LVS+keepalived相关推荐

  1. 图文教程,Nginx+Keepalived(双机热备)介绍已经搭建高可用负载均衡环境

    上一次分享了Nginx相关的应用场景如下: ​Nginx介绍以及一些应用场景说明 在实际使用,单机版的Nginx就不能满足高可用的要求了,在这种情况下,我们使用Nginx+Keepalived(双机热 ...

  2. ​Keepalived双机热备

    Keepalived双机热备 Keepalived是专门针对LVS设计的一款强大的辅助工具,主要用来提供故障切换和健检查功能,如判断LVS负载调度器.节点服务器的可用性,及时隔离并替换为新的服务器,当 ...

  3. 【Nginx】如何基于主从模式搭建Nginx+Keepalived双机热备环境?这是最全的一篇了!!

    写在前面 最近出版了<海量数据处理与大数据技术实战>,详情可以关注 冰河技术 微信公众号,查看<我的<海量数据处理与大数据技术实战>出版啦!>一文. 也有不少小伙伴 ...

  4. Linux7双机,Centos 7 keepalived双机热备

    Centos 7 keepalived双机热备 操作环境: keepalived热备份(双机热备) Centos 7系统ip地址: 192.168.80.100 --主服务器 Centos 7系统ip ...

  5. linux启动keepalived服务,llinux企业常用服务---HA+keepalived双机热备

    部署前准备: iptables和selinux没配置,关掉 挂载系统镜像作为本地yum源,修改yum文件 源码包准备keepalived-1.2.13.tar.gz 环境介绍: 2台centos6.5 ...

  6. (11) nginx + keepalived 双机热备

    转载地址:  http://www.cnblogs.com/kaituorensheng/p/4889268.html 阅读目录 序 nginx keepalived 测试 问题:杀死keepaliv ...

  7. LVS + Keepalived 双机热备+DR模式

    简介 Keepalived 起初是专门针对 LVS 设计的一款强大的辅助工具,主要用来提供故障切换和健康检查( Health Checking )功能--判断 LVS 负载调度器.节点服务器的可用性, ...

  8. 双机热备+负载均衡(Heartbeat+DRBD+NFS+Keepalived+Lnmp)线上方案

    双机热备+负载均衡 线上方案 (Heartbeat+DRBD+NFS+Keepalived+Lnmp) gotop 对于网站服务器来说,可靠性之重要不用我多说,但要想做到可靠性一般需要昂贵的设备,这里 ...

  9. 搭建Nginx高可用集群(keepalived+双机热备)

    一.Nginx高可用 首先了解一下什么是高可用,高可用是分布式系统架构中必须考虑的因素. 我们都知道,使用nginx的反向代理和负载均衡可以解决tomcat等web容器的单点故障以及高并发等问题. 反 ...

最新文章

  1. OpenCV在G-API上移植各向异性图像分割
  2. CTR深度学习模型之 DSIN(Deep Session Interest Network) 论文解读
  3. Azure PowerShell (16) 并行开关机Azure ARM VM
  4. 137_Power BI 自定义矩阵复刻Beyondsoft Calendar
  5. 29 上传下载 socketserve
  6. java反编译工具jd-gui下载与使用
  7. C++ 引用与SqList L、SqList *L、SqList L辨析
  8. 中国诞生全球最强量子模拟器 量子计算迈出大步
  9. java用ffmpeg获取音频信息及转化音频采样率、比特率、声道数量、格式
  10. 一个出身寒门的状元之死全文【原文】
  11. 通配符(一般用来查找文件)
  12. H5打开QQ聊天窗口
  13. 转贴:ubuntu 7.10 常用软件与编程环境搭建
  14. 心跳包机制及Socket通信服务的心跳包
  15. 什么是SSR服务端渲染
  16. C语言判断一个密码是不是安全的
  17. 太阳宇宙线:太阳质子模型
  18. C语言---14文件操作---03文件加密器
  19. 学了go语言再学java容易吗_年纪大了还想转行当程序员,现在学java还来得及吗-Go语言中文社区...
  20. 卫生纸玫瑰花折法5步_玫瑰花纸巾的折法图解

热门文章

  1. Topcoder SRM 637 (Div.2)
  2. utl_file包的使用
  3. 自制Dede网站地图的秘诀
  4. 博客园复用别人的博客模板
  5. 在Java中应用函数式编程请小心!
  6. SSRF攻击实例解析
  7. 商务口语:议价时可能用到的句子
  8. 问题十八:怎么对ray tracing图形进行消锯齿
  9. 大数据面试求职经验总结
  10. 如何利用大数据做好数据分析