通过负载均衡器+域名实现容灾切换-(6)Win下NLB基本原理
NLB支持单播、多播两种模式:
1、单播模式:NLB服务会重新为每个节点中启动NLB的网卡重新分配MAC地址(此MAC地址称为集群MAC地址),并且所有的NLB阶段均使用相同的MAC地址(均使用集群MAC地址),同时NLB会修改所有发送的数据中源MAC地址,这样就导致交换机不能将此集群MAC地址绑定在某个端口上。工作在单薄模式下的NLB可以在所有网络环境下正常运行(兼容性最好)。
单播模式下,由于所有的NLB阶段具有相同的MAC地址,所以NLB节点自建不能通过自己原有的专用IP进行通信,节点之间无法Ping通。此时需要采用双网卡来保证节点间通信,1块网卡用于启用NLB,1块网卡用于节点间通信,第二块网卡很重要,作为心跳IP。
2、多播模式:NLB不会修改启用NLB服务的网卡的MAC地址,而是为它再分配一个二层多播MAC地址专用于NLB的通讯(此MAC地址称为集群MAC地址),这样NLB节点可以通过自己原有的IP地址进行通信。
由于NLB所使用的集群MAC地址没有绑定在某个具体的交换机端口上,所以所有NLB通讯均通过交换机的所有端口进行广播,为了避免泛洪现网,需将所有NLB节点添加到同一VLAN。
NLB功能特点:
1、可伸缩性。
负载在增加时,支持在不关闭集群情况下向NLB集群添加主机。
负载降低时,支持从集群中删除主机。
2、高可用性。
检测发生故障、或脱机的主机并对其进行恢复。
添加或删除主机时平衡网络负载。
十秒内恢复并重新分发负载。
3、可管理性。
NLB具备管理器,可以从单个计算机管理、配置多个NLB集群和集群主机。
具备端口管理规则,可以为单个IP端口、或一组端口指定负载平衡行为。
可以为每个网站定位不同的端口规则,如果对多个应用程序、或网站共同使用一组NLB,其端口规格基于目标虚拟IP地址。
可以使用shell命令、脚本,从运行Windows的计算机上远程启动、停止、控制NLB操作。
故障转移群集 & NLB:
虽然NLB群集可以提高系统的可靠性,但是NLB群集不能保存用户提交的数据,所以不能为数据库、邮件等服务应用网络负载平衡群集。提高这些服务的可靠性只能应用故障转移群集。
故障转移群集是一组独立的计算机,群集服务器(节点)通过物理电缆和软件连接可协同工作,以增强应用程序和服务的可用性。故障转移群集最多可以组合八个节点(在Windows Server 2008×64平台上支持16个节点)。故障转移群集可以使用Windows Server 2008 Datacenter Edition或Windows Server 2008 Enterprise Edition系统。
故障转移群集与NLB群集有一个明显的区别:故障转移群集包含一个连接到所有节点的储存设备,即共享储存设备。共享储存设备用于储存群集的公用数据和仲裁数据。
为了保证共享储存设备上数据的完整性,故障转移群集内一次只有一个节点拥有共享储存设备的所有权。只有该节点宕机或认为转移所有权时,才会由下一个节点拥有共享储存设备的所有权。这就决定了故障转移群集和NLB群集在功能上的不同,即故障转移群集内一般只有一个节点为用户提供服务,其余节点都处于被动状态。当主动节点因故宕机时,会由下一个节点接替继续为用户提供服务;而NLB群集内的节点可以同时为用户提供服务。
1、心跳线
群集的各个节点相互间会定期使用专用的群集网络交换数据报信息(默认每隔5秒),因为只要群集节点在工作,就会不停地、周期性地发送信息给群集内的其余节点,所有这些消息被称作心跳信息,用于传送心跳信息的专用网络被称为心跳线。
如果主动节点发生故障,在指定的周期内(默认为两个周期,10秒钟)备份节点没有接受到心跳信息,那么将进行故障转移,由备份节点接管群集,对外提供服务。
2、仲裁盘
仲裁盘保存有群集的配置数据库,在数据库内包含多种配置信息。
仲裁在群集中非常重要,它主要提供以下两个功能:
一致性:对所有同群集有关的配置信息而言,仲裁充当了最具权威的仓库,如果群集服务无法读取仲裁日志,它将不会启动,因为它无法保存处于一致性的状态,而这又是群集最主要的要求之一。
斡旋作用:仲裁提供斡旋作用可以避免“各自为政”的情况。当两个或多个群集节点之间的所有网络通信链路都失效时,会发生“各自为政”的局面。使用仲裁后,可以保证任何群集资源只会在某一个节点上进入联机状态。
3、Windows Server 2008全新仲裁模式
传统的故障转移群集只使用一个仲裁盘,这种方式存在单点故障隐患。如果仲裁盘出现故障,将无法判断群集资源的所有者并控制故障转移过程,因而导致整个群集崩溃。为了修补这个缺陷,Windows Server 2008故障转移群集引入了见证盘概念和四种仲裁配置选择。
A.见证盘
见证盘是仲裁盘的一种发展,见证盘上保存的数据和仲裁盘性类似,但是见证盘需要和群集节点相配合才能完成以前仲裁盘的功能,进而避免了仲裁盘的单点故障。
B.仲裁配置
(1)节点多数仲裁配置
当群集内多数节点运行时,群集运行,反之,群集停止。节点多数仲裁配置允许失败的节点数为N/2-1,N为节点数,当N/2不为整数时四舍五入。节点多数仲裁配置应在节点数为基数时使用。
(2)节点和磁盘多数冲裁配置
当见证盘可用时,允许失败的节点数为N/2(N为节点数,当N/2不为整数时四舍五入)。当见证盘不可用时,允许失败的节点数为N/2-1(N为节点数,当N/2不为整数时四舍五入)。
(3)节点和文件共享多数仲裁配置
节点和文件共享多数仲裁配置与节点和磁盘多数冲裁配置相似,只不过其见证盘是群集中所有节点可以访问的文件共享,而不是群集储存中的磁盘。
(4)无多数(仅磁盘)仲裁配置
在使用仅磁盘仲裁配置群集中,节点数不影响如何实现仲裁,磁盘就是仲裁。但是,如果失去与磁盘的通信,群集将不可用。