1010cc时时彩标准版 > 1010cc三分网站 > LVS调整算法,Server的AlwaysOn协助别本

原标题:LVS调整算法,Server的AlwaysOn协助别本

浏览次数:138 时间:2019-08-15

接纳HAProxy代理SQL Server的AlwaysOn帮衬别本

供销合作社前段时间数据库进级到SQL Server二零一五 ,并陈设了alwayson高可用集群

机房间里有三套程序须要读取数据库

1010cc时时彩标准版,首先套:主程序,读写数据库,连接主别本

其次套:报表程序,读报表,连接协助别本

其三套:历史库程序,读历史库,连接支持别本

 

软件条件

1010cc时时彩标准版 1

机器情形

1010cc时时彩标准版 2

 

架构图

1010cc时时彩标准版 3

为什麽要求运用HAProxy?

前边机房里面有三千个终端,这么些极端是一个十分小的嵌入式设备,第二套报表程序原本是行使直连数据库IP(10.11.10.36)来三回九转数据库

但这么有三个弊病,当36那台帮助副本宕机,那么报表程序就瘫痪了,因为两千个终端要更换数据库连接供给烧写程序到终端里面特别耗时

或是要几天时间

 

最后决定运用HAProxy做负载均衡和TCP连接重定向

使用HAProxy有多少个好处

1、前端无需后端数据库的实际上IP,当必要升高后端数据库,举个例子打补丁的时候特意有益

2、HAProxy能够自动物检疫验后端数据库服务,探测1433端口是还是不是存活,即使1433端口出难点,能够活动重定向连接到37那台扶助别本

3、缓慢解决单台读库压力,使用帕杰罗奥德赛轮询算法,供给均衡分发到36和37这两台帮衬别本,缓慢化解36那台机械的压力

1010cc时时彩标准版 4

 

 


HAProxy相关配置步骤

 

#yum安装,版本是1.5.4

yum install -y haproxy.x86_64

 

 

#编辑rsyslog 文件,修改为-c 2 -r -x -m

vi /etc/sysconfig/rsyslog
SYSLOGD_OPTIONS="-c 2 -m 0 -r -x"

 

 

#编纂rsyslog.conf 文件增多两行local3.*  和local0.*

vi /etc/rsyslog.conf
local7.*                                                /var/log/boot.log
local3.*                                                /var/log/haproxy.log
local0.*                                               /var/log/haproxy.log

 

 

 

#重启rsyslog服务

service rsyslog restart

 

 

# 编辑haproxy配置文件 上面以mssql从库负载均衡为例

vi /etc/haproxy/haproxy.cfg

global
log 127.0.0.1 local2 
chroot /var/lib/haproxy 
pidfile /var/run/haproxy.pid 
maxconn 6000 
user haproxy 
group haproxy 
daemon 
#stats socket /var/lib/haproxy/stats     
stats socket /var/run/haproxy.sock mode 666 level admin
stats timeout 2m


defaults 
mode http 
log                 127.0.0.1:514       local3                     
option                  dontlognull
#option http-server-close
#option forwardfor       except 127.0.0.0/8
option redispatch
retries 3 
timeout http-request 10s 
timeout connect 10s 
timeout client 1m 
timeout server 1m 
timeout http-keep-alive 10s
timeout check 10s
maxconn 6000





listen stats 
mode http
bind *:2080
stats enable
stats refresh 30s
stats uri /haproxyadminstats
stats realm HAProxy Statistics
stats auth admin:admin
stats admin if TRUE


listen mssql :1433
mode tcp
balance roundrobin
server mssqldb1 10.11.10.36:1433 weight 1 maxconn 6000 check port 1433 inter 2000 rise 2 fall 2
server mssqldb2 10.11.10.37:1433 weight 1 maxconn 6000 check port 1433 inter 2000 rise 2 fall 2

 

 

#检查安排文件是或不是有语法错误

haproxy -f /etc/haproxy/haproxy.cfg -c
Configuration file is valid

 

#启动haproxy

/etc/init.d/haproxy start

 

 

#检查haproxy是不是在监听

