手动实现高可用LVS的资源转移,一步步教你为L

作者: 今晚买四不像计算  发布:2019-11-05

在高可用集群中在主节点当即后如果资源不能成功转移到该高可用集群的其他节点上那么这个集群的高可用性就无从谈起,所以在高可用集群中资源成功转移才是王道!

Director对于LVS来说,是重中之重,所有对服务的请求都要经过它 向他身后提供服务的集群进行转发,但它也是LVS高负载均衡集群的不稳定因素,如果Director主机宕机,后方的服务集群也就不能够提供服务了,这是坚决不允许出现的情况,因此我们可以通过为Director提供高可用集群服务来保证当一个Director宕机之后,还有其它的Director可以替代提供服务,知道宕机的Director重新恢复。

在《一步步教你为LVS中的Director实现高可用集群》http://www.linuxidc.com/Linux/2011-09/43913.htm这篇文章中给大家讲解了怎样使用Heartbeat自带的软件包实现LVS中Director的高可用性集群的资源转移,可以说Heartbeat专门为LVS中Director实现高可用集群打造的软件包,只需要修改一个配置文件,所有的资源转移问题迎刃而解,我们除了使用这个专门的软件包之外完全可以使用自己手工编写的脚本来实现,下面我们就用自己编写的脚本来实现这个话题中的资源转移。        

我们使用高可用集群解决方案之一 ——Heartbeat来实现这个目的

    我们本次讲解是基于DR的LVS中Director的高可用集群,所以先根据下图建立这个大的结构。

我们先来考虑一个问题,当Director的主节点宕机之后,必须要将资源转移到备节点上,否则备节点也只是摆设,并不能替代宕机的主节点来完成Director的工作。关键就在这个资源转移的方法上。

        图片 1

Heartbeat为LVS中的Director实现高可用集群量身定做了套解决方案,我们只需要在Heartbeat的几个配置文件中进行简单的配置,我们所需要的目的都统统能够实现,不仅如此,它自身还具备了帮我们检测后方服务集群中主机服务状态的功能,简直让我们喜出望外,下面我们就通过一个简单的实验来阐明这个观点。

    route为连接外网的路由器,switch为内网中的交换机,RS1提供web服务(主要是为了进行实验结果的验证,所以我们就只用一个realserver主机RS1),直接和交换机相连,ND1、ND2为LVS中的两个Director节点,我们要对这连个Director节点实现高可用集群服务,两个Director和交换机直接相连之外,两个节点之间还需要直接连接进行心跳等基本信息的传递。 
    每个有标记的块状物为网卡,上面是编号,在连个ND节点之间有一个被称为资源一部分的VIP在哪个节点上是不固定的,外网的用户也是通过这个VIP来访问我们的web服务的。

         实验拓扑如图:
         图片 2
        我们要实现的LVS的类型为DR,即直接路由
        route为连接外网的路由器,switch为内网中的交换机,RS1、RS2为提供web服务的集群,直接和交换机相连,ND1、ND2为LVS中的两个Director节点,我们要对这连个Director节点实现高可用集群服务,两个Director和交换机直接相连之外,两个节点之间还需要直接连接进行心跳等基本信息的传递。
        每个有标记的块状物为网卡,上面是编号,在连个ND节点之间有一个被称为资源一部分的VIP在哪个节点上是不固定的,外网的用户也是通过这个VIP来访问我们的web服务的。

开始配置: 设定VIP为192.168.0.85/24

         开始配置:  设定VIP为192.168.0.85/24

1、对RS1的配置

一、我们先来RS1和RS2让其称为一个web服务的集群
      
     1、对RS1的配置

