1、准备工作(集群中所有主机)关闭防火墙和selinux
[root@lvs-server ~]
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.86.100 lvs-server
192.168.86.147 real-server1
192.168.86.149 real-server2
2、Director分发器配置
配置VIP
[root@lvs-server ~]
[root@lvs-server ~]
[root@lvs-server ~]
注意:启动如果报错: /bin/bash: /etc/sysconfig/ipvsadm: 没有那个文件或目录
需要手动生成文件
[root@lvs-server ~]
定义LVS分发策略
-A:添加VIP
-t:用的是tcp协议
-a:添加一条real server 记录,添加的是lo的vip地址
-r:转发到real-serve rip
-s:算法
-L|-l –list
--numeric, -n:
-g --gatewaying
-S -save
rr:轮循
如果添加ip错了,删除命令如下:
[root@lvs-server ~]
[root@localhost ~]
[root@localhost ~][root@lvs-server ~]
[root@lvs-server ~]
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.86.100:80 rr-> 192.168.86.147:80 Route 1 0 0 -> 192.168.86.149:80 Route 1 0 0
[root@lvs-server ~]
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.86.100:80 rr-> 192.168.86.147:80 Route 1 0 0 -> 192.168.86.149:80 Route 1 0 0
[root@lvs-server ~]
1. Conns (connections scheduled) 已经转发过的连接数
2. InPkts (incoming packets) 入包个数
3. OutPkts (outgoing packets) 出包个数
4. InBytes (incoming bytes) 入流量(字节)
5. OutBytes (outgoing bytes) 出流量(字节)
[root@lvs-server ~]
1. CPS (current connection rate) 每秒连接数
2. InPPS (current in packet rate) 每秒的入包个数
3. OutPPS (current out packet rate) 每秒的出包个数
4. InBPS (current in byte rate) 每秒入流量(字节)
5. OutBPS (current out byte rate) 每秒出流量(字节)
3、所有RS配置
配置好网站服务器,测试所有RS #为了测试效果,提供不同的页面(以下两台real-server都操作)
[root@real-server1 ~]
[root@real-server1 ~]
两台机器都安装,按顺序添加不同的主机名以示区分
[root@real-server1 ~]
[root@real-server1 ~]
[root@real-server1 ~]
[root@real-server1 ~]
[root@real-server1 ~]
===================================================================
因为:realServer的vip有了,接着就是同一个网段中拥有两个vip, 客户端在网关发送arp广播需找vip时需要让realServer不接受响应.
解决:
echo 1 >/proc/sys/net/ipv4/conf/all(网卡)/arp_ignore
arp_ignore 设置为1,意味着当别人的arp请求过来的时候,如果接收的设备(eth0)没有这个ip,就不做出响应(这个ip在lo上,lo不是接收设备的进口)
也就是不响应非本网卡上的arp请求。
echo 2 >/proc/sys/net/ipv4/conf/all(网卡)/arp_announce
使用最好的ip来回应,什么是最好的ip?同一个网段内子网掩码最长的
4、删除配置
[root@localhost ~]
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 192.168.86.100:80 rr-> 192.168.86.147:80 Route 1 0 3-> 192.168.86.149:80 Route 1 0 4[root@localhost ~]
[root@localhost ~][root@webserver2 ngiox]
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet 192.168.86.100/32 scope global lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:d7:8f:c4 brd ff:ff:ff:ff:ff:ffinet 192.168.86.147/24 brd 192.168.86.255 scope global noprefixroute dynamic ens33valid_lft 1753sec preferred_lft 1753secinet6 fe80::4667:3492:f595:5de5/64 scope link noprefixroutevalid_lft forever preferred_lft forever
[root&#64;webserver2 ngiox]
arp_ignore参数的作用是控制系统在收到外部的arp请求时&#xff0c;是否要返回arp响应。arp_ignore参数常用的取值主要有0&#xff0c;1&#xff0c;2&#xff0c;3~8较少用到&#xff1a;0&#xff1a;响应任意网卡上接收到的对本机IP地址的arp请求&#xff08;包括环回网卡上的地址&#xff09;&#xff0c;而不管该目的IP是否在接收网卡上。1&#xff1a;只响应目的IP地址为接收网卡上的本地地址的arp请求。2&#xff1a;只响应目的IP地址为接收网卡上的本地地址的arp请求&#xff0c;并且arp请求的源IP必须和接收网卡同网段。3&#xff1a;如果ARP请求数据包所请求的IP地址对应的本地地址其作用域&#xff08;scope&#xff09;为主机&#xff08;host&#xff09;&#xff0c;则不回应ARP响应数据包&#xff0c;如果作用域为全局&#xff08;global&#xff09;或链路&#xff08;link&#xff09;&#xff0c;则回应ARP响应数据包。4~7&#xff1a;保留未使用8&#xff1a;不回应所有的arp请求
4、测试
[root&#64;client ~]
[root&#64;client ~]
-dump