我们专注攀枝花网站设计 攀枝花网站制作 攀枝花网站建设
成都网站建设公司服务热线:400-028-6601

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

keepalived+lvs配置详解-创新互联

安装:

创新互联建站提供网站建设、成都做网站、网页设计,成都品牌网站建设一元广告等致力于企业网站建设与公司网站制作,10余年的网站开发和建站经验,助力企业信息化建设,成功案例突破成百上千家,是您实现网站建设的好选择.

tar -zxvf keepalived-1.2.2.tar.gz

yum list all |grep "ipvsadm"

yum -y install kernel-devel openssl-develpopt-devel ipvsadm libnl libnl-devel

service iptables stop

setenforce 0

./configure --prefix=/--with-kernel-dir=/usr/src/kernels/2.6.32-431.el6.x86_64 && make&& make install

添加系统服务:

chkconfig --add keepalived  添加后可以使用service、chkconfig工具管理keepalived服务

chkconfig keepalived on           on级别为2、3、4

chkconfig --list keepalived       查看2、3、4级别是否开启

全局配置文件:

global_defs {

  notification_email {

    acassen@firewall.loc

    failover@firewall.loc

    sysadmin@firewall.loc

  }

  notification_email_from Alexandre.Cassen@firewall.loc

  smtp_server 192.168.1.1

  smtp_connect_timeout 30

  router_id LVS_master

}

vrrp_script check_httpd {

#vrrp_script模块专门用于对集群中服务资源进行监控(HA集群监控)。于此模块一起使用的还有track_script模块,track_script模块主要是调用vrrp_script模块。还可以检查端口、shell语句检查、脚本检查。在附录下面演示

script “killall –O httpd”

#用killall –O httpd 查看httpd服务返回状态,如果是零则表示运行正常,为1则表示运行异常。

interval 2

#检查的时间间隔,单位为秒。

}

Vrrp配置(keepalived高可用配置)实例:

vrrp_instance VI_1 {

#标识,vrrp实例开始的标识

state MASTER

#定义主备角色master和backup

interface eth0

#指定监听网卡

virtual_router_id51

#虚拟路由标识,此标识主备不许相同。

priority 100

#优先级。数字越大优先级越高,在同一个vrrp-instance下master必须比backup优先级大

advert_int 1

#设置master与backup之间同步检查的时间间隔,单位是秒

   authentication {

       auth_type PASS

       auth_pass 1111

        #设定master和backup验证类型(AH、PASS)和密码,主备密码一致才能通信。

}

notify_master “/etc/keep/master.sh”

notify_backup “/etc/keep/backup.sh”

notify_fault “/etc/keep/fault.sh”

#指定当keepalived进入master、backup、fault状态时执行到脚本。脚本举例在附录下。

track_script {

        check_httpd

}

#调用vrrp_script模块,check_httpd为vrrp_script模块后面跟的名字。

   virtual_ipaddress {

       192.168.1.250

#虚拟地址,可以设置多个。它是以ip address add的方式加入地址。

   }

#nopreempt

#不抢占功能,此功能只能用在state状态是backup的节点上,而且这个节点优先级要高于其他节点

#preempt_delay 300

#抢占延迟时间,单位是秒。例如:网络有抖动master节点向backup节点发送探测包不及时实际master节点没有问题,无需主备切换。重启服务或重启系统也是如此。

}

————————————————vrrp配置附录—————————————————

-----------------------------------vrrp配置附录--------------------------------------------

notify_master “/etc/keep/master.sh” 脚本实例如下:

#!/bin/bash

logfile=/var/log/keep/keep-http-statsu.log

echo “[MASTER]” >>$logfile

date >> $logfile

backup.sh和fault.sh 略过。

端口检查:

vrrp_script check_httpd {

script “

#这个方式是定义了对本机的80端口的状态检查。

interval 2

#检查的时间间隔,单位为秒。

fall 2

#表示检查到失败的大次数

rise 1

#表示检查到一次成功,则认为节点恢复正常。

}

shell语句检查:

vrrp_script check_httpd {

script “if [ -f /var/run/httpd/httpd.pid ];hten exit 0; else exit 1; fi”

# 检查pid文件是否存在,如果返回0表示正常,返回1则表示异常。

interval 2

#检查的时间间隔,单位为秒。

fall 2

#表示检查到失败的大次数

rise 1

#表示检查到一次成功,则认为节点恢复正常。

}

vrrp_script需要track_script模块调用我在演示时省略,但是不要忘记在vrrp_instance配置实例中调用。

