mongodb kt双机房灾备

http://www.cnblogs.com/lovecindywang/archive/2011/01/31/1948233.html

 

 

lovecindywang

未来是并行计算和SOA的天下

随笔-36  文章-0  评论-238 

Mongodb和KT的双机房灾备配置方案尝试

假设有2个机房(测试服务器2/3以及123/124)互为灾备(灾备机房在主机房对外服务时处于待命),应用都只连接自己机房的存储服务(mongodb1.6.5和kt 0.9.28),两个机房之间的存储服务需要相互同步,尝试方案如下:

编号

机器IP和端口

服务

备注

1

192.168.2.2:10000

主机房Mongodb masterA

和8双向同步

2

192.168.2.2:20000

主机房Mongodb replica set1

2,5,9,12是数据节点,7,14是鉴证节点

3

192.168.2.2:30000

主机房Kt node1

和10双向同步

4

192.168.2.3:10000

主机房Mongodb slaveA

从1,8复制数据

5

192.168.2.3:20000

主机房Mongodb replica set2

2,5,9,12是数据节点,7,14是鉴证节点

6

192.168.2.3:30000

主机房Kt node2

和13双向同步

7

192.168.2.3:40000

主机房Mongodb replica arb1

鉴证服务器1

8

192.168.2.123:10000

灾备机房Mongodb masterB

和1双向同步

9

192.168.2.123:20000

灾备机房Mongodb replica set3

2,5,9,12是数据节点,7,14是鉴证节点

10

192.168.2.123:30000

灾备机房Kt node1

和3双向同步

11

192.168.2.124:10000

灾备机房Mongodb slaveB

从1,8复制数据

12

192.168.2.124:20000

灾备机房Mongodb replica set4

2,5,9,12是数据节点,7,14是鉴证节点

13

192.168.2.124:30000

灾备机房Kt node2

和6双向同步

14

192.168.2.124:40000

灾备机房Mongodb replica arb2

鉴证服务器2

此套配置特点如下:

1 Mongodb Master / Slave 结构数据保存4份

2 Mongodb Replica Sets 结构数据保存4份

3 KT2个节点,每一个节点数据保存2份(如果把KT像memcached那样使用,在客户端hash key到不同节点的话,需要客户端支持对于不同的服务器IP可以使用相同的hash,也就是不以endpoint作为hash的值,在故障转移之后保持相同key存和取相同的节点,这仅是客户端的逻辑,对于服务端来只需要考虑一组节点之间的同步)

4 切换到灾备机房之后,不需要做任何配置改动,主机房起来之后,需要确定Replica Set的活动服务器在灾备机房,否则可能会存在灾备机房的应用还是在访问主机房的存储服务

说明:

1 之所以除了4个replica set还需要两个鉴证节点是因为经测试如果同一机房两个replica set快速关闭的话,不能正确选举master,如果不需要保证同一机房数据备份的话,可以考虑只用两个数据节点

2 经测试发现如果11不订阅1,只能接受8的数据改动,1的数据改动不会过来,这也是Mongodb的一个缺陷吧,不能级联复制,如果订阅1,那么会在专线中产生两份带宽

具体配置如下

192.168.2.2

mongodb 端口 10000/11000

/root/mongodb-linux-x86_64-1.6.5/bin/mongod --fork --port 10000 --dbpath /opt/mongodb/10000 --logpath /opt/mongodb/10000/log --rest --oplogSize 1024 --logappend --master --slave --source 192.168.2.123:10000 --slavedelay 10 --autoresync

mongodb relica set 1 端口 20000/21000

/root/mongodb-linux-x86_64-1.6.5/bin/mongod --fork --port 20000 --dbpath /opt/mongodb/20000 --logpath /opt/mongodb/20000/log --replSet blub --rest --oplogSize 1024 –logappend

/root/mongodb-linux-x86_64-1.6.5/bin/mongo --port 20000

config = {_id: 'blub', members: [

{_id: 0, host: '192.168.2.2:20000'},

{_id: 1, host: '192.168.2.3:20000'},

{_id: 2, host: '192.168.2.123:20000'},

{_id: 3, host: '192.168.2.124:20000'},

]}

rs.initiate(config)

rs.status()

rs.addArb("192.168.2.124:40000")

rs.addArb("192.168.2.3:40000")

kt node1 端口 30000/31000

kchashmgr create /opt/kt/30000.kch

ktserver -port 30000 -ulog /opt/kt/30000-ulog -sid 1 -mhost 192.168.2.123 -mport 30000 -rts /opt/kt/30000.rts -plsv /usr/local/libexec/ktplugservmemc.so -plex "port=31000#opts=f" -dmn /opt/kt/30000.kch