netstat -lntp

 

瞩目:Centos机器只需求采纳一个网口,无需拾分增添网口

1010cc时时彩标准版 5

#张开后台管理界面

 

HAProxy提供了一个后台管理分界面

1010cc时时彩标准版 6

 

查看haproxy的日志

cat /var/log/haproxy.log

1010cc时时彩标准版 7


测量试验申明

使用SSMS2016来连接HAProxy的IP

10.11.10.39

1010cc时时彩标准版 8

当今是接连到GZC-SQL03那台机

 

这几天把 GZC-SQL03这台机的SQL服务停了

1010cc时时彩标准版 9

HAProxy已经探测到 GZC-SQL03那台机的SQL服务停了

1010cc时时彩标准版 10

 再度点击一下试行开关,能够窥见早就重定向到 GZC-SQL02那台机

1010cc时时彩标准版 11

 

 

尽管通过HAProxy这一层,可是质量方面也不算太差

1010cc时时彩标准版 12


 

HAProxy的通信格局

通讯格局邻近于LVS的NAT情势

LVS的NAT情势(调整器将呼吁的靶子ip即vip地址改为Real server的ip, 重返的数额包也通过调整器,调解器再把源地址修改为vip)

1010cc时时彩标准版 13

1010cc时时彩标准版 14

 

 


总结

线上碰到使用HAProxy已经基本上1个月,到明天并未出现过难题,相比牢固

对于HAProxy原理上的事物这里就不陈诉了,英特网有相当多资料

 

参照他事他说加以考察文章:

 

借使是每一种事情使用不一致端口,能够利用上面的配置文件

比如说报表使用1433端口,BI抽出数据采用2433端口

vi /etc/haproxy/haproxy.cfg
global
    log         127.0.0.1 local2 
    chroot      /var/lib/haproxy       
    pidfile     /var/run/haproxy.pid     
    maxconn     6000                               
    user        haproxy           
    group       haproxy           
    daemon
    #stats socket /var/lib/haproxy/stats 
    stats socket /var/run/haproxy.sock mode 666 level admin
    stats timeout 2m




defaults         
    mode                    http               
    log                     global                         
    option                  dontlognull
    option http-server-close
    option forwardfor       except 127.0.0.0/8
    option                  redispatch
    retries                 3                 
    timeout http-request    10s        
    timeout connect         10s               
    timeout client          1m                 
    timeout server          1m                 
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 6000               





listen stats     
    mode http
    bind *:2080
    stats enable
    stats refresh 30s
    stats uri   /haproxyadminstats
    stats realm  HAProxy Statistics
    stats auth   admin:admin
    stats admin if TRUE


listen mssql :1433
    mode tcp
    balance roundrobin
    server mssqldb1 10.11.10.36:1433  weight 1 maxconn 6000 check port 1433 inter 2000  rise 2 fall 2
    server mssqldb2 10.11.10.37:1433  weight 1 maxconn 6000 check port 1433 inter 2000  rise 2 fall 2


listen mssql2 :2433
    mode tcp
    balance leastconn
    server mssqldb3 10.11.10.37:1433   maxconn 6000 check port 1433 inter 2000  rise 2 fall 2

 

 

如有不对的地方,迎接我们拍砖o(∩_∩)o 

正文版权归我全体,未经小编同意不得转发。

LVS NAT形式搭建

预备专门的工作

  • 三台机器
  • 分发器,也叫调解器(简写为dir)
  • 内网:133.130,外网:142.147(vmware仅主机情势)
  • rs1
  • 内网:133.132,设置网关为133.130
  • rs2
  • 内网:133.133,设置网关为133.130
  • 三台机械上都实践执行
  • systemctl stop firewalld; systemc disable firewalld
  • systemctl start iptables-services; iptables -F; service iptables save

NAT情势搭建

  • 在dir上安装ipvsadm
  • yum install -y ipvsdam
  • 在dir上编写制定脚本,vim /usr/local/sbin/lvs_nat.sh//内容如下
