Exchange Server 2010部署(三)部署Exchange2010 NLB负载平衡及CAS Array

简介:

我们已经部署了两台Exchange2010的CAS/HUB服务器,现在要把两台CAS服务器合并为一个CAS阵列。在Exchange2003时代,用户可以直接访问Exchange的邮箱服务器。但是从Exchange2007开始,用户就不能直接访问邮箱服务器了,用户必须访问CAS服务器才可以连接到自己的邮箱。这样CAS服务器就成为用户访问Exchange服务器所必须面对的一个前台接待。一旦CAS服务器出现问题,用户访问Exchange服务器就会立刻遇到问题,要避免这种故障,比较有效的方法就是把多台CAS服务器组成一个CAS阵列,这样就可以起到负载平衡及容错的作用。

首先我们要在两台CAS/HUB服务器上配置负载平衡。负载平衡(NLB)对很多朋友来说并不陌生,微软的很多服务器都使用了NLB技术。NLB需要在主机之间传递心跳信号,那么我们需要在服务器上配置使用两块网卡,一块网卡传递心跳信号,一块网卡用于生产环境。其实考虑到心跳信号数据量并不大,因此一块网卡身兼两职也是可以的。本次环境中我们就只使用了一块网卡。

创建Windows NLB群集

使用Exadmin账户登陆到BJEX01服务器上,运行“NLBMGR”。打开网络负载平衡管理器,点击“群集”菜单,选择“新建”。

clip_image002

在窗口中,主机输入框中键入localhost或本机IP,点击“连接”,选择LAN网卡后,点击“下一步”

clip_image003

继续点击下一步

clip_image004

点击“添加”,输入NLB的IP信息,点击“确认”,点击“下一步”。

clip_image005

clip_image006

添加完整Internet名称:mail.contoso.com,选择“单播”模式,点击“下一步”

clip_image007

注:NLB 支持三种操作模式。

单播。在每个群集成员上,NLB 覆盖网络适配器上制造商提供的 MAC 地址。NLB 对所有成员都使用相同的单播 MAC 地址。这种模式的优点是它可以无缝地与大多数路由器和交换机协同工作。缺点是到达群集的流量会扩散到交换机虚拟 LAN (VLAN) 上的所有端口,并且主机之间的通信不能通过 NLB 绑定到的适配器。

多播NLB 保留原厂 MAC 地址不变,但是向网络适配器中增加了一个第 2 层多播 MAC 地址。所有入站流量都会到达这个多播 MAC 地址。优点是这种方法可以通过在交换机的“内容可寻址存储器”(CAM) 表中创建静态项,从而使得入站流量仅到达群集中的主机。当然,这种方法也有缺点,因为 CAM 项必须静态关联一组交换机端口。如果没有这些 CAM 项,入站流量仍然会扩散到交换机 VLAN 上的所有端口。还有一个缺点就是很多路由器不会自动将单播 IP 地址(群集的虚拟 IP 地址)与多播 MAC 地址关联起来。如果进行静态配置的话,一些路由器可以存在这种关联。

IGMP 多播 (Windows Server 2003)。就像多播操作模式一样,NLB 保留原厂 MAC 地址不变,但是向网络适配器中增加了一个 IGMP 多播地址。此外,NLB 主机会发出这个组的 IGMP 加入消息。如果交换机探测到这些消息,它可以使用所需的多播地址来填充自己的 CAM 表,这样入站流量就不会扩散到 VLAN 上的所有端口。这是这种群集模式的主要优点。缺点是有一些交换机不支持 IGMP 探测。除此之外,路由器仍然支持单播 IP 地址到多播 MAC 地址的转换。

工作在单播模式下的NLB可以在所有网络环境下正常运行(兼容性最好),但是由于它的工作特性,具有以下两个限制:

1.由于NLB所使用的群集MAC地址没有绑定在某个具体的交换机端口上,所以所有的NLB通讯均通过在交换机的所有端口上广播进行,而不管此端口是否连接了NLB节点,这造成了额外的网络流量负担;

2.由于所有的NLB节点具有相同的MAC地址,NLB节点之间不能通过自己原有的专用IP地址进行通讯。 (例如我们见得最多的就是节点之间就无法ping通)

工作在多播模式下,NLB不会修改NLB节点启用NLB的网络适配器的MAC地址,而是为

它再分配一个二层多播MAC地址专用于NLB的通讯(此MAC地址称为群集MAC地址),这样NLB节点之间可以通过自己原有的专用IP地址进行通讯。但是在多播模式中,NLB节点发送的针对群集IP地址/MAC地址ARP请求的ARP回复会将群集IP地址映射到多播MAC地址,而许多路由器或者交换机(例如,思科的某些产品)会拒绝这一行为。如何解决呢?方法是手工在路由器或交换机上添加静态映射,将群集IP地址映射到群集的多播MAC地址。

点击“完成”

clip_image008

关于配置NLB端口,参考以下链接:

