相比之前的Blog更新速度,最近应该算很久没有写新的东西了。一方面是工作的事情太多,另一方面也主要是在学习和研究。现在工作上的事情,相对轻了一些,而且,也该总结一点东西了。
    所以现在,我尽可能的将前一段时间的一点心得,总结于此。算是对自己的总结,也为路过的朋友提供一点参考。

    那么第一个,就来谈谈DAG这个东西。
    DAG(Database Availability Groups):数据库可用性组技术使Exchange Server 2010在高可用性方面得到进一步简化与完善,借助于多台服务器间的连续复制,可为用户提供高可用性的Exchange邮箱。这看似只是一项简单的改进,但实际上,与前代版本相比,这是一个非常大的进步,它使用户无需借助复杂的技术与高昂的设备,就可以获得高可用性。(此段摘自于exchangecn.com)
    相信对Exchange2010有所了解的人肯定会知道这项重大的改变。相比一些其他的所谓的新功能、新体验来说,这项位于系统核心的数据结构和服务器结构上的变化,我个人觉得,可能意义更为重大一些。到底有何意义,又为何重大,我们暂且不论。先来一些理性的分析看看。
 
    无论是中文名字“数据库可用性组”还是英文名字“Database Availability Groups”,我们都可以看到,它们是由三个部分组成:D-数据库、A-高可用、G-组。那么我们就从这三个方面来个全面的认识。
 
  • D-数据库
        这个数据库从本质上,它是一个位于硬盘上的文件,相信这点绝对没有歧义。那么这么一个本质的东西能有什么值得关注的呢?有,那就是容错方式。
        相信大家都知道在Exchange2007的时候,有两种用于高可用性的技术,LCR和CCR。LCR是通过在本地创建一个数据库的副本,而CCR是在一个Failover Cluster的备份节点上创建一个数据库副本。这两种方式可以任选一种,或者组合使用。
        好处不必多说,之前实际接触过的朋友,自然清楚。不大了解的朋友,也能通过搜索来获取到非常丰富的信息。这里只谈谈不足之处,也就是促使微软在Exchange2010里做出改进的地方。
        下面列举一二:
            LCR、CCR只能用于MB角色
            LCR无法支持主机级容灾,换句话说,如果是主机掉电或者物理网卡失败,无论本地有多少个数据库副本,均无法实现高可用。
            CCR必须构建于Windows Failover Cluster之上,随之带来诸如无法实现异地容灾;或者某一节点上的某一DB失败,导致所有DB全部发生切换操作;以及永远都有至少一个未被实际利用的备份节点服务器资源;等等。
        为了解决这些问题,在Exchange2010中,结合了以前的CCR和LCR想法。在DAG中,数据库的容灾,完全基于DB级或者说是服务级,与windows是否实现cluster无关。换句话说,有点类似于SQL的数据库镜像。它是通过数据库日志的方式,同时在几个数据库镜像上写入相同的数据,且有一套机制来保证所有镜像副本上的操作一致性。数据库镜像最多可以创建16个,在这些镜像中,有一个是出于活动的对外提供服务,其余的全部用来备用。而这每一个镜像副本,分别放置在可用性组中的不同服务器上。
        这样做的一个最大的好处就是,最为关键的邮箱数据库服务,不会受到任何其他层面的影响,而只会关注某一个数据库的状态是否可用。它不关心数据库文件是放在哪里,放在什么样的存储设备上,也不关心Windows是否实现了高可用,更不关心网络是否通畅。只要它发现某个应该提供服务的数据库副本无法提供服务了,就立刻会启动另外一个副本进行工作。并且只是针对这一个邮件数据库而已,如果同一个服务器上的其他副本的数据库服务正常的话,它们将不会被切换走。
        另外,脱离Cluster,就更容易实现异地灾备的解决方案了。理论上,DAG的数据库镜像,并不关心这些服务器是否在同一个地点,它们之间只要保证必要的链路带宽,保证数据库日志的有效复制,就可以实现高可用了。当然,具体的带宽,目前我也没有去测过。留个作业给大家把。
        数据库的结构如此,其实只是一个基础。至于怎么被切换,才是关键,下面就看看高可用性是如何实现的了。
  • A-高可用
        DAG中所实现的高可用,简单来说,是两个层面的工作。一个是数据库服务的监控,第二个,其实还是使用了Windows底层的MSCS(MS Cluster Service),只是可以不需要将Windows搭建成Cluster环境而已。
        MSCS就不单说了,就是个底层的Windows服务,随便一搜,就能搜到好多。这里我们主要谈谈服务的监控和切换的实现。
        在此之前,我觉得有必要提一下Exchange2010中服务器角色架构的改变。其中最大的改变就是CAS,因为以前MAPI方式的客户端是直接连接到MB角色上的。而在Exchange2010中,CAS接管了所有方式的客户端连接,包括MAPI方式的连接。
        在活动邮箱数据库副本上会运行 Information Store, CI, Assistants等服务,而每个DAG中的服务器上都会运行一个叫Active Manager的组件(貌似它就是基于MSCS之上的一个东西)。在CAS角色上,有一个叫RPC Client Access的东西。
        在它们之间又形成了一个C/S结构,CAS是C,MB是S。通过CAS上的RPC Client Access服务,如果它发现MB上的这个服务有任何的闪失,它将通过Active Manager的配合,找到另外一个副本进行连接。并且Active Manager会将那个备份副本,启用成活动副本。
        这样,一个服务的快速切换,就完成了,不过其实大概需要30秒左右。如果凑巧此刻没有用户在收发邮件的话,可能就是一次神不知鬼不觉的切换了。如果碰上老大正在发邮件,被卡了的话,30秒好像也不是很严重,不过提前编好3套以上的解说词比较靠得住。。嚯嚯。。
        当然,有人肯定会问,如果CAS出现故障,不就歇菜啦?确实如此!!我很负责的告诉大家,如果CAS不可用了,就等着电话被打爆吧。。。呵呵。。不过还好的一点是,Exchange2010除MB以外的所有角色均支持NLB,所以在这个问题上,比Exchange2007要好解决多了。
  • G-组
        最后,我们再来看看这个用来做数据库载体的“组”,是个什么东西。
        其实很简单,它就是一堆服务器的集合。这个集合所起的作用是明确资源的边界,明确管理的边界,仅此而已。
        如果还不太明白,我们就来一个著名的比喻吧。。组就是一张茶几,上面放满了“杯具”。。杯具就好比我们的服务器节点,数据库副本就是水,你可以把水倒入这张茶几上的任意一个或者多个杯具里(提示:DAG中最多只能倒16个),但你没有办法把水倒在这张茶几以外的杯具里面。换句话说,如果你希望用另外一个杯具来盛水,那你必须先把它放到这个茶几上来。
        大致可以这么认为,但其实DAG中,服务器节点和组的情况要比这个比喻复杂。准确来说,是一个茶几上放了好几套杯具,注意是套,不是个,因为一套可能有好几个杯具组成,而每一套里的杯具可以分别放入不同的饮料。所以一个服务器节点,其实相当于一套杯具。因为在一个服务器中,可以放入多个不同的数据库副本,并且允许它们有些是活动的,有些是其他节点上的备份副本。
 
    谈到这里,算是把DAG大致了解了一下。概括来说,它就是通过类似SQL的数据库镜像技术,实现了邮件数据库的高可用性。从而避免了对Windows Cluster的依赖,也简化了高可用的实现方式。这就是DAG的意义所在。

    至于意义是否重大,还要看不同的企业,不同的需求,不见得DAG就能适用于所有的场景。
    其实明眼人可能已经看出其中的猫腻了,对,就是存储!!如果没明白过来的人,可以算笔帐。如果在Exchange2007下使用CCR的方式实现高可用性的话,我们算一下如果数据库是1个G的大小,最终我们需要多少个G的存储空间。其实很简单,就是1个G。因为即使是多节点的Cluster,由于我们可以使用共享存储机制,所以,实际支出的存储空间,只有共享存储中的那1个G而已。。

    但是如果是DAG呢?乖乖隆嘀隆啊!!有几个副本,所需要的空间就翻多少倍!因为DAG是不关心你底层数据存储方式的,不管是本地硬盘、直连存储、还是网络存储,也不管你的存储级别是否已经提供了冗余机制。

    不过以微软自己的说法,这种方式也有它的好处,因为DAG的机制,加上Exchange2010中邮件数据结构的变化,使得I/O大量减少,且提高了数据存储的效率。所以使得用户可以使用更为廉价的直连存储,甚至是SATA的本地硬盘来作为邮件系统的存储解决方案。暂且不说是否坏了好多存储硬件厂商的好事,对于中小型企业来讲,这确实是一件非常好的事情。

    但是,对于一些大型或者超大型企业来说,他们可能已经在早期做出了规划,并投入了SAN或者别的存储解决方案。而且对于他们来说,垂直型的IT架构分解,对于管理来说是非常有必要的。那么对于这些企业来说,DAG将绝对是个噩梦。。现在唯一能做的,就是通过配置不同的RAID,来提高存储的使用率。。

    如何取舍?相信每个老百姓心里都有自己的一杆称。。。

    最后贴个示意图,相信大家都能看明白。。

