MongoDB Config Servers

原文

IMPORTANT:在MongoDB3.4以后 ,使用mongod实例作为config servers已被弃用。在3.4以后,你必须将你的config server从SCCC升级到CSRS。

Config servers持有集群的元数据。元数据反应了集群里所有数据和组建的状态。元数据还包括了每个碎片的chunks list和chunks 定义的范围。

mongos实例缓存这些数据用于将读写操作路由到正确的碎片上。当集群的元数据发生改变的时候, mongos会更新缓存,例如Chunk Splits or adding a shard。碎片也是从config servers里面读取chunk的元数据。

config server也保存集群里的认证配置,例如 Role-Based Access Control or internal authentication

MongoDB同时也使用config server来管理分布式锁。

每一个集群必须拥有自己唯一的config servers。不要在不同的集群里使用一样的config servers。

在config servers 上进行权限操作或许会对集群的性能和可靠性造成重大影响。根据被影响的config servers的数量,一段时间内,集群可能只能进行读取操作甚至offline。

Replica Set Config Servers

在MongoDB 3.2开始,集群的config servers可以部署为replica set,替代以前的SCCC。当config server利用replica set的标准来进行读写操作的时候,可以提高config servers的一致性。集群拥有3个以上config servers运行在已经拥有50个成员的replica set的情况除外。要把config server是运行在replica set上,config servers 必须使用WiredTiger storage engine.

replica set如要承当config servers的载体,该replica set有以下限制:

  • 不能有arbiters成员
  • 不能有 delayed 成员
  • 必须建立indexes(i.e. 任何成员的buildIndexes必须设置为true)

Config servers 的读写操作

config servers 必须持有admin数据库和config database

在Config servers上写入

admin数据库包含身份验证和其他像system.* collections的授权集合供内部使用。
config database包含含有集群元数据的集合。当元数据发生改变的时候,MongoDB将数据写入 config database,例如在chunk migration or a chunk split.之后。

用户在正常操作或维护的过程中应该避免直接将数据写入 config database。

当写入到 config database的时候,MongoDB将 write concern字段设置为"majority"。

从Config Servers读取

MongoDB从admin数据库读取身份认证或者授权或者其他内部使用。

mongos将元数据改变之前或者之后,MongoDB会从config database读取,例如在chunk迁移之后。碎片同样也从config database读取chunk元数据。

当从replica set config servers(CSRS)读取数据,MongoDB将使用 Read Concern"majority".字段

Config server的可用性

如果config server的replica set没有并无法选举出primary成员,集群的元信息状态变成只读。你仍然可以在碎片上进行读写操作,但在replica set选举出一个primary之前,无法进行chunk迁徙或者chunk split。

在集群中,mongod和mongos监控集群里的replica set。(e.g. 碎片replica set, config server replica set)

如果所有的config servers都不可用了,那么该集群就废了。为了确保config servers的可用性和完整性,对config servers进行备份是至关重要的。config servers的数据比集群里的数据小很多,并且相对负载较低。

对于MongDB3.2版本的集群,如果尝试监控config servers的replica set的连续失败次数超过 replMonitorMaxFailedChecks的值,那么mongos或者mongd的监控机制在重启前无法使用。

集群元数据

Config servers将元数据保存在Config database。

在对config server进行任何形式的维护前先备份config database。

使用以下命令访问config database:

use config

通常情况下,你不应该直接编辑config database里的内容。config database包含以下内容:

参照 Config Database.获得以上集合和集合的权限的更多资讯。

集合安全性

使用 Internal Authentication来保证集群内部的安全性和避免未经授权用户访问集群。为了保证集群内部安全性,你必须为集群的每个mongod实例开启身份验证。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,546评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,224评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,911评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,737评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,753评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,598评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,338评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,249评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,696评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,888评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,013评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,731评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,348评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,929评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,048评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,203评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,960评论 2 355

推荐阅读更多精彩内容