(1)对realserver配置内核参数:
先来解释一下修改内核参数的原因,因为在DR模型中RS1、RS2在lo:0上都配置了VIP的地址,是为了在数据包响应用户的时候源地址为用户访问的VIP地址,但是在数据包进入路由器之后,在我们的内网中有多个VIP地址,路由器将不能将其转发到应该得到数据包的ND上,为了避免这种情况出现,我们就修改内核参数来让RS上的VIP网卡不对路由器的产生响应即可。
   echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
   echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
   echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
   echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

      (1)、对realserver配置内核参数:
                  先来解释一下修改内核参数的原因,因为在DR模型中RS1、RS2在lo:0上都配置了VIP的地址,是为了在数据包响应用户的时候源地址为用户访问的VIP地址,但是在数据包进入路由器之后,在我们的内网中有多个VIP地址,路由器将不能将其转发到应该得到数据包的ND上,为了避免这种情况出现,我们就修改内核参数来让RS上的VIP网卡不对路由器的产生响应即可。
                 echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
                 echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
                 echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
                 echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce

(2)为RS1配置虚拟的VIP地址(是为了实现在数据包返回用户的时候源地址为用户访问的地址) 
 ifconfig lo:0 192.168.0.85 broadcast 192.168.0.85 netmask 255.255.255.255 up
 为RS1的eth0网卡添加地址
 ifconfig eth0 192.168.0.207/24

      (2)、为RS1配置虚拟的VIP地址(是为了实现在数据包返回用户的时候源地址为用户访问的地址)
                 ifconfig lo:0 192.168.0.85 broadcast 192.168.0.85 netmask 255.255.255.255 up
                   为RS1的eth0网卡添加地址
                 ifconfig eth0 192.168.0.206/24

(3)给realserver主机添加路由信息
 route add -host 192.168.0.85 dev lo:0 设定相应的数据包的源地址都为这个地址

      (3)、给realserver主机添加路由信息
                route add -host 192.168.0.85 dev lo:0  设定相应的数据包的源地址都为这个地址

(4)为RS1安装web服务
 yum install php php-mbstring mysql mysql-server httpd php-mysql
(5)为实现结果为web指定一个有其代号的网页
 echo RS1 > /var/www/html/index.html

      (4)、为RS1安装web服务
                yum install php php-mbstring mysql mysql-server httpd php-mysql 
      (5)、为实现结果为web指定一个有其代号的网页,并写一个有ok的测试网页
                echo RS1 > /var/www/html/index.html
                echo ok > /var/www/html/.ok.html

(6)测试httpd服务能否正常运行,测试结果如下:   

      (6)、测试httpd服务能否正常运行,测试结果如下:

      
         图片 3

 

二、对两个Director节点进行配置:

 图片 4

   配置两个Director节点,ND1为node1,ND2为node2
1、给node1配置地址 
   ifconfig eth0 192.168.0.202/24 
   ifconfig eth1 1.1.1.1
   给noid2配置地址 
   ifconfig eth0 192.168.0.204/24
   ifconfig eth1 1.1.1.2
2、配置本地主机名称解析

      2、对RS2进行配置
          (1)、RS2的eth0端口配置
                   ifconfig eth0 192.168.0.207/24
          (2)、写入网页
                   echo RS2 > /var/www/html/index.html
           其他配置和RS1完全一样,不再演示:
           对RS2的web服务进行验证,结果如下:
            图片 5   

   在node1上
   vim /etc/hosts 添加如下内容
   192.168.0.202 node1.a.org 
   192.168.0.204 node2.a.org

图片 6

对node1、node2的主机名进行相应的修改
在node1上
 hostname node1.a.org
在node2上 
 hostname node2.a.org

 3、只有我们要多次在连个节点间拷贝文件,为了省去繁琐的密码输入,我们在两个节点上进行如下配置

在node1上
ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.0.204
在node2上
ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub root@192.168.0.202
从此我们在两个节点上拷贝文件就不需要输入密码了

图片 7

本文由今晚买四不像发布于今晚买四不像计算,转载请注明出处:手动实现高可用LVS的资源转移,一步步教你为L

关键词: