在一篇文章中,我们详细介绍了CAS+HT角色的高可用,今天我们就来解决邮箱服务器的高可用问题,Exchange Server2010的DAG技术可以满足此需求。DAG的全称是Database Availability Group,可以提供数据库级别的容错,并且不需要昂贵的专业存储,理论上使用普通本地硬盘即可。并且在组成DAG的服务器数据库之间会自动实现数据同步。在任何一台Exchange服务器上对邮件数据库进行增、改、删的操作都会同步到其他服务器上。下面,咱们就具体看一下如何实现DAG。今天我们使用的拓扑结构还是上一篇文章中的相同,如下图所示:
部署DAG服务器要求至少有两块网卡,一块用于其他Exchange角色与MBX角色通信使用,相当于故障转移群集中的PUBLIC,在此称为MAPI网络;另一块用于两个DAG成员之间的通讯,相当于故障转移群集中的HEART,在此称为复制网络。
下面我们就开始在DAG1上进行第一台MBX邮箱服务器的安装,MBX邮箱服务器角色也需要安装 Microsoft Filter Packs组件(这是MBX角色和HT角色所需要的);安装IIS组件(角色不同,组件的内容不同);配置远程管理功能,包括TCP端口的自动共享、服务器的远程管理以及为远程管理开放防火墙端口设置(所有角色都需要)。
步骤1:安装Microsoft Filter Packs组件。使用exadmin用户登录到DAG1上,以管理员身份运行安装Microsoft Office Filter Packs,截图略。
步骤2:安装IIS组件。在Windows PowerShell命令行环境下运行Import-Module ServerManager,再执行:Add-WindowsFeature NET-Framework,RSAT-ADDS,Web-Server,Web-Basic-Auth,Web-Windows-Auth,Web-Metabase,Web-Net-Ext,Web-Lgcy-Mgmt-Console,WAS-Process-Model,RSAT-Web-Server –Restart。系统重启后进行下面的步骤,如下图所示:
步骤3:安装远程管理组件。以管理员权限运行CMD命令行,运行下面三条命令sc config NetTcpPortSharing start= auto;winrm quickconfig;Netsh advfirewall firewall set rule name=” Windows 远程管理 - 兼容模式(HTTP-In)” new enable=yes,截图略。
步骤4:安装MBX角色。经过以上的准备工作之后,就可以进行MBX角色的安装了,我们在DAG1中放入Exchange安装光盘,运行安装程序。在此步骤1和步骤2已经满足条件,所以在此直接点击步骤3,选择Exchange语言选项,如果是在中文版操作系统上安装中文版Exchanger,则直接选择仅从DVD安装语言,如果安装的是其他语言的Exchange,则需要选择语言包。在此我们选择:仅从DVD安装语言。再点击步骤4:安装Microsoft Exchange,接着接受许可以及是否发送错误报告之后,出现如下图所示:
下一步之后,我们选择所要安装的组件,在此我们选择邮箱角色,管理工具会默认选中。如下图所示:
下一步之后,将进行客户端设置,如下图所示:
这个界面主要是询问,组织中有没有用户使用Outlook2003之前的版本。如果有的话,Exchange将为这些用户创建公用文件夹。如果用户使用的Outlook版本都是Outlook2007之后的版本,就在此选择否。接着还会进行一些状态检查,主要是检查安装的先决条件,如果没有问题,就等待安装吧。如果看到下图就说明,这台MBX角色就安装成功了。
这个步骤也可以使用命令完成,而且一般为了更便捷,建议两台DAG成员都使用命令行安装:
Setup.com /mode:Install /roles:m /targetdir:c:\exchange2010 /EnableLegacyOutlook /mdbname:staff /dbfilepath:e:\DB\staff.edb /logfolderpath:e:\stafflog
步骤5:配置IIS站点的PowerShell虚拟目录权限。启用Windows 身份验证,禁用匿名身份验证,如下图所示:
到这儿为止,第一台MBX角色就安装配置结束了。请使用同样的方法在DAG2上进行安装,完成上述的步骤1---步骤5的操作。因为整个操作完全一样,就不再进行介绍。
创建DAG
当DAG1和DAG2两台高可用组成员都完成相应的安装配置后,就可以进行创建DAG了。大家在这里可以把DAG想像成一个逻辑概念,就是一个数据复制的边界,只有在同一个DAG组内的MBX服务器上面的数据库之间才可以相互复制,需要在每台MBX服务器上都有一套完全相同的邮箱数据库。另外一点需要注意的就是DAG底层借助Windows故障转移群集。
下面我们就开始创建DAG了,可能通过EMC图形界面,也可以通过EMS命令行。在此我就以EMC图形界面为例,后面会给出命令行的实现方法。我们就在DAG1上,打开EMC管理控制台----组织配置----邮箱,从中间窗格中切换到“数据库可用性组”选项卡。空白处右键“新建数据库可用性组”,出现如下图所示的界面:
在此输入DAG的名称,注意我在此使用的是DAG01,此名称会在DNS中进行注册。我的两个成员名是DAG1、DAG2,不要混淆。见证服务器一般指定MBX角色之外的服务器,一般使用HT或者是CAS。在此我们就使用CASHUB1。另外还会在见证服务器上创建一个见证目录。如果是多数节点的模式下,则不需要见证服务器和见证目录。
在完成界面里,可以看到相应的命令行。下面我们需要设置DAG的群集IP地址,方法是在新建的DAG名称上右键“属性”---切换到"IP地址"选项卡,添加即可。如下图所示:
添加数据库可用性组IP地址之,点击“确定”,但现在我们的DAG组中还没有成员,还需要继续操作向DAG中添加成员,也就是把DAG1和DAG2加入到可用性组中。方法是:在新建的DAG名称上右键“管理数据库可用性组成员身份”,然后添加DAG1和DAG2。如下图所示:
当点击“确定”、“管理”后,需要稍等片刻,因为系统在加入成员的同时还需要在成员机器上安装Windows的故障转移群集服务。
从这个图中看到DAG2上有一个警告,这是正常的,因为此时群集的IP地址资源是在DAG1上。到这一步为止,DAG组就创建完成了。 使用命令创建DAG组显得更简单:
New-DatabaseAvailabilityGroup -name dag01 -WitnessServer cashub1 -WitnessDirectory c:\witness -DatabaseAvailabilityGroupIpAddresses 192.168.10.30
这条命令的意思是创建一个名为DAG01的数据库高可用组,使用CASHUB1服务器作为自己的见证服务器,用c:\dag01文件夹作为见证目录,同时群集IP地址是192.168.10.30,再通过下面的命令加入成员:
Add-DatabaseAvailabilityGroupServer dag01 -MailboxServer hq-dag1
Add-DatabaseAvailabilityGroupServer dag01 -MailboxServer hq-dag2
验证DAG部署
先看一下见证服务器上见证目录是否创建成功,我们的见证服务器是CASHUB1,见证目录是C:\Witness,如下图所示:
再打开子目录,可以看到里面的文件信息,如下图所示:
接下来,再看一下故障转移群集中的资源,我们可以到任意一个节点上打开故障转移群集管理器,从下图中可以看到群集名就是我们在DAG部署中指定的DAG01.uec.com。群集中两个节点都处于正常状态。
创建邮箱数据库副本
下面我们需要为总部员工创建邮箱数据库staff,为分支机构员工创建邮箱数据库brach,两台机器都有 E盘和F盘。Staff在DAG1上主动数据库,在DAG2上存放副本;Branch在DAG2上是主动数据库,在DAG1上存放副本。
我们先在DAG1上新建数据库staff,如下图所示:(在此案例中,可以同时在DAG2上新建数据库Branch,数据库文件路径及日志文件夹路径为F:,让DAG1成为它的副本,因操作过程相似,在此不再另行说明)。
此时在DAG1上Staff为主动数据库,还需要在DAG2上生成Staff数据库的副本。这样两台邮箱服务器上才能都有一个名为Staff的数据库。右键点击Staff数据库,选择“添加邮件数据库副本”。选择在服务器上DAG2上添加数据库副本。
这样,Staff数据库就有一个副本。当用户访问Staff上的邮箱时会连接DAG1服务器,如果DAG1服务器出现问题,CAS服务器将检测到故障,并在1分钟内将用户连接重定向到DAG2服务器的Staff数据库。从上图中可以看到Staff在DAG1上是主动的,我们也可以手动将DAG2设置为主动。方法是:右键Staff数据库,点击“移动活动邮箱数据库”,然后选择要承载活动邮箱数据库副本的邮箱服务器, 也就是DAG2。
此时,我们再去查看Staff邮箱数据库的状态,DAG2已经是主动的。而DAG1为副本。如下图所示:
如果考查文件信息可以看到,在DAG1的E:和DAG2的E盘都有Staff邮箱数据库的文件夹和文件信息,也就是说同一个邮箱数据库,在所有DAG成员服务器上的盘符路径是相同的。如下图所示:
到了,写到这儿,关于DAG的创建就介绍完了,相信您也一定看明白了,下一篇文章我们将介绍针在此高可用环境下的相关配置工作。