#! /bin/bash
# director 服务器上开启路由转发功能
echo 1 > /proc/sys/net/ipv4/ip_forward
# 关闭icmp的重定向
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/default/send_redirects
# 注意区分网卡名字,阿铭的两个网卡分别为ens33和ens37
echo 0 > /proc/sys/net/ipv4/conf/ens33/send_redirects
echo 0 > /proc/sys/net/ipv4/conf/ens37/send_redirects
# director 设置nat防火墙
iptables -t nat -F
iptables -t nat -X
iptables -t nat -A POSTROUTING -s 192.168.133.0/24  -j MASQUERADE
# director设置ipvsadm
IPVSADM='/usr/sbin/ipvsadm'
$IPVSADM -C
$IPVSADM -A -t 192.168.147.144:80 -s wlc -p 3
$IPVSADM -a -t 192.168.147.144:80 -r 192.168.133.132:80 -m -w 1
$IPVSADM -a -t 192.168.147.144:80 -r 192.168.133.133:80 -m -w 1

NAT形式功效测量试验

  • 两台rs上都安装nginx
  • 设置两台rs的主页,做一个区分,也便是说直接curl两台rs的ip时,拿到不一样的结果
  • 浏览器里拜见192.168.142.147,多访谈五遍看结果差别

早为之所三台机器,一台作为分发器(内网:133.130,外网:142.147),其余两台是real server,分别为rs1(内网:133.132,网关为133.130)和rs2(内网:133.133,网关为133.130)

分发器扩大一块网卡,查看网卡网段,所以设置IP192.168.142.147

1010cc时时彩标准版 15

1010cc时时彩标准版 16

1010cc时时彩标准版 17

然后查看是或不是ping通

1010cc时时彩标准版 18

三台机器配置好驾驭后,全体亟需关闭防火墙

1010cc时时彩标准版 19

然后在rs1,rs2上安装iptables-services包,启动iptables服务

1010cc时时彩标准版 20

 systemctl start iptables
 systemctl enable iptables

接下来调用新准绳,避防私下认可准绳影响实验效果;最终关闭selinux,最佳修改下安顿文件

1010cc时时彩标准版 21

1010cc时时彩标准版 22

1010cc时时彩标准版 23

安装ipvsadm工具

1010cc时时彩标准版 24

下一场编写脚本,vim /usr/local/sbin/lvs_nat.sh,保存退出;然后实施该脚本sh /usr/local/sbin/lvs_nat.sh,脚本无输出表示无不当

1010cc时时彩标准版 25

$IPVSADM -A -t 192.168.147.144:80 -s rr -p 3 #-A:=add,增多准绳;-t:=tcp;-s 钦点算法; -p:钦赐超时时间

在rs1和rs2上安装nginx,并分别修改主页内容

1010cc时时彩标准版 26

1010cc时时彩标准版 27

然后能够做测量试验,如下表示测量检验成功

1010cc时时彩标准版 28

  • 给haproxy 加多日记:
    haproxy的日志必要开辟才可以查阅,一般haproxy会将日志输出到系统日志中。haproxy 日志配置步骤如下:
    1. vim /etc/rsyslog.conf
      添加local0.* /var/log/haproxy.log
      那边对路径要是退换为/home/xinz/haproxytest/log目录下,
      是因为rsyslog暗中同意情形下,未有访谈home目录下的权力,
      能够参谋:You can generate a local policy module to allow this access.Doallow this access for now by executing:# grep rsyslogd /var/log/audit/audit.log | audit2allow -M mypol# semodule -i mypol.pp2.rsyslog
    2. 默许情状下,必要在514端口监听UDP,
      所以能够把/etc/rsyslog.conf如下的注释去掉
      $ModLoad imudp
      $UDPServerRun 514
    3. 重启 rsyslog
      service rsyslog restart
      service rsyslog status
    4. 配置Haproxy.conf代码
      global
      log 127.0.0.1 local0 info
    5. 日志输出在/var/log/haproxy.log下

③leastconn,表示最少连接者先拍卖,提议关怀;

LVS NAT模式

