【有源码如何建站】【Xx站网站源码】【源码qq业务乐园】keepalived源码advert

时间:2024-12-24 04:34:32 编辑:有链源码 来源:nt源码

1.haproxy+keepalived负载均衡之主备切换
2.MySQL实现三节点高可用集群方案mysql三台高可用
3.Keepalived工作原理

keepalived源码advert

haproxy+keepalived负载均衡之主备切换

       VIP: ..1.

       Master: ..1.

       Slave: ..1.

       真实IP:

       RIP1: ..1.

       RIP2: ..1.

以下为安装步骤

第一步:安装haproxy

        下载f,源码在mysqld部分添加以下选项:

       server-id = 1

       log_bin = /var/log/mysql/mysql-bin.log

       binlog_do_db = mydb

       接下来重启MySQL服务:

       sudo systemctl restart mysql

       然后在剩余节点上重复以上步骤,源码但这里的源码server-id值需要分别设置为2和3,并且不需要执行GRANT命令。源码

       4. 启用复制

       接下来需要在第一个节点上启动复制,源码有源码如何建站将日志流复制到其他节点。源码Xx站网站源码首先要查看MASTER状态:

       SHOW MASTER STATUS;

       记录下File和Position的源码值,然后切换到第二个节点并执行以下命令:

       CHANGE MASTER TO

        MASTER_HOST=’..1.1′,源码

        MASTER_USER=’replica’,

        MASTER_PASSWORD=’password’,

        MASTER_LOG_FILE=’binlog.′,

        MASTER_LOG_POS=;

       这里MASTER_HOST设置为第一个节点的IP地址,MASTER_LOG_FILE和MASTER_LOG_POS来自SHOW MASTER STATUS命令的源码输出。

       然后启动从节点的源码复制:

       START SLAVE;

       在第三个节点上重复以上步骤,将MASTER_HOST改为第一个节点的源码IP地址并执行START SLAVE命令。

       现在,源码所有节点都可以相互复制。源码源码qq业务乐园可以通过在任何一个节点上进行更改,源码然后查看其他节点是源码否成功复制来进行测试。

       5. 配置故障转移

       当一个节点宕机时,需要将其网址替换为一个其他节点的css图文列表源码网址。这可以通过使用keepalived实现。在此假设使用..1.4作为虚拟IP地址,第一台服务器将作为负载均衡器。

       在第一台服务器上安装keepalived:

       sudo apt-get update

       sudo apt-get install keepalived

       然后编辑/etc/keepalived/keepalived.conf以设置虚拟IP地址和权重:

       global_defs {

        router_id YOUR_ROUTER_ID

       }

       vrrp_instance VI_1 {

        interface eth0

        virtual_router_id 1

        priority

        advert_int 1

        authentication {

        auth_type PASS

        auth_pass YOUR_AUTH_PASS

        }

        virtual_ipaddress {

        ..1.4

        }

       }

       在第二和第三台服务器上安装keepalived并使用相同的vue医疗管理源码keepalived.conf文件。在此之前,要确保每个节点都有不同的router_id。

       6. 测试故障转移

       现在可以测试负载平衡器的故障恢复功能。在第一个节点上停止MySQL服务:

       sudo systemctl stop mysql

       然后检查虚拟IP是否已转移到另一个节点:

       ip addr show

       应该看到虚拟IP地址已从第一个节点转移到了另一个节点。

       7. 总结

       通过使用上述步骤,可以创建一个可靠的、高可用性的MySQL集群,以确保应用程序在任何情况下都始终可用。同时,还可以使用其他一些工具和技术来进一步加强MySQL的高可用性,例如Galera Cluster和Pacemaker。

