操作系统:CentOS6.5_x64 mini

负载均衡模式:DR(直接路由)

LVS与Keepalived简述:

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。使用集群技术和Linux操作系统实现一个高性能、高可用的服务器,很好的可伸缩性、可靠性和管理性。

LVS集群采用IP负载均衡技术和基于内容请求分发技术。调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的、高可用的虚拟服务器。

Keepalived采用VRRP(virtual router redundancy protocol,虚拟路由冗余协议)热备份协议,以软件的方式实现linux服务器的多机热备功能。VRRP是针对路由器的一种备份解决方案-----由多台路由器组成一个热备组。通过共用的虚拟IP地址对外提供服务;每个热备组内同一时刻只有一台主服务器提供服务,其他服务器处于冗余状态,若当前在线的服务器失败,其他服务器会自动接替(优先级决定接替顺序)虚拟IP地址,以继续提供服务。

一、配置主从LVS服务器

1.安装依赖包:

[root@localhost ~]# yum install-y gcc gcc-c++ makepcre pcre-devel kernel-devel openssl-devel libnl-devel popt-devel

2.安装ipvsadm

wget http://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.26.tar.gz
tar zxvf ipvsadm-1.26.tar.gz
cd ipvsadm-1.26
make && make install

3.安装keepalived

wget http://www.keepalived.org/software/keepalived-1.2.7.tar.gz
tar zxvf keepalived-1.2..tar.gz
cd keepalived-1.2.
./configure --prefix=/usr/local/keepalived
make && make install

4.将keepalived配置成系统服务

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived/
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

5.修改主keepalived配置文件(备只修改router_id、state和priority)

[root@localhost ~]# vi /etc/keepalived/keepalived.conf
! Configuration File forkeepalived
global_defs {
notification_email {
test@sina.com #故障接受联系人
}
notification_email_from admin@test.com #故障发送人
smtp_server 127.0.0.1 #本机发送邮件
smtp_connect_timeout
router_id LVS_MASTER #BACKUP上修改为LVS_BACKUP
}
vrrp_instance VI_1 {
state MASTER #BACKUP上修改为BACKUP
interface eth0
virtual_router_id #虚拟路由标识,主从相同
priority #BACKUP上修改为90
advert_int
authentication {
auth_type PASS
auth_pass #主从认证密码必须一致
}
virtual_ipaddress { #Web虚拟IP(VTP)
172.0.0.10
}
}
virtual_server 172.0.0.10 { #定义虚拟IP和端口
delay_loop #检查真实服务器时间,单位秒
lb_algo rr #设置负载调度算法,rr为轮训
lb_kind DR #设置LVS负载均衡DR模式
persistence_timeout #同一IP的连接60秒内被分配到同一台真实服务器
protocol TCP #使用TCP协议检查realserver状态
real_server 172.0.0.13 { #第一个web服务器
weight #节点权重值
TCP_CHECK { #健康检查方式
connect_timeout #连接超时
nb_get_retry #重试次数
delay_before_retry #重试间隔/S
}
}
real_server 172.0.0.14 { #第二个web服务器
weight
TCP_CHECK {
connect_timeout
nb_get_retry
delay_before_retry
}
}
}
[root@localhost ~]# service keepalived restart #启动keepalived

二、分别在两台Web服务器编写脚本并启动

[root@localhost ~]# vi /etc/init.d/real.sh
#description : start realserver
VIP=172.0.0.10
. /etc/init.d/functions
case "$1" in
start)
/sbin/ifconfig lo: $VIP broadcast $VIP netmask 255.255.255.255 up
echo "" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "LVS RealServer Start OK"
;;
stop)
/sbin/ifconfig lo: down
echo "" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "" >/proc/sys/net/ipv4/conf/all/arp_announce
echo "LVS RealServer Stoped OK"
;;
*)
echo "Usage: $0 {start|stop}"
exit
esac

[root@localhost ~]# chmod +x /etc/init.d/real.sh
[root@localhost ~]# /etc/init.d/real.sh start
LVS RealServer Start OK
[root@localhost ~]# echo "/etc/init.d/real.sh start" >> /etc/rc.local

[root@localhost ~]# service httpd start
[root@localhost ~]# echo “192.168.0.30″ > /var/www/html/index.html
[root@localhost ~]# echo “192.168.0.40″ > /var/www/html/index.html
[root@localhost ~]# service iptables stop #关闭防火墙
[root@localhost ~]# setenforce #临时关闭selinux 
 
三、测试及常用命令

http://172.0.0.10 #访问一直刷新会轮训显示172.0.0.13/14

模拟宕掉主LVS,服务器照常工作,再宕掉Web1,这时只会显示Web2,这样就实现ip负载均衡,高可用集群。当主LVS恢复后,会切换成主动服务器,如果Keepalived监控模块检测web故障恢复后,恢复的主机又将此节点加入集群系统中。

常用命令:

[root@localhost ~]# ipvsadm -ln

1.显示集群中服务器ip信息

[root@localhost ~]# ip addr

2.显示VTP绑定在哪个服务器上

[root@localhost ~]# tail -f /var/log/messges

(从日志中可知,主机出现故障后,备机立刻检测到,此时备机变为MASTER角色,并且接管了主机的虚拟IP资源,最后将虚拟IP绑定在etho设备上)

