集群基础----(lvs【Linux+virtual+server】)

来源:互联网 发布:ai矢量图软件 编辑:程序博客网 时间:2024/06/05 07:37

lvs(linux+virtual+server)

高可用对负载均衡的整合
ipvsadm—-四层

-L 列出策略
-C 清空
-A 添加

lvs一共有三种工作模式(NAT、DR、Tun(隧道))—其中性能最高的是DR

DR模式:

         *****************************client---*--VS---(处于同一网段)---RS--*---client         *****************************
VS:是调度器(s1)、RS:把arp屏蔽掉(s2和s3)DR模式工作在二层(二层不能进行端口转发),将比特流转换为数据帧RS【In:Drop vip   Out:转换为Rip出去】RS在启用arp的时候,广播只有RIP没有UIP
NAT模式:client---vs----rs----vs---client在vs-rs阶段: cip-vip 转换为  cip-rip在rs-vs阶段: cip-rip 转换为  cip-vip此模式支持端口转发,内部地址可以转换,地址和端口可以被改
Tun(隧道模式):client -------vs--------rs--------client此模式在不断的增加ip头

使用DR模式:
1.安装rpm包(from 老吴)–ldirectord-3.9.5-3.1.x86_64.rpm

yum install ldirectord-3.9.5-3.1.x86_64.rpm -y

2.更改ldirectord的目录所在位置

   cd /usr/share/doc/ldirectord-3.9.5/   cp ldirectord.cf /etc/ha.d/      #只有在这个目录下才能生效

3.关闭两个服务器的心跳
/etc/init.d/heartbeat stop(把两台server的心跳都停掉)

4.策略的查看
yum install -y ipvsadm
ipvsadm -L(列出策略)

5.添加策略

ip addr add 172.25.39.100/24 dev eth0-----100加到eth0上ipvsadm -A -t 172.25.39.100:80 -s rr(rr是负载均衡算法)ipvsadm -a -t 172.25.39.100:80 -r 172.25.39.3:80 -gipvsadm -a -t 172.25.39.100:80 -r 172.25.39.2:80 -g/etc/init.d/ipvsadm save(保存策略)
[root@server1 ha.d]# cat /etc/sysconfig/ipvsadm-A -t 172.25.39.100:80 -s rr-a -t 172.25.39.100:80 -r 172.25.39.2:80 -g -w 1-a -t 172.25.39.100:80 -r 172.25.39.3:80 -g -w 1[root@server1 ha.d]# ipvsadm -ln(加n可以查看ip)IP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags  -> RemoteAddress:Port           Forward Weight ActiveConn InActConnTCP  172.25.39.100:80 rr  -> 172.25.39.2:80               Route   1      0          0  -> 172.25.39.3:80               Route   1      0          0[root@server1 ha.d]# ipvsadm -lIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags  -> RemoteAddress:Port           Forward Weight ActiveConn InActConnTCP  172.25.39.100:http rr  -> server2:http                 Route   1      0          0  -> server3:http                 Route   1      0          0

6.在server2和server3上相同

1) /etc/init.d/httpd start(100在s2上也有)2) yum install -y arptables_jf(针对arp协议的火墙)    arptables -L(查看火墙策略)3)更改策略(在server2和server3都要做,相当于rs)    ip addr add 172.25.39.100/24 dev eth0-----100加到eth0上    arptables -A IN -d 172.25.39.100 -j DROP(访问100的s2丢弃无视)---(启用arp,广播自己只有rip,不说自己有vip,否则会地址冲突错乱)    arptables -A OUT -s 172.25.39.100 -j mangle --mangle-ip-s 172.25.39.2(当要出去弄100时转换为真实的server)    /etc/init.d/arptables_jf save(保存策略)    arptables -nL(验证)

7.测试:在物理机上查看100连接点

1)[root@foundation39 ~]#arp -an | grep 100? (172.25.39.100) at 52:54:00:5a:44:db [ether] on br0(为server1的,正确)2http://172.25.39.100/----出现server2和server3轮询3)[root@foundation39 ~]# curl 172.25.39.100   <h1> server2 </h1>   [root@foundation39 ~]# curl 172.25.39.100   <h1>  server3---www.westos.org </h1>   [root@foundation39 ~]# curl 172.25.39.100   <h1> server2 </h1>   [root@foundation39 ~]# curl 172.25.39.100   <h1>  server3---www.westos.org </h1>