博主QQ819594300

博客地址:http://zpf666.blog.51cto.com/

有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持!

前言:我们在以前学习过很多种类的群集,例如linux的lvs,haproxy、keepalived等。主要作用就是当服务器发生故障的时候不影响用户的访问,做到高可用以及负载均衡。今天给大家介绍的就是exchange的高可用,当其中一台服务器出现故障,不会影响用户邮件的正常收发。

一、理论部分:

     1、为什么部署服务器的高可用性

         防止服务器突然停机,保证服务的连续性,使服务器实现冗余。

     2、Exchange高可用性技术

         1)通过部署一组服务器实现服务的连续性

         2)对数据进行一定的保护

     3、Exchange Server 2007 的高可用性——CCR

     1)CCR的工作原理

  •    通过群集技术实现

  •    需要先安装故障转移群集

  •    在群集内的安装多个邮箱服务器角色

  •    其他服务器角色只能安装在其他服务器上

  •    服务器级别的故障转移

  •    只能配置两个节点

  •    只有一台服务器进行工作

  •    某一个数据库发生故障则将所有工作转移到群集内的其他节点

exchange系列(六)实现exchange邮件服务器的高可用性_邮件

2)CCR的缺点

  •    严重浪费服务器资源

  •    一旦出现故障必须转移全部工作

  •    需要另外搭建其他服务器角色(不适合小型企业)

  •    完全依赖故障转移群集

  •    CCR建立在故障转移群集之上

  •    最多支持两个节点

4、ExchangeServer 2010—DAG (Database Availability Groups)

     1)DAG工作原理

  •    数据库级别的故障转移

  •    只转移出现故障的数据库

  •    群集节点可以安装多个Exchange角色

  •    一个DAG最多可以有16个节点

  •    数据库级别的故障转移

  •    不用先部署故障转移群集

  •    只转移出现故障的数据库

  •    可以进行异地备份

  •    通过心跳线进行数据复制

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_02

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_03

2)DAG的特点

  •    属于数据库级别的容错

  •    只把出现故障的数据库转移到其他节点上

  •    不过多的依赖于故障转移群集

  •    使用了部分功能如见证和心跳线

  •    易于扩展

  •    可以随时添加新的节点

  •    最多可以扩展到16个节点

  •    与其他服务器角色共存

  •    可以再节点上安装多个服务器角色

  •    无需群集的管理经验

  •    因为是在管理控制台(EMC)中进行管理

  •    支持异地备份

  •    可以将两个节点加入到同一个域中,分别建立不同的站点

  •    不需要共享存储

  •    只需要在每个节点本地配置存储即可

  •    连续复制日志

  •    所有的日志都会同步到其他备份节点上

3)DAG安装前的先决条件

  •    DNS服务必须运行

  •    分配给DAG的名称必须不超过15个字符

  •    节点都需要加入到域环境

  •    两个节点均进行Exchange  sp3的典型安装

  •    安装故障转移群集功能

  •    服务器版本必须相同

  •    每个DAG成员具有相同数量的网络

  •    节点必须是典型安装的Exchange sp3

4)注意事项

  •    节点需要配置双网卡

  •    MAPI网络(面向用户)

  •    复制网络(用于心跳线)

  •    见证服务器加入域

  •    见证服务器需要大于等于两个分区

  •    其中一个分区用于存放见证的数据

  •    服务器的版本必须相同

  •    不能混合部署,否则在添加成员是可能会出现错误

5)创建DAG

  •    为Exchange Trusted Subsystem组设置权限

  •    受信任的子系统

  •    让见证服务器管理DAG进行调度

  •    为DAG设置群集的IP地址

  •    添加DAG组的成员

  •    配置DAG的网络

  •    启动Microsoft Exchange信息存储服务

  •    验证DAG的创建是否成功

6)验证数据库的转移

  •    创建一个邮箱

  •    将存在用户的数据库文件删除

  •    观察控制台的变化

  •    在进行收发邮件,看一下是否正常

7)DAG的增量部署、支持异地灾备 。

