开发者社区> 余二五> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

centos6.8 x64安装keepalived-1.3.5+lvs

简介:
+关注继续查看

CentOS release 6.8 x64 (Final)2.6.32-642.4.2.el6.x86_64 安装keepalived-1.3.5+lvs

============

一、环境安装:

============

   1.依赖安装

1
2
3
4
yum install -y openssl-devel libnl3-devel ipset-devel iptables-devel libnfnetlink-devel popt*
  
   增加软连接
   ln -s /usr/src/kernels/`uname -r` /usr/src/linux

   2.5台机器IP设置

     LVS1: 172.16.0.100

     LVS2: 172.16.0.101

      VIP: 172.16.0.150

      WEB: 172.16.0.102

      WEB2:172.16.0.103

      web3:172.16.0.104(windows客户端IIS)

   3.关闭selinux  

   修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启服务器。

   4.关闭iptables,如果不关的话,需更具情况增加开放端口。

1
2
3
   #iptables -I INPUT -p tcp --dport 80 -j ACCEPT
   #iptables -I INPUT -p icmp -j ACCEPT
   #service iptables save

二、安装步骤(在LVS1.LVS2上安装):   

============

  1)安装lvs管理工具

1
2
3
4
5
6
  1.tar zxvf ipvsadm-1.26.tar.gz 
  2.cd ipvsadm-1.26
  3.'make'
  4.'make install'
  5.#ipvsadm
  6.lsmod | grep ip_vs

  

  2)安装keepalived软件

1
2
3
4
5
6
7
  1. tar zxvf keepalived-1.3.5.tar.gz 
  2. cd ikeepalived-1.3.5
  3. ./configure --prefix=/usr/local/keepalived --with-init=SYSV   
  #注:(upstart|systemd|SYSV|SUSE|openrc) 
  #根据系统选择对应的启动方式
  4. 'make'
  5. 'make install'.

  6.配置keepalived文件的路径

1
2
3
4
5
     cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/
     cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
     mkdir /etc/keepalived
     cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
     cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

  7.配置文件(vim /etc/keepalived/keepalived.conf)

     #这里是全局定义部分

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
global_defs {
   notification_email {
    root@local   #设置报警邮件单个或多个地址
   
   }
   notification_email_from server@local #邮件的发送地址
   smtp_server 127.0.0.1 #smtp 地址
   smtp_connect_timeout 30 #连接smtp服务器超时的实际
   router_id LVS_ONE   #路由ID两台机器不能相同。LVS2更改为不同
  vrrp_skip_check_adv_addr
    # vrrp_strict  #严格执行VRRP协议规范,此模式不支持节点单播.
    #且重启keepalived服务,会自动启动iptables,原计划打算关闭iptables,
    #但测试发现,多次(通过命令service iptables stop且chkconfig iptables off,)
    #将iptables关闭后,但启动或重启keepalived服务后,自动又启动起来iptables,
    #且自加了一条把VIP地址DROP掉的规则。导致VIP查不到,ping不通.默认安装时自带配置
    #含有此选项。所以建议禁用此选项。
    vrrp_garp_interval 0
    vrrp_gna_interval 0
    
    
    
    
}
#vrrp 实例定义部分
vrrp_instance VI_1 {
    state MASTER  #keepalived 的角色 MASTER 表示主服务器。LVS2更改为:BACKUP
    interface eth0 #指定监测网卡
    virtual_router_id 51 #虚拟路由标示,相同实例,需相同标示。
    priority 150 #优先级 数字越大 优先级越高 MASTER的优先级高于BACKUP优先级(如master 150,backup 100)
    advert_int 1 #设定主备之间检查时间 单位s
    authentication {  #设定验证类型和密码
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress { #设定虚拟IP地址 可以设置多个 每行一个
       172.16.0.150/24 brd 172.16.0.255 dev eth0 label eth0:0 
    }
}
#虚拟服务器部分
virtual_server 172.16.0.150 80 {
    delay_loop 6 #设定运行情况检查时间 单位s
    lb_algo rr #负载调度算法 rr即轮叫算法
    lb_kind DR #设置LVS负载机制 NAT TUN DR 三种模式可选
    persistence_timeout 0  #会话时间
                            #会话保持在某个服务节点
                            #用户在动态页面50s内没有任何动作,那么后面就会被分发到其他节点
                            #用户一直动作,不受50s限制
    protocol TCP  #使用协议
    #以下为real_server部分
    real_server 172.16.0.102 80 {
        weight 1  #服务节点权值,数字越大,权值越高
                  #权值的大小可以为不同性能的服务器分配不同的负载
                  #这样才能有效合理的利用服务器资源
        TCP_CHECK {  #状态检查部分    
          connect_timeout 3 #3s无响应超时                                                     
          nb_get_retry 3  #重试次数
          delay_before_retry 3   #重试间隔
          connect_port 80 #连接端口                                                    
        }  
    }
    real_server 172.16.0.103 80 {
        weight 1  
        TCP_CHECK {  
          connect_timeout 3                                                  
          nb_get_retry 3  
          delay_before_retry 3   
          connect_port 80                                                 
        }  
    }
     real_server 172.16.0.104 80 {
        weight 1  
        TCP_CHECK {     
          connect_timeout 3                                                   
          nb_get_retry 3  
          delay_before_retry 3   
          connect_port 80                                                     
        }  
    }
}

三、客户端设置(web1,web2配置)

   1.增加启动关闭脚本,并chmod执行权限

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 #!/bin/bash  
#   
# Script to start LVS DR real server.   
# description: LVS DR real server   
#   
.  /etc/rc.d/init.d/functions
VIP=172.16.0.150 #修改相应的VIP  
host=`/bin/hostname`
case "$1" in  
start)   
       # 启动 LVS-DR 模式,real server on this machine. 关闭ARP冲突检测。
        /sbin/ifconfig lo down   
        /sbin/ifconfig lo up   
        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
        /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up  
        /sbin/route add -host $VIP dev lo:0
