分享
 
 
 

实现基于SQL Server存储账号的MDaemon群集

王朝mssql·作者佚名  2008-05-30
窄屏简体版  字體: |||超大  

·本章概述

MDaemon Server(以下简称 MDaemon) 的冗余方案有多种选择,本章将以微软公司出品的 SQL Server 2005 简体中文企业版(以下简称 SQL2005)作为 MDaemon 账户存储数据库,在微软群集(MSCS)上部署 SQL2005 虚拟服务器群集,从而实现 MDaemon 的故障自动转移,达到用户所要求的高可用性。

因为本章重点放在 MDaemon 群集的实现上,所以关于 MSCS 和 SQL2005 群集的部署请参考:

1.Windows Server 2003 群集的创建和配置

http://www.microsoft.com/china/technet/prodtechnol/windowsserver2003/technologies/clustering/confclus.mspx

2.部署SQL2005群集实战总结

http://goxia.maytide.net/p/sql2005_cluster.php

本次实验所使用的 MDaemon 版本是 v7.23 英文版,建议大家不论测试还是实际生产环境最好都使用英文版以避免不必要的错误故障,如果情况允许最好操作系统也选择英文版,因为在实际情况中发现英文版的 MDaemon 与中文系统存在兼容性会导致菜单显示不完整。

·测试环境

宿主:

硬件配置:PIV2.4G / 1.5G-DDR400 / 80G-7200pm / 8139C-NIC

操作系统:Windows XP Pro With SP2 ENU

虚拟平台:VMware GSX 3.2.1

----------------------------------------------------------------------------------------------------------------

NodeA:

硬件配置:PIV2.4G / 512M / 10G+0.5G(Qdisk)+4G(Sdisk) / vlance-NIC+vmxnet-NIC

操作系统:Windows Server 2003 EE With SP1 CHS

网络信息:vlance-NIC:10M 全速半双工 / Heartbeat / IP192.168.236.250

vmxnet-NIC:1000M 全速全双工 / Public / IP192.168.199.250

承载信息:DC+DNS+IIS+SQL2005+MSCS

----------------------------------------------------------------------------------------------------------------

NodeB:

硬件配置:PIV2.4G / 512M / 10G+0.5G(Qdisk)+4G(Sdisk) / vlance-NIC+vmxnet-NIC

操作系统:Windows Server 2003 EE With SP1 CHS

网络信息:vlance-NIC:10M 全速半双工 / Heartbeat / IP192.168.236.251

vmxnet-NIC:1000M 全速全双工 / Public / IP192.168.199.251

承载信息:DC+DNS+IIS+SQL2005+MSCS

----------------------------------------------------------------------------------------------------------------

MSCS:

MSCS:IP192.168.199.200 / HostName:CLUSTER

SQL2005 VirtualHost:IP192.168.199.201 /HostName:SQL2005

·理论概念 %26amp; 最终目标

使用 SQL2005 作为 MDaemon 账户存储数据库并基于群集模式,以保障 MDaemon 任何一个节点服务器出现故障后仍然能够提供域和帐户的验证及管理。

使用资源磁盘(以下简称Sdisk)来存储 MDaemon 的用户数据,以保障 MDaemon 任何一个节点服务器出现故障后,用户在通过验证后登录到 MDaemon 上取得的邮件与数据一致。

最后通过 MSCS 的故障自动转移,实现 MDaemon 的冗余。

为此,在 SQL2005 中创建一个用来保存 MDaemon 域和帐户信息的数据库,命名为 MDaemonUsers。然后将 MDaemon 账户存储方式配置为 ODBC 方式,并创建与 SQL2005 中 MDaemonUsers 数据库的连接,导入账户数据库查询。修改 MDaemon 默认账户模板的存储路径,在群集管理器中将 MDaemon 配置为群集中的一个“通用服务”资源。

·实施部署

首先在获得活动资源的节点服务器上安装 MDaemon ,请记录下安装时管理员的名称和密码,完成 MDaemon 的安装后,强烈建议重新启动一次系统,确保 MDaemon 服务正常运转。之后进行以下的操作:

1、打开数据库管理器,创建一个新的数据库,名称为:MDaemonUsers。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/1.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

2、打开服务管理器,找到 MDaemon 服务,将启动类型改为“手动”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/2.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

3、因为 MDaemon 当前只绑定在 192.168.199.251 上,群集 IP 不在绑定范围,会导致实际中出现访问故障。为此,打开 MDaemon 管理器并点击导航栏上的“Setup”,选择“Primary domain...”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/3.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