192.168.2.3

mongodb 端口 10000/11000

/root/mongodb-linux-x86_64-1.6.5/bin/mongod --fork --port 10000 --dbpath /opt/mongodb/10000 --logpath /opt/mongodb/10000/log --rest --oplogSize 1024 --logappend –slave --slavedelay 2 --autoresync

/root/mongodb-linux-x86_64-1.6.5/bin/mongo --port 10000

use local

db.sources.insert({"host":"192.168.2.2"});

db.sources.insert({"host":"192.168.2.123"});

mongodb relica set 2 端口 20000/21000

/root/mongodb-linux-x86_64-1.6.5/bin/mongod --fork --port 20000 --dbpath /opt/mongodb/20000 --logpath /opt/mongodb/20000/log --replSet blub --rest --oplogSize 1024 –logappend

/root/mongodb-linux-x86_64-1.6.5/bin/mongod --fork --port 40000 --dbpath /opt/mongodb/40000 --logpath /opt/mongodb/40000/log --replSet blub --rest --oplogSize 1 –logappend

/root/mongodb-linux-x86_64-1.6.5/bin/mongo --port 20000

config = {_id: 'blub', members: [

{_id: 0, host: '192.168.2.2:20000'},

{_id: 1, host: '192.168.2.3:20000'},

{_id: 2, host: '192.168.2.123:20000'},

{_id: 3, host: '192.168.2.124:20000'},

]}

rs.initiate(config)

rs.status()

rs.addArb("192.168.2.124:40000")

rs.addArb("192.168.2.3:40000")

kt node2 端口 30000/31000

kchashmgr create /opt/kt/30000.kch

ktserver -port 30000 -ulog /opt/kt/30000-ulog -sid 1 -mhost 192.168.2.124 -mport 30000 -rts /opt/kt/30000.rts -plsv /usr/local/libexec/ktplugservmemc.so -plex "port=31000#opts=f" -dmn /opt/kt/30000.kch

192.168.2.123

mongodb 端口 10000/11000

/root/mongodb-linux-x86_64-1.6.5/bin/mongod --fork --port 10000 --dbpath /opt/mongodb/10000 --logpath /opt/mongodb/10000/log --rest --oplogSize 1024 --logappend --master --slave --source 192.168.2.2:10000 --slavedelay 10 --autoresync

mongodb relica set 3 端口 20000/21000

/root/mongodb-linux-x86_64-1.6.5/bin/mongod --fork --port 20000 --dbpath /opt/mongodb/20000 --logpath /opt/mongodb/20000/log --replSet blub --rest --oplogSize 1024 –logappend

/root/mongodb-linux-x86_64-1.6.5/bin/mongo --port 20000

config = {_id: 'blub', members: [

{_id: 0, host: '192.168.2.2:20000'},

{_id: 1, host: '192.168.2.3:20000'},

{_id: 2, host: '192.168.2.123:20000'},

{_id: 3, host: '192.168.2.124:20000'},

]}

rs.initiate(config)

rs.status()

rs.addArb("192.168.2.124:40000")

rs.addArb("192.168.2.3:40000")

kt node1 端口 30000/31000

kchashmgr create /opt/kt/30000.kch

ktserver -port 30000 -ulog /opt/kt/30000-ulog -sid 2 -mhost 192.168.2.2 -mport 30000 -rts /opt/kt/30000.rts -plsv /usr/local/libexec/ktplugservmemc.so -plex "port=31000#opts=f" -dmn /opt/kt/30000.kch

192.168.2.124

mongodb 端口 10000/11000

/root/mongodb-linux-x86_64-1.6.5/bin/mongod --fork --port 10000 --dbpath /opt/mongodb/10000 --logpath /opt/mongodb/10000/log --rest --oplogSize 1024 --logappend --slave --slavedelay 2 --autoresync

/root/mongodb-linux-x86_64-1.6.5/bin/mongo --port 10000

use local

db.sources.insert({"host":"192.168.2.123"});

db.sources.insert({"host":"192.168.2.2"});

mongodb relica set 4

/root/mongodb-linux-x86_64-1.6.5/bin/mongod --fork --port 20000 --dbpath /opt/mongodb/20000 --logpath /opt/mongodb/20000/log --replSet blub --rest --oplogSize 1024 --logappend

/root/mongodb-linux-x86_64-1.6.5/bin/mongod --fork --port 40000 --dbpath /opt/mongodb/40000 --logpath /opt/mongodb/40000/log --replSet blub --rest --oplogSize 1 --logappend