1010cc时时彩标准版 29

  • 借助iptables的nat表来完毕
  • 用户的呼吁到分发器后,通过预设的iptables法则,把央求的多少包转载到后端的rs上去
  • rs供给设定网关为分发器的内网ip
  • 用户乞请的数据包和重临给用户的数额包全数经过分发器,所以分发器成为瓶颈
  • 在nat形式中,只供给分发器有公网ip就能够,所以相比较节省公网ip财富

11 增添haproxy 用户和用户组

# vim /etc/sysconfig/rsyslog

LVS介绍

  • LVS是由国人章文嵩开垦
  • 流行度不亚于apache的httpd,基于TCP/IP做的路由和转载,稳固性和功能相当高
  • LVS最新版本基于Linux内核2.6,有近来不立异了
  • LVS有三种常见的方式:NAT、DLX570、IP Tunnel
  • LVS架构中有贰个为主剧中人物叫做分发器(Load balance),它用来散发用户的呼吁,还有好些个甩卖用户央浼的服务器(Real Server,简称rs)
groupadd haproxy #添加haproxy组
useradd -g haproxy haproxy -s /bin/false #创建nginx运行账户haproxy并加入到haproxy组,不允许haproxy用户直接登录系统

option httpchk HEAD / HTTP/1.0

负载均衡集群介绍

  • 主流开源软件LVS、keepalived、haproxy、nginx等
  • 个中LVS属于4层(互连网OSI 7层模型),nginx属于7层,haproxy不仅能够认为是4层,也足以看成7层使用
  • keepalived的载荷均衡功效实在正是lvs
  • lvs这种4层的载荷均衡是足以分发TCP协议,web服务是80端口,除了分发80端口,还应该有其余的端口通讯的,举例MySQL的负载均衡,就能够用LVS达成,而nginx仅仅支持http,https,mail,haproxy;haproxy也支撑MySQL这种TCP负载均衡的
  • 相比较的话,LVS这种4层的更安定,能承受更加多的伏乞,承载的并发量越来越高,而nginx这种7层的进一步灵活,能落到实处越多的性子化须要
/data/haproxy/sbin/haproxy -f /data/haproxy/conf/haproxy.cfg

7、HAProxy的载荷均衡算法以后也尤为多了,具体有如下8种:

扩展

lvs 二种情势详解

lvs二种算法

关于arp_ignore和 arp_announce

lvs原理相关的

12 启动

vim  /etc/rsyslog.conf  

LVS DR模式

1010cc时时彩标准版 30

  • 这种格局,也亟需有二个集体的IP配置在分发器和装有rs上,约等于vip
  • 和IP Tunnel不一样的是,它会把数据包的MAC地址修改为rs的MAC地址
  • rs接收数据包后,会回涨原始数据包,这样目的IP为vip,因为有着rs上计划了那么些vip,所以它会感到是它本身
  • 介绍
    1. HAProxy是支撑设想主机的,通过frontend指令来促成
    2. 能够填补Nginx的局地缺点比如Session的维系,Cookie的辅导等专业
    3. 协助url检查测验后端的服务器出难题的质量评定会有很好的扶植。
    4. 它跟LVS同样,自身只是就只是一款负载均衡软件;单纯从功效上来说HAProxy更会比Nginx有更了不起的负载均衡速度,在出现管理上也可以有过之而无不如Nginx的。
    5. HAProxy能够对Mysql读进行负荷均衡,对后端的MySQL节点举办质量评定和负载均衡,可是在后端的MySQL slaves数量超越10台时质量不比LVS,所以本人向大家推荐LVS Keepalived。
    6. 能对供给的url和header中的音讯做协作,有比lvs有越来越好的7层达成
    7. HAProxy的负载均衡算法未来也进一步多了,具体有如下8种:
      ① roundrobin,表示简单的轮询,这么些非常少说,那么些是负载均衡基本都富有的;
      ②static-rr,表示依照权重,建议关怀;
      ③leastconn,表示最少连接者先拍卖,提出关怀;
      ④source,表示依据央求源IP,那些跟Nginx的IP_hash机制类似,大家用其用作消除session难题的一种艺术
      ⑤ri,表示依据哀告的U奇骏I;
      ⑥rl_param,表示依照诉求的U奇骏l参数'balance url_param' requires an URL parameter name;
      ⑦hdr(name),表示依照HTTP央浼头来锁定每便HTTP央求;
      ⑧rdp-cookie(name),表示依照据cookie(name)来锁定并哈希每二遍TCP央浼。
  • 安装
    1 下载链接
    2 tar -zxvf haproxy-version.tar.gz
    3 cd haproxy-version
    4 uname -a
    Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Oct 29 17:29:29 EDT 2015 x86_64 x86_64 x86_64 GNU/Linux
    5 make TARGET=linux31
    6 make install PREFIX=/data/haproxy
    7 cd /data/haproxy
    8 mkdir conf
    9 cd conf
    9 touch haproxy.conf
    10 vim haproxy.conf
  • 配置haproxy.conf