4、进入“Primary Domain”后,在“Domain”页下将“Primary domain IP”改为“127.0.1.1”,确定后退出。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/4.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

5、为了让 MDaemon 的用户数据都保存在 Sdisk 下,需要修改默认新用户配置。为此,点击导航栏上的“Accounts”,选择“New account defaults...”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/5.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

6、在“Account Defaults”页下,将“Mail directory”改为“S:\MDaemon Users\$DOMAIN$\$MAILBOX$\”,根据需要再配置其他项,完成后确定退出。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/6.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

7、因为在 MDaemon 安装时创建了一个管理员,为了保证每个节点中 MDaemon 管理员的一致性,则需要将管理员的数据也迁移到 Sdisk 中。为此,点击导航栏上的“Accounts”,选择“Account manager...”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/7.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

8、选中账号“Admin”,进入“Account Editor”并切换到“Mailbox”页下,将“Message directory”改为“S:\MDaemon USERS\maytide.net\admin\”,完成后确定并退出。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/8.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

9、现在进行 MDaemon 账户存储方式的修改,将其改为 ODBC 中的 SQL Server 存储方式。为此,点击导航栏上的“Accounts”,选择“Account database...”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/9.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

10、进入“Account Database Options”后,将“Account database”页下的选择改为“Store account data in a ODBC accessible store”,并点击“Configure”开始配置。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/10.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

11、进入配置页面后,点击“New DSN”,开始创建数据源。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/11.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

12、在“选择数据源”配置中,切换到“机器数据源”,并选择“新建”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/12.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

13、在“创建新数据源”配置中,选择数据源类型为“系统数据源(只用于当前机器)”,并点击“下一步”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/13.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

14、选择“SQL Server”作为数据源的驱动程序,并点击“下一步”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/14.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

15、至此,就完成了以 SQL Server 为连接类型的系统数据源的创建,点击“完成”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/15.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

16、此时系统自动弹出连接 SQL Server 的 ODBC 数据源创建向导,根据提示填写信息。为了方便管理,我将此 ODBC 数据源命名为“MDaemonUsers”,注意服务器这项应当选择主机名为“SQL2005”的服务器,因为“SQL2005”是本次实验中的 SQL2005群集虚拟主机。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/16.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

17、验证与连接配置中,我是按照默认配置的。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/17.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

18、将默认的数据库改为 SQL2005 中名为“MDaemonUsers”的数据库,因为此数据库将用来保存 MDaemon 的域和用户信息。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/18.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

19、其他选项为默认,并点击“完成”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/19.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

20、弹出完成后的提示,这里可以选择“测试数据源”来进行连接测试。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/20.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

21、至此就在本节点服务器上建立了一个以 SQL Server 连接,名为“MDaemonUsers”的 ODBC 机器数据源。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/21.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

22、完成 ODBC 的配置后,回到 MDaemon 的“ODBC Selector Wizard”下,可以看到“MDaemonUsers”已经在数据源列表中,选中它后点击“下一步”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/22.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

23、因为 ODBC 中的“MDaemonUsers”数据源所对应的 SQL2005 下的数据库“MDaemonUsers”中没有 MDaemon 所需要的表,所以我们运行 MDaemon 自带的脚本来创建它。为此,点击“Run a script to created the necessary tables...”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/23.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

24、向导将自动定位到 SQL scritps 所在的位置,此处有多个脚本选择,因为我们使用的是 SQL Server ,所以选择名为“AccountsDB-SQLServer.sql”的脚本文件,并选择“打开”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/24.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

25、此时会弹出“Tables created successfully!”的提示,如果失败请重新检查之前的步骤确保数据源创建成功。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/25.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

26、回到“ODBC Selector Wizard”界面,我们会看到成功创建的两个表“domains”、“userlist”,点击“完成”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/26.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

27、MDaemon 开始转换数据,并给出提示。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/27.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

好了,可以休息一下了。因为到这里就完成了 MDaemon 以 SQL Server 为账户存储方式的建立。感觉是不是够累得,其实真的操作的时候是非常简单的要不了多长时间,基本上一路选择下来是非常的顺利。不过说真的我是够累得,写到这里已经是17:42分了,下班时间过去12分钟了,决定继续写完。

基本上工作已经完成了一大半了,下面请关闭这台节点,切换到其他节点进行 MDaemon 的安装后配置,关于第二台节点上 MDaemon 的安装配置就不再重复了。

不过需要提醒注意的是:

第二台节点上 MDaemon 安装时的管理员名称及密码都应该与第一台上的相同,在完成安装的最后有一个选项“Start MDaemon”,最好不要勾选,因为下来我们需要手工配置这台节点上的 MDaemon 使用数据库存储账户。

为此,打开系统管理工具程序组中的“数据源(ODBC)”参考第一个节点的数据源安装步骤为第二个节点创建与之前相同的数据源。之后,用文字编辑器打开 MDaemon 所在安装下 App 目录中的“MDaemon.ini”文件,加入以下配置:

代码

[Advanced]

UserDllType=ODBC

[USER_ODBC]

DSN=MDaemonUsers

User=

Password=

注:DSN 是配置 MDaemon 使用服务器 ODBC 中哪个数据库源,User 和 Password 是指定数据源的访问账号和密码,同样如果 mdaemon.ini 配置文件中没有 [USER_ODBC] 配置字段则添加。

将本节点上的 MDaemon 服务也改为“手动”方式(参考2)。运行 MDaemon ,修改默认的绑定IP(参考3~4),修改默认账号路径与第一个节点相同(参考5~6)。进入账号管理你能看到此节点上的管理员数据所在位置是在 Sdisk 上,因为第一次启动 MDaemon 前,已经手工为其配置了数据库存储账户信息,所以当第一次启动后 MDaemon 是直接从数据库中获取账户的信息。现在可以测试一下邮局是否工作正常!访问http://IP_Address:3000登录 WorldClient 操作测试。

28、完成以上步骤及测试后, MDaemon 的冗余部署的准备工作算是完成了,为了实现故障自动转移,还需要将 MDaemon 配置到 MSCS 中,在开始配置之前强烈建议关闭 MDaemon 服务避免不必要的错误,因为当配置完 MDaemon 后,其监视及控制权已经转交给了 MSCS 。接下来开始为 MDaemon 配置群集,为此在当前节点上打开“群集管理器”,在 SQL Server 所在的群集组“组0”中新建一个“资源”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/28.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

29、在“新建资源”中填写相关信息,这里我为资源命名为“MDaemon Server”,因为 MDaemon 本身并不支持群集,而它的群集实现纯粹是靠 DIY 出来的,所以为了能够使 MDaemon 被 MSCS 所支持,在“资源类型”中选择“通用服务”,完成后点击“下一步”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/29.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

30、在“可能的所有者”中将“可用节点”中的服务器添加到“可能的所有者中”,完成后点击“下一步”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/30.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

31、在“依存”关系中,请将 MDaemon 群集依赖的资源添加到“资源依存”中,完成后点击“下一步”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/31.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

32、在“一般服务参数”中,“服务名”为“MDaemon”;“启动参数”为“C:\MDaemon\APP\MDAEMON.EXE”,完成后点击“下一步”。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/32.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

33、完成资源添加后,“MDaemon Server”便出现在“组0”中,将其联机后,系统会自动启动 MDaemon。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/33.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

至此,便实现了基于 SQL Server 存储账号的 MDaemon 群集,下来我们可以创建一个邮件账号进行 webmail 方式的登录来检测 MDaemon 与 SQL Server 群集连接是否正常。

520)this.width=520;" src="http://goxia.maytide.net/up/MDaemonCluster/34.JPG" onload="javascript:if(this.width520)this.width=520;" align=absMiddle border=0 twffan="done"

·结尾

MDaemon 的群集创建结束了,下来我们可以开启第一台节点进行灾难模拟,以检验此次部署实施的 MDaemon 冗余方案的效果。经过测试,当一台节点停止后,另一台节点迅速接管群集资源,并启动 MDaemon 服务。小注:当只剩下一台节点时,通过 MDaemon 自身来停止服务是无效的,经过测试关闭 MDaemon 服务后,系统会自动再次开启 MDaemon 服务,如果在此环境下作 MDaemon 的停机维护,需要通过群集管理器将 MDaemon Server 脱机。

关于 MDaemon 的群集打算做成一个系列,而这个系列的名字就以需求为根本,名为《MDaemon Server 冗余方案系列》,在今后还将推出多种 MDaemon 的冗余方式供大家参考选择。不过,个人认为此次群集的实施方式所达到的冗余,可能只有在大环境中才能得到真正的应用。如果能够脱离微软群集(MSCS)来实现 MDaemon 的冗余就会有很大的应用市场。

欢迎大家与我共同探讨关于 MDaemon 的冗余实现技术,同时希望大家能参与到讨论中。

欢迎大家对本文进行讨论,论坛地址如下:

http://www.5dmail.net/bbs/Announce/Announce.asp?BoardID=34%26amp;ID=135513

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有