/root/mongodb-linux-x86_64-1.6.5/bin/mongo --port 20000

config = {_id: 'blub', members: [

{_id: 0, host: '192.168.2.2:20000'},

{_id: 1, host: '192.168.2.3:20000'},

{_id: 2, host: '192.168.2.123:20000'},

{_id: 3, host: '192.168.2.124:20000'},

]}

rs.initiate(config)

rs.status()

rs.addArb("192.168.2.124:40000")

rs.addArb("192.168.2.3:40000")

kt node2 端口 30000/31000 (和192.168.2.4:30000同步)

kchashmgr create /opt/kt/30000.kch

ktserver -port 30000 -ulog /opt/kt/30000-ulog -sid 2 -mhost 192.168.2.3 -mport 30000 -rts /opt/kt/30000.rts -plsv /usr/local/libexec/ktplugservmemc.so -plex "port=31000#opts=f" dmn /opt/kt/30000.kch

作者:lovecindywang

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

分类: 开源

绿色通道:好文要顶关注我收藏该文与我联系

lovecindywang
关注 - 1
粉丝 - 31

关注博主

0

0

(请您对文章做出评价)

« 上一篇:有关热点图

posted @ 2011-01-31 12:39 lovecindywang 阅读(667) 评论(0) 编辑 收藏

发表评论

2021867

查看 删除 修改

#1楼2011-01-31 22:25 | lexus

请教一下什么是KT?

刷新评论列表 刷新页面 返回页首

发表评论 博客园首页 IT新闻 闪存 招聘 博问

昵称:

主页:

评论内容:

引用 粗体 链接 缩进 图片 代码

不改了 注销 订阅回复

[使用Ctrl+Enter键快速提交]

0 1948233 Mongodb和KT的双机房灾备配置方案尝试

最新IT新闻:
· Android平板电脑市场份额增至22% iPad降至75%
· 搜索的未来:谁将打赢与 Spam 的战争?
· 关于史蒂夫·乔布斯的最好的几本书是什么?
· 3天内全球将分配完最后469万个IPv4地址
· 李开复对话Linked-in创始人:双向SNS更有前
» 更多新闻...

知识库最新文章:

[前端优化] 使用Combres合并对js、css文件的请求
理解POCO
OS X 上使用.NET开发应用程序
教你30秒打造强类型ASP.NET数据绑定
项目管理的十大挑战

网站导航: 博客园首页 IT新闻 我的园子 闪存 程序员招聘 博问


China-pub 计算机图书网上专卖店!6.5万品种2-8折!
China-Pub 计算机绝版图书按需印刷服务

简洁版式:Mongodb和KT的双机房灾备配置方案尝试

公告

粉丝 - 31
关注 - 1
我的主页 个人资料
我的闪存 发短消息

<
2011年1月
>







26
27
28
29
30
31
1

2
3
4
5
6
7
8

9
10
11
12
13
14
15

16
17
18
19
20
21
22

23
24
25
26
27
28
29

30
31
1
2
3
4
5

搜索
常用链接
我参与的团队
随笔分类(34)
随笔档案(36)
友情链接
积分与排名
  • 积分 - 69661
  • 排名 - 1365
最新评论

1. Re:Mongodb和KT的双机房灾备配置方案尝试

请教一下什么是KT? (lexus)

2. Re:有关热点图

这个图确实很有意思,可以展开的联想很多。 (干田)

3. Re:有关热点图

这个热点图看起来怎么不是很明显,是否可以通过渐变面的渲染来看,那样就清楚多了 (craystall)

4. Re:有关热点图

楼主是cnzz的吗 (Keep Walking)

5. Re:神奇的Redis

想知道有没有C# driver? (好读书,不求甚解)

6. Re:神奇的Redis

有点唬人啊 (Tony Zhou)

7. Re:一种集各种优点于一身的技术面试方式

满地哈喇子。。。。 (Cool it)

8. Re:神奇的Redis

博主有没试用过呢我测试的时候发现数据不正确。。。。 (分享 共赢)

9. Re:神奇的Redis

好文,推荐 +2 (潺缘)

10. Re:神奇的Redis

好文,推荐 +1 (田志良)

11. Re:一种集各种优点于一身的技术面试方式

不仅可以运用于面试,也是一个用于自我总结所学技术的参考资料,谢谢! (墨_白)

12. Re:一种集各种优点于一身的技术面试方式

