集群-基础知识(1)

背景

随着互联网访问量的急剧增加,单台服务器的能力已严重不能满足需求。则需要从两个方面考虑提高服务能力:1、向上扩展,2、向外扩展

向上扩展的缺点:

1、造价高

2、随着性能的提高,会在某个临界点遇到瓶颈,导致性能随后降低。

向外扩展的优点:

1、造价低

2、提供高并发能力和高可用性

3、可扩展性好。

分类

负载均衡集群(Load Balance)

高可用集群(High Availability Cluster)

高性能集群(High performance computing)

负载均衡集群:由于电信运行商dns的原因,所以不能靠dns来做负载均衡,必须通过前端调度器将请求分发至后端的服务器,以提高并发访问量。但随着访问量的提高,调度器和存储等的限制,访问速度会成为瓶颈,所以需对网站进行功能切分,分别做集群,例如门户网站的分类。为了保证后端服务器提供的内容一致性,网页的静态内容使用rsync+inotify的机制做同步。一个web页面包含多个web对象,而目前的浏览器都支持多线程,所以来自客户端的请求,可能并发多个请求,调度器分发至多个后端服务器,可以提高网页的打开速度。而调度器具有health check的能力,能将挂了的主机移除,也能将恢复的主机加进集群。

优点:提高并发处理能力

高可用集群:可以提高服务的在线能力、服务可用性。例如有两台主机提供web服务,A作为正常提供服务的主机,B作为备用的主机,A不断地将自己的心跳信息用组播的方式传递给B,而B也能去检查A的心跳信息。当B不能得到A的心跳后,则会通过电源交换机关闭A的电源,并将A的ip地址夺过来,启动A之前提供的服务,以提高服务的在线能力。若是多台主机的高可用集群,还可以设置备节点的优先级,来响应主节点挂掉后的动作。

高可用集群传递的不只是心跳信息,还有事务信息(优先级等)。而负责协调完成事务的节点叫做DC(节点中的一台),若DC挂了,则其他主机间推选一个即可。

负载均衡集群和高可用集群的主要区别:

负载均衡集群提供并发处理能力,提供health check

高可用集群提供服务的始终在线能力,提供heartbeat

高性能集群:利用分布式文件系统将复杂问题分解为小问题并行处理。

由于高可用集群的效率不是很高(备份的主机会造成资源浪费),所以需要提高。例如web服务和邮件服务分别在A、B主机启动,然后它俩互为主备,则可以提高效率。但高可用集群在某一时刻资源只能在一台主机上启动。

脑裂:是因为cluster分裂导致的,cluster集群中节点因为处理器忙或者其他原因暂时停止响应时,其他节点可能误认为该节点“已死”,从而夺取共享磁盘(即资源)的访问权,此时极有可能假死节点重新对共享文件系统产生读写操作,从而导致共享磁盘文件系统损坏。

stonith:爆头,shoot the other node in the head通过电源交换机切断检测不到心跳信息的主机的电源。

隔离:fancing,拒绝某个节点访问某个资源。分为节点隔离(stonith)和资源隔离。

为了防止集群脑裂,集群节点应该为3或3个以上的奇数个。

其他知识:

DAS:直接附加存储。内核直接操作块设备的数据。若不同主机同时访问同一文件,则会造成写错误。但效率高。

NAS:网络附加存储。是文件级别的操作,第一个主机写数据时会施加锁,第二个主机就不能写。性能要比DAS差。


原创文章,作者:黑白子,如若转载,请注明出处:http://www.178linux.com/9468

(0)
黑白子黑白子
上一篇 2015-11-26
下一篇 2015-11-26

相关推荐

  • http协议

    Web Service概述 web服务时一种应用程序的服务,它所提供的最主要的信息是一种超文本标记语言(HTML)、多媒体资源(如:视频、图片、音乐等)。HTML是一种纯文字的文本信息,通过所谓的标签来规范所要显示的内容格式,在客户端通过浏览器的形式对HTML及多媒体资源进行解析,然后呈现在终端上。主要由http和https协议实现 http协议概述 HTT…

    Linux干货 2016-10-28
  • N22-第十四周作业

    系统的INPUT和OUTPUT默认策略为DROP; ~]# iptables -P INPUT DROP ~]# iptables -P OUTPUT DROP 1、限制本地主机的web服务器在周一不允许访问;新请求的速率不能超过100个每秒;web服务器包含了admin字符串的…

    Linux干货 2017-03-15
  • TCP连接的状态详解以及故障排查

    我们通过了解TCP各个状态,可以排除和定位网络或系统故障时大有帮助。(总结网络上的内容) 1、TCP状态 linux查看tcp的状态命令: 1)、netstat -nat  查看TCP各个状态的数量 2)、lsof  -i:port  可以检测到打开套接字的状况 3)、 &nbs…

    Linux干货 2015-04-03
  • 提问的智慧

    译文 译文: 捷克语 丹麦语 爱沙尼 亚语 法语 德语 希伯来语 匈牙利语 意大利语 日语 波 兰语 俄语 西班牙语 瑞典语 土 耳其语. 如果你想复制、镜像、翻译或引用本文,请参阅我的 复制须知. 弃权申明 …

    Linux干货 2015-03-20
  • 零距离接触软RAID0和RAID5以及逻辑卷LVM

    一、创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录 1、首先手动给虚拟机添加两块硬盘 2、添加硬盘后,无需关机,直接让内核扫描添加的磁盘 [root@centos6 ~]# echo '- – -' >&nbsp…

    Linux干货 2016-09-01
  • http协议

    ##socket套接字– 套接字,进程间通信IPC的一种实现,允许位于不同主机(或同一主机)上不同进程之间进行通信和数据交换。– socketAPI:封装了内核中所提供的socket通信相关的系统调用– socketDomain:根据其所使用的地址– AF_INET:Address Family,Ipv4&#8…

    Linux干货 2017-12-06