高效、安全的部署Redis Cluster

本文详细介绍了在CentOS和Ubuntu环境下,如何进行Redis Cluster的安全、高效部署,包括环境准备(如关闭SELinux,配置防火墙,优化系统参数),Redis实例的安装与配置,以及Ruby环境的准备和集群的搭建与检查。内容涵盖从硬件配置到系统优化的全过程。
摘要由CSDN通过智能技术生成

1. 环境准备

1.1. 硬件配置

标准化项 说明 备注
IO设置 写策略设置Write Back,禁用Write Through
IO子系统设置 使用Raid1+0 若采用PCIe-SSD,则可不用做Raid
关闭物理磁盘cache,防止丢数据
写策略设置Write Back,禁用Write Through
关闭预读,使得宝贵的cahce用来作为写缓存
BIOS标准设置 开启最大性能模式,选择DAPC或者选择Performance模式 不同的主板配置上有差异
Memory Frequency(内存频率)选择Maximum Performance模式 不同的主板配置上有差异
关闭NUMA 不同的主板配置上有差异
文件系统 数据存储文件系统类型建议EXT4格式 该项不做强制要求XFS类型也可以
网络配置 使用mode=4模式的网卡绑定 双网卡连接不同的交换机,交换机上需要做适配
数据挂载目录 /data Redis数据库实例的所有文件全部存放在/data目录下;

1.2. 操作系统软件包&第三方工具

软件包 说明 备注
gcc 至少是C89兼容的
ruby 若Redis部署的为5.x及以上版本,无需部署ruby,5.x及以上版本彻底抛弃了ruby
GNU make 版本3.80及以上
tar 解压源码包时用到的tar解压工具

^: 若Redis版本为Redis 5.x及以上版本时,可不需要安装ruby。

1.3. 关闭SELINUX

临时禁用selinux:

# setenforce 0
# more /etc/selinux/config | grep -Ev "$|[#;]"

永久禁用selinux:

# vi /etc/selinux/config

将
SELINUX= enforcing
修改为
SELINUX=disabled 
:x保存退出

1.4. 配置防火墙

如需要禁用防火墙,可执行如下命令:

1)若是CentOS 7.x系统,可执行如下命令禁用防火墙:
关闭防火墙:
# systemctl stop firewalld.service
禁用防火墙开机自启:
# systemctl disable firewalld.service
查看防火墙状态:
# systemctl status firewalld.service

2)若是Ubuntu系统,可执行如下命令禁用防火墙:
# iptables -P INPUT ACCEPT

3)其他系统禁用防火墙命令,请自行查找。

如需配置防火墙规则,可参照如下示例:

# vim /etc/iptables.rules

*filter
:INPUT ACCEPT [3715:523951]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [1925:209933]
-A INPUT -i lo -j ACCEPT
#允许ssh端口通过
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
#允许icmp
-A INPUT -p icmp -j ACCEPT
#允许Redis服务器间互通,即Redis服务器间可互相访问Redis端口为2011~2014的Redis实例
-A INPUT -s 192.168.111.111/24 -p tcp -m state --state NEW -m tcp --dport 2011:2014 -j ACCEPT
-A INPUT -s 192.168.111.112/24 -p tcp -m state --state NEW -m tcp --dport 2011:2014 -j ACCEPT
-A INPUT -s 192.168.111.113/24 -p tcp -m state --state NEW -m tcp --dport 2011:2014 -j ACCEPT
#运行其他服务器访问Redis,如允许172.172.122.222服务器访问本地Redis端口为2011~2014的Redis实例
-A INPUT -s 172.172.122.222/32 -p tcp -m state --state NEW -m tcp --dport 2011:2014 -j ACCEPT
#暴露本地22201服务端口
-A INPUT -p tcp -m tcp --dport 22201 -j ACCEPT
-A INPUT -m state --state ESTABLISHED -j ACCEPT
COMMIT

防火墙规则配置完毕后,将配置文件导入:

# iptables-restore < /etc/iptables.rules

导入防火墙规则配置文件后,打开防火墙:

# iptables -P INPUT DROP

如需要开机自动恢复规则,把恢复命令添加到启动脚本:

# echo '/sbin/iptables-restore < /etc/iptables.rules' >>/etc/rc.local
# echo '/sbin/iptables -P INPUT DROP' >>/etc/rc.local

# cat /etc/rc.local

1.5. 优化系统参数


编辑系统配置文件sysctl.conf:

# vim /etc/sysctl.conf

vm.overcommit_memory=1
vm.swappiness = 0
net.core.somaxconn = 1024
net.ipv4.tcp_timestamps = 0
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_fin_timeout = 30
net.nf_conntrack_max = 655350
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.ip_local_reserved_ports = 2011-2014,12011

^: net.ipv4.tcp_tw_reuse设置为1表示开启重用,允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭。

装载ip_conntrack模块:

# modprobe ip_conntrack

载入sysctl配置文件:

# sysctl -p

1.6. 修改hugepage配置

临时禁用hugepage:

# echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled

为了使机器重启后THP配置依然生效,可以在/etc/rc.local中追加:

# echo '/bin/echo never > /sys/kernel/mm/transparent_hugepage/enabled' >> /etc/rc.local

2. 部署Redi

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Zhi@Li

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值