1.测试环境4台server,全部初始化一下,该关的关了

  1. # vim /etc/hosts
  2. 192.168.1.101 lvs-master DIP
  3. 192.168.1.102 lvs-slave DIP
  4. 192.168.1.161 lvs-web1 RIP
  5. 192.168.1.162 lvs-web2 RIP
    192.168.1.200 vip
  6.  
  7. yum clean all
  8. systemctl stop firewalld.service
  9. systemctl disable firewalld.service
  10. sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config

2. 在两台web服务器上配置httpd和realserver脚本

  1. [root@host161 ~]# yum -y install httpd
  2. [root@host161 ~]# systemctl start httpd
  3. [root@host161 ~]# systemctl enable httpd
  4. ln -s '/usr/lib/systemd/system/httpd.service' '/etc/systemd/system/multiuser.target.wants/httpd.service'
  5. [root@host161 ~]# cat /var/www/html/index.html
  6. hello this lvs-web1
  7.  
  8. [root@host161 ~]# vim /etc/init.d/realserver
  9. SNS_VIP=192.168.1.200
  10. /etc/rc.d/init.d/functions
  11. case "$1" in
  12. start)
  13. ifconfig lo:0 $SNS_VIP netmask 255.255.255.255 broadcast $SNS_VIP
  14. /sbin/route add -host $SNS_VIP dev lo:0
  15. echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
  16. echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
  17. echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
  18. echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
  19. sysctl -p >/dev/null 2>&1
  20. echo "RealServer Start OK"
  21. ;;
  22. stop)
  23. ifconfig lo:0 down
  24. route del $SNS_VIP >/dev/null 2>&1
  25. echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
  26. echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
  27. echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
  28. echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
  29. echo "RealServer Stoped"
  30. ;;
  31. *)
  32. echo "Usage: $0 {start|stop}"
  33. exit 1
  34. esac
  35. exit 0
  36. [root@host161 ~]# chmod 755 /etc/init.d/realserver
  37. [root@host161 ~]# /etc/init.d/realserver start

3.在两台负载均衡server上配置keepalived,back节点只需要改动state和priority

  1. [root@host101 keepalived]# yum install -y keepalived
  2.  
  3. [root@host101 keepalived]# vim /etc/keepalived/keepalived.conf
  4. global_defs {
  5. notification_email {
  6. mail@126.com
  7. }
  8. notification_email_from sns-lvs@gmail.com
  9. smtp_server 192.168.80.1
  10. smtp_connection_timeout 30
  11. router_id LVS_DEVEL # 设置lvs的id,在一个网络内应该是唯一的
  12. }
  13. vrrp_instance VI_1 {
  14. state MASTER #指定Keepalived的角色,MASTER为主,BACKUP为备
  15. interface eno16777736 #指定Keepalived的角色,MASTER为主,BACKUP为备
  16. virtual_router_id 51 #虚拟路由编号,主备要一致
  17. priority 100 #定义优先级,数字越大,优先级越高,主DR必须大于备用DR
  18. advert_int 1 #检查间隔,默认为1s
  19. authentication {
  20. auth_type PASS
  21. auth_pass 1111
  22. }
  23. virtual_ipaddress {
  24. 192.168.1.200 #定义虚拟IP(VIP)为192.168.2.33,可多设,每行一个
  25. }
  26. }
  27. # 定义对外提供服务的LVS的VIP以及port
  28. virtual_server 192.168.1.200 80 {
  29. delay_loop 6 # 设置健康检查时间,单位是秒
  30. lb_algo wrr # 设置负载调度的算法为wlc
  31. lb_kind DR # 设置LVS实现负载的机制,有NAT、TUN、DR三个模式
  32. nat_mask 255.255.255.0
  33. persistence_timeout 0
  34. protocol TCP
  35. real_server 192.168.1.161 80 { # 指定real server1的IP地址
  36. weight 3 # 配置节点权值,数字越大权重越高
  37. TCP_CHECK {
  38. connect_timeout 10
  39. nb_get_retry 3
  40. delay_before_retry 3
  41. connect_port 80
  42. }
  43. }
  44. real_server 192.168.1.162 80 { # 指定real server2的IP地址
  45. weight 3 # 配置节点权值,数字越大权重越高
  46. TCP_CHECK {
  47. connect_timeout 10
  48. nb_get_retry 3
  49. delay_before_retry 3
  50. connect_port 80
  51. }
  52. }
  53. }
  54. [root@host101 keepalived]# systemctl start keepalived

4.在负载均衡server上安装ipvsadm,我们可以通过命令看到LVS集群的状态,也可以管理配置LVS虚拟服务器组和相应的调度算法

  1. [root@host101 ~]# yum -y install ipvsadm.x86_64
  2. [root@host101 ~]# ipvsadm
  3. IP Virtual Server version 1.2.1 (size=4096)
  4. Prot LocalAddress:Port Scheduler Flags
  5. -> RemoteAddress:Port Forward Weight ActiveConn InActConn
  6. TCP 192.168.1.200:http wrr
  7. -> lvs-web1:http Route 3 0 0
  8. -> lvs-web2:http Route 3 0 0

5.通过浏览器访问http://192.168.1.200进行测试,包括可以分别关闭主/备节点上的keepalived和web服务器的httpd进行测试。结果发现web流量可以在两台web上来回漂移

6.说明:LVS环境有分为内核层与用户层。

