Mongodb sharding replicat sets 部署
By—phoenix
一、 概况
1.1、功能简介
mongodb 的 sharding 集群由以下 3 个服务组成:
Shards Server: 每个 shard 由一个或多个 mongod 进程组成,用于存储数据
Config Server: 用于存储集群的 Metadata 信息,包括每个 Shard 的信息和 chunks 信息
Route Server: 用于提供路由服务,由 Client 连接,使整个 Cluster 看起来像单个 DB 服务
器
另外,Chunks 是指 MongoDB 中一段连续的数据块,默认大小是 200M,一个 Chunk 位于其
中一台 Shard 服务器上
下面,搭建一个 Cluster,它由 4 台服务器组成,包括 3 个 Shard,3 个 Config,1 个 Route
美河学习在线 www.eimhe.com
1.2、前期准备
1、----建议单建用户
Groupadd mongodb
useradd –g mongodb –G mongodb mongodb# 建议用 mongodb 用户
----修改 hugepage
echo never > /sys/kernel/mm/transparent_hugepage/enabled #mongodb 建议为 never
echo never > /sys/kernel/mm/transparent_hugepage/defrag
#mongodb 建议为 never
2、--------numactl
WARNING: You are running on a NUMA machine.
We suggest launching mongod like this to avoid performance problems:
numactl –interleave=all mongod [other options]
解决方案:
1.在原启动命令前面加 numactl –interleave=all
如# numactl --interleave=all ${MONGODB_HOME}/bin/mongod --config conf/mongodb.conf
2.修改内核参数
echo 0 > /proc/sys/vm/zone_reclaim_mode
http://www.mongodb.org/display/DOCS/NUMA
----关闭防火墙
1.3、主机规划
主机 A(Shard1,由 1 个实例组成的 Replica Sets):
192.168.119.181:27101 -----shard01 主
192.168.119.181:27102 -----shard02 主
主机 B(Shard2,由 1 个实例组成的 Replica Sets):
192.168.119.211:27201 -----shard01 备
192.168.119.211:27202 -----shard02 备
主机 C:( 路由服务器)
192.168.119.219:20002 -----路由、配置
美河学习在线 www.eimhe.com
二、集群部署
2.1、部署 mongodb
2.1.1、部署 mongodb
下载地址:http://www.mongodb.org/downloads
mongodb 安装比较简单,只需要解压到指定目录即可,其他节点只需要按照节点 1 部署即
可
节点 1 配置如下:
注意:其他节点的配置均按照节点 1 的部署方法来部署 mongodb
1、解压 mongodb
[root@server1 data]# tar -zxvf mongodb-linux-x86_64-rhel62-3.0.3.tgz -C /usr/local
2、重命名
[root@server1 data]# cd /usr/local;ls
[root@server1 local]# mv mongodb-linux-x86_64-rhel62-3.0.3/ mongodb
3、创建相应目录
[root@server1 mongodb]# mkdir -p {conf,log,data, configsvr,key,scripts};ls
Conf:文件文件目录
Log:日志文件目录
4、创建实例目录
----192.168.1.181 操作
进入到 data 目录,在该目录下创建 27101,作为 mongodb 的实例目录
[root@server1 mongodb]# cd data
美河学习在线 www.eimhe.com
[root@server1 data]# mkdir -p 27101 ----这里的 27101 是存放 mongodb 的目录,可自定义
[root@server1 data]# ls
27101
[root@server1 data]#
注意:192.168.1.211 和 192.168.1.219 做相同的操作
5、配置参数文件
节点 1(181)的配置信息如下
[root@server1 data]# cd ../conf
[root@server1 conf]# vi 27101.conf –该文件名可以自定义
dbpath = /usr/local/mongodb/27101 //数据库路径
directoryperdb = true //设置每个数据库将被保存在一个单独的目录
shardsvr = true //启动分片
replSet = shard1 //设置富本集的名字为 shard1,replSet 是让服务器知道在这个"shard1"副本集
中还有别的机器
port = 27101 //端口号
oplogSize = 100 //复制日志大小 MB
pidfilepath = /usr/local/mongodb/27101/27101.pid //pid 文件路径
logpath = /usr/local/mongodb/log/27101.log //日志路径
logappend = true //以追加方式写入
profile = 1 //数据库分析,1 表示仅记录较慢的操作
slowms = 5 //认定为慢查询的时间设置,根 mysql 慢查询有点像
fork = true //以守护进程的方式运行,创建服务器进程
[root@server1 conf]# vi 27102.conf
dbpath = /usr/local/mongodb/data/27102
directoryperdb = true
shardsvr = true
replSet = shard2
port = 27102
oplogSize = 100
pidfilepath = /usr/local/mongodb/data/27202/27102.pid
logpath = /usr/local/mongodb/log/27102.log
logappend = true
profile = 1
slowms = 5
fork = true
节点 02(192.168.1.211)的配置信息如下:
[root@erpdb01 conf]# vi 27101.conf
dbpath = /usr/local/mongodb/data/27101 -------注意这里的目录,一定要存在
美河学习在线 www.eimhe.com
directoryperdb = true
shardsvr = true
replSet = shard1
port = 27101
oplogSize = 100
pidfilepath = /usr/local/mongodb/data/27101/27101.pid
logpath = /usr/local/mongodb/log/27101.log
logappend = true
profile = 1
slowms = 5
fork = true
~
[root@erpdb01 conf]# vi 27102.conf
dbpath = /usr/local/mongodb/data/27102 -------注意这里的目录,一定要存在
directoryperdb = true
shardsvr = true
replSet = shard2
port = 27102
oplogSize = 100
pidfilepath = /usr/local/mongodb/data/27102/27102.pid
logpath = /usr/local/mongodb/log/27102.log
logappend = true
profile = 1
slowms = 5
fork = true
6、路由配置文件
路由服务器:192.168.119.219,路由有两个配置文件,配置如下:
[root@server3 conf]# cd /usr/local/mongodb/conf
[root@server3 conf]# vi configsvr.conf
pidfilepath = /usr/local/mongodb/configsvr/mongodb.pid
dbpath = /usr/local/mongodb/configsvr
directoryperdb = true
configsvr = true //声明这是一个集群的 config 服务,默认端口 27019,默认目录/data/configdb
port = 20000
logpath =/usr/local/mongodb/log/configsvr.log
logappend = true
fork = true
[root@server3 conf]# vi mongos.conf
configdb = 192.168.10.209:20000 //监听的配置服务器,只能有 1 个或者 3 个
美河学习在线 www.eimhe.com