- 论坛徽章:
- 1
|
本帖最后由 zhangxuan3210 于 2013-11-25 22:31 编辑
1、说说贵企业IT集群高可用的部署方案以及后续的一些维护经验。
公司高可用的部署方案一般采用集群模式:
前端接入层:lvs+nginx,支持域名切换,反向代理,负载均衡
模块间解耦: lvs/zookeeper,lvs在核心交换机下,基本不会出现问题,zk在不同的集群上都有,基本不会出现问题
cache层: memcached,双写,client端实现自动切换。
数据库层:keepalived+mysql(主),dbproxy+mysql(从),实现mysql主库的故障自动切换,mysql从库的代理路由
数据存储层:drbd,mfs,hdfs 双机通过drbd实现数据一致性,mfs实现数据共享,hdfs实现离线数据的计算和统计。、
高可用部署方案的维护经验:针对上述的服务架构中,一般出现单机故障后,不需要进行处理,系统会自动进行恢复,或者对系统没有影响。
2、整体的企业IT基础设施的高可用,有什么比较好的方案可以推荐?
针对不同的服务,不同的业务场景可采用不同的高可用部署方案:
针对域名接入层:需要进行智能dns,在不同的idc部署服务,按照用户访问的不同运营商,解析到不同的dns,确保不会因为某个运营商故障,导致整个网络故障,即使某个运营商故障,也可以进行统一域名切换。
针对web服务接入层:由于针对web服务大流量情况,需要在前端进行负载均衡和高可用性,可通过nginx来进行负载均衡和反向代理
针对不同模块间:针对不同模块间访问,不能通过直连等方式进行解决,需要进行解耦,保证某台后端服务故障,不会影响前端访问和上游模块,可以接入lvs或者zk等解耦模块。
针对数据cache层:为提高用户的访问质量,并降低访问对对数据库的负载,在用户和数据库之前加入一层cache层,并通过client端双写的方式,确保不会因为cache层导致对服务的影响,同样读cache也是一样的。cache层有两种,一种是cache用户登录信息,如session信息,一种是cache用户的账号信息,如cachedb中的数据
针对数据库:可通过mysql的主从进行读写分离,在mysql的主库之间,通过keepalive或者heartbeat来进行VIP的故障漂移,实现主库故障后的自动切换,在从库之间,通过dbpoxy代理来实现从库集群的高可用。
针对数据存储层:针对数据的重要性,需要进行数据的共享,消除数据存储单点,在双机之间可通过drbd,在多机之间可通过mfs,或者nfs来实现数据共享。
|
|