马哥 集群实现方案 笔记

LB:  Load Balancing 负载均衡
HB:  High Availability 高可用
HP:  High Performance 高性能

DNS轮询:

早期DNS负载均衡 一个域名针对多个ip A记录的解析,DNS服务器将解析请求按照A记录的顺序,逐一分配到不同的IP上,这样就完成了简单的负载均衡。也称DNS轮询。

优点

  1. 基本上无成本,因为往往域名注册商的这种解析都是免费的;
  2. 部署方便,除了网络拓扑的简单扩增,新增的Web服务器只要增加一个公网IP即可。

缺点

  1. 健康检查,如果某台服务器宕机,DNS服务器是无法知晓的,仍旧会将访问分配到此服务器。修改DNS记录全部生效起码要3-4小时,甚至更久;
  2. 分配不均,如果几台Web服务器之间的配置不同,能够承受的压力也就不同,但是DNS解析分配的访问却是均匀分配的。其实DNS也是有分配算法的,可以根据当前连接较少的分配、可以设置Rate权重分配等等,只是目前绝大多数的DNS服务器都不支持;
  3. 会话保持,如果是需要身份验证的网站,在不修改软件构架的情况下,这点是比较致命的,因为DNS解析无法将验证用户的访问持久分配到同一服务器。虽然有一定的本地DNS缓存,但是很难保证在用户访问期间,本地DNS不过期,而重新查询服务器并指向新的服务器,那么原服务器保存的用户信息是无法被带到新服务器的,而且可能要求被重新认证身份,来回切换时间长了各台服务器都保存有用户不同的信息,对服务器资源也是一种浪费。

负载均衡器(分发):

NAT负载均衡将一个外部IP地址映射为多个内部IP地址,对每次连接请求动态地转换为一个内部服务器的地址,将外部连接请求引到转换得到地址的那个服务器上,从而达到负载均衡的目的。

NAT负载均衡是一种比较完善的负载均衡技术,起着NAT负载均衡功能的设备一般处于内部服务器到外部网间的网关位置,如路由器、防火墙、四层交换机、专用负载均衡器等,均衡算法也较灵活,如随机选择、最少连接数及响应时间等来分配负载。

持久连接:广播或多播实现session同步。

旁路:用户请求经负载均衡器发送到内部机器上,内部机器直接分发给用户,不经负载均衡器。

由于负载均衡器通常是Web服务器群的唯一入口,因此,部署负载均衡器之前,必须首先考虑好负载均衡器的备份问题。当主负载均衡器出现故障时,备份负载均衡器能立即接管工作。备份负载均衡器配置方式有活动式(active-active)和旁路式(active-standby)两种。在活动式负载均衡器配置下,两台负载均衡器同时处理来自同一IP地址的服务请求,因此,除了在出现故障时响应延迟极短外,在平时,Web服务器还能够同时处理更多的客户请求。在旁路式负载均衡器配置下,主负载均衡器工作,备份负载均衡器仅在主负载均衡器出现故障时启动,启动时占用主负载均衡器的IP地址和MAC地址。备份负载均衡器从故障发生开始到接管服务一般要有几秒钟的延迟,在这期间,客户的服务请求就会遭到拒绝。

Rsync同步机制+inotify通知。

硬件和软件都可做负责均衡器,硬件有F5公司的BigIp 1000w,IBM公司的A10 600w,Citrix的Netscaler 500w, 软件有LVS(Linux Virtual Server)、Haproxy(LVS和haproxy都是四层交换机)、nginx、vanish&squid。

DAS(Direct Attached Storage—直接连接存储)是指将存储设备通过SCSI接口或光纤通道直接连接到一台计算机上。NAS(Network Attached Storage)—网络连接存储,即将存储设备通过标准的网络拓扑结构(例如以太网),连接到一群计算机上。NAS是部件级的存储方法,它的重点在于帮助工作组和部门级机构解决迅速增加存储容量的需求。需要共享大型CAD文档的工程小组就是典型的例子,通过挂载相当于文件共享服务器。SAN(存储区域网络 模拟SCSI(Small computer Interface)协议的服务器)通过光纤通道连接到一群计算机上,本身有一个智能化的控制器,对CPU的依赖小于其他。在该网络中提供了多主机连接,但并非通过标准的网络拓扑。具体见百科

某一种总线bus,就是某一种传输协议。数据传输都需要CPU参与。

  • USB, USB协议传输,Data Transfer Media数据传输介质
  • IDE
  • SATA
  • 模拟SCSI(Small computer Interface)协议的服务器

DMA: Direct Memory Access直接内存存取
允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后把它们再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。DMA 传输将数据从一个地址空间复制到另外一个地址空间。当CPU 初始化这个传输动作,传输动作本身是由 DMA 控制器来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存区。像是这样的操作并没有让处理器工作拖延,反而可以被重新排程去处理其他的工作。DMA 传输对于高效能 嵌入式系统算法和网络是很重要的。 

已看完视频第二集

原文地址:https://www.cnblogs.com/zl0372/p/cluster.html