负载均衡LVS+Nginx

负载均衡LVS/Nginx/Keepalived/HAProxy

问题:

  1. 使用负载均衡,
    • 后台web服务器是否要部署多台?
    • 那么数据库如何处理?
      • 是单独的?还是统一的?
      • 如果是单独的,数据如何同步?
      • 如果是统一的,性能如何提升?

Keepalived

keepalived是集群管理中保证集群高可用的一个服务软件,用来防止单点故障。

负载均衡: loadbalancing,负载均衡实现需要依赖Linux的IPVS模块(IP虚拟服务器,用于实现网络服务的负载均衡)
高可用: 高可用是通过VRRP协议(虚拟路由冗余协议)实现多台机器之间的故障转移

通过`heatbeat + failover`达到高可用的目的
- 在多个keepalived节点直接相关监控心跳heatbeat
- 当master出现问题时,将backup作为master继续工作,即为failover

keepalived架构中,两个重要的组成模块:

  • Checkers模块:负责真实服务器的健康检查healthchecking,是keepalived最主要的功能。换言之,可以没有VRRP Stack,但健康检查healthchecking是一定要有的。
  • VRRP Stack模块:负载负载均衡器之间的失败切换FailOver,如果只用一个负载均衡器,则VRRP不是必须的。

另外:

  • Netlink Reflector:用来设定vrrp的vip地址等,
    • 常可以在日志中看到,Netlink reflector reports IP xxx added,表明已经绑定VIP xxx 了。
  1. 安装
  2. 配置
    • keepalived.conf,安装完成后最重要的就是在该文件中配置HA负载均衡
    • 主要包含三块:全局定义块、VRRP实例定义块和虚拟服务器定义块
    • 全局定义块是必须的,
    • 如果keepalived只用来做ha,虚拟服务器是可选的
  3. 设置服务和开机自启

问题:在keepalived.conf配置文件中,这里是什么意思?

1
2
# 这里设置VRID,相同的VRID为一个组,他将决定多播的MAC地址
virtual_router_id 51

vrrp_instance的设置注意点:

1
2
# 设置不抢占,这里只能设置在state为backup的节点上,而且这个节点的优先级必须比另外的高
# nopreempt

Keepalived的一个难点,可能是双主节点时,节点权限设置,防止出现vip随便飘移故障

目前看到的都是用Keepalived做HA,并有利用其做负载均衡的,那么 virtual_server 目前并没有用到,怎么用?

问题:
设置了nopreempt参数,导致不抢占了怎么办?
- 猜测是,当Keepalived所在机器上被监控的进程出现故障,就停止Keepalived服务,这样即使另一台Keepalived机器设置了nopreempt,也会因为主keepalived停用,而自动接管?
- 明天可以测试一下

什么是默认路由

问题:linux下,如何将自己的程序做成服务模式,方便启动和关闭

  1. /etc/rc.d/init.d/ 的作用? /etc/init.d 是该目录的软连接,如果需要将某命令添加到开机自启,需要确保/etc/rc.d/init.d目录下有该命令

    1
    2
    3
    chkconfig --add keepalived      #添加时必须保证/etc/init.d/keepalived存在

    chkconfig keepalived on
  2. /etc/sysconfig/的作用?

  3. /usr/sbin/的作用?

Mysql主从复制,读写分离

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2022-2023 ligongzhao
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信