2、能够填补Nginx的一些败笔比方Session的维系,Cookie的教导等专门的学问

④source,表示依照乞求源IP,这一个跟Nginx的IP_hash机制类似,大家用其用作消除session难点的一种艺术

LVS IP Tunnel模式

1010cc时时彩标准版 31

  • 这种方式,必要有三个公家的IP配置在分发器和持有rs上,我们把它称为vip
  • 客户端哀告的靶子IP为vip,分发器接收到需要数据包后,会对数据包做二个加工,会把目标IP改为rs的IP,那样数据包就到了rs上
  • rs接收数据包后,会借尸还魂原始数据包,那样目的IP为vip,因为有着rs上安排了这么些vip,所以它会认为是它和煦
global
    # 定义每个haproxy进程的最大连接数 
    maxconn 40000
    daemon
    user haproxy
    group haproxy
    # 定义haproxy的pid,定义haproxy pid文件存放位置
    pidfile /data/haproxy/h.pid
    log 127.0.0.1:514 local2
defaults
    log     global
    mode    http
    option  httplog
    option dontlognull
    no option log-health-checks
    no option dontlog-normal
    option log-separate-errors

    # add X-Forwarded-For: IP
    option forwardfor

    balance roundrobin

    hash-type consistent

    timeout connect             10000
    timeout queue               1000
    timeout tarpit              12000
    timeout client              120000
    timeout server              120000
    timeout http-request        120000
    timeout http-keep-alive     120000
    timeout check               3000
    grace               3000
frontend h_9999
    maxconn     60000
    bind 0.0.0.0:9999
    use_backend weixin_server
# 这里定义你要代理的服务器
backend weixin_server
    balance         roundrobin
    log                global
    cookie          SERVERID
    server          db_test_155_8888          10.1.3.155:8888     check inter 2000 fall 3

server www1 192.168.1.198:80 cookie www1check inter 2000 rise 30 fall 15

LVS调解算法

  • 轮询 Round-Robin rr
  • 加权轮询 Weight Round-罗布in wrr
  • 细微连接 Least-Connection lc
  • 加权最小连接 Weight Least-Connection wlc
  • 依据局地性的细小连接 Locality-Based Least Connections lblc
  • 带复制的基于局地性最小连接 Locality-Based Least Connections with Replication lblcr
  • 对象地点散列调整 Destination Hashing dh
  • 源地址散列调治 Source Hashing sh

常用的算法是前多种

1.在client增加cookie

当今用HAProxy主要在于它有以下优点,这里笔者总括下:

option forwardfor

⑥rl_param,表示依照须求的U宝马7系l参数'balance url_param' requires an URL parameter name;

SYSLOGD_OPTIONS=”-c2-r-m0″

haproxy在暗中认可情形不会记录日志,除了在haproxy.conf中的global段钦定日志的输出外,还索要配备系统日志的安插文件

本文由1010cc时时彩标准版发布于1010cc三分网站,转载请注明出处:LVS调整算法,Server的AlwaysOn协助别本

关键词:

上一篇:1010cc时时彩标准版sqlyog高端应用,MySQL学习进级

下一篇:没有了