Mongodb3.4.7搭建高可用集群(二)

部署Mongodb高可用集群

准备

按照官方说明,至少需要3个config server,2个mongos,2个shard,每个shard至少2个副本,就是4个shard,共需要9个Mongodb实例。这里只虚拟出2个机器节点,将不同的Mongodb实例部署在不同的端口上模拟实现。

节点端口关系表
config server leo.zhi.1:10010,leo.zhi.2:10010
mongos server leo.zhi.1:10020,leo.zhi.2:10020
shard server leo.zhi.1:10001,leo.zhi.2:10002

leo.zhi.1和leo.zhi.2上分别创建文件夹

[[email protected] mongodb]# mkdir -p config/data
[[email protected] mongodb]# mkdir -p config/log
[[email protected] mongodb]# mkdir -p mongos/log
[[email protected] mongodb]# mkdir -p shard1/data
[[email protected] mongodb]# mkdir -p shard1/log
[[email protected] mongodb]# mkdir -p shard2/data
[[email protected] mongodb]# mkdir -p shard2/log

其中data目录存放数据,log目录存放日志

mongos服务不存放数据,所以不需要数据目录,只需要log目录

部署config server

Mongodb配置文件(采用YAML格式书写)

systemLog:
  destination: file
  path: "/usr/local/mongodb/config/log/mongod.log"
  logAppend: true
storage:
  dbPath: "/usr/local/mongodb/config/data"
  journal:
    enabled: true
  directoryPerDB: true
net:
  port: 10010
processManagement:
  fork: true
  pidFilePath: "/usr/local/mongodb/config/mongod.pid"
sharding:
  clusterRole: configsvr
replication:
  replSetName: configReplSet

1. 在每台服务器上分别启Mongodb实例

[[email protected] mongodb]# mongod --config config/mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 3293
child process started successfully, parent exiting

2. 随便选个一个节点,登录mongo,初始化config server 的 replica set

[[email protected] mongodb]# mongo --port 10010
> rs.initiate( { _id: "configReplSet", configsvr: true, members:[ {_id:0,host:"leo.zhi.1:10010"}, {_id:1,host:"leo.zhi.2:10010"}] } )...
configReplSet:OTHER> exit
[[email protected] mongodb]# mongo --port 10010
configReplSet:PRIMARY>

部署shard1

Mongodb配置文件(采用YAML格式书写)

systemLog:
  destination: file
  path: "/usr/local/mongodb/shard1/log/mongod.log"
  logAppend: true
storage:
  dbPath: "/usr/local/mongodb/shard1/data"
  journal:
    enabled: true
  directoryPerDB: true
net:
  port: 10001
processManagement:
  fork: true
  pidFilePath: "/usr/local/mongodb/shard1/mongod.pid"
sharding:
  clusterRole: shardsvr
replication:
  replSetName: shard1ReplSet

1. 在每个节点启动shard1

[[email protected] mongodb]# mongod --config shard1/mongod.conf

2. 随便选个一个节点,登录mongo,初始化shard1 的 replica set

[[email protected] mongodb]# mongo --port 10001
> rs.initiate( { _id: "shard1ReplSet", members:[ {_id:0,host:"leo.zhi.1:10001"}, {_id:1,host:"leo.zhi.2:10002"}] } )
...
shard1ReplSet:OTHER> exit
[[email protected] mongodb]# mongo --port 10001
shard1ReplSet:PRIMARY>

部署shard2

Mongodb配置文件(采用YAML格式书写)

systemLog:
  destination: file
  path: "/usr/local/mongodb/shard2/log/mongod.log"
  logAppend: true
storage:
  dbPath: "/usr/local/mongodb/shard2/data"
  journal:
    enabled: true
  directoryPerDB: true
net:
  port: 10002
processManagement:
  fork: true
  pidFilePath: "/usr/local/mongodb/shard2/mongod.pid"
sharding:
  clusterRole: shardsvr
replication:
  replSetName: shard2ReplSet

其余操作步骤同部署shard1

部署mongos

时间: 2024-10-26 00:59:33

Mongodb3.4.7搭建高可用集群(二)的相关文章

Mongodb3.4.7搭建高可用集群(一)

简介 Sharding(分片)是一种将数据划分为多个分片,然后分布在多个机器节点上的解决方案,Mongodb使用sharding支撑其庞大的数据存储以及高效的数据访问. 单个节点上的数据库系统要存储大容量的数据,同时满足高效率的数据访问,对其来说是一个很大的挑战.没准,我们执行一次查询,CPU就挂掉了,就算不挂,查询出来的数据内存根本放不下. 面对这种情况,有2种方式可以解决系统的瓶颈:纵向增强自身.横向扩展节点. 纵向增强自身意味着要升级为更强悍的CPU,扩展更大的内存容量和硬盘容量,但受制于

