配置服务器¶
配置服务器是保存集群中 元信息 的特殊 mongod . 配置服务器使用两段提交的方法来保证即时一致性和可靠性.配置服务器 并不 以复制集的方式运行,所有的配置服务器都可用是部署一个集群或者修改集群元信息的前提.
生产环境中的集群有 精确的三个 配置服务器,在测试环境中,你可以只使用一个配置服务器来部署一个集群,但在生产环境中,为确保冗余与安全,应该总是使用三个.
警告
如果你的集群只有一个配置服务器,那这个配置服务是单点服务,如果这个配置服务器不能被访问,集群将不可服务,如果你不能将配置服务器的数据恢复,整个集群将不能再被使用.
在生产环境中 一定 要使用三台配置服务器
每个集群都应该有自己的配置服务器,不要在不同的集群中使用同一个配置服务器.
小技巧
使用CNAMEs标记你的配置服务器,这样可以在重命名或者改变配置服务器的顺序时不需要停机.
Config 数据库¶
配置服务器在 config 数据库 中存储了集群的元信息, mongos 缓存了这个数据库用来做读写的路由分发.
配置服务器可用性¶
如果集群中一个或者两个配置服务器不可用,集群的元信息将变为 可读 ,你还可以从分片中读写信息,但是数据块的迁移以及数据块的分裂在所有配置服务器都恢复可用之前不能够进行.
如果所有的三个配置服务器都不可用,在重启 mongos 之前集群依然可用. 但是一旦试图重启 mongos ,集群将不能提供任何服务.
没有集群的元信息,集群将不能正常工作,因此,要 时刻 保持配置服务器的可用和完整.因此,配置服务器的备份是很重要的.与分片中的数据相比,配置服务器存储的信息要小很多.这意味着配置服务器有相对较小的请求负载,而且对于集群的正常运行,并不需要所有配置服务器任意时刻都可用,所以,备份配置服务器是一件容易的事情.
如果集群使用的配置服务器变换了ip或者域名,你需要重启 所有 的 mongod 和 mongos .可以在集群部署时使用CNAMEs避免重启.
参见 重命名配置服务器 获得更多信息.