a.内核层负责核心算法的实现,它已经集成在现有的Linux内核模块中,LVS的内核模块名称为ip_vs。(# lsmod |grep ip_vs 查看)。
b.用户层需要安装ipvsadm工具。有了这个命令工具,用户就可以将需要的工作模式与实现算法传递给内核。
c.本实验中Keepalived与realserver脚本的搭配会自动调用内核的ip_vs模块去数据分发。
d.keepalived的作用是web服务器的健康检查,和主备LVS负载均衡节点的监听切换。
e.本实验中不安装ipvsadm同样可以完成LVS集群的配置,只是你无法查看它的状态罢了。
f.如果单用ipvsadm命令工具去创建LVS集群的确可以实现流量分流,但是无法做负载均衡器的HA和web服务器的健康检查。

参考文章,写的很全的 

http://www.cnblogs.com/edisonchou/p/4281978.html

http://www.importnew.com/11229.html

https://fengqi.me/unix/55.html

借助LVS+Keepalived通过DR模式实现负载均衡的更多相关文章

  1. LVS+Keepalived搭建MyCAT高可用负载均衡集群

    LVS+Keepalived 介绍 LVS LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国 ...

  2. LVS + Keepalived 实现高可用、负载均衡 Web 集群

    简介: LVS 是 Linux Virtual Server 的简写,Linux 虚拟服务器的意思,是一个虚拟的服务器集群系统,此项目由章文嵩博士于 1998 年 5 月成立,是中国最早出现的自由软件 ...

  3. LVS+Keepalived+Nginx+Tomcat高可用负载均衡集群配置(DR模式,一个VIP,多个端口)

    一.概述 LVS作用:实现负载均衡 Keepalived作用:监控集群系统中各个服务节点的状态,HA cluster. 配置LVS有两种方式: 1. 通过ipvsadm命令行方式配置 2. 通过Red ...

  4. 三台CentOS 5 Linux LVS 的DR 模式http负载均衡安装步骤

    Linux负载均衡软件LVS(概念篇) 一. LVS简介 LVS是Linux Virtual Server的简称,也就是Linux虚拟服务器, 是一个由章文嵩博士发起的自由软件项目,它的官方站点是ww ...

  5. LVS+keepalived 的DR模式的两种做法

    LVS DR模式搭建 准备工作 三台机器: dr:192.168.13.15 rs1:192.168.13.16 rs2: 192.168.13.17 vip:192.168.13.100 修改DR上 ...

  6. LVS基于DR模式搭建负载均衡群集

    LVS -DR模式集群架构原理图

  7. centos7下通过LVS的DR模式实现负载均衡访问

    一.两台服务器作为real server ,一台作为director director:172.28.18.69 vip:172.28.18.70 real server1:172.28.18.71 ...

  8. 通过LVS+Keepalived搭建高可用的负载均衡集群系统

    1. 安装LVS软件      (1)安装前准备操作系统:统一采用Centos6.5版本,地址规划如下: 服务器名 IP地址 网关 虚拟设备名 虚拟ip Director Server 192.168 ...

  9. lvs+keepalived+vsftp配置FTP服务器负载均衡

    LVS+Keepalive 实现服务器的负载均衡高可用一.安装两台机器的安装是一样的,这里只记录一遍.1. 下载LVS+Keepalive 所需安装包http://www.keepalived.org ...

随机推荐

  1. 我也谈谈 代码调用存储过程超时,SQL Server Management Studio里运行很快的问题

    最近遇到了一个问题就是 一个执行速度很快的存储过程,在代码中调用的时候却超时了. 后来看到了两篇文章: 其中一篇是这样介绍的 今天同事用代码调用存储过程时超时,在SQL Server Manageme ...

  2. UI学习笔记---第四天

    事件处理 事件概述 UIEvent:事件,是由硬件捕捉的一个表示用户操作设备的对象 分三类:触摸事件\  晃动事件\ 远程控制事件 触摸事件:会包含1个到多个触摸点 实现触摸 UIView支持触摸事件 ...

  3. Boot Repair-能一键修复ubuntu启动/引导项的软件(告别命令行)

    如果你是windows+ubuntu的双系统,那么重装windows之后(非ghost 方式),是会直接进入windows的,之前的grub引导菜单会被抹掉,想要修复ubuntu的启动菜单的话,通常需 ...

  4. python爬虫抓网页的总结

    python爬虫抓网页的总结 更多 python 爬虫   学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,写过在discuz论坛中自动登录自动发贴的脚本,写过自 ...

  5. URAL Mosaic(并查集)(欧拉回路)

    Mosaic Time limit: 0.25 secondMemory limit: 64 MB There's no doubt that one of the most important an ...

  6. URAL 1934 Black Spot(最短路)

    Black Spot Time limit: 1.0 secondMemory limit: 64 MB Bootstrap: Jones's terrible leviathan will find ...

  7. GNU C 扩展(转)

    GNU CC 是一个功能非常强大的跨平台 C 编译器,它对 C 语言提供了很多扩展,这些扩展对优化.目标代码布局.更安全的检查等方面提供了很强的支持.这里对支持支持 GNU 扩展的 C 语言成为 GN ...

  8. Machine and Deep Learning with Python

    Machine and Deep Learning with Python Education Tutorials and courses Supervised learning superstiti ...

  9. c++时间处理

    struct tm;这是一个结构体,包括了时间的各个属性年月日,时分秒 time(time_t * t);获取从1900年到现在经过的毫秒数,或者也可以这么用time_t t=time(NULL); ...

  10. NLTK中的词性

    NOUN n,VERB v ,ADJ a, ADV r, ADJ_SAT s     NOUN: [('s', ''), ('ses', 's'), ('ves', 'f'), ('xes', 'x' ...