服务器领域讲的“高可用”是什么意思,怎么理解?

服务器领域讲的“高可用”是什么意思,怎么理解?,第1张

高可用(High Availability)是系统架构设计中必须考虑的因素之一,它通常是指,通过设计减少系统不能提供服务的时间。

如果一台系统能够不间断的提供服务,那么这台系统的可用性据说100%。那如果系统每运行100个时间单位,就会出现1个时间单位无法提供服务,那么该台系统的可用性是99%。

目前大部分企业的高可用目标是4个9,也就是99.99%,也就是允许这台系统的年停机时间为52.56分钟。

使用keepalived做mysql主从切换的高可用

keepalived切换的优缺点

1.可以切换虚拟IP

2.可能发生裂脑,就是主从服务器都同时出现一样的VIP,导致写入数据的时候,往主从都写入了数据

3.可能导致主从mysql数据不一致。主在down机的时候,有部分数据还没同步到从mysql

此实验在mysql使用gtid同步实现的前提下的

192.168.209.132 master

192.168.209.131 slave

1.安装keepalived

直接yum安装或者编译安装都可以,生产环境也是ok的

2.配置keepalived的配置文件

keepalived配置文件默认放在/etc/keepalived/文件夹下

如果不把配置文件放这里,那么启动keepalived的时候,需要用参数指定配置文件的位置

这里我用默认安装和默认配置文件位置

192.168.209.132:

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

  notification_email {

  }

  router_id SLAVE

}

vrrp_script chk_mysql {

    script "/data/script/mysql_check.sh"

    interval 2

    weight -20

}

vrrp_instance VI_1 {

    state BACKUP

    interface eth0

    nopreempt

    virtual_router_id 131

    priority 100

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.209.16

    }

  track_script {

        chk_mysql

    }

}

监控脚本:

vim /data/script/mysql_check.sh

#!/bin/sh

mysqlstr=/usr/local/mysql/bin/mysql

host=localhost

user=root

password=123456

port=33061

mysql_status=1

$mysqlstr -h $host -u $user -p$password -P $port -e "show status" >/dev/null 2>&1

if [ $? = 0 ] then

  echo "mysql_status=1"

  exit 0

else

  pkill keepalived

fi

192.168.209.131:

vim /etc/keepalived/keepalived.conf

! Configuration File for keepalived

global_defs {

  notification_email {

  }

  router_id SLAVE

}

vrrp_script chk_mysql {

    script "/data/script/mysql_check.sh"

    interval 2

    weight -20

}

vrrp_instance VI_1 {

    state BACKUP

    interface eth0

    nopreempt

    virtual_router_id 131

    priority 90

    advert_int 1

    authentication {

        auth_type PASS

        auth_pass 1111

    }

    virtual_ipaddress {

        192.168.209.16

    }

  track_script {

        chk_mysql

    }

}

配置文件:

vim /data/script/mysql_check.sh

#!/bin/sh

mysqlstr=/usr/local/mysql/bin/mysql

host=localhost

user=root

password=123456

port=33061

mysql_status=1

$mysqlstr -h $host -u $user -p$password -P $port -e "show status" >/dev/null 2>&1

if [ $? = 0 ] then

  echo "mysql_status=1"

  exit 0

else

  pkill keepalived

fi

对实验结果开始进行验证

192.168.209.132上获取到vip

把192.168.209.132上的mysqld给干掉

查看192.168.209.132上的mysqld和keepalived进程是否都被干掉了;虚拟IP是否切换到192.168.209.131上了

查看192.168.209.131上是否有VIP

把192.168.209.132上的keepalived和mysqld都启动起来。先启mysqld再起keepalived

此时keepalived启动起来了,虽然权重比192.168.209.131的高,但是设置了不抢夺,所以192.168.209.132上的keepalived不会切换vip过来

此时,把192.168.209.131上的mysql停掉它

查看131上的mysql和keepalived是否已经都停止了

查看192.168.209.132上是否有VIP了

第77篇

极客时间《从0开始学架构》课程笔记。

本质:通过冗余来规避部分故障的风险

设计思想:通过增加更多服务器达到计算高可用

设计复杂度:任务管理,即失败后如何重新分配任务

设计关键点:哪些服务器可以执行任务;任务如何重新执行。

常见的计算高可用架构有3种:主备、主从和集群。主备又分为冷备和温备;集群分为对称集群和非对称集群。

详细设计:

优点:实现简单,主备机不需要进行交互,状态判断和切换操作都由人工执行

缺点:人工操作时间不可控,操作效率较低,容易出错

适用场景:内部管理系统、后台管理系统这类使用人数不多、使用频率不高的业务,不太适合在线业务

详细设计:

优点:从机也在执行任务,发挥了从机的硬件性能

缺点:需要对计算任务进行分类,任务分配器更为复杂

主备或主从架构的问题:需要人工操作、效率低、容易出错、不能及时处理故障

高可用集群方案就是为了实现自动完成切换操作。

根据服务器节点角色不同,分为对称集群和非对称集群两类。

与存储高可用不一样,计算高可用集群包括2台服务器的集群。

定义:集群中每个服务器的角色都是一样的,都可以执行所有任务,也叫负载均衡集群

详细设计:

设计关键点:

定义:集群中的服务器分为多个不同的角色,不同的角色执行不同的任务,例如最常见的 Master-Slave 角色

详细设计:

设计关键点:


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/642710.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-07-20
下一篇2023-07-20

发表评论

登录后才能评论

评论列表(0条)

    保存