共计 4555 个字符,预计需要花费 12 分钟才能阅读完成。
原理:
如图所示:(此过程不存在地址转换)
客户端首先向 director 发送请求,此时 director 会对该数据包处理,把帧头部的目标 mac 换成后方 realserver 的 mac。因为 realserver 是直接把信息传送到客户端,所以为了客户端能够接收,我们还需要在每个 realserver 上配置一个 VIP。然而这样就产生一个问题,当客户端的 arp 请求过来的时候,因为在 director 和后方的 realserver 上都有 VIP,所以都会相应用户的 arp 请求,那么客户端选择与谁的 mac 通信呢,这就是个问题。这就需要我们的
realserver 在接收 arp 的请求时,不能进响应
针对这个问题有两种方式解决方式
1、用一种叫 arptable 的 arp 防火墙
2、使用内核参数 arp-announce 和 arp-ignore,这样一来也解决了后方 realserver 地址冲突的问题,这也是一种较好的方案
特点
1. 必须处于同一个物理网络中(连在同一个交换机上)
2.RIP 不能使用私有地址,因为这个地址是直接与用户通信的
3.Director 只转发请求,而 realserver 直接响应请求而不转发
4. 集群节点的网关,不能指向 DIP
5. 不能做端口转换(不支持)
6. 绝大多数的操作系统都可以实现 realserver, 而 realserver 需要同一个网卡配置多个 Ip 地址
7.DR 模式的 Director 比 NAT 模式能够带动更多的节点
实训:
拓扑
(注意:图中俩个 NODE 的 loopback 接口首先不要配置地址,不然会冲突,应该用两个内核参数做一下控制)
一、Director 的配置
1、首先配置 ip 地址
重启服务
service network restart
2、安装工具
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom(挂载光盘)
cd /mnt/cdrom/Cluster
rpm -ivh ipvsadm-1.24-10.i386.rpm
更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2013-11/92263p2.htm
相关阅读 :
LVS-DR 模式配置详解 http://www.linuxidc.com/Linux/2013-01/78679.htm
LVS-DR 直接路由实现负载均衡示例 http://www.linuxidc.com/Linux/2012-12/77033.htm
LVS-DR+Heartbeat 实现高可用负载均衡服务 http://www.linuxidc.com/Linux/2012-10/73008.htm
LVS-DR 模式原理详解和可能存在的“假负载均衡”http://www.linuxidc.com/Linux/2012-10/72892.htm
heartbeat+ldirectory 实现 LVS-DR 负载均衡器的高可用 http://www.linuxidc.com/Linux/2012-07/64736.htm
Keepalived+LVS-DR 模式配置高可用负载均衡集群 http://www.linuxidc.com/Linux/2012-06/63139.htm
二、节点 node 的配置
1、Node1
为了地址冲突,首先应该修改两个内核参数
echo “net.ipv4.conf.all.arp_announce = 2” >>/etc/sysctl.conf
echo “net.ipv4.conf.all.arp_ignore = 1” >>/etc/sysctl.conf
为了这两个参数立即生效执行下面命令
sysctl -p
配置 ip 地址
重启网络服务
因为 2.100 的网络地址被看做一个点的地址,所以应该为 node1 增加一台路由
route add -host 192.168.2.100/32 dev lo:0
安装 web 服务
mount /dev/cdrom /mnt/cdrom
rpm -ivh /mnt/cdrom/Server/httpd-2.2.3-31.el5.i386.rpm
启动服务并加入开机启动项
service httpd start
chkconfig httpd on
建设网页
echo “node1” >/var/www/html/index.html
2、Node2
为了防止地址冲突,这里方便起见,直接拷贝 node1 上边的配置文件
scp 192.168.2.10:/etc/sysctl.conf /etc/
sysctl -p
配置 ip 地址
重启网络服务
同样的做静态路由
route add -host 192.168.2.100/32 dev lo:0
安装 web 服务
mount /dev/cdrom /mnt/cdrom
rpm -ivh /mnt/cdrom/Server/httpd-2.2.3-31.el5.i386.rpm
启动服务并加入开机启动项
service httpd start
chkconfig httpd on
建设网页
echo “node2” >/var/www/html/index.html
原理:
如图所示:(此过程不存在地址转换)
客户端首先向 director 发送请求,此时 director 会对该数据包处理,把帧头部的目标 mac 换成后方 realserver 的 mac。因为 realserver 是直接把信息传送到客户端,所以为了客户端能够接收,我们还需要在每个 realserver 上配置一个 VIP。然而这样就产生一个问题,当客户端的 arp 请求过来的时候,因为在 director 和后方的 realserver 上都有 VIP,所以都会相应用户的 arp 请求,那么客户端选择与谁的 mac 通信呢,这就是个问题。这就需要我们的
realserver 在接收 arp 的请求时,不能进响应
针对这个问题有两种方式解决方式
1、用一种叫 arptable 的 arp 防火墙
2、使用内核参数 arp-announce 和 arp-ignore,这样一来也解决了后方 realserver 地址冲突的问题,这也是一种较好的方案
特点
1. 必须处于同一个物理网络中(连在同一个交换机上)
2.RIP 不能使用私有地址,因为这个地址是直接与用户通信的
3.Director 只转发请求,而 realserver 直接响应请求而不转发
4. 集群节点的网关,不能指向 DIP
5. 不能做端口转换(不支持)
6. 绝大多数的操作系统都可以实现 realserver, 而 realserver 需要同一个网卡配置多个 Ip 地址
7.DR 模式的 Director 比 NAT 模式能够带动更多的节点
实训:
拓扑
(注意:图中俩个 NODE 的 loopback 接口首先不要配置地址,不然会冲突,应该用两个内核参数做一下控制)
一、Director 的配置
1、首先配置 ip 地址
重启服务
service network restart
2、安装工具
mkdir /mnt/cdrom
mount /dev/cdrom /mnt/cdrom(挂载光盘)
cd /mnt/cdrom/Cluster
rpm -ivh ipvsadm-1.24-10.i386.rpm
更多详情见请继续阅读下一页的精彩内容 :http://www.linuxidc.com/Linux/2013-11/92263p2.htm
相关阅读 :
LVS-DR 模式配置详解 http://www.linuxidc.com/Linux/2013-01/78679.htm
LVS-DR 直接路由实现负载均衡示例 http://www.linuxidc.com/Linux/2012-12/77033.htm
LVS-DR+Heartbeat 实现高可用负载均衡服务 http://www.linuxidc.com/Linux/2012-10/73008.htm
LVS-DR 模式原理详解和可能存在的“假负载均衡”http://www.linuxidc.com/Linux/2012-10/72892.htm
heartbeat+ldirectory 实现 LVS-DR 负载均衡器的高可用 http://www.linuxidc.com/Linux/2012-07/64736.htm
Keepalived+LVS-DR 模式配置高可用负载均衡集群 http://www.linuxidc.com/Linux/2012-06/63139.htm
三、访问并测试
1、在 Director 上定义虚拟服务器
ipvsadm -A -t 192.168.2.100:80 -s rr
指向后方的 realserver
ipvsadm -a -t 192.168.2.100:80 -r 192.168.2.10 -g
ipvsadm -a -t 192.168.2.100:80 -r 192.168.2.20 -g
为了下次启动规则任然存在,保存一下
service ipvsadm save
重启服务
service ipvsadm restart
安装文本浏览器进行测试
rpm -ivh /mnt/cdrom/Server/lynx-2.8.5-28.1.el5_2.1.i386.rpm
lynx http://192.168.2.10
lynx http://192.168.2.20
在宿主机上访问 director
刷新
接着刷新的话会发现访问了后方轮训的 realserver
2、访问一致性
实现这种群集是为了实现访问后方的 realserver 得到一致的结果,那么怎样实现呢? 对于静态页面还好说,只要两个 web 页面做成相同的就行了,如果是动态页面的。这时候后方必须要有共享存储,而能够基于网络实现共享存储的方法有两种,一种是 NAS(network attached storage 网络附加存储),实现文件级别的共享;另一种是 SAN(storage area network 块级别共享)。
这里我们用 NAS 来实现这种效果,实现 NAS 的方式有好几种。如果再生产环境中应用的话,有专门的硬件产品来实现,或者利用一种叫 freenas 的软件来实现,不过在实验环境下我们可以用 samba 或者 NFS 来实现。具体实现的过程就是 NFS 设备把用户要访问页面放到共享文件夹里,前面的 realserver 只需在本地把后方的共享文件夹挂载到本地就行了。
实现 NAS
首先为 NAS 配置相应的 IP 地址
经查看已经安装了 nfs
建立共享文件夹
编辑共享清单
vim /etc/exportsr
如果是动态页面的话用户则具有写的权限(像是论坛等等)
启动服务
service nfs start
把服务加入开机启动项
分别为两个节点添加网卡
因为实验环境是在虚拟机里实现的,把两块网卡放在 vmnet2 区域里,当然后方的 NAS 也应该在 vmnet2 区域
分别为两块网卡添加地址
重启服务
挂载共享文件夹
查看后方的共享
分别在两个节点上挂载后方的共享文件
mount 192.168.3.100:/webroot /var/www/html
再次访问的话就会得到相同的页面了
这种方式有一定缺陷,就是效率太低,不过它也有它的优点,那就是锁机制(两个人不能同时做写操作)和推送机制(在一个节点上边提交的信息可以在另一个节点上看到)。另外一个缺陷就是在 director 上定义的轮训规则是静态的,不根据实际情况进行调整,即使后方的线路 down 掉,规则依旧存在,这就需要在每个节点上增加健康探测机制,来时刻监听线路的健康状况。