温馨提示×

MongoDB分片在CentOS上的部署策略

小樊
49
2025-08-20 16:59:06
栏目: 云计算

以下是在CentOS上部署MongoDB分片的策略,基于搜索结果整理关键步骤及要点:

一、基础环境准备

  1. 安装MongoDB
    通过官方YUM源或手动安装包部署,确保所有节点安装版本一致。

    sudo yum install -y mongodb-org  
    
  2. 配置网络与权限

    • 确保节点间网络互通,防火墙开放MongoDB端口(默认27017、27019等)。
    • 创建专用数据目录并授权(如/data/configdb/data/shard1等),避免使用默认路径。

二、分片集群核心组件部署

1. 配置服务器(Config Server)

  • 作用:存储集群元数据,需至少3个节点保障高可用。
  • 部署步骤
    • 启动配置服务器,指定--configsvr参数和副本集名称:
      mongod --configsvr --replSet configReplSet --dbpath /data/configdb --port 27019  
      
    • 初始化副本集(连接到任意配置服务器执行):
      rs.initiate({  
        _id: "configReplSet",  
        configsvr: true,  
        members: [  
          { _id: 0, host: "cfg1.example.com:27019" },  
          { _id: 1, host: "cfg2.example.com:27019" },  
          { _id: 2, host: "cfg3.example.com:27019" }  
        ]  
      })  
      

2. 分片服务器(Shard Server)

  • 作用:存储实际数据,每个分片建议配置为副本集。
  • 部署步骤
    • 启动分片服务器,指定--shardsvr参数和副本集名称:
      mongod --shardsvr --replSet shard1ReplSet --dbpath /data/shard1 --port 27018  
      
    • 初始化副本集(以3节点为例):
      rs.initiate({  
        _id: "shard1ReplSet",  
        members: [  
          { _id: 0, host: "shard1a.example.com:27018" },  
          { _id: 1, host: "shard1b.example.com:27018" },  
          { _id: 2, host: "shard1c.example.com:27018" }  
        ]  
      })  
      
    • 重复上述步骤部署其他分片(如shard2、shard3)。

3. 路由服务器(Mongos)

  • 作用:作为应用访问入口,路由请求到对应分片。
  • 部署步骤
    • 启动Mongos,指定配置服务器副本集:
      mongos --configdb configReplSet/cfg1.example.com:27019,cfg2.example.com:27019,cfg3.example.com:27019 --port 27017  
      

三、分片集群配置与验证

  1. 添加分片到集群
    连接到Mongos,通过sh.addShard()添加分片(需指定分片副本集名称和成员):

    sh.addShard("shard1ReplSet/shard1a.example.com:27018,shard1b.example.com:27018,shard1c.example.com:27018")  
    
  2. 启用分片

    • 启用数据库分片:
      sh.enableSharding("yourDatabase")  
      
    • 对集合指定分片键(如_id或自定义字段):
      sh.shardCollection("yourDatabase.yourCollection", { "shardKey": 1 })  
      
  3. 验证集群状态
    通过sh.status()查看分片集群状态,确认分片、副本集和路由信息正常。

四、关键注意事项

  • 副本集配置:分片服务器和配置服务器均需配置为副本集,确保数据冗余和高可用。
  • 端口规划:配置服务器(27019)、分片服务器(27018)、Mongos(27017)需使用不同端口,避免冲突。
  • 硬件资源:根据数据规模合理分配CPU、内存和磁盘,分片服务器建议配置SSD存储提升性能。
  • 安全配置:启用认证(如SCRAM-SHA-256)和加密传输(TLS/SSL),限制非必要端口访问。

五、监控与维护

  • 使用mongostatmongotop或MongoDB Atlas监控集群性能。
  • 定期备份配置服务器和分片数据,可通过mongodump工具实现。

以上步骤参考自,可根据实际环境调整节点数量和配置参数。

0