;;  
stop)
        #停止LVS-DR real server loopback device(s).  
        /sbin/ifconfig lo:0 down   
        echo 0 > /proc/sys/net/ipv4/conf/lo/arp_ignore   
        echo 0 > /proc/sys/net/ipv4/conf/lo/arp_announce   
        echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore   
        echo 0 > /proc/sys/net/ipv4/conf/all/arp_announce
;;  
status)
        # Status of LVS-DR real server.  
        islothere=`/sbin/ifconfig lo:0 | grep $VIP`   
        isrothere=`netstat -rn | grep "lo:0" grep $VIP`   
        if [ ! "$islothere" -o ! "isrothere" ];then   
            # Either the route or the lo:0 device   
            # not found.   
            echo "LVS-DR real server Stopped!"   
        else   
            echo "LVS-DR real server Running..."   
        fi   
;;   
*)   
            # Invalid entry.   
            echo "$0: Usage: $0 {start|status|stop}"   
            exit 1   
;;   
esac

  2.增加web http服务,使用80端口可以打开网站。

  3.测试服务器相互之间是否可以PING通。

  4.windows客户端增加VIP事项(web3机器):

  win2003地址设置方法:控制面板->添加硬件->添加新的硬件->手动安装硬件-》网络适配器

  wKiom1kugOzyUd6wAAASjw6Iehs850.png-wh_50

  重命名为VIP,增加IP地址172.16.0.104,掩码255.255.255.0

  打开regedit,编辑:subnetMask为255.255.255.255

      HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\Interfaces

  wKioL1kugW7ghZKQAAAkpchWWLk438.png-wh_50

  

  Win2008地址设置方法:控制面板-硬件和打印机->新增硬件

  找到新增的环回连接,重命名为VIP, 右键VIP连接属性,开始设置TCP/IP

        172.16.0.104  255.255.255.255.255 保存

        运行CMD执行:

1
2
3
4
    netsh interface ipv4 set interface "VIP" weakhostreceive=enabled
    netsh interface ipv4 set interface "VIP" weakhostsend=enabled
    netsh interface ipv4 set interface "LAN" weakhostreceive=enabled
    netsh interface ipv4 set interface "LAN" weakhostsend=enabled

 

四、测试检查keepalived+lvs问题

   

   1、 查看系统日志 /var/log/messages 

   2、 检查负载均衡器的网络连通状况(ping命令或arping)。

   3、 检查 keepalived 的运行情况。ps -aux | grep keepalived查看是否进程启动。lsmod | grep ip_vs,检查ipvs 模块是否被加载到系统的内核,vip 是否被绑定到网络接口,ipvsadm 是否有输出。

   4、 检查 keepalived 的配置文件书写是否正确。

   5、 检查负载均衡器是否启用防火墙规则。

   6、 realserver的web是否正常










本文转自 lcpljc 51CTO博客,原文链接:http://blog.51cto.com/lcpljc/1930821,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
CentOS7安装VMware Tools
CentOS7安装VMware Tools 安装依赖包[root@localhost ~]# yum -y install perl gcc make kernel-headers kernel-devel 加载vmware tools 到CentOS7光驱CD-ROM点击菜单 虚拟机 ——> 安装VMware Tools(T).
3415 0
centos下安装jenkins
To use this repository, run the following command: sudo wget -O /etc/yum.repos.d/jenkins.
658 0
通过 pxe(网络安装)完成centos 系统的网络安装
首先交代环境。本地2台主机,一台windows主机,一台等待安装centos的主机。2台主机在同一个局域网。通过路由器自动获取ip上网。 网上大多数pxe安装方式都采用自己搭建dns服务器的方式来进行,but,我们的dns服务器就是一个小破路由器,自然是做不来这个事情。
1234 0
docker在windows,centos中的安装
centos安装方式,采用阿里云的镜像和安装脚本 或者到https://store.docker.com/search?type=edition&offering=community下载相应系统的安装包安装 #安装docker客户端 curl -sSL http://acs-public-mirror.
753 0
node 和git 在linux(centos) 上的安装
1、 wget命令下载Node.js安装包。  (该安装包是编译好的文件,解压之后,在bin文件夹中就已存在node和npm,无需重复编译。) wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz 2、 解压文件。
989 0
CentOS升级Python2.7导致使用pip等命令安装模块失败
报错如下: # pip Traceback (most recent call last): File "/usr/bin/pip", line 5, in from pkg_resources import load_entry_point ImportError: N...
2160 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载