LVS(Linux Virtual Server) – ipvsadm
工作在TCP/IP协议的四层,其转发是依赖于四层协议的特征进行转发,由于其转发要依赖于协议的特征进行转发,因此需要在内核的TCP/IP协议栈进行过滤筛选,这就需要在内核的模块来完成,而这样的过滤转发规则又是由管理员进行定义。LVS是两段式的架构设计,在内核空间中工作的是”ipvs”, 而在用户空间中工作的,用来定义集群服务规则的是”ipvsadm”。这就很容易想到iptables,而LVS正好工作在iptables的input链上。
DR模式
DR 利用大多数 Internet 服务的非对称特点,负载调度器中只负责调度请求,而服务器直接将响应返回给客户,可以极大地提高整个集群系统的吞吐量。调度器和服务器组都必须在物理上有一个网卡通过不分断的局域网相连,如通过交换机或者高速的HUB 相连。VIP 地址为调度器和服务器组共享,调度器配置的 VIP 地址是对外可见的,用于接收虚拟服务的请求报文;所有的服务器把 VIP 地址配置在各自的 NonARP 网络设备上,它对外面是不可见的,只是用于处理目标地址为 VIP 的网络请求。
查看主机内核是否已经集成 ipvs:
[root
@server1 ~]
主机环境:
rhel6.5 selinux and iptables disabledLoad Balance: 172.25.20.1(server1) Virtual IP:172.25.20.100 Gateway:172.25.20.1Realserver1:172.25.20.2 (server2) Realserver2:172.25.20.3(server3)物理机内网 : 172.25.20.250
配置 ipvsadm
配置yum源
[root@server1 ~]
[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=http://172.25.20.250/rhel6.5
gpgcheck=0
[LoadBalancer]
name=LoadBalancer
baseurl=http://172.25.20.250/rhel6.5/LoadBalancer
gpgcheck=0
[ResilientStorage]
name=ResilientStorage
baseurl=http://172.25.20.250/rhel6.5/ResilientStorage
gpgcheck=0
[ScalableFileSystem]
name=ScalableFileSystem
baseurl=http://172.25.20.250/rhel6.5/ScalableFileSystem
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.20.250/rhel6.5/HighAvailability
gpgcheck=0
安装
[root
@server1 ~]
调度算法 – rr轮询
[root
@server1 ~]
[root
@server1 ~]
[root
@server1 ~]
[root
@server1 ~]
ipvsadm: Saving IPVS table to /etc/sysconfig/
ipvsadm: [
OK ]
[root
@server1 ~]
IP Virtual Server version
1.2.
1 (size=
4096)
Prot LocalAddress:Port Scheduler Flags
->
RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP 172.25.
20.100:http rr
->
server2:http
Route 1 0 0
->
server3:http
Route 1 0 0
添加VIP
[root
@server1 ~]
[root
@server2 ~]
[root
@server3 ~]
server2 – apache
[root
@server2 ~]
[root
@server2 ~]
<h1>www.westos.org from server2 </h1>
[root
@server2 ~]
[root
@server2 ~]
[root
@server2 ~]
[root
@server2 ~]
[root
@server2 ~]
Saving current rules to /etc/sysconfig/
arptables: [ OK ]
server3 – apache
[root
@server3 ~]
[root
@server3 ~]
<h1>www.westos.com from server3 </h1>
[root
@server3 ~]
[root
@server3 ~]
[root
@server3 ~]
[root
@server3 ~]
[root
@server3 ~]
Saving current rules to /etc/sysconfig/
arptables: [ OK ]
物理机测试
realserver 不宕机 某台realserver 宕机
[root
@server2 ~]
Stopping httpd: [
OK ]