http://blogs.technet.com/b/ucedsg/archive/2009/12/06/how-to-setup-an-exchange-2010-cas-array-to-load-balance-mapi.aspx

确认Windows NLB群集创建成功

确认主机状态为已聚合,证明Windows NLB群集创建成功

clip_image010

将BJEX02加入到Windows NLB群集

使用Exadmin账户登陆到BJEX01服务器上,运行“NLBMGR”。点击群集名称mail.contoso.com,选择“添加主机到群集”

clip_image011

在窗口中,主机输入框中键入第二台CAS/HUB的IP“10.2.2.164”,点击“连接”,选择LAN网卡后,点击下一步

clip_image012

点击下一步

clip_image013

点击“完成”。

clip_image014

确认加入到Windows NLB群集中成功

确认主机状态为已聚合,证明加入到Windows NLB群集中成功

clip_image016

最后我们需要创建一个CAS阵列,其实就是让Exchange2010服务器支持负载平衡。

创建CAS阵列

使用Exadmin账户登陆到BJEX01服务器上,运行Exchange Mangement Shell(EMS)命令行,在EMS中运行:

New-clientaccessarray -fqdn mail.contoso.com -name CASarray.contoso.com -site Beijing

clip_image018

其中的mail.contoso.com是Exchange服务器CAS阵列的完全合格域名,CASarray.contoso.com是CAS阵列的阵列名称,Beijing是Active Directory的站点名称。

注:为了实现访问邮箱的故障转移自动切换,需要在CAS的NLB建立后,MBX角色建立前在CAS服务器上创建 CAS Array




本文转自liang_simon51CTO博客,原文链接:http://blog.51cto.com/shubao    ,如需转载请自行联系原作者

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
相关文章
|
负载均衡 算法 应用服务中间件
Nginx系列教程(08) - Upstream Server 负载均衡
Nginx系列教程(08) - Upstream Server 负载均衡
1471 0
|
Java 微服务
【Java异常】com.netflix.client.ClientException: Load balancer does not have available server for client
【Java异常】com.netflix.client.ClientException: Load balancer does not have available server for client
1318 0
|
运维 负载均衡 Serverless
Serverless 应用引擎使用问题之如何将应用部署到多个实例中,并利用SLB来分发请求负载
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
负载均衡 应用服务中间件 Nacos
最全解决:微服务之间调用出现Load balancer does not have available server for client
最全解决:微服务之间调用出现Load balancer does not have available server for client
4268 1
最全解决:微服务之间调用出现Load balancer does not have available server for client
|
负载均衡 Java 微服务
Java错误:com.netflix.client.ClientException: Load balancer does not have available server for client
Java错误:com.netflix.client.ClientException: Load balancer does not have available server for client
|
存储 弹性计算 负载均衡
SLB-工作负载(Workload)
SLB-工作负载(Workload)
1601 0
|
负载均衡 Java 应用服务中间件
nginx loadbalance spring server负载均衡
nginx loadbalance spring server负载均衡
454 0
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
499 2
|
负载均衡 前端开发 应用服务中间件
Tomcat的负载均衡和动静分离(与nginx联动)
总的来说,负载均衡和动静分离是提高Web应用性能的两个重要手段。通过合理的配置和使用,我们可以让Web应用更好地服务于用户。
481 21
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
1124 3

热门文章

最新文章

  • 1
    PHP 数组查找:为什么 `isset()` 比 `in_array()` 快得多?
    385
  • 2
    Java 中数组Array和列表List的转换
    1143
  • 3
    JavaScript中通过array.map()实现数据转换、创建派生数组、异步数据流处理、复杂API请求、DOM操作、搜索和过滤等,array.map()的使用详解(附实际应用代码)
    845
  • 4
    通过array.reduce()实现数据汇总、条件筛选和映射、对象属性的扁平化、转换数据格式、聚合统计、处理树结构数据和性能优化,reduce()的使用详解(附实际应用代码)
    1665
  • 5
    通过array.some()实现权限检查、表单验证、库存管理、内容审查和数据处理;js数组元素检查的方法,some()的使用详解,array.some与array.every的区别(附实际应用代码)
    831
  • 6
    通过array.every()实现数据验证、权限检查和一致性检查;js数组元素检查的方法,every()的使用详解,array.some与array.every的区别(附实际应用代码)
    588
  • 7
    多维数组操作,不要再用遍历循环foreach了!来试试数组展平的小妙招!array.flat()用法与array.flatMap() 用法及二者差异详解
    433
  • 8
    别再用双层遍历循环来做新旧数组对比,寻找新增元素了!使用array.includes和Set来提升代码可读性
    405
  • 9
    Array.forEach实战详解:简化循环与增强代码可读性;Array.forEach怎么用;面对大量数据时怎么提高Array.forEach的性能
    292
  • 10
    深入理解 JavaScript 中的 Array.find() 方法:原理、性能优势与实用案例详解
    916