2014年5月4日星期日

探讨Exchange 2013的高可用设计

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
探讨Exchange 2013的高可用设计  阅读原文»

每日博报 精彩不止一点关闭
探讨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服务器,将他们之间的信息进行同步,默认情况下,集成ADDSDNS 区域将在林内的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中的数据库

clip_image002

以下是数据库的特征:

1、 单个数据库可以在DAG成员中进行切换或转移到其他成员服务器上,但是同时只能有一个活动的副本。

2、 在任何时间内,一个副本可以是复制源或复制目标,但不能同时是两者

3、 每台服务器不能同时承载单数据库多于一个的多个副本

4、 并不是所有的数据库都必须有相同数量的副本,在一个16节点的DAG中,一个数据库可以有16个副本。

DAG技术使提数据库出现异常时可以切换到其他DAG成员服务器上,使业务不中断。

理解如何使客户端访问服务器高可用

clip_image004

要使客户端访问服务器高可用,必须在AD中部署至少两台客户端访问服务器,Exchange Server 2013的客户端访问服务器现在是无状态服务器,这意外着客户端请求不再必须使用相同的客户端访问服务器,可以使用任何服务器。它允许使用下列技术来分配负载:

1、 DNS 轮循:要使用DN

haproxy的高可用  阅读原文»

haproxy的高可用

一、简介

软件负载均衡一般通过两种方式来实现:基于操作系统的软负载实现和基于第三方应用的软负载实现。

LVS 就是基于 Linux 操作系统实现的一种软负载,HAProxy就是开源的并且基于第三应用实现的软负载。HAProxy 相比 LVS 的使用要简单很多,功能方面也很丰富。当前,HAProxy 支持两种主要的代理模式:"tcp" 4 (大多用于邮件服务器、内部协议通信服务器等)和 7 层(HTTP 4 层模式下, HAproxy仅在客户端和服务器之间转发双向流量。 7 层模式下, HAProxy 会分析协议,并且能通过允许、拒绝、交换、增加、修改或者删除请求(request)或者回应(response)里指定内容来控制协议,这种操作要基于特定规则。

详情可以HAProxy 官方网站(http://haproxy.1wt.eu)可以下载配置说明文档(configuration.txt)和架构文件(architecture.txt)作为参考。

二、拓扑图

wKiom1NkmDiDQklkAAFLIuuKoiI399.jpg

三、 配置过程

注:

OS:Centos 6.5x86_64

己经安装的包组 :

#yum groupinstall -y "Development tools" "Server Platform Development"

前提:

HAproxy A与B要做到

主机名解析

时间同步

无密钥登录

1、HAproxy A配置

  • 安装keepalived、haproxy

#yum install -y keepalived haproxy

配置keepalived

  • 编辑/etc/keepalived/keepalived.conf

  • ! Configuration File for keepalived
    notification_email {
    notification_email_from essuninfo@localhost
    smtp_connect_timeout 3
    smtp_server 127.0.0.1
    router_id LVS_DEVEL
    vrrp_script chk_haproxy {
    script "killall -0 haproxy"
    vrrp_instance VI_1 {
    virtual_router_id 109
    garp_master_delay 1
    virtual_ipaddress {
    172.16.1.103/16 dev eth0 label eth0:0
    notify_master "/etc/keepalived/notify.sh master"
    notify_backup "/etc/keepalived/notify.sh backup"
    notify_fault "/etc/keepalived/notify.sh fault"
    vrrp_instance VI_2 {
    virtual_router_id 52
    garp_master_delay 1
    virtual_ipaddress {
    172.16.1.109/16 dev eth0 label eth0:1

    通知脚本

# description: An example of notify script
vip=172.16.1.103
contact='root@localhost'
mailsubject="`hostname` to be $1: $vip floating"
mailbody="`date '+%F\ %T'`: vrrp transition, `hostname` changed to be $1"
echo $mailbody | mail -s "$mailsubject" $contact
/etc/rc.d/init.d/haproxy start
/etc/rc.d/init.d/haproxy stop
/etc/rc.d/init.d/haproxy stop
echo 'Usage: `basename $0` {master|backup|fault}'
#chmod +x /etc/keepalived/notify.sh

配置haproxy

没有评论:

发表评论