Keepalived工作原理

       Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方案软件。

        Keepalived采用是模块化设计,不同模块实现不同的功能。

        keepalived主要有三个模块,分别是core、check和vrrp。

        core :是keepalived的核心,负责主进程的启动和维护,全局配置文件的加载解析等

        check : è´Ÿè´£healthchecker(健康检查),包括了各种健康检查方式,以及对应的配置的解析包括LVS的配置解析;可基于脚本检查对IPVS后端服务器健康状况进行检查

        vrrp :VRRPD子进程,VRRPD子进程就是来实现VRRP协议的

        keepalived 配置文件:

        Keepalived 配置文件为:keepalived.conf;

        主要有三个配置区域,分别是:全局配置(Global Configuration)、VRRPD配置、LVS配置 

        全局配置又包括两个子配置: å…¨å±€å®šä¹‰(global definition) é™æ€IP地址/路由配置(static

        ipaddress/routes)

        Keepalived服务VRRP的工作原理:

        Keepalived高可用对之间是通过 VRRP进行通信的, VRRP是通过竞选机制来确定主备的,主的优先级高于备,因此,工作时主会优先获得所有的资源,备节点处于等待状态,当主宕机的时候,备节点就会接管主节点的资源,然后顶替主节点对外提供服务

       åœ¨Keepalived服务对之间,只有作为主的服务器会一直发送 VRRP广播包,告诉备它还活着,此时备不会抢占主,当主不可用时,即备监听不到主发送的广播包时,就会启动相关服务接管资源,保证业务的连续性.接管速度最快

        出现脑裂的原因:

        高可用服务器对之间心跳线链路发生故障,导致无法正常通信。

        因心跳线坏了(包括断了,老化)。

        因网卡及相关驱动坏了,ip配置及冲突问题(网卡直连)

        因心跳线间连接的设备故障(网卡及交换机)

        因仲裁的机器出问题(采用仲裁的方案)

        高可用服务器上开启了 iptables防火墙阻挡了心跳消息传输。

        高可用服务器上心跳网卡地址等信息配置不正确,导致发送心跳失败

        其他服务配置不当等原因,如心跳方式不同,心跳广插冲突、软件Bug等。

        如何解决脑裂:

        ① åŒæ—¶ä½¿ç”¨ä¸²è¡Œç”µç¼†å’Œä»¥å¤ªç½‘电缆连接,同时用两条心跳线路,这样一条线路坏了,另一个还是好的,依然能传送心跳消息。

        ② å½“检测到裂脑时强行关闭一个心跳节点(这个功能需特殊设备支持,如Stonith、feyce)。相当于备节点接收不到心跳消患,通过单独的线路发送关机命令关闭主节点的电源。

        ③ åšå¥½å¯¹è£‚脑的监控报警(如邮件及手机短信等或值班).在问题发生时人为第一时间介入仲裁,降低损失。管理员可以通过手机回复对应数字或简单的字符串操作返回给服务器.让服务器根据指令自动处理相应故障这样解决故障的时间更短。

        一、实验环境

        操作系统:CentOS7.2 Minial

        ###################

        serverA:

        eno    ..1.

        eno    ..1.

        ##########################

        serverB:

        eno    ..1.

        eno    ..1.

       ###########################

        vip:..1.

        vip:..1.

        二、设置防火墙

        /usr/bin/firewall-cmd --direct

        --permanent --add-rule ipv4 filter INPUT 0 --in-interface eth0 --destination ${ 组播地址} --protocol vrrp -jACCEPT

        /usr/bin/firewall-cmd --reload

        三、软件安装

        在serverA和serverB上

        # rpm -ivh --force libnl3-3.2.-4.el7.x_.rpm

        # rpm -ivh --forcelm_sensors-libs-3.4.0-4.gitfe5.el7.x_.rpm

        # rpm -ivh --force net-snmp-agent-libs-5.7.2-.el7.x_.rpm

        # rpm -ivh --force net-snmp-libs-5.7.2-.el7.x_.rpm

        # rpm -ivh --force ipset-libs-6.-3.el7_6.x_.rpm

        # rpm -ivh --force keepalived-1.3.5-6.el7.x_.rpm

        四、配置keepalived

        如果不使用 VRRP Sync Groups 如果keepalived 主机有两个网段,每个网段开启一个VRRP 实例,如果对外的网段出现问题,VRRPD认为自己仍然认为健康,因此 Master和Backup 相互切换,从而导致服务不能正常使用,同时高可用集群也不能正常运行,Sync group 就是为了解决该问题,可以把两个实例放进同一个Sync Group 中!

        serverA

        # vim /etc/keepalived/keepalived.conf

        ######################################

        ! Configuration File for keepalived

        global_defs {

        router_id LVS_DEVEL

        }

        vrrp_sync_group VG1 {

        group {

        VI_1

        VI_2

        }

        }

        vrrp_instance VI_1 {

        state BACKUP

        interface eno

        virtual_router_id

        priority

        nopreempt

        advert_int 1

        authentication {

        auth_type PASS

        auth_pass

        }

        track_interface {

        eno

        eno

        }

        virtual_ipaddress {

        ..1.

        }

        }

        vrrp_instance VI_2 {

        state BACKUP

        interface eno

        virtual_router_id

        priority

        nopreempt

        advert_int 1

        authentication {

        auth_type PASS

        auth_pass

        }

        track_interface {

        eno

        eno

        }

        virtual_ipaddress {

        ..1.

        }

        }

        serverB

        # vim /etc/keepalived/keepalived.conf

        ######################################

        ! Configuration File for keepalived

        global_defs {

        router_id LVS_DEVEL

        }

        vrrp_sync_group VG1 {

        group {

        VI_1

        VI_2

        }

        }

        vrrp_instance VI_1 {

        state BACKUP

        interface eno

        virtual_router_id

        priority

        nopreempt

        advert_int 1

        authentication {

        auth_type PASS

        auth_pass

        }

        track_interface {

        eno

        eno

        }

        virtual_ipaddress {

        ..1.

        }

        }

        vrrp_instance VI_2 {

        state BACKUP

        interface eno

        virtual_router_id

        priority

        nopreempt

        advert_int 1

        authentication {

        auth_type PASS

        auth_pass

        }

        track_interface {

        eno

        eno

        }

        virtual_ipaddress {

        ..1.

        }

        }

        五、测试

        在serverA 和 serverB上

        # systemclt start  keepalived

        在serverA