有点意思。我觉得对于应聘架构师的话,应该必须要求一定的知识全面性,这个表格如果不及格的话就不用考虑了。当然,这点表面的东西是不可能问得很深的。深入的东西我还是倾向于结合面试者自己的真实项目经来来问。对... (Teddy's Knowledge Base)

13. Re:一种集各种优点于一身的技术面试方式

[quote]月光疾风: [quote]bidaas:不及格,我到你那儿绝对被鄙视[/quote] 没事的,作者说这个比较适合“适合高级软件工程师或架构师的面试”。而且,他主要是提供一种公平而又全面的... (LanceZhang)

14. Re:一种集各种优点于一身的技术面试方式

内流满面 (星辰大海)

15. Re:一种集各种优点于一身的技术面试方式

所以我说要附加人品性格方面的考试这种忽悠性人才我也遇见过一次 (lovecindywang)

16. Re:一种集各种优点于一身的技术面试方式

最反感的一种方式,适合忽悠型人才。 PS:我以前有一个同事就是这种人才,不管你说什么,他都能给你侃的头头是道。这段时间在做聊天软件,前几天和他在QQ上聊起了网络编程,结果这方面的说得比我还专业,有些... (飞 熊)

17. Re:一种集各种优点于一身的技术面试方式

没发现和普通笔试有什么区别。为什么是面试方式呢? (undefined)

18. Re:一种集各种优点于一身的技术面试方式

内流满面 (天行健 自强不息)

19. Re:一种集各种优点于一身的技术面试方式

内流满面 (Jack Fan)

20. Re:一种集各种优点于一身的技术面试方式

如果再来点数据库优化,代码优化,这套题估计更值钱 (木+头)

21. Re:一种集各种优点于一身的技术面试方式

大多是概念性题目啊... 特别是后面1列最要命,怎么实现这种技术... 打算给多少工资啊... (木+头)

22. Re:一种集各种优点于一身的技术面试方式

令人泪奔的表格 (CR苏杭)

23. Re:一种集各种优点于一身的技术面试方式

good (Tony Zhou)

24. Re:一种集各种优点于一身的技术面试方式

[quote]bidaas:不及格,我到你那儿绝对被鄙视[/quote] 没事的,作者说这个比较适合“适合高级软件工程师或架构师的面试”。而且,他主要是提供一种公平而又全面的面试方式,里面的知识点可以... (月光疾风)

25. Re:一种集各种优点于一身的技术面试方式

牛X (代码乱了)

26. Re:一种集各种优点于一身的技术面试方式

谁能列出比较完善的C#知识点吗? (圈圈点点)

27. Re:一种集各种优点于一身的技术面试方式

非常不错的考察题型。 (圈圈点点)

28. Re:一种集各种优点于一身的技术面试方式

不及格,我到你那儿绝对被鄙视 (bidaas)

29. Re:一种集各种优点于一身的技术面试方式

0分泪奔 (温景良(Jason))

30. Re:一种集各种优点于一身的技术面试方式

这个要收藏! (Leepy)

31. Re:一种集各种优点于一身的技术面试方式

备忘! (深蓝医生)

32. Re:一种集各种优点于一身的技术面试方式

算法呢???? (feng wang)

33. Re:一种集各种优点于一身的技术面试方式

这种方式很好,值得借鉴,面试不应该太局限于某一个特定的技术,应该给应聘者足够的发挥空间 (zdd)

34. Re:一种集各种优点于一身的技术面试方式

@海浪轻风你说的这种人基本上都很难驾驭,人事那关都很难过。 (DiggingDeeply)

35. Re:一种集各种优点于一身的技术面试方式

[quote]菜鸟老了:有补习班么 我报名[/quote] 我也是这么想的 (John Ho)

36. Re:一种集各种优点于一身的技术面试方式

对验证项目经验是否丰富确实是不错的问题。但不一定招到的都是有很强思维能力和解决方法的人。 (海浪轻风)

37. Re:一种集各种优点于一身的技术面试方式

期待谁的参考答案 (shiwenlu518)

38. Re:一种集各种优点于一身的技术面试方式

我顶~~~ (蟑螂·魂)

39. Re:一种集各种优点于一身的技术面试方式

[url=]无聊的题目,权当一乐[/url] 最近遇到的无聊笔试 (DiggingDeeply)

40. Re:一种集各种优点于一身的技术面试方式

作者能不能给出你自己的答案,让大家学习一下! (iTech)

阅读排行榜
评论排行榜
60天内阅读排行

Copyright ©2011 lovecindywang

原文地址:https://www.cnblogs.com/lexus/p/1948492.html