集群的模块介绍:从MongoDB官方给的集群架构了解,整个集群主要有4个模块:Config Server、mongs、 shard、replica set:
Config Server:用来存放集群的元数据,也就是存放所有分片的的配置数据,mongos第一次启动就需要连接configServer读取相关数据,当configServer有数据进行更新时,也会主动推送消息到所有的mongos上,在3.0.7版本中,官方是建议配置3份的Config Server,以便挂掉两台时,业务还能够正常运转。
mongs:Mongodb集群的的请求入口,能否自动实现数据的分布式分发,生产环境中建议部署在应用服务器上。
shard:分片就比如是将一张大表分散在几个不同的shard中,实现数据分布式存储。
replica set:主要是对每个分片进行冗余,生产环境中,一般将将副本集配置在三个节点上,两份副本、一份仲裁。
更多MongoDB相关内容可以看看以下的有用链接: MongoDB 3.0 正式版发布下载 http://www.linuxidc.com/Linux/2015-03/114414.htmCentOS编译安装MongoDB http://www.linuxidc.com/Linux/2012-02/53834.htmCentOS 编译安装 MongoDB与mongoDB的php扩展 http://www.linuxidc.com/Linux/2012-02/53833.htmCentOS 6 使用 yum 安装MongoDB及服务器端配置 http://www.linuxidc.com/Linux/2012-08/68196.htmUbuntu 13.04下安装MongoDB2.4.3 http://www.linuxidc.com/Linux/2013-05/84227.htmMongoDB入门必读(概念与实战并重) http://www.linuxidc.com/Linux/2013-07/87105.htmUbunu 14.04下MongoDB的安装指南 http://www.linuxidc.com/Linux/2014-08/105364.htm《MongoDB 权威指南》(MongoDB: The Definitive Guide)英文文字版[PDF] http://www.linuxidc.com/Linux/2012-07/66735.htmNagios监控MongoDB分片集群服务实战 http://www.linuxidc.com/Linux/2014-10/107826.htm基于CentOS 6.5操作系统搭建MongoDB服务 http://www.linuxidc.com/Linux/2014-11/108900.htm
| 用途 | IP | 端口 | 备注 | 安装路径 |
| ConfigeServer | 172.16.16.120 | 30001 | | /db/configS |
| 172.16.16.121 | 30001 | /db/configS |
| 172.16.16.122 | 30001 | /db/configS |
| share1 | 172.16.16.124 | 40001 | Shard1主节点 | /db/shard1 |
| 172.16.16.125 | 40001 | Shard1副本节点 | /db/shard1 |
| 172.16.16.126 | 40001 | Shard1仲裁节点 | /db/shard1 |
| share2 | 172.16.16.125 | 40002 | Shard2主节点 | /db/shard2 |
| 172.16.16.126 | 40002 | Shard2副本节点 | /db/shard2 |
| 172.16.16.131 | 40002 | Shard2仲裁节点 | /db/shard2 |
| share3 | 172.16.16.126 | 40003 | Shard3主节点 | /db/shard3 |
| 172.16.16.131 | 40003 | Shard3副本节点 | /db/shard3 |
| 172.16.16.124 | 40003 | Shard3仲裁节点 | /db/shard3 |
| share4 | 172.16.16.121 | 40004 | Shard4主节点 | /db/shard4 |
| 172.16.16.124 | 40004 | Shard4副本节点 | /db/shard4 |
| 172.16.16.125 | 40004 | Shard4仲裁节点 | /db/shard4 |
| mongos | 172.16.16.124 | 50001 | 生产环境中一般直接部署在应用端 | /db/mongos |
| 172.16.16.125 | 50001 | /db/mongos |
| 172.16.16.126 | 50001 | /db/mongos |
| 172.16.16.131 | 50001 | /db/mongos |
搭建步骤:
下载mongodb(https://www.mongodb.org/downloads ) ,目前的最新版本是 3.0.7
opt]# tar zxvf mongodb-linux-x86_64-rhel55-3.0.7.gzopt]# mv mongodb-linux-x86_64-rhel55-3.0.7 /usr/local/mongodbopt]# useraddmongoopt]# passwdmongoChanging password for user mongo.New UNIX password:BAD PASSWORD: it is too simplistic/systematicRetype new UNIX password:passwd: all authentication tokens updated successfully.opt]# chown -R mongo:mongo /usr/local/mongodb/opt]# chown -Rmongo:mongo /db
创建相关模块存放路径:
创建configeServer目录(172.16.16.120/121/122):
#mkdir -p/db/configS/data & mkdir -p /db/configS/log (存放ConfigServer的数据、日志)
创建shard1目录(172.16.16.124/125/126):
#mkdir -p/db/shard1/data & mkdir -p /db/shard1/log (存放shard1的数据、日志)
创建shard2目录(172.16.16.125/126/131 ):
#mkdir -p/db/shard2/data & mkdir -p /db/shard2/log (存放shard2的数据、日志)
创建shard3目录(172.16.16.126/131/124 ):
#mkdir -p/db/shard3/data & mkdir -p /db/shard3/log (存放shard3的数据、日志)
创建shard4目录(172.16.16.131/124/125 ):
#mkdir -p/db/shard4/data & mkdir -p /db/shard4/log (存放shard4的数据、日志)
创建mongos目录(172.16.16.124/125/126/131)
#mkdir -p/db/mongos/log (由于mongos只做路由使用,不存数据,所以只需要建立log目录)
模块配置及启动:
configServer(172.16.16.120/121/122)配置及服务启动:
编写 /usr/local/mongodb/conf/configServer.conf,将参数都放在该文件中: #vim /usr/local/mongodb/conf/configServer.conf#!/bin/bashsystemLog: destination: file path: "/db/configS/log/configServer.log"#日志存储位置 logAppend: truestorage: journal:#journal配置enabled: true dbPath: "/db/configS/data"#数据文件存储位置 directoryPerDB: true#是否一个库一个文件夹 engine: wiredTiger#数据引擎wiredTiger: #WT引擎配置engineConfig: cacheSizeGB: 6#设置为6G,默认为物理内存的一半 directoryForIndexes: true #是否将索引也按数据库名单独存储 journalCompressor: zlibcollectionConfig:#表压缩配置 blockCompressor: zlibindexConfig: #索引配置 prefixCompression: truenet: #端口配置 port: 30001 #另外两台需要分别修改为30002、30003processManagement: #配置启动管理方式 fork: truesharding:#分片配置 clusterRole: configsvr#分片角色启动configServer:conf]$ /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/configServer.conf
mongos(172.16.16.124/125/126/131)配置及服务启动:
编写mongos.conf,将参数都放在该文件中(4台配置文件都一样):#vim /usr/local/mongodb/conf/mongos.conf#!/bin/bashsystemLog:destination: filepath: "/db/mongos/log/mongos.log"logAppend: truenet:port: 50001sharding:configDB: 172.16.16.120:30001,172.16.16.121:30001,172.16.16.122:30001processManagement:fork: true启动mongos:应保证集群中设备的时间都是一样的,否则启动mongos会报错,若不相同,可先搭建一套NTP服务器conf]$ /usr/local/mongodb/bin/mongos -f /usr/local/mongodb/conf/mongos.conf
shard1分片+副本集配置及服务启动(172.16.16.124/125/126 ):
#vim /usr/local/mongodb/conf/shard1.conf#!/bin/bashsystemLog: destination: filepath: "/db/shard1/log/shard1.log"#日志存储位置 logAppend: truestorage:journal: #journal配置enabled: true dbPath: "/db/shard1/data"#数据文件存储位置 directoryPerDB: true #是否一个库一个文件夹 engine: wiredTiger #数据引擎wiredTiger:#WT引擎配置engineConfig: cacheSizeGB: 6 #设置为6G,默认为物理内存的一半 directoryForIndexes: true#是否将索引也按数据库名单独存储 journalCompressor: zlibcollectionConfig: #表压缩配置 blockCompressor: zlibindexConfig:#索引配置 prefixCompression: truenet:#端口配置 port: 40001processManagement:#配置启动管理方式 fork: truesharding: #分片配置 clusterRole: shardsvrreplication: replSetName: shard1#配置副本集名称 启动shard1 mongod:conf]$ /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/shard1.conf
shard2分片+副本集配置及服务启动(172.16.16.125/126/131 ):
#vim /usr/local/mongodb/conf/shard2.conf#!/bin/bashsystemLog: destination: filepath: "/db/shard2/log/shard2.log"#日志存储位置 logAppend: truestorage:journal: #journal配置enabled: true dbPath: "/db/shard2/data"#数据文件存储位置 directoryPerDB: true #是否一个库一个文件夹 engine: wiredTiger #数据引擎wiredTiger:#WT引擎配置engineConfig: cacheSizeGB: 6 #设置为6G,默认为物理内存的一半 directoryForIndexes: true#是否将索引也按数据库名单独存储 journalCompressor: zlibcollectionConfig: #表压缩配置 blockCompressor: zlibindexConfig:#索引配置 prefixCompression: truenet:#端口配置 port: 40002processManagement:#配置启动管理方式 fork: truesharding: #分片配置 clusterRole: shardsvrreplication:#oplogSizeMB:replSetName: shard2#配置副本集名称启动shard2 mongod:conf]$ /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/shard2.conf
shard3分片+副本集配置及服务启动(172.16.16.126/131/124 ):
#vim /usr/local/mongodb/conf/shard3.conf#!/bin/bashsystemLog: destination: filepath: "/db/shard3/log/shard3.log"#日志存储位置 logAppend: truestorage:journal: #journal配置enabled: true dbPath: "/db/shard3/data"#数据文件存储位置 directoryPerDB: true #是否一个库一个文件夹 engine: wiredTiger #数据引擎wiredTiger:#WT引擎配置engineConfig: cacheSizeGB: 6 #设置为6G,默认为物理内存的一半 directoryForIndexes: true#是否将索引也按数据库名单独存储 journalCompressor: zlibcollectionConfig: #表压缩配置 blockCompressor: zlibindexConfig:#索引配置 prefixCompression: truenet:#端口配置 port: 40003processManagement:#配置启动管理方式 fork: truesharding: #分片配置 clusterRole: shardsvrreplication: #oplogSizeMB:replSetName: shard3#配置副本集名称 启动shara3 mongod:conf]$ /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/shard3.conf
shard4分片+副本集配置及服务启动(172.16.16.131/124/125 ):
#vim /usr/local/mongodb/conf/shard4.conf#!/bin/bashsystemLog: destination: filepath: "/db/shard4/log/shard4.log"#日志存储位置 logAppend: truestorage:journal: #journal配置enabled: true dbPath: "/db/shard4/data"#数据文件存储位置 directoryPerDB: true #是否一个库一个文件夹 engine: wiredTiger #数据引擎wiredTiger:#WT引擎配置engineConfig: cacheSizeGB: 6 #设置为6G,默认为物理内存的一半 directoryForIndexes: true#是否将索引也按数据库名单独存储 journalCompressor: zlibcollectionConfig: #表压缩配置 blockCompressor: zlibindexConfig:#索引配置 prefixCompression: truenet:#端口配置 port: 40004processManagement:#配置启动管理方式 fork: truesharding: #分片配置 clusterRole: shardsvrreplication: #oplogSizeMB:replSetName: shard4#复制集名 启动shara4 mongod:conf]$ /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/shard4.conf
更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2015-10/124455p2.htm
MySQL与MariaDB 新型主从集群配置GTIDMongoDB3.0.6版本wiredtiger与MMAPv1引擎的写入耗时对比相关资讯 MongoDB集群
- MongoDB 搭建分片集群 (今 07:56)
- MongoDB 3.2 集群搭建 (01月14日)
- 配置MongoDB3.04集群分片 (07/08/2015 09:32:48)
| - MongoDB集群上副本集(replica set (04月10日)
- 搭建基于Docker的MongoDB复制集群 (07/16/2015 15:56:36)
- 生产环境MongoDB 分片与集群 方案 (05/07/2015 08:53:58)
|
本文评论 查看全部评论 (0)