------------------------------------------------------------------------------------------

LVS(负载均衡)配置实例:

virtual_server 192.168.1.250 {

#LVS配置实例已virtual_server表示开始

delay_loop 6

#设置健康检查的间隔,单位是秒。

lb_algo rr

#负载调度算法,有rr(轮巡)、wrr(加权轮询)、lc、wlc、lblc、sh、dh等

lb_kind NAT

#负载均衡机制,有NAT、TUN、DR。

nat_mask255.255.255.0

#不知道是什么意思,后续在查。

persistence_timeout50

#同一IP的连接50秒内被分配到同一台realserver

persistence_granularity255.255.255.0

#此选项是配合persistence_timeout,如果后面写的是4个255就代表单个ip,如果是255.255.255.0则代表客户端所在的整个网段的请求都会分配到同一台real_server上。

   protocol TCP

   #指定转发协议类型有tcp和udp。

sorry_server192.168.1.120 80

#相当一个备用节点,当所有real_server节点失效则启用备用节点

real_server192.168.1.108 80 {

# real_server段的开始标识,后面跟着的是后端节点真实ip地址。Ip和端口用空格分开。

       weight 1

                  #权重。数值越大权重越高。为性能高的节点分配高权重。合理使用节点

                  notify_up/root/keepalived/keepup.sh

                  notify_down/root/keepalived/keepdown.sh

                  #表示在检测到real_server节点是up或是down时执行的脚本。

      HTTP_GET |SSL_GET {

                  #Http和SSL检测方式实例

           url {

                           #可以指定多个URL

             path /index.html

                                    #后面跟详细的路径

             digestff20ad2481f97b1754ef3e12ecd3a9cc

                                    #SSl检查后的摘要信息,这个摘要信息可以通过ganhash命令工具获取。例如:ganhash -s192.168.1.108 –p 80 –u /。

                            status_code 200

                           #返回的结果是200状态码。

           }

                           connect_port80

                           #健康检查的端口,如果不指定,默认是real_server指定的端口

                           bindto192.168.1.108

                           #通过此地址发送请求检查服务器健康状态。

           connect_timeout 3

                           #无响应时间,单位是秒。

           nb_get_retry 3

                           #重试次数

           delay_before_retry 3

                           #重试次数的间隔。

       }

   }

}

————————————————LVS配置附录—————————————————

-------------------------------------lvs配置附录------------------------------------------

除了HTTP_GET 、SSL_GET这两个real_server健康状态检查外还有TCP_CHECK、MISC_CHECK、SMTP_CHECK这三个。

接下来演示TCP_CHECK(端口检查)、MISC_CHECK(外部程序检查也就是脚本检查)

TCP_CHECK{

                           connect_port80

                           #健康检查的端口,如果不指定,默认是real_server指定的端口

           connect_timeout 3

                           #无响应时间,单位是秒。

           nb_get_retry 3

                           #重试次数

           delay_before_retry 3

                           #重试次数的间隔。

MISC_CHECK{

misc_path “/usr/local/bin/script.sh 1.1.1.180 http://www.baidu.com”

#指定脚本的执行路径,后面可以带参数。跟普通方式执行脚本相同。

misc_timeout 5

#设定脚本的超时时间

! misc_dynamic

#表示不启用节点动态调整real_server权重。

#如果启用并且返回码是零则表示检查正常,权重不变。如果是1则表示节点异常权重降为零。如果返回值是2-255之间的数字则用返回值减2。如:返回值是10,权重则是8(10-2)

/usr/local/bin/script.sh 脚本如下:

cat/usr/local/bin/check_squidproxy.sh  1.1.1.1  80  http://www.baidu.com

#!/bin/bash

 if [ $#-ne 3 ];then

  echo"Warning: check_command error."

  exit 1

else

  PROXY_IP=$1

  PROXY_PORT=$2

  CHECK_URL=$3

  CMD=`/usr/bin/curl-I -x ${PROXY_IP}:${PROXY_PORT} "${CHECK_URL}" 2>/dev/null | grep"200 OK" | wc -l`

  if [ ${CMD} -ne 1];then

    echo"CRITCAL: check proxy ${PROXY_IP} failed."

    exit 1

  else

    echo"OK: check proxy ${PROXY_IP} OK."

    echo0

  fi

fi

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


当前标题:keepalived+lvs配置详解-创新互联
标题来源:http://mswzjz.cn/article/djddsc.html

其他资讯