CentOS 7下搭建高可用集群

一 .安装集群软件 必须软件pcs,pacemaker,corosync,fence-agents-all,如果需要配置相关服务,也要安装对应的软件. 二.配置防火墙1.禁止防火墙和selinux# systemctl disable firewalld# systemctl stop firewalld2.设置防火墙规则# firewall-cmd --permanent --add-service=high-availability# firewall-cmd --add-service=h

ActiveMQ+ZooKeeper搭建高可用集群

一.说明 实际的应用中,一般为了应用的高可用性,都会搭建集群环境去处理.部署多台应用,这样,即使一台有问题,其他热备应用可以立马顶上,继续提供服务. ActiveMQ的集群部署,基于zookeeper的应用程序协调服务和levelDB的持久化方案. 本文中,基于一个系统环境,搭建伪集群模式,通过不同端口的配置,达到集群安装的效果. 基本环境:jdk-7u80-linux-x64.tar.gz.Centos 6.9.zookeeper-3.4.12.tar.gz.apache-activemq-5

实验-CentOS 使用Keepalived搭建高可用集群

配置keepalivedHa集群 一)实验环境: 服务器系统:CentOS7.3 服务:nginx,keepalived 客户端系统:Windows 10,CentOS7.3 二)初始化操作:Master/Backup,童颜的操作 #安装keepalived软件 [[email protected] ~ ]# yum install keepalived #安装Nginx(需要配置EPEL源) [[email protected] ~ ]# yum install Nginx #关闭清空防火墙

MongoDB高可用集群配置的方案

>>高可用集群的解决方案 高可用性即HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性. 计算机系统的高可用在不同的层面上有不同的表现: (1)网络高可用 由于网络存储的快速发展,网络冗余技术被不断提升,提高IT系统的高可用性的关键应用就是网络高可用性,网络高可用性与网络高可靠性是有区别的,网络高可用性是通过匹配冗余的网络设备实现网络设备的冗余,达到高可用的目的.比如冗余的交换机,冗余的路由器等

Nginx负载均衡+Keepalived高可用集群

一.搭建环境及软件版本 负载均衡:Nginx 高可用:Keepalived Linux:Centos 6.5 Nginx:nginx-1.6.2 Keepalived:keepalived-1.2.13 LB-00:Nginx+Keepalived 192.168.174.40 LB-01:Nginx+Keepalived 192.168.174.41 Web1:LNMP 192.168.174.20 Web2:LAMP 192.168.174.30 二.负载均衡搭建 ①解压编译安装Nginx

集群介绍、keepalived介绍、用keepalived配置高可用集群

集群介绍 Linux集群根据功能划分为两大类:高可用和负载均衡. 1.高可用集群通常为2台服务器,一台工作,另一台作为冗余,当提供服务的机器宕机时,冗余将接替继续提供服务. 实现高可用的开源软件有:heartbeat.Keepalived,其中heartbeat很多bug已无人维护(不推荐使用),所以今后使用Keepalived来搭建高可用集群. 2.负载均衡集群,需要有1台服务器作为分发器,它负责把用户的请求分发给后端的服务器处理,在这个集群里,除了分发器外就是给用户提供服务的服务器了,这些服

k8s 开船记:升级为豪华邮轮(高可用集群)与遇到奇怪故障(dns解析异常)

之前我们搭建的 k8s 集群只用了1台 master ,可用性不高,这两天开始搭建高可用集群,但由于之前用 kubeadm 命令创建集群时没有使用 --control-plane-endpoint 参数,无法直接升级现有集群,只能重新创建高可用(High-Availability)集群. 高可用集群的原理很简单,多台 master ,每台都保存集群数据(etcd),所有 nodes 通过专门搭建的负载均衡访问 api server ,这样当部分 master 宕机时,对集群正常运行无影响. 我们

使用drbd结合corosync实现mysql的高可用集群服务

DRBD:Distributed Replicated Block Dvice 分布式复制块设备,它可以将两个主机的硬盘或者分区做成镜像设备,类似于RAID1的原理,只不过它会将主节点的数据主动通过网络同步到从节点做成镜像,当主节点发生故障,让从节点成为主节点,因为是镜像设备,所以数据不会丢失.corosync在这里的作用就是将drbd通过pacemaker做成高可用服务的资源,以便于主从节点间的自动切换.drbd由于使用各节点之间自身的硬盘设备,因此对于需要共享存储的场景不失为一种节约成本的解