Jusene's Blog

Jusene's Blog

There are more ways than difficulties

heartbeat+ldirectord 实现lvs高可用

ldirectord

heartbeat可以为许多不支持高可用的服务提供高可用服务,前面我们提到过keepalived实现lvs的高可用,那么现在我们来通过heartbeat+ldirectord来实现高可用lvs集群的架构。

heartbeat v2实现LAMP高可用

heartbeat v2

heartbeat v1的资源配置接口通过haresource配置文件来实现,而heartbeat v2的资源配置接口通过在各个节点运行的crmd进程的配置接口来实现,crmd的配置接口程序有crmsh,gui接口有hb_gui。

heartbeat v1 扩展

HA Cluster工作模型

  • A/P:两节点集群,active,passive:工作于主备模型
    HA Service通常只有一个,HA Resource可能有多个
  • A/A:两节点集群,active/active,工作于双主模型
  • N-M:N个节点,M个服务,活动节点为M,备用节点为N-M
  • N-N:N个节点,N个服务,节点宕机,服务N-1中的其中一个节点迁移
heartbeat 服务的心跳

HA Cluster

我们通过keepalived已经初步理解了高可用集群的,HA Cluster 的目的就是为了提升系统调用性,结合多台主机构建成为集群,但是keepalived是通过vrrp来实现的,这里我们将会遇见更多高可用实现方案,如何让主机间知道对方还活着,就需要向对方发送心跳信息,所以我们就真的存在一个服务叫做heatbeat(心跳)。

高可用负载均衡集群 keepalived+lvs

keepalived+lvs

keepalived原生就是对lvs的补充,keepalived为lvs提供了后端服务器的健康状态检查,也为lvs实现动态迁移lvs的real server,并可以实现高可用lvs,所以keepalived对lvs还是很友好的,但是在实际生产环境中,lvs的使用却是很少的,但是keepalived使用却很多,可以高可用haproxy或者nginx等,所以很有必要对keepalived的使用做下实际操练。

高可用集群之keeplived

高可用集群

负载均衡集群为我们提供了高并发能力,而高可用集群就是为我们提供了高可用性的能力,避免单点故障为整个集群事务带来的影响,在大型的业务架构中,单点故障是致命的,而这里我们所涉及的高可用框架可以很好的实现资源的转移,为出现故障的时刻程序实现动态漂移,使业务影响几乎为零。

负载均衡集群之lvs持久连接

lvs 持久连接

lvs有很好的调度效果,配置起来也相对简单,但集群管理难点就是在概念的理解,负载均衡集群有一个比较麻烦的事件就是会话的保持,这里我们想做的就是lvs的持久连接,让lvs调度在一段时间调度都到同一rs,这就是持久连接。

负载均衡集群之LVS NAT DR模型实战

ipvsadm

ipvs/ipvsadm

ipvs是内核协议栈上的实现,ipvsadm是用户空间的集群服务管理工具,想要使用lvs就必须先要知道linux内核是否已经编译进了ipvs的代码,查看:

1
~]#grep -i ipvs -A 10 /boot/config-`uname -r`

绝大多数的linux发行版已经将lvs的代码自动编译进内核中,接下来我们只要使用ipvsadm来管理ipvs规则即可。

负载均衡集群之LVS

LVS是什么

LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一,现已被收录linux内核代码,所以我们现在可以很容易的配置lvs,无论怎么说这都是国内开源软件的先驱。

tcpdump

tcpdump

tcpdump抓包命令,tcpdump是一个用于截取网络分组,并输出分组内容的工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。

avatar
Jusene
纸上得来终觉浅 绝知此事要躬行