LVS直接路由实现虚拟服务器(VS/DR)

       LVSLinux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统,旨在使用集群技术和Linux操作系统实现一个高性能、高可用的服务器,具有很好的可伸缩性、很好的可靠性、很好的可管理性。

      可伸缩网络服务的几种结构,它们都需要一个前端的负载调度器(或者多个进行主从备份)。我们先分析实现虚拟网络服务的主要技术,指出IP负载均衡技术是在负载调度器的实现技术中效率最高的。在已有的IP负载均衡技术中,主要有通过网络地址转换(Network Address Translation)将一组服务器构成一个高性能的、高可用的虚拟服务器, 我们称之为VS/NAT技术(Virtual Server via Network Address Translation)。在分析VS/NAT的缺点和网络服务的非对称性的基础上,我们提出了通过IP隧道实现虚拟服务器的方法VS/TUN (Virtual Server via IP Tunneling),和通过直接路由实现虚拟服务器的方法VS/DR(Virtual Server via Direct Routing),它们可以极大地提高系统的伸缩性。VS/NAT、VS/TUN和VS/DR技术是LVS集群中实现的三种IP负载均衡技术

一   直接路由实现虚拟服务器(VS/DR)

     通过改写请求报文的目标MAC地址,将请求发给真实服务器,而真实服务器将响应后的处理结果直接返回给客户端用户

1.   在真机的挂载目录里,有着关于负载均衡的文件:

2.  在server1端,将要用到的负载均衡文件写到yum源的配置文件中:

使用指令yum repolist之后将看到添加的包的数量:

3.  在server1端安装ipvsadm并开启服务,给server1,server2,server3三个主机都添加172.25.254.100的ip:

4.  指定虚拟主机和真实主机:

    -A为虚拟主机,-a为真实主机。需要注意的是,在指定虚拟主机和真实主机之后,ipvsadm服务不能重启。如果重启,指定的虚拟主机和真实主机将会失效。

5.  在server2和server3端安装arptables_jf 在server2和server3端安装arptables_jf 并添加策略,之后使用/etc/init.d/arptables save保存策略:

    在OUT表中server2端为172.25.254.2,server3端为172.25.254.3。

6.  测试:

   在真机端curl 172.25.254.100解析ip,将得到servre2和server3两台主机的负载均衡结果:

   在虚拟主机server1端将看到访问真实主机的次数:

7.  这种服务的缺点在于,如果后端服务器挂掉,比如说停掉server真实主机的httpd服务,那么在客户端解析的时候们就会报错,但server3还会正常工作。这样用户就将得到错误的信息:

        为了解决这个问题,就需要用到ldirectord服务

二  ldiretord服务的搭建

1.  准备ldirectord安装包并安装,将配置文件复制到/etc/ha.d目录下:

2.  到/etc/ha.d目录下编辑配置文件:

3.  停掉server1端的varnish服务,使用ipvsadm -C命令清除server2端ipvsadm服务原有的策略,开启ldirectord服务,开启server1端的httpd服务,重启ldirectord。这时执行指令ipvsadm -l将看到虚拟机主和两台真实主机:

4.  在客户端进行172.25.254.100的解析,仍能够实现负载均衡。如果停掉真实主机的httpd服务,虚拟主机端将自动更新ipvasdm服务,此时接收的数据包将直接访问虚拟主机,这对虚拟主机来说有着很大的压力,虚拟主机一端并不是用户需要访问的数据所在端。可以在虚拟主机server1端的httpd默认发布目录里新建index.html文件,向用户说明此网站正在维护无法正常访问。

三  高可用负载均衡

       建立两台虚拟主机,在一台虚拟主机崩溃的情况下,另一台虚拟主机直接接替崩溃的虚拟主机的工作,实现服务的连续性。

1.  安装keepalived服务:

  准备安装包keepalived-2.0.6.tar.gz安装:

  安装之后给keepalived可执行权限

制作软链接:

软链接制作完成之后开启keepalived服务。

2.  新增一个虚拟机server4,在server4端制作同样的软链接,并开启keepalived服务。

3.  在server1和server4端安装mailx服务。

4.在servre1端删除172.25.254.100的ip并修改keepalived服务的配置文件/etc/keepalived/keepalived.conf :

5.  将修改后的配置文件复制一份到server4端的/etc/keepalived/目录并修改文件中的优先级为50:

6.  配置文件修改完成之后,两端重启keepalived服务。这样如果虚拟主机server1挂掉,server4会接替server1的工作。可以在系统日志中查看到server1和server4的工作状态。

 

猜你喜欢

转载自blog.csdn.net/letter_A/article/details/81290882