CentOS高可用集群LVS+Keepalived(DR模式)的更多相关文章

  1. 高可用集群之keepalived+lvs实战-技术流ken

    keepalived简介 lvs在我之前的博客<高负载集群实战之lvs负载均衡-技术流ken>中已经进行了详细的介绍和应用,在这里就不再赘述.这篇博文将把lvs与keepalived相结合 ...

  2. 高可用集群之keepalived+lvs实战2

    keepalived简介 lvs在我之前的博客<高负载集群实战之lvs负载均衡-技术流ken>中已经进行了详细的介绍和应用,在这里就不再赘述.这篇博文将把lvs与keepalived相结合 ...

  3. 高可用集群之keepalived+lvs实战

    keepalived简介 lvs在我之前的博客<高负载集群实战之lvs负载均衡-技术流ken>中已经进行了详细的介绍和应用,在这里就不再赘述.这篇博文将把lvs与keepalived相结合 ...

  4. 打造kubernetes 高可用集群(nginx+keepalived)

    一.添加master 部署高可用k8s架构 1.拷贝/opt/kubernetes目录到新的master上(注意如果新机上部署了etcd要排除掉) scp -r /opt/kubernetes/ ro ...

  5. 虚拟集群LVS及DR模式搭建笔记

    LVS(虚拟集群Linux Virtual Server) LVS-NAT:地址转换,数据包来回都要经过NAT转换,所以Director Server(即LVS服务器)将成为系统瓶颈.使用NAT模式将 ...

  6. 实战| Nginx+keepalived 实现高可用集群

    一个执着于技术的公众号 前言 今天通过两个实战案例,带大家理解Nginx+keepalived 如何实现高可用集群,在学习新知识之前您可以选择性复习之前的知识点: 给小白的 Nginx 10分钟入门指 ...

  7. Nginx-keepalived+Nginx实现高可用集群

    Keepalived+Nginx 高可用集群(主从模式) 集群架构图: 说明:Keepalived机器同样是nginx负载均衡器. 1)实验环境准备(此处都是使用的centos7系统) # cat / ...

  8. Nginx 笔记(四)nginx 原理与优化参数配置 与 nginx 搭建高可用集群

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.nginx 原理与优化参数配置 ​ ​ master-workers 的机制的好处 首先,对于每个 ...

  9. lvs+keepalived部署k8s v1.16.4高可用集群

    一.部署环境 1.1 主机列表 主机名 Centos版本 ip docker version flannel version Keepalived version 主机配置 备注 lvs-keepal ...

随机推荐

  1. 第4节:Java基础 - 必知必会(中)

    第4节:Java基础 - 必知必会(中) 本小节是Java基础篇章的第二小节,主要讲述抽象类与接口的区别,注解以及反射等知识点. 一.抽象类和接口有什么区别 抽象类和接口的主要区别可以总结如下: 抽象 ...

  2. WebGPU学习(五): 现代图形API技术要点和WebGPU支持情况调研

    大家好,本文整理了现代图形API的技术要点,重点研究了并行和GPU Driven Render Pipeline相关的知识点,调查了WebGPU的相关支持情况. 另外,本文对实时光线追踪也进行了简要的 ...

  3. java的传参究竟是按值传递的还是按引用传递的

    这里来弄清楚Java的传参究竟是按值传递的还是按引用传递的. 形参和实参 传参的概念里,有形参和实参的区分.形参是定义方法名和方法体的时候使用的参数,目的是用来接收调用该方法的时候传入的参数:实参是调 ...

  4. 测底稳定NIOS开发之一:将nios产生的编程文件转换成jic (连载)

    将nios产生的编程文件转换成jic 前言: 基于某种原因,自从开始fpga开发和nios项目开发中,均为正常使用EDS IDE自带的flash programmer 进行成功的下载固化epcs程序. ...

  5. 02 | Java内存模型:看Java如何解决可见性和有序性问题

    什么是 Java 内存模型? 导致可见性的原因是缓存,导致有序性的原因是编译优化,那解决可见性. 有序性最直接的办法就是禁用缓存和编译优化,但是这样问题虽然解决了,我们程序的性能可就堪忧了.   合理 ...

  6. 【Java Web开发学习】Spring消息-ActiveMQ发送消息

    ActiveMQ发送消息 转载:http://www.cnblogs.com/yangchongxing/p/9042401.html Java消息服务(Java Message Service, J ...

  7. VMware中Bridged、NAT、host-only三种网络连接模式的原理及其区别

    VMnet0:这是VMware用于虚拟桥接网络下的虚拟交换机: VMnet1:这是VMware用于虚拟Host-Only网络下的虚拟交换机: VMnet8:这是VMware用于虚拟NAT网络下的虚拟交 ...

  8. 《Java基础知识》Java数据类型以及变量的定义

    Java 是一种强类型的语言,声明变量时必须指明数据类型.变量(variable)的值占据一定的内存空间.不同类型的变量占据不同的大小. Java中共有8种基本数据类型,包括4 种整型.2 种浮点型. ...

  9. uni-app自定义app端的扫码界面

    记得当时是在西班牙有这样的一个需求,需要自定义扫码页面,还需要加上西班牙文,当时是在一个组件里面找到了这样的一个方法,全文大部分使用的app端的Native里面的方法,记录一下,跑路了项目代码要删库了 ...

  10. MySql数据库之常用数据类型及常用约束简述

    本文呢,主要给大家简述一下数据库中常用的几种数据类型以及约束. 1.数据类型 数据类型,是指数据表中可以存储的数据的种类. 数据库中常用的数据类型有: 1.整型:int.bit 2.小数:decima ...