程序员人生 网站导航

基于Mongodb进行分布式数据存储

栏目:综合技术时间:2013-10-17 02:01:09

注:本文是研究Mongodb分布式数据存储的副产品,通过本文的相关步骤可以将一个大表中的数据分布到几个mongo服务器上。

MongoDB的1.6版本中auto-sharding功能基本稳定并可以尝试放到生产环境下使用。因为其是auto-sharding,即mongodb通过mongos(一个集群环境配置工具)自动建立一个水平扩展的数据库集群系统,将数据库分表存储在sharding的各个节点上。

一个mongodb集群包括一些shards(包括一些mongod进程),mongos路由进程,一个或多个config服务器 

(注:本文的测试用例需求64位的mongo程序,因为我在32位的mongo没成功过)。

下面是一些相关词汇说明:

Shards : 每一个shard包括一个或多个服务和存储数据的mongod进程(mongod是MongoDB数据的核心进程)典型的每个shard开启多个服务来提高服务的可用性。这些服务/mongod进程在shard中组成一个复制集

Chunks: Chunk是一个来自特殊集合中的一个数据范围,(collection,minKey,maxKey)描叙一个chunk,它介于minKey和maxKey范围之间。例如chunks 的maxsize大小是100M,如果一个文件达到或超过这个范围时,会被切分到2个新的chunks中。当一个shard的数据过量时,chunks将会被迁移到其他的shards上。同样,chunks也可以迁移到其他的shards上

Config Servers : Config服务器存储着集群的metadata信息,包括每个服务器,每个shard的基本信息和chunk信息Config服务器主要存储的是chunk信息。每一个config服务器都复制了完整的chunk信息。

接着看一下要配置的测试环境信息

模拟2个shard服务和一个config服务, 均运行在10.0.4.85机器上,只是端口不同

Shard1:27020

Shard2:27021

Config:27022

Mongos启动时默认使用的27017端口

在C,D,E磁盘下分别建立如下文件夹

mongodbin 

mongodbdb

然后用CMD命令行依次打开相应文件夹下的mongd文件:

c:mongodbinmongod --dbpath c:mongodbdb --port 27020
d:mongodbinmongod --dbpath d:mongodbdb --port 27021
e:mongodbinmongod --configsvr --dbpath e:mongodbdb --port 27022
 (注:config配置服务器)

启动mongos时,默认开启了27017端口

e:mongodbinmongos --configdb 10.0.4.85:27022

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