• ADADADADAD

    LVS+keepalived的安装部署怎么完成mysql的负载均衡[ mysql数据库 ]

    mysql数据库 时间:2024-11-26 22:11:24

    作者:文/会员上传

    简介:

    试验环境: LVS1:192.168.9.27LVS2:192.168.9.28keepalived 的VIP:192.168.9.230要分发的mysql1: 192.168.9.29要分发的mysql2:192.168.9.30具体安装步骤:#下载ipvsadm (也就是LVS

    以下为本文的正文内容,内容仅供参考!本站为公益性网站,复制本文以及下载DOC文档全部免费。

    试验环境:

    LVS1:192.168.9.27

    LVS2:192.168.9.28

    keepalived 的VIP:192.168.9.230

    要分发的mysql1: 192.168.9.29

    要分发的mysql2:192.168.9.30

    具体安装步骤:

    #下载ipvsadm (也就是LVS程序包)

    wgethttp://www.linuxvirtualserver.org/software/kernel-2.6/ipvsadm-1.24.tar.gz

    #解压

    [root@lvs-a~]#tar -zxf ipvsadm-1.24.tar.gz

    #进入该ipvsadm目录

    [root@lvs-a~]#cd /usr/local/ipvsadm-1.24

    #安装开发包及库文件

    [root@lvs-aipvsadm-1.24]##yum install zlib-devel gcc gcc-c++ openssl-devel pcre-devel libtool kernel-devel ncurses-devel -y

    #创建内核连接

    [root@lvs-aipvsadm-1.24]#ln -sv /usr/src/kernels/2.6.18-194.el5-i686/ /usr/src/linux#(2.6.18-194.el5-i686)根据系统版本修改。

    #编译安装

    [root@lvs-aipvsadm-1.24]#make;make install

    #进入目录

    [root@lvs-a~]#cd /usr/local/

    #下载keepalived

    wget http://www.keepalived.org/software/keepalived-1.1.17.tar.gz

    #解压

    [root@lvs-aipvsadm-1.24]#tar -zxf keepalived-1.2.12.tar.gz

    #进入该keepalived目录

    [root@lvs-a~]cd keepalived-1.2.12

    #编译安装

    [root@lvs-akeepalived-1.2.12]#./configure --prefix=/usr/local/keepalived#这里编译完后面显示三个yes,说明编译成功,否则安装不成功。

    #以下为1.2.12版本./configure结果如下

    #如果为1.1.17版本./configure结果如下

    [root@lvs-akeepalived-1.2.12]#make

    [root@lvs-akeepalived-1.2.12]#make install

    #复制启动文件

    [root@lvs-akeepalived-1.2.12]#cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/init.d/##这样才能用service keepalived 的命令。

    #复制命令文件

    [root@lvs-akeepalived-1.2.12]#cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

    #复制【配置文件

    [root@lvs-akeepalived-1.2.12]#cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/

    #新建主配置文件目录

    [root@lvs-akeepalived-1.2.12]#mkdir -p /etc/keepalived

    #编辑配置文件LVS1

    [root@lvs-asysconfig]#vim /etc/keepalived/keepalived.conf
    !ConfigurationFileforkeepalived

    global_defs{
    router_idlvs
    }

    vrrp_sync_grouphttp{#设置vrrp组,随便起名字,
    group{
    mysql###随便起的名字
    }
    }

    vrrp_instanceapache{###定义一个vrrp实例
    stateMASTER#设置lvs的状态,MASTER和BACKUP两种,必须大写,主节点master,从节点backup
    interfaceeth0#设置对外服务的接口,也就是/LVS监控的网络接口
    virtual_router_id01#设置lvs监听的接口,同一实例下virtual_router_id必须相同,随便起名字
    priority500 ##设置优先级,数值越大,优先级越高 ,也就是主节点的这个值大
    advert_int1 ##//MASTER与BACKUP负载均衡器之间同步检查的时间间隔,单位是秒

    authentication{ #设置验证类型和密码
    auth_typePASS
    auth_passaabb##密码
    }
    virtual_ipaddress{ ##设置keepalived的VIP
    192.168.9.230 #如果有多个,往下加就行了

    #192.168.9.231

    #192.168.9.232

    }

    }

    virtual_server192.168.9.2303306{ ##定义虚拟服务器
    delay_loop6 #健康检查时间,单位是秒。
    lb_algorr #负载调度算法,这里设置为rr,即轮询算法
    lb_kindDR #LVS实现负载均衡的机制,可以有NAT、TUN和DR三个模式可选
    nat_mask255.255.255.0 #可以不填写这个参数,
    #persistence_timeout50
    protocolTCP

    real_server192.168.9.293306{ ##要分发的目标服务器IP,
    weight1#设置权重,也就是分发的次数,这里表示每个分发一次,
    TCP_CHECK{ #通过tcpcheck判断RealServer的健康状态
    connect_timeout3##连接超时时间

    #nb_get_retry 3#重连次数,有默认值
    #delay_before_retry 3#重连间隔时间 有默认值
    connect_port3306
    }
    }
    real_server192.168.9.303306{
    weight1
    TCP_CHECK{
    connect_timeout3
    connect_port3306
    }
    }
    }

    #配置完成重启keepalived

    [root@lvs-asysconfig]#service keepalived restart

    #添加自己的网关

    [root@lvs-anetwork-scripts]#route add -host 192.168.9.254 dev eth0


    #安装keepalived同lvs1相同

    #安装keepalived后配置LVS2,配置如下:

    [root@lvs-b~]#cat/etc/keepalived/keepalived.conf

    !ConfigurationFileforkeepalived

    global_defs{
    router_idlvs
    }

    vrrp_sync_grouphttp{
    group{
    mysql
    }
    }

    vrrp_instanceapache{
    stateBACKUP
    interfaceeth0
    virtual_router_id01
    priority400
    advert_int1
    #nopreempt
    authentication{
    auth_typePASS
    auth_passaabb
    }
    virtual_ipaddress{
    192.168.9.230
    }
    }

    virtual_server192.168.9.2303306{
    delay_loop6
    lb_algorr
    lb_kindDR
    nat_mask255.255.255.0
    #persistence_timeout50
    protocolTCP

    real_server192.168.9.293306{
    weight1
    TCP_CHECK{
    connect_timeout3
    connect_port3306
    }
    }
    real_server192.168.9.303306{
    weight1
    TCP_CHECK{
    connect_timeout3
    connect_port3306
    }
    }
    }

    #配置完成重启keepalived

    service keepalived restart

    #添加自己的网关

    route add -host 192.168.9.254 dev eth0

    #查看

    route -n

    #查看分发结果

    Ipvsadm -ln

    #清除分发

    Ipvsadm -C

    #查看虚拟ip(VIP)

    Ip addr

    #配置mysql-realserver1 在192.168.9.29上执行:

    [root@lvs-a~]#ifconfig lo:0 192.168.9.230 netmask 255.255.255.0 broadcast192.168.9.230up##设置的一个临时的IP

    设置到主机的路由

    [root@lvs-b~]#route add -host 192.168.9.230 dev lo:0

    设置默认路由

    [root@lvs-b~]#route add default gw 192.168.9.137

    保证arp协议在连接过程中,路由器上,只知道网络中192.168.9.230对应的是分发器

    [root@lvs-b~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

    [root@lvs-b~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

    #配置mysql-realserver2 在192.168.9.30上执行:

    [root@lvs-a~]#ifconfig lo:0 192.168.9.230 netmask 255.255.255.0 broadcast192.168.9.230up

    设置到主机的路由

    [root@lvs-a~]#route add -host 192.168.9.230 dev lo:0

    设置默认路由

    [root@lvs-a~]#route add default gw 192.168.153.137

    保证arp协议在连接过程中,路由器上,只知道网络中192.168.9.230对应的是分发器

    [root@lvs-a~]#echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore

    [root@lvs-a~]#echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce

    #两台mysql-realserver配置完成后启动分别mysql

    Service mysqld start

    LVS分发测试:

    1,在 mysql-realserver1(192.168.9.29)创建一个名字叫做slave1的数据库:

    mysql> create database slave1;

    Query OK, 1 row affected (0.00 sec)

    2,在mysql-realserver2 (192.168.9.30)上创建一个名字叫做slave2的数据库:

    mysql> create database slave2 ;

    Query OK, 1 row affected (0.00 sec)

    3,在一台能ping通mysql-realserver1和mysql-realserver2的机器上执行(注意不要在正在用着的lvs机器上执行,例如我现在lvs用着[root@lvs-a~]#这个机器,如果你在这里执行他会报错

    [root@lvs-a~]#mysql-uroot-pliuwenhe-h292.168.9.230-e'showdatabases';
    ERROR2003(HY000):Can'tconnecttoMySQLserveron'192.168.9.230'(111)
    Youhavenewmailin/var/spool/mail/root

    [root@lvs-b~]#mysql-uroot-pliuwenhe-h292.168.9.230-e'showdatabases';

    +--------------------+
    |Database|
    +--------------------+
    |information_schema|
    |he|
    |liuwenhe|
    |mysql|
    |performance_schema|
    |slave1|
    |test|
    +--------------------+
    [root@lvs-b~]#mysql-uroot-pliuwenhe-h292.168.9.230-e'showdatabases';
    +--------------------+
    |Database|
    +--------------------+
    |information_schema|
    |he|
    |liuwenhe|
    |mysql|
    |performance_schema|
    |slave2|
    |test|
    +--------------------+

    说明lvs分发成功。

    LVS+keepalived的安装部署怎么完成mysql的负载均衡.docx

    将本文的Word文档下载到电脑

    推荐度:

    下载
    热门标签: lvskeepalivedmysql