大数据系统运维 高可用性技术:
一、系统构架
1、机房环境
机房环境的高可用主要考虑的是电力和机柜分配的方面。
2、网络、主机、存储
网络是数据中心的核心,主机是高可用方案的主要部分,主机层面的高可用技术分为主从模式、双机模式和集群模式。
3、数据库
在数据库领域,有一些经典的高可用技术,不同产品的原理和实现上都略有区别。
4、应用
在实现某个特定功能点时,应用程序可以通过多个实例完成该功能的服务。
二、容灾
一般情况下,谈到高可用技术时,讨论的范围都是在数据中心内部的各种保障技术,但当数据中心整体发生故障,或者称之为灾难时,就需要依靠容灾技术,在6.3的业务连续性管理中,会有详细阐述。
三、监控指标项
应用自身状态:服务进程状况、服务状态、业务开关或可使用标志状态。
数据服务:数据及时、数据关键路径、数据完整性和正确性关键表记录变化情况、关键业务数据、关键数据按预期清空。
性能容量:用户数量(终端/API),内存加载量、消息并发量、事务响应时间。
批量作业:批量处理情况、批量开始时间、批量结束时间、批量加载时间、批处理状态。
应用占用系统资源:文件句柄数、应用分区空间、应用文件增长情况、网络连接、单个用户或请求进程占用的系统资源。
应用中间件(Weblogic、Tomcat):Weblogic Server、线程池、JVM、数据源、连接池、APP状态。
MQ:队列管理器、通道、队列、事件、(Event)。
WEB服务器(例如Apache):Apache吞吐率、Apache并发连接数、httpd 进程数、httpd线程数目、提供网站服务的字节数、处理连接的耗时时间。
四、故障转移
主机/存储/网络/数据库一般都是心跳包机制来进行健康状态的监控。由管理模块向各个模块之间按照一定时间间隔发送心跳包,或者两个模块之间互相发送心跳包,如果超过设定时间周期,某个模块没有响应,则判断该模块出现故障,备份模块接管该模块的服务,这个过程被称为故障转移(Failover)。
在主备机的高可用系统中,在特殊情况下会发生脑裂(split-brain)的故障。发生这种故障的原因是心跳线或者网络出现问题,造成主备机互相探测不到对方的心跳,都以为对方发生了故障,于是便主动获取存储或者服务IP等资源,双方都启动服务,造成服务异常。
为了解决脑裂问题,一般会在主备机之外,引入一个第三方模块,作为仲裁者,由它来判断到底是谁应该接管资源,对外提供服务。