There are more ways than difficulties
heartbeat可以为许多不支持高可用的服务提供高可用服务,前面我们提到过keepalived实现lvs的高可用,那么现在我们来通过heartbeat+ldirectord来实现高可用lvs集群的架构。
heartbeat v1的资源配置接口通过haresource配置文件来实现,而heartbeat v2的资源配置接口通过在各个节点运行的crmd进程的配置接口来实现,crmd的配置接口程序有crmsh,gui接口有hb_gui。
我们通过keepalived已经初步理解了高可用集群的,HA Cluster 的目的就是为了提升系统调用性,结合多台主机构建成为集群,但是keepalived是通过vrrp来实现的,这里我们将会遇见更多高可用实现方案,如何让主机间知道对方还活着,就需要向对方发送心跳信息,所以我们就真的存在一个服务叫做heatbeat(心跳)。
keepalived原生就是对lvs的补充,keepalived为lvs提供了后端服务器的健康状态检查,也为lvs实现动态迁移lvs的real server,并可以实现高可用lvs,所以keepalived对lvs还是很友好的,但是在实际生产环境中,lvs的使用却是很少的,但是keepalived使用却很多,可以高可用haproxy或者nginx等,所以很有必要对keepalived的使用做下实际操练。
负载均衡集群为我们提供了高并发能力,而高可用集群就是为我们提供了高可用性的能力,避免单点故障为整个集群事务带来的影响,在大型的业务架构中,单点故障是致命的,而这里我们所涉及的高可用框架可以很好的实现资源的转移,为出现故障的时刻程序实现动态漂移,使业务影响几乎为零。
lvs有很好的调度效果,配置起来也相对简单,但集群管理难点就是在概念的理解,负载均衡集群有一个比较麻烦的事件就是会话的保持,这里我们想做的就是lvs的持久连接,让lvs调度在一段时间调度都到同一rs,这就是持久连接。
ipvs/ipvsadm
ipvs是内核协议栈上的实现,ipvsadm是用户空间的集群服务管理工具,想要使用lvs就必须先要知道linux内核是否已经编译进了ipvs的代码,查看:
1 | ~]#grep -i ipvs -A 10 /boot/config-`uname -r` |
绝大多数的linux发行版已经将lvs的代码自动编译进内核中,接下来我们只要使用ipvsadm来管理ipvs规则即可。
LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一,现已被收录linux内核代码,所以我们现在可以很容易的配置lvs,无论怎么说这都是国内开源软件的先驱。
tcpdump抓包命令,tcpdump是一个用于截取网络分组,并输出分组内容的工具。tcpdump凭借强大的功能和灵活的截取策略,使其成为类UNIX系统下用于网络分析和问题排查的首选工具。
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: true tags: true