目录
关闭磁盘文件的atime,禁止系统对文件的访问时间更新会有效提高文件读取性能
6.MongoDB3主机上安装MongoDB-4.2.1版本:
8.使用numactl命令启动MongoDB实例(禁用NUMA):
本文重点描述:
MongoDB集群模式采用3台物理服务器,硬件配置:256G内存,3*3TSSD RAID5;现有磁盘空间使用量75%已经达到空间阈值;需要升级磁盘空间以及更换raid10(这里官方推荐读写性能更高),硬件磁盘升级为:6*3TSSD RAID10。
MongoDB集群模式{主备仲裁}说明:
| MongoDB主机1 | MongoDB主机2 | MongoDB主机3 |
| shard1-Primary | shard1-Secondary | shard1-arbiter |
| shard2-arbiter | shard2-Primary | shard2-Secondary |
| shard3-Secondary | shard3-arbiter | shard3-Primary |
| config | config | config |
| mongos | mongos | mongos |
Replica Set :
主服务器(Primary) 包含了所有的改变操作(写)的日志。
副本服务器(Secondary)集群包含有所有的主服务器数据,因此当主服务器挂掉了,就会在副本服务器上重新选取一个成为主服务器。
仲裁者(arbiter),仲裁者不存储数据,只是负责通过心跳包来确认集群中集合的数量,并在主服务器选举的时候作为仲裁决定结果。
可以设priority,priority越高优先级越高
建议centos6.9以上系统安装!
建议Linux内核版本2.6.36以上版本,内核较低版本需要自行编译内核
1.当前MongoDB集群备份conf文件:
开始执行升级操作
[root@mongo3 data]# ll /data/mongodb/conf/
total 20
-rw-r--r--. 1 root root 986 Nov 16 2019 config.conf
-rw-r--r--. 1 root root 1040 Nov 16 2019 mongos.conf
-rw-r--r--. 1 root root 1074 Nov 17 2019 shard1.conf
-rw-r--r--. 1 root root 1018 Nov 17 2019 shard2.conf
-rw-r--r--. 1 root root 1074 Nov 17 2019 shard3.conf
查看分片信息
| shard1配置信息 | Shard2配置信息 | Shard3配置信息 |
| shard1:PRIMARY> rs.conf() { "_id" : "shard1", "version" : 1, 内容忽略......... } | shard2:PRIMARY> rs.conf() { "_id" : "shard2", "version" : 1, 内容忽略......... } | shard3:PRIMARY> rs.conf() { "_id" : "shard3", "version" : 366375, 内容忽略......... } |
2.停止MongoDB3主机服务:
检查业务访问状况是否有异常!!!
| [root@mongo3 data]# mongod -f /data/mongodb/conf/config.conf -shutdown killing process with pid: 29096 [root@mongo3 data]# mongod -f /data/mongodb/conf/shard1.conf -shutdown killing process with pid: 29608 [root@mongo3 data]# mongod -f /data/mongodb/conf/shard2.conf -shutdown killing process with pid: 29661 [root@mongo3 data]# mongod -f /data/mongodb/conf/shard3.conf -shutdown killing process with pid: 29762 mongod -f /data/mongodb/conf/config.conf -shutdown mongod -f /data/mongodb/conf/shard1.conf -shutdown mongod -f /data/mongodb/conf/shard2.conf -shutdown mongod -f /data/mongodb/conf/shard3.conf -shutdown mongos需要手动kill |
3.查看当前数据文件大小:
[root@mongo3 ~]# du -sh /data/mongodb/data/*
820M /data/mongodb/data/config
508M /data/mongodb/data/shard1
3.0T /data/mongodb/data/shard2
2.1T /data/mongodb/data/shard3
4.安装系统与原系统一致:
cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
关闭操作系统,扩充SSD硬盘,重新做raid10,最后重做系统7.2
5.优化调整系统配置:
hostname mongo3
cat /etc/hostname
mongo3
vim /etc/sysctl.conf
vm.swappiness = 1
#必须关闭,开启会影响网卡启动
systemctl stop NetworkManager
systemctl disable NetworkManager
修改系统文件局兵书和最大用户进程数限制
cat /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
关闭磁盘文件的atime,禁止系统对文件的访问时间更新会有效提高文件读取性能
/etc/fstab文件增加参数:
/dev/mapper/centos-data /data xfs defaults,noatime,nodiratime 0 0
修改完成后重新mount:
mount -o remount /data
关闭THP(注意重新会失效)
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
永久生效:
| vim /etc/rc.d/rc.local if test -f /sys/kernel/mm/transparent_hugepage/enabled;then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag;then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi |
结果显示:
[root@mongo3 mongodb]# cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
[root@mongo3 mongodb]# cat /sys/kernel/mm/transparent_hugepage/defrag
always madvise [never]
6.MongoDB3主机上安装MongoDB-4.2.1版本:
关闭系统防火墙,会影响集群服务器之间通讯或者添加对应端口策略
systemctl stop firewalld.service
systemctl status firewalld.service
systemctl disable firewalld.service
创建MongoDB服务用户:
groupadd mongo
useradd -g mongo mongo
echo “dfger435.” | passwd --stdin mongo
| cd /usr/local/ tar zxf mongodb-linux-x86_64-rhel70-4.2.1.tgz mv mongodb-linux-x86_64-rhel70-4.2.1 /usr/local/mongodb mkdir -p /data/mongodb/conf mkdir -p /data/mongodb/data/config mkdir -p /data/mongodb/data/shard1 mkdir -p /data/mongodb/data/shard2 mkdir -p /data/mongodb/data/shard3 mkdir -p /usr/local/mongodb/logs |
配置环境变量:
vim /etc/profile
export PATH=/usr/local/mongodb/bin:$PATH
source /etc/profile
7.还原备份conf文件:
备份文件 目标文件路径:/data/mongodb/conf
8.使用numactl命令启动MongoDB实例(禁用NUMA):
numactl命令这里不在阐述自行百度功能
配置文件权限:
chown -R mongo:mongo /data/
chown -R mongo:mongo /usr/local/mongodb
mkdir /opt/shell
chown -R mongo:mongo /opt/shell
/opt/shell #目录下是MongoDB监控脚本服务
切换用户启动服务:
su mongo
环境安装:
yum install numactl -y
服务器启动
| numactl --interleave=all mongod -f /data/mongodb/conf/config.conf numactl --interleave=all mongos -f /data/mongodb/conf/mongos.conf numactl --interleave=all mongod -f /data/mongodb/conf/shard1.conf numactl --interleave=all mongod -f /data/mongodb/conf/shard2.conf numactl --interleave=all mongod -f /data/mongodb/conf/shard3.conf |
numactl –hardware
| numactl --hardware available: 2 nodes (0-1) node 0 cpus: 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 node 0 size: 130978 MB node 0 free: 644 MB node 1 cpus: 1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35 37 39 node 1 size: 131072 MB node 1 free: 158 MB node distances: node 0 1 0: 10 21 1: 21 10 |
1、至此MongoDB3主机部署成功,服务启动成功,并开始同步数据,同步完成节点自动上线并支持数据查询更新操作。
2、MongoDB3数据同步完成可以通过磁盘空间判断或者表数据量统计排查结果。
3、以上确认没有问题,按照以上操作MongoDB2和MongoDB3完成整个集群磁盘升级。
本文详细描述了一个MongoDB集群从3.0到4.2.1的升级过程,包括备份配置文件、停止服务、检查磁盘空间、系统配置优化、安装新版本MongoDB、还原配置、启动服务等步骤。同时,文章提到了硬件升级为RAID10以提升读写性能,并涉及系统参数调整如关闭THP和优化文件系统设置以提高性能。
411

被折叠的 条评论
为什么被折叠?