DAG的增量部署 :

  •    无需事先部署Windows故障转移群集

  •    从“典型安装”的单服务器即可开始部署DAG

  •    随时扩充新节点,最多为16个

  •    节点为偶数时需要见证,为奇数是不需要

  •    添加新的数据库时,必须创建副本否则不能复制

  •    可以直接部署本地存储,无需在部署网络存储

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_04

二、实验部分

实验案例:DAG实现邮件系统高可用性

1、实验环境和需求描述:

公司现在只有一台exchange2010的典型安装的邮件服务器(存在三个角色:邮箱服务器角色,集线器传输角色和客户端访问角色),现在希望避免单点故障和实现邮箱数据库的冗余,公司决定通过部署双节点的DAG实现Exchange邮件系统的高可用性。

网卡的配置:

MAPI网络(面向用户):192.168.10.0

复制网络(用于心跳线):10.0.0.0

     服务器操作系统均采用windows server 2008r2版本

     需要三台服务器:一台DC/DNS/见证服务器,两个节点服务器(Exchange服务器),已有一台典型安装的服务器还需要再部署一台服务器(典型安装),已有的是mailserver01.benet.com,现在新加入了一台exchange服务器是mailserver02.benet.com。

2、实验思路

1)  准备实验环境

2)  新建数据库可用性组

3)  添加数据库可用性组成员

4)  新建邮箱数据库

5)  添加邮箱数据库副本

6)  验证

3、安装另一台exchange2010的实验步骤

都必须是exchange sp3,否则会出错。

安装exchange2010,这里不再赘述了,如果不会,请参考我的博文:

exchange系列(一)exchange2010邮件服务器的安装与规划

下面正式开始本次的实验:

Exchange部署完成了,接下来开始部署今天的实验配置服务器的高可用性————DAG(Database Availability Groups)数据库可用性组。

虚拟机环境图:

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_05

域benet.com :192.168.10.10

mailserver01  : 192.168.10.20

mailserver02  : 192.168.10.30

DAG虚拟IP   :192.168.10.100

1)首先将三台计算机都关闭计算机,在DC上添加一块硬盘,分一个分区用于存放认证服务器的数据。

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_06

2)两台Exchange服务器在添加一块网卡用于复制数据,添加完成之后进行开机。

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_07

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_08

3)打开两台服务器的网卡进行配置,mapi网络已经配置好了,不懂动了(使用vm1通信)。

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_09

4)配置新添加的网卡用于复制数据(两块网卡使用VM8通信)。

下图是复制网络(心跳线)网段10.0.0.0

DNS指向域控制器所在的服务器(即DC)。

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_10

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_11

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_12

5)配置WINS,按照下图进行配置

点击上图中的“高级”

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_13

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_14

6)将mapi网卡的优先级调到最高

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_15

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_16

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_17

mailserver02也是一样的操作:

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_18

7)配置见证服务器的存储,这里见证服务器就和域控制器在一起(因为是实验环境,这里只添加40G磁盘空间就可以了)。

分区已经建好(第一步已说了),现在是在分区里面新建一个文件夹叫DAG,这个文件夹用于存放见证服务器的文件。

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_19

8)因为这台DC还是见证服务器,所以需要将Exchange Trusted Subsystem组加入到管理员组,以可以获取相当于管理员的权限,如果不加,那么后面的配置DAG组时可能会出现问题

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_20

对“Administrators”右键点击→选择“属性”:

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_21

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_22

至此,见证服务器就配置完成了。

9)在maiserver01服务器上创建两个邮箱数据库名为mailbox01和mailbox02。

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_23

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_24

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_25

大家想一想为什么会有两个默认的已建好的数据库(第1个和第2个)和一个已存在的公共文件夹数据库(第5个),这是因为随着Exchange安装就创建好的数据库,那为什么默认的数据库是两个呢,这是因为一个域里面有两台exchange服务器,所以是两个默认的,但是无论怎么样,公共的文件夹数据路只能有一个。

10)邮箱数据库创建好了之后,我们来创建DAG(数据库可用性组)