我眼里的Exchange 2010 之:1—DAG相关推荐

  1. Exchange 2010无法创建DAG第二个成员

    故障现象:windows 2008 R2和Exchange 2010 (已打SP2补丁)的环境,单独的DC.CAS& HUB.MAILBOX服务器, CAS&HUB网络负载平衡NLB, ...

  2. EXCHANGE 2010 DAG 实验总结

    EXCHANGE 2010  DAG 的建立还是非常简单的,比SQL  SERVER 的故障转移群集简单太多了.但是有些图文教程里面有写的不清楚的,没有说明的地方,就会导致群集故障转移失败.请看下面: ...

  3. 赛门铁克 be能备份mysql么,赛门铁克 BE12.5备份exchange 2010 dag问题

    赛门铁克 BE12.5备份exchange 2010 dag问题 报错信息: 描述: Backup Exec 警报: 作业失败 (服务器: "XXXXXXX.com")(作业: & ...

  4. 【转】使用Windows Backup备份Exchange 2007 SP2和Exchange 2010

    做过Exchange 2007测试的朋友,一定不会忘记在Windows Server 2008系统上安装部署Exchange 2007 RTM,备份是多么痛苦的一件事情:无法使用系统自带的工具进行备份 ...

  5. Exchange 2007迁移Exchange 2010应该注意的13件事

    1.      Exchange 2007可以支持升级到Exchange 2010,但需要提前将Exchange 2007所有服务器环境升级至 SP2或以上版本. 2.      Exchange 2 ...

  6. 多种方法解决Exchange 2010 EMC批量启用邮箱之后出..

    平时大家在做Exchange 项目的时候都是需要批量导入AD账户和批量启用AD账户的邮箱,但是有一个比较奇怪的问题是当你使用Exchange 2010 EMC来批量启用邮箱之后会出现乱码问题,并且邮箱 ...

  7. Exchange 2010 跟我走 之三-Exchange 2010 新功能

    聊了这么久的Exchange 2010 ,但是Exchange 2010 究竟给企业带来怎样的好处呢?近期Exchange 2010 SP1 也发布了.我们一起来看看有什么惊喜的新功能吧: Excha ...

  8. Exchange 2010 SP1升级Exchange2010 SP3

    因项目需要,做了一次Exchange2010SP1升级至SP3的测试,顺便做下记录. 一.管理员账户权限: 升级账户权限必须是"委派安装"管理角色组或 组织管理 管理角色组的成员. ...

  9. exchange 2010 search mailbox 的幕后强大功能

    铃---.半夜中被一阵急促的手机铃声吵醒,年度服务客户打来电话需要进行邮件的排查和删除工作.问其原因,原来是组织中有人发了一封关于领导的不健康的邮件,并在企业内部进行了转发,领导要求立即找出此类邮件并 ...

最新文章

  1. Powershell(3)
  2. 运维自动化之zabbix (Discovery)(9)
  3. debian var目录
  4. 剖析 | torch.nn.functional.softmax维度详解
  5. (~最新合集~)计算机网络谢希仁第七版 第五章课后答案
  6. android textview 背景图片,Android—TextView 背景颜色与背景图片设置
  7. bzoj 2795 [Poi2012]A Horrible Poem hash+线性筛
  8. IQ推理:P先生和Q先生
  9. 《Windows黑客编程技术》—— 学习历程
  10. 【C#】AutoCAD二次开发笔记
  11. linux磁盘怎么分区,linux磁盘分区,linux磁盘分区怎么划分
  12. 北京折叠——一部刚要开始就已经结束的科幻小说
  13. cat 常用的日志分析架构方案_深度剖析|数据库生产常用架构方案
  14. 关于显示屏分辨率的问题
  15. zerg发出了第一个报文,纪念一下!!!
  16. 金三银四铜五铁六,Offer收到手软!
  17. Linux文件管理系统
  18. C语言实战:C语言打印九九乘法表
  19. 2021上海大学计算机考研大纲,2021上海大学历年运筹学考研真题及答案、考研大纲汇总.docx...
  20. 79到85年出生的人的十大尴尬:

热门文章

  1. Verilog初级教程(20)Verilog中的`ifdef 条件编译语句
  2. 【Verilog HDL 训练】第 01 天
  3. 星巴克和阿里“结婚”,这后面真的不简单
  4. 由一行文本输入框引发的思考
  5. 正則表達式截取字符串两字符间的内容
  6. 为什么在系统中使用JSON
  7. CodeForces 609B The Best Gift
  8. 动态规划解决方案最长公共子序列问题(开启)
  9. DG环境数据库RMAN备份策略制定
  10. Spring (二) OOP V.S AOP