探讨Exchange 2013的高可用设计
?
? ? ?高可用是企业一直在提的理念,也是一直希望能达到最高的高可用,业务在线时长也根据不同的业务需要,经常要求达到几个9之类的指标,可见高可用的想法已经深入人心,Exchange Server 2013作为企业中的电子邮件服务器,同样有着高可用设计,没有人希望自己的电子邮件服务中断,尤其是平时依赖电子邮件工作的人们。接下来我们就来探讨一下,如何使Exchange 高可用。
?
学完本节后我们将能够:
?
1、 描述高可用的组成部分
2、 描述什么是DAG
3、 理解DAG是如何工作
4、 理解如何使客户端访问服务器高可用
5、 理解如何使传输服务高可用
6、 理解什么是卷影冗余
7、 理解卷影冗余是如何工作
8、 理解如何使边缘传输服务高可用
9、 描述什么是站点恢复能力
?
高可用组成部分
?
一、?数据中心基础架构
?
作为企业中最重要的数据中心,我们必须保障数据中心有足够的电力与制冷能力,最好的情况下是上述能力能够高可用,首先我们要保障电力的稳定性与多路供电,制冷能力也是同样,除需要有数据中心中央空调以外,我们还需要有多台类似于网络能源这样的大型空调,以保障我们的制冷能力的可用性和应对突发事件的能力,如我们的中央空调出现故障或其他制冷单元出现故障,我们的制冷依旧能工作正常,不至于出现宕机。此外,为了设计更高一层的高可用,我们应该做数据中心高可用,在异地建设备用数据中心。
二、?服务器硬件
毕竟各种业务的载体大多都是服务器,所以服务器的高可用就显得尤其重要,但服务器的硬件不是我们生产的,我们并不能明确知道服务器哪个部件会在具体哪个时间会出现故障,即使我们是服务器硬件生产商,我们也不能够确认。所以我们在设计高可用时就应该考虑服务器硬件的高可用,比如我们需要设计双电源、多路网络适配器、多路CPU,容错能力较强的内存等。
三、?存储部分
只有保证了以上物理部件高可用,我们运行在其上的业务才可能有高级别高可用能力。我们要在一台服务器上实施高可用,我们就可以实施RAID让我们的操作系统和其上运行的应用相对来说较为高可用。RAID具备奇偶校验能力,可以在硬盘失败的时候,确保我们不丢失或更少的丢失数据。我们要在一台以上服务器高可用时,我们就可以在两台服务器上实施数据副本,当我们其中一台服务器失败时,我们另一台服务器上还有完整的数据副本,避免数据丢失。
四、?网络基础架构
?
网络在整个高可用环节起着至关重要的作用,如果网络失败,就会造成整个数据中心服务器无法提供服务,造成业务中断,所以设计一下好的网络至关重要。首先针对服务器,我们要具备多路网络接入,以备单网卡失败的情况发生,和服务器连接的交换机也是同样,我们要有冗余的交换机路由器设备或交换机路由器的相关高可用技术,比如HSRP等。
互联网连接也需要高可用,提供冗余的互联网接口对保证业务在线来说至关重要,所以选择两个及以上的ISP线路就很有必要,一些防火墙或路由器可以在一条链路失败的时候进行故障转移到另一条链路上继续提供服务,对于入站的邮件,我们很有必要创建多条MX记录,分别指向不同的ISP地址。
网络服务的高可用直接影响到我们的体验。在Exchange Server 2013的高可用组织中,Active Directory Domain Services (AD DS) 和Domain Name System (DNS)也必须高可用才可以。将AD服务器高可用的做法是,在同一物理位置必须有两台及以上有的域控制器和全局编录服务器,将DNS服务器高可用的做法是做两台及以上的DNS服务器,将他们之间的信息进行同步,默认情况下,集成ADDS的DNS?区域将在林内的DNS服务器上进行复制。
描述什么是DAG
数据库可用性组 (DAG) 是内置于 Microsoft Exchange Server 2013 中的高可用性和站点恢复框架的基础组件。DAG 是一组邮箱服务器(最多可包含 16 个邮箱服务器),其中承载了一组数据库,可提供从影响单个服务器或数据库的故障中自动执行数据库级恢复的功能。
DAG 是邮箱数据库复制、数据库和服务器切换、故障转移以及名为“活动管理器”的内部组件的边界。活动管理器在 DAG 中的每台服务器上运行,用于管理切换和故障转移。
DAG 中的任何服务器可以承载来自 DAG 中任何其他服务器的邮箱数据库副本。将服务器添加到 DAG 后,此服务器与 DAG 中的其他服务器协同工作,提供从影响邮箱数据库的故障(如磁盘故障或服务器故障)中自动执行恢复的功能。
?
实现DAG数据库高可用有以下参考信息:
1、 要求操作系统是Windows Server 2008 R2 或Windows Server 2012、Windows Server 2012 R2中的故障转移群集功能,虽然DAG的所有安装和配置都是通过EAC或EMS进行,虽然DAG的实现需要故障转移群集 ,但是Exchange Server 2013并不直接使用Windows 故障转移群集管理器去执行数据库故障转移,相反,DAG技术会使用“活动管理器”去控制故障转移,Windows 故障转移应用于其他场景,比如整个服务器都失败了。
2、 在Exchange Server 2013中使用了改良自Exchange Server 2007以来引入的连续复制技术,改良后支持了新的高可用功能,比如,数据库复制、数据库移动等。
3、 可以在任何时候添加邮箱服务器,而不用考虑它是否要做为DAG成员。
4、 因为DAG使用了Windows 故障转移的一些功能,比如心跳等,所以Exchange Server 2013 邮箱服务器必须安装在Windows Server 2012R2 数据中心版和标准版Windows Server 2012 数据中心版和标准版、 Windows Server 2008 R2 企业版和数据中心版上。
5、 允许在DAG内移动单个数据库,而不影响其他数据库
6、 允许最多创建单个数据库的16个副本,所以我们可以添加16个服务器到DAG中,但是这些数据库副本必须存储在相同的路径,比如全部是D:\DB
7、 DAG定义了复制的边界,因为只能在DAG之内进行复制,复制信息是不能在DAG之外进行的。
8、 禁止添加Exchange Server 2010服务器到Exchange Server 2013的DAG中。
?
理解DAG是如何工作
?
活动的数据库副本在DAG中进行连续性复制,将数据复制到被动数据库中以保持数据一致,DAG利用Windows 操作系统的故障转移功能,它依赖“活动管理器”组件去维护DAG中的数据库
?
以下是数据库的特征:
?
1、 单个数据库可以在DAG成员中进行切换或转移到其他成员服务器上,但是同时只能有一个活动的副本。
2、 在任何时间内,一个副本可以是复制源或复制目标,但不能同时是两者
3、 每台服务器不能同时承载单数据库多于一个的多个副本
4、 并不是所有的数据库都必须有相同数量的副本,在一个16节点的DAG中,一个数据库可以有16个副本。
?
DAG技术使提数据库出现异常时可以切换到其他DAG成员服务器上,使业务不中断。
?
理解如何使客户端访问服务器高可用
?
?
要使客户端访问服务器高可用,必须在AD中部署至少两台客户端访问服务器,Exchange Server 2013的客户端访问服务器现在是无状态服务器,这意外着客户端请求不再必须使用相同的客户端访问服务器,可以使用任何服务器。它允许使用下列技术来分配负载:
1、 DNS 轮循:要使用DNS轮循我们必须创建多条DNS记录条目以提供客户端通讯,DNS条目中必须包含所有可用的客户端访问服务器,如果有一个以上的物理站点,应该实施Geo-DNS,实施后,客户端就总是会获取近客户端比较近的客户端访问服务器的IP地址,当决定使用DNS轮循后,你必须意识到,如果服务器失败,客户端还有可能获得失败服务器的IP地址的可能。
2、 网络负载均衡:Windows Server 2012提供了名为网络负载均衡(NLB)的功能,允许在多台客户端访问服务器之间分配负载,它以虚IP(VIP)的方式向外提供服务,NLB功能可以确保只有可用的服务器对外提供服务,而不会出现DNS轮循中命中率的问题。当NLB中一个成员失败,这个IP地址就不再对外响应,这是一种基于服务器的故障转移,它不能和DAG在同一台服务器上使用。
3、 基于硬件的负载均衡:它和NLB很像,但它是基于硬件的一种负载均衡,同样使用虚IP(VIP)向外提供服务,具体技术可能根据不同厂商会有不同。
?
实现客户端访问服务器高可用,有以下几个步骤:
1、 在一个站点中部署多台客户端访问服务器
2、 使用NLB或基于硬件的NLB创建一个群集
3、 添加网络负载均衡的名字到DNS条目
在Exchange 2010中,我们还需要配置客户端访问阵列,但是Exchange 2013中,这已经不再是必须的。
?
理解如何使传输服务高可用
?
在整个邮件系统中,信息的传输无比的重要,如果信息不能够被正确送达目的地,那么邮件系统就出现了故障
在Exchange 2013中,传输高可用不仅仅只是消息冗余,Exchange 2013尝试通过两种功能结合来做到这点,卷影冗余和安全保障,卷影冗余在邮件被接收之前做个冗余副本,在邮箱服务器上安全保障将被成功处理。
卷影冗余是在Exchange Server 2010引入的一个功能,它保障了如果在邮件还没有投递到目的地并且服务器发生了失败后,邮件不会丢失,在 Exchange 2013已经得到了提高,它将会在发送成功之前自动的为收到的邮件创建冗余副本。
在Exchange Server 2013中,发送服务器支持卷影冗余是不再必须的,因为创建卷影冗余是每时每刻都在自动创建,默认情况下,卷影冗余将在两天后删除。
?
卷影冗余的主要目的在传输高可用的边界中总是保持两个消息副本,边界有以下几种:
1、 DAG
2、 AD站点
?
卷影冗余在以下几种情况下会被创建:
?
1、 从外部收到邮件
2、 向外部发送邮件
3、 在传输边界中从邮箱服务器的在邮箱传输提交服务收到邮件
?
需要注意的是:卷影冗余从不会跨越边界跟踪邮件
?
卷影冗余的工作原理简介如下:
?
1、 当在邮箱服务器上收到邮件,这个邮件会话就会开始
2、 传输服务打开一个新的SMTP会话到其他的传输服务去创建一个卷影冗余副本。
3、 当邮件被成功的提交到卷影服务器,服务器接收邮件后,这个会话将关闭
如果某邮箱服务器不属于任何DAG组,但属于同AD站点,它同样会使用卷影服务器。
?
卷影邮件的工作流程:
当服务器成功的将邮件投递到数据库中,服务器将会更新此邮件的丢弃状态,这个丢弃状态从本质上来说,包含了被监控的列表,当邮件被成功的提交后,就不再需要保存在卷影队列中,一旦卷影服务器知道拥有卷影邮件的服务器成功的将邮件传递到下一跳,卷影服务器将把邮件从卷影队列中移动到安全保障区域。
邮件是如何恢复:
当邮箱服务器由于硬件故障而停机,每个拥有卷影邮件队列的邮箱服务器都将承担这些邮件的所有者,当停机的邮箱服务器重新上线之后,它将重新提交这些邮件,所有邮件将被重新送到目标处,这是重复的邮件提交,然而,Exchange Server会自动检测重复的邮件,将不会被重复提交到数据库中,只有没有成功提交到数据库中的邮件才会被添加。
什么是安全保障(Safety Net):
在 Microsoft Exchange Server 2013 中,邮箱高可用性的主要机制为数据库可用性组 (DAG)。
“传输转储程序”最先在 Exchange 2007 中引入,并在 Exchange 2010 中得到进一步改善,以便在邮件成功提供给 DAG 中的邮箱后,提供冗余的邮件副本。在 Exchange 2010 中,传输转储程序通过维持尚未复制到 DAG 中被动邮箱数据库副本的一队成功交付的邮件,帮助防止数据丢失。如果邮箱数据库或服务器故障需要创建邮箱数据库的过期副本,则会自动将传输转储程序中的邮件重新传递至邮箱数据库新的活动副本。
传输转储程序已在 Exchange 2013 中得到改进,并且现在称为“Safety Net”。
Safety Net?与?Exchange 2010?中的传输转储程序相似之处:
1、Safety Net 是一个队列,与邮箱服务器上的传输服务相关。该队列存储由服务器成功处理的邮件副本。
2、您可指定在成功处理的邮件到期并被自动删除前,Safety Net 将把这些邮件保存多长时间。默认为 2 天。
Safety Net?在?Exchange 2013?中不同之处:
1、 Safety Net 不需要 DAG。对于不属于 DAG 的邮箱服务器,Safety Net 在本地 Active Directory 站点中的其他邮箱服务器上存储传递的邮件的副本。
2、现在 Safety Net 本身是冗余的,并且不再是单点故障。这引入了“Primary Safety Net”和“Shadow Safety Net”概念。如果 Primary Safety Net 在 12 个小时以上的时间内不可用,则重新提交成为卷影重新提交请求的请求,并且会从 Shadow Safety Net 重新提交邮件。
3、Safety Net 会负责 DAG 环境中一些卷影冗余的工作。卷影冗余在等待传递的邮件复制到 DAG 中其他邮箱服务器上的邮箱数据的被动副本之前,无需在卷影队列中保留传递的邮件的其他副本。传递的邮件的副本已存储在 Safety Net 中,因此如果需要,可从 Safety Net 重新提交邮件。
4、在 Exchange 2013 中,传输高可用性不仅仅邮件冗余的最大努力。Exchange 2013 尝试确保邮件冗余。因此,不能指定 Safety Net 的最大大小限制。可指定在成功删除邮件前,Safety Net 将把这些邮件保存多长时间。
Safety Net?工作方式
1、Primary Safety Net 在传输服务成功处理邮件之前,存在于保留主要邮件的邮箱服务器上。这可能意味着邮件被传递到目标邮箱服务器上的邮箱传输服务。或者,可通过指定为通往目标 DAG 或 Active Directory 站点上集线器站点的 Active Directory 站点中的邮箱服务器中继邮件。在主要服务器处理主要邮件之后,会将邮件从活动队列移动到同一服务器上的 Primary Safety Net。
2、Shadow Safety Net 存在于保留卷影邮件的邮箱服务器上。在卷影服务器确定主要服务器已成功处理主要邮件后,卷影服务器将卷影邮件从卷影队列移动至同一服务器上的 Shadow Safety Net 中。尽管看上去很明显,Shadow Safety Net 的存在需要启用卷影冗余,并且在 Exchange 2013 中默认启用卷影冗余。
理解边缘传输角色的高可用
在Exchange Server 2013 SP1之前,这个角色是不存在的,在SP1之后,这个角色又重新回到了架构体系。
在没有2013的边缘角色之后,我们同样可以使用2010的角色去完成工作,这是完全支持的。
为了让边缘高可用,我们可以创建两个边缘角色并配置边缘同步,我们还可以配置多个MX记录到不同的边缘服务器上,如果优先级是一样的,还可以实现负载均衡。
有些企业还在边缘传输上做了NLB,这也是支持的,就看高可用性设计是怎样的。
我们还可以为Exchange 提供两条ISP链路,以提供冗余的外发邮件线路。一些防火墙是支持当一条链轮失败后,自动将流量转移到另一条链路的。
站点恢复
站点恢复是指,当主要的数据中心失败后,其他数据中心可持续向外提供服务。
要实现这一点,额外数据中心必须具备以下条件:
1、 属于某DAG,并可持续复制
2、 具备CAS角色
3、 具备DNS、DC、GC等其他基础条件
?
更多系列文章:http://blog.51cto.com/zt/631