注:(默认是不存在DAG组的)

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_26

先去看一下DC的完整计算机名称:

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_27

接着返回到mailserver01这里来:

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_28

注意:组名称一定要起一个形象一点的,因为这个组名决定了在DNS服务器(即DC)中的FQDN名,我们需要通过这个FQDN名访问OWA客户端系统。

指定见证服务器文件存放的目录,就是刚才创建的目录。

见证服务器其实是起到了一个仲裁的作用,如果上面的那个组没有添加到管理员组,这里是创建不成功的。

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_29

11)为DAG组配置IP地址,这里定义为192.168.10.100,需要打开EMShell进行操作,执行下面命令:

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_30

看不清截图的可以看下面:

Set-DatabaseAvailabilityGroup-Identity DAG

-DatabaseAvailabilityGroupIpAddresses  192.168.10.100

使用命令查看:Get-DatabaseAvailabilityGroup | fl name,*ip*

可以看见DAG组的IP地址:

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_31

12)接下来在组中添加成员

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_32

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_33

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_34

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_35

这有个警告是正常的,不用理会,继续下面的操作。

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_36

13)接下来配置DAG组的网络

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_37

其实默认就可以了,但是我们这里为了提升性能,把不用来复制的其他网络就不让他启用复制功能了,将启用复制的对勾去掉就可以了。

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_38

确认下图中的服务启动(两台服务器都要启动,否则无法完成复制)

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_39

14)接下来验证一下(三种检验方法)

①可以看见DNS服务器已经将DAG创建了A记录:

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_40

②在AD用户与计算机中的computers里面可以看见DAG:

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_41

③可以在群集管理器中,查看存在的节点:

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_42

如果上述的三种方法都确认了,则说明创建成功了。

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_43

上述的三种方法确认创建成功了。

15)配置第二部分“邮箱数据库的副本”

在配置之前向mailbox01中添加一个用户为user1

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_44

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_45

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_46

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_47

创建好了之后为邮箱数据库创建副本:(如果右键点击看不见“添加邮箱数据库副本”几个字,则多按几次F5刷新即可)

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_48

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_49

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_50

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_51

上图中可以看出,mailbox01在mailserver01上是已装入状态,在mailserver02上是正常(在复制完成的时候就可以对副本进行激活)

说明:实际上就是mailserver01为主动,mailserver02为被动,被动已经连接正常,在mailbox02也是完成一样的操作。

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_52

16)测试DAG

①使用user1通过客户端登录https://DAG.benet.com/owa

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_53

②使用user1登录,给自己发一封邮件进行测试

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_54

③将邮箱数据库的文件彻底删除掉,来模拟数据库损坏,需要先将数据库卸载掉,因为如果不卸载的话,数据库文件是使用状态下是不能删除的。对mailbox01点击右键卸除数据库库,进入到C:\ProgramFiles\Microsoft\Exchange Server\V14\Mailbox

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_55

我们可以看一下数据库和副本的状态:

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_56

现在mailserver01是已卸除状态;mailserver02是正常状态。

现在去

C:\ProgramFiles\Microsoft\Exchange Server\V14\Mailbox删除mailserver01:

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_57

④再对数据库右键进行装入会报错误,提示数据库文件不存在

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_58

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_59

⑤mailbox01已经在mailserver01上是卸载状态了,但是mailserver02还没有进入到装入状态,是因为这个副本还没有激活,我们对其点击右键进行激活(选择最佳可用性)

exchange系列(六)实现exchange邮件服务器的高可用性_exchange_60

exchange系列(六)实现exchange邮件服务器的高可用性_服务器_61

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_62

这时mailserver02就是已装入状态。

⑥我们再登录邮箱看一下是否正常

exchange系列(六)实现exchange邮件服务器的高可用性_邮件_63

至此,实验完毕了,user1还能正常的发送邮件,这就证明了我们的整个搭建的过程是没有任何问题的。

总结:可以看到始终我们都没有登录到mailserver02上进行操作(除了启动一下服务之外)。

这就说明了,一个站点下在一台服务器上就可以完成所有操作。