LVS-DR配置篇
来源:互联网 发布:盗图投诉淘宝复审 编辑:程序博客网 时间:2024/05/30 22:54
LVS-DR配置篇
此处主要介绍VS/DR模式,包括与keepalived和heartbeat的结合都是VS/DR模式的。
VS/DR模式
环境是redhat企业6.5版本的Linux系统,server1作为负载调度器VS,server3和server4作为后端服务器,开启httpd服务。
负载调度器VS的配置:
安装LVS的软件ipvsadm;
[root@server1 ~]# yum install ipvsadm -y
此版本在安装软件时需要在yum源中加入HighAvailability,LoadBalancer,ResilientStorage,ScalableFileSystem项;
建立一个虚拟服务器,VIP为172.25.31.100,开启端口为80,调度模式为rr轮询;
[root@server1 ~]# ipvsadm -A -t 172.25.31.100:80 -s rr
在虚拟服务器中加入后端真实服务器server3和server4,-g表示为DR模式;
[root@server1 ~]# ipvsadm -a -t 172.25.31.100:80 -r 172.25.31.3:80 -g[root@server1 ~]# ipvsadm -a -t 172.25.31.100:80 -r 172.25.31.4:80 -g
查看LVS策略是否添加上;
[root@server1 ~]# ipvsadm -LnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 172.25.31.100:80 rr-> 172.25.31.3:80 Route 1 0 0 -> 172.25.31.4:80 Route 1 0 0
在网络上添加VIP;
[root@server1 ~]# ip addr add 172.25.31.100/24 dev eth0
后端服务器RS的配置:
后端服务器server3和server4的配置相同,这里以server3为例;在server3上添加VIP;
[root@server3 ~]# ip addr add 172.25.31.100/24 dev eth0
下载arptables软件,隐藏RS;
[root@server3 ~]# yum install arptables_jf.x86_64 -y
配置arptables使得所有访问server3的VIP的数据包都被丢弃;
[root@server3 ~]# arptables -A IN -d 172.25.31.100 -j DROP
配置arptables使得从VIP传输的数据全部以本身IP传输;
[root@server3 ~]# arptables -A OUT -s 172.25.31.100 -j mangle --mangle-ip-s 172.25.31.3
测试
在物理主机上对配置好的LVS进行测试,根据结果图可以看出,成功实现了负载均衡;
LVS-heartbeat
原理篇提到过LVS是单点模式,而且并没有对RS进行健康检查,所以用heartbeat使得LVS实现双机热备,并且使用ldirectord对RS进行健康检查。LVS为VS/DR模式,在配置前,先删除之前配置好的LVS策略,并且删除配置的VIP,RS端的server3和server4配置不变;
[root@server1 ha.d]# ip addr del 172.25.31.100/24 dev eth0[root@server1 ha.d]# ipvsadm -C[root@server1 ha.d]# ipvsadm -LnIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConn
server1和server2的配置完全相同,这里以server1为例,server1是主VS,server2是备用VS,LVS-heartbeat的配置如下:
安装软件,软件包如下图所示;
heartbeat和ldirectord的配置文件是/etc/ha.d目录下的ha.cf 、authkeys、haresources和ldirectord.cf,但是安装好软件后并没有配置文件,需要从其他地方复制;
[root@server1 heartbeat]# cd /usr/share/doc/heartbeat-3.0.4/[root@server1 heartbeat-3.0.4]# cp authkeys ha.cf haresources /etc/ha.d/[root@server1 ~]# cd /usr/share/doc/ldirectord-3.9.5/[root@server1 ldirectord-3.9.5]# cp ldirectord.cf /etc/ha.d/
分别对这四个配置文件进行配置,此处皆是本人设置的实际配置,如果有其他需要还可以进行其他的设置,其中未列出注释项;
ha.cf
[root@server1 ha.d]# vim /etc/ha.d/ha.cfdebugfile /var/log/ha-debuglogfile /var/log/ha-loglogfacility local0keepalive 2deadtime 30warntime 10initdead 120udpport 694bcast eth0auto_failback on # 表示自动回切node server1 # 在前的是主,在后的是备node server2ping 172.25.31.250
authkeys,配置完成后必须将其修改为600;
[root@server1 ha.d]# vim /etc/ha.d/authkeysauth 33 md5 Hello![root@server1 ha.d]# chmod 600 /etc/ha.d/authkeys
haresources
[root@server1 ha.d]# vim /etc/ha.d/haresourcesserver1 IPaddr::172.25.31.100/24/eth0 ldirectord httpd
ldirectord.cf
[root@server1 ha.d]# vim /etc/ha.d/ldirectord.cfchecktimeout=3checkinterval=1autoreload=yesquiescent=novirtual=172.25.31.100:80 real=172.25.31.3:80 gate real=172.25.31.4:80 gate fallback=127.0.0.1:80 gate service=http scheduler=rr protocol=tcp checktype=negotiate checkport=80 request="index.html"
因为heartbeat是高可用套件,ipvsadm和ldirectord都是自动启动的,VIP也是自动添加的,所以不用手动添加;
对server2也作如上配置,完成后启动heartbeat;
测试
高可用测试:
启动heartbeat之后,server1上可以看到自动添加了VIP和LVS策略;当关闭server1的heartbeat之后,VIP和LVS策略会自动加到server2上,因为在配置文件中设置的自动回切,所以当server1重新启动后,VIP和LVS策略又会重新回到server1上;
RS健康检查测试
当关闭后端服务器的server3的httpd服务后,VS端的LVS策略上会自动取消server3的策略,当其重新开启,该策略又会加上去;根据测试结果可以看出,LVS-heartbeat可以解决LVS的单点问题和对后端服务器没有健康检查的问题,使得LVS在实际应用中具有更多的用途;
LVS-keepalived
LVS-keepalived是实现LVS高可用的另一种方式,该方式应用的较LVS-heartbeat多一点,且不需要借助其他软件来实现后端服务器的健康检查;LVS-keepalived的配置所示,本此配置只代表个人,使用时可以根据实际情况配置;本次配置采用server2为主VS,server1为备用VS,在server1和server2上均作如下配置,此处以server2为例,但是在server1中编辑配置文件时略有不同,会在配置文件中说明;
keepalived的安装
在官网上下载源码安装包,本次使用的是keepalived-1.3.5.tar.gz,解压后安装,源码包的安装不作赘述;
[root@server2 keepalived-1.3.5]# ./configure --prefix=/usr/local/keepalived --with-init=SYSV[root@server2 keepalived-1.3.5]# make[root@server2 keepalived-1.3.5]# make install
使用以下步骤复制配置文件和所需文件等;
[root@server2 keepalived]# cp -r /usr/local/keepalived/etc/keepalived/ /etc[root@server2 keepalived]# chmod +x /usr/local/keepalived /etc/rc.d/init.d/keepalived[root@server2 keepalived]# cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/[root@server2 keepalived]# cp /usr/local/keepalived/sbin/keepalived /sbin[root@server2 keepalived]# cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
keepalived的配置
keepalived的配置文件是/etc/keepalived/keepalived.conf,server1的配置会有所不同,会在代码框中说明;
keepalived的配置文件编写是非常严格的,配置文件内容如下:
[root@server2 ~]# vim /etc/keepalived/keepalived.conf! Configuration File for keepalivedglobal_defs { notification_email { root@localhost } notification_email_from keepalived@localhost smtp_server 127.0.0.1 smtp_connect_timeout 30 router_id LVS_DEVEL vrrp_skip_check_adv_addr # vrrp_strict # 如果不注释,启动后会在iptables中加入策略,导致数据无法传入 vrrp_garp_interval 0 vrrp_gna_interval 0}vrrp_instance VI_1 { state MASTER # server1中此处应是 BACKUP interface eth0 virtual_router_id 99 priority 100 # server1中此处应该小于100 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 172.25.31.100/24/eth0 # 设置的VIP }}virtual_server 172.25.31.100 80 { delay_loop 6 lb_algo rr lb_kind DR # 工作模式为DR # persistence_timeout 50 # 此处是持续连接,在需要连续访问时开启,如lftp、mysql等 protocol TCP real_server 172.25.31.3 80 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } } real_server 172.25.31.4 80 { weight 1 TCP_CHECK { connect_timeout 3 nb_get_retry 3 delay_before_retry 3 } }}
- 配置完成后开启keepalived,后端服务器server3和server4配置不变;
- 检测方式与LVS-heartbeat相同,可以检测出LVS-keepalived实现了LVS的高可用和健康检查;
- LVS-DR配置篇
- 配置 LVS DR模式
- LVS/DR配置笔记
- LVS DR模式配置
- lvs-dr配置
- Linux lvs DR配置
- LVS-DR-service配置
- LVS-DR模式配置详解
- LVS之DR模式配置
- LVS 配置之DR模式
- lvs-dr模式 安装配置
- LVS-NAT, LVS-DR, LVS-KEEPALIVED,LVS-TUN配置
- LVS(一)LVS简介及LVS-DR模式配置搭建
- LVS--lvs-dr、lvs-nat配置(2)
- 配置基于DR模式Lvs集群
- LVS/DR RSP配置loopback device原理
- CentOS上配置LVS DR集群
- CentOS上配置LVS DR集群
- C++ STL stack/queue的使用方法
- 拉钩异步数据抓取
- Mac下更新npm版本
- 数组常见算法比较
- Tesseract-OCR的 实现训练
- LVS-DR配置篇
- pat a 1052 Linked List Sorting
- 为适配平板而生的Dialog(同样也支持手机)
- JSON对象和JSON字符串间的相互转换
- TCP/IP 链路层
- Appium三种等待方式
- Spring MVC + redis 消息的订阅发布
- 顺序表的实现
- Typescript代码实例解析