LVS(Linux虚拟服务器)全拼:Linux Virtual Server
是一个虚拟的服务器集群系统
三种模式:
LVS-NAT:地址转换,
原理简述
客户端向VIP发起请求连接,DS在经过调度之后选取RS,然后RS返还数据给DS,DS将数据返还客户端,数据包来回都要经过NAT转换,所以DS将成为系统瓶颈。NAT支持10-20台服务器。需要有两个网卡。
=====================================================================
LVS-TUN:隧道
原理简述
客户端向VIP发送请求时,DS经过调度轮询后选择一个RS后使用隧道技术再次封装后向RS发送,RS通过隧道收到请求后拆开数据后得到目的IP,找到数据后将数据直接通过公网返还给客户端,可以跨网段。速度快。
=====================================================================
LVS-DR: 路由模式
原理简述
直接路由,此种方式是最常用的方式,当客户端向VIP发起请求时,数据包通过路由器发送到DS。然后DS不修改其源IP目的iP。经过调度后将目的MAC改为RS的MAC,然后RS找到数据后直接通过公网返回给客户端。
速度快,所有的DS和RS都在同一个物理网络中(交换机)并且都只有一块网卡。
=====================================================================
调度常用算法:
1. 轮叫调度 rr
2. 加权轮叫 wrr
3. 最少链接 lc
4. 加权最少链接 wlc
步骤:(注意:老板,员工都的安装yum -y install httpd*)
所需环境,一台DS,两台RS,一台客户机,在一个网段中,全部关闭防火墙。操作过程中不可重启。
DS(老板):
1.
#yum -y install ipvsadm #下载ipvsadm命令
参数:
-C:–clear 清除内核虚拟服务器表中的所有记录。
-A:增加一台新的虚拟服务器,也就是VIP
-a:在虚拟服务器中增加一台新的真实服务器
-t:–tcp 说明虚拟服务器提供的是tcp 的服务
-r:后跟真实的服务器ip
-s:指定调度算法
-g:指定LVS 的工作模式为直接路由模式
2.
#ipvsadm -C
#ipvsadm -A -t 192.168.154.250:80 -s rr
#ipvsadm -a -t 192.168.154.250:80 -r 192.168.29.139:80 -g
#ipvsadm -a -t 192.168.154.250:80 -r 192.168.29.140:80 -g
#ifconfig eno16777736:0 192.168.154.250 broadcast 192.168.154.250 netmask 255.255.255.255 up
给ens33网卡添加一块子网卡,IP地址设为250,并且设置为广播地址
#route add -host 192.168.154.250 dev eno16777736:0
访问192.168.154.250的时候指定一条路由,走子网卡,
RS(员工1|员工2):
1.
# ifconfig lo:0 192.168.154.250 broadcast 192.168.154.250 netmask 255.255.255.255 up
给LOOPBACK添加子网卡,设置IP为250,并设置为广播地址
# route add -host 192.168.154.250 dev lo:0
访问250指定路由是从设备LOOPBACK走
2.
配置内核参数文件
arp_ignore: 定义接收到ARP请求时的响应级别
0:默认,只有本地配置的有相应的地址才给与回应
1:仅仅在目标地址是本地地址,并是配置在请求进来的接口上的时候才给予响应
arp_announce:定义将自己的地址向外通告时的级别
0:默认,表示使用配置在任何接口的任何地址向外通告
1:尽量仅向目标网络通过余其网络匹配地址
2:仅向与本地接口上地址匹配的网络进行通告
# echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
# echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
# echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
# echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
该配置文件重启失效,是写在内存中的。
如果要永久生效,要把参数写在/etc/sysctl.conf中
3.
给RS和DS端都安装httpd服务
在RS1,RS2端/var/www/html目录下创建index.html文件
编辑:<h1>this is 138 host</h1>
<h1>this is 139 host</h1>
启动httpd服务
4.
测试:
在客户机执行 curl 192.168.154.250,或者在浏览器输入网址
在DS上查看ipvsadm的
ipvsadm -Ln --stats
-L:显示内核虚拟服务器表
-n:输出IP地址和端口的数字形式
ipvsadm --zero :清空流量
为防止服务重启失败
cd /etc/sysconfig
touch ipvsadm文件