Hubble数据库集群安装前环境服务配置

当我们准备好了软硬件环境后,就可以配置Hubble集群环境服务了

注意:
每台服务器都需要进行配置
使用root账户

系统级别配置

关闭交换分区

  • 永久性关闭交换分区
sed -ri 's/.*swap.*/#&/' /etc/fstab
  • 临时性关闭交换分区
swapoff -a   #关闭
swapon -a   #开启

注意:
建议永久性关闭交换分区 Hubble数据库属于对IO敏感型基础架构,swapping会将主内存交换到磁盘,从而对性能造成负面影响。内存中操作是需要快速执行的操作。如果内存交换到磁盘,100微秒操作将花费10毫秒。建议系统上完全禁用swapping

关闭服务器的防火墙

  • 检查防火墙状态
systemctl status  firewalld.service  
  • 关闭防火墙
systemctl stop firewalld
  • 关闭防火墙自启动
systemctl disable firewalld
  • 检查防火墙状态
systemctl status  firewalld.service

关闭透明大页

echo never > /sys/kernel/mm/transparent_hugepage/enabled 
echo never > /sys/kernel/mm/transparent_hugepage/defrag

禁用selinux

  • 永久性禁用
vi /etc/sysconfig/selinux
SELINUX=disabled
  • 临时性禁用
setenforce 0

注意:
建议永久性禁用selinux

sysctl配置

vi /etc/sysctl.conf
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
kernel.core_uses_pid = 1
kernel.pid_max = 4194303
kernel.randomize_va_space = 0
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 250 51200 100 2048
kernel.sysrq = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
fs.file-max = 1500000
net.ipv4.ip_forward = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.conf.all.arp_filter = 1
net.ipv4.ip_local_port_range = 1025 65535
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_synack_retries = 3
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.default.log_martians = 1
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_no_metrics_save = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_moderate_rcvbuf = 1
net.ipv4.tcp_retries2 = 3
net.ipv4.tcp_keepalive_time = 600
net.ipv4.tcp_keepalive_probes = 3
net.ipv4.tcp_keepalive_intvl = 30 
net.ipv4.tcp_fin_timeout = 10
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
net.core.somaxconn = 32768
vm.overcommit_memory = 0
vm.overcommit_ratio = 50
vm.swappiness = 0
vm.max_map_count = 6553000
sysctl -p

ulimit配置

vi /etc/security/limits.d/hubble.conf
hubble - nofile  1000000
hubble - nproc   16000
echo 1500000 > /proc/sys/fs/file-max

主机与IP配置

vi /etc/hostname
hubble01

注意:
主机名需要根据实际环境进行编排

vi /etc/sysconfig/network-scripts/ifcfg-xx
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=p3p2
UUID=4f145ed6-e645-45c5-a91f-cbfb6df7213a
DEVICE=p3p2
ONBOOT=yes
IPADDR=192.168.1.11
PREFIX=24
GATEWAY=192.168.1.1
IPV6_PRIVACY=no
DNS1=8.8.8.8
DNS2=192.168.1.180

注意:
ifcfg-xx需要根据实际地址进行改动

hubble账户与组配置

useradd -d /home/hubble -m hubble #添加用户与组
passwd  hubble   #设置密码

时间同步

  • 安装chrond
rpm -qa|grep chrony  # 确认是否安装了chrony
yum install chrony -y  #安装时间同步软件   
  • 配置
vi /etc/chrony.conf
server 192.168.1.11 iburst #选择集群中一台作为服务器  
allow 192.168.1.0/24 # 设置运行同步的网段
local stratum 10 #同步时间周期10ms
  • 自启动设置
systemctl start chronyd.service  #启动chrony服务
systemctl enable chronyd.service #开机启动

注意:
Chrony是一个开源的自由软件,在RHEL 7操作系统,已经是默认服务,Chrony作为NTP的替代,推荐使用chrony
基于实际情况进行chrony配置
Hubble数据库需要一定级别的时钟同步来保证数据的一致性。如果当一个节点检测到自身的时钟与集群中至少一半节点不同步,并超出了可接受的最大偏移量时(默认500ms),这个节点将自动关闭服务,以保护数据库整体数据的一致性。所以hubble数据库集群的稳定性,需要建立在稳定的时钟同步前提下

NFS配置(如果有网络共享盘跳过此步)

服务端配置

yum install nfs-utils rpcbind #安装nfs 和rpcbind服务
  • 配置nfs(防火墙关闭则无需配置)
vi /etc/sysconfig/nfs
#增加配置
LOCKD_TCPPORT=30001 #TCP锁使用端口  
LOCKD_UDPPORT=30002 #UDP锁使用端口  
MOUNTD_PORT=30003 #挂载使用端口  
STATD_PORT=30004 #状态使用端口  
  • 防火墙访问开启(防火墙关闭则无需配置)
firewall-cmd --zone=public --add-port=111/tcp --permanent
firewall-cmd --zone=public --add-port=2049/tcp --permanent
firewall-cmd --zone=public --add-port=30001/tcp --permanent
firewall-cmd --zone=public --add-port=30002/tcp --permanent
firewall-cmd --zone=public --add-port=30003/tcp --permanent
firewall-cmd --zone=public --add-port=30004/tcp –permanent
  • 增加服务端共享路径
mkdir  -p /data5/shares   #需要找一个磁盘空间大的文件目录
chmod  -R 777 /data5/shares/
  • 配置服务端nfs
vi /etc/exports  #默认不存在此文件新建即可
/data5/shares 192.168.1.0/24(rw,sync)

注意:
指定集群中1台服务器中作为NFS挂载
设置的NFS盘一定要空间相对比较大

  • 启动nfs服务
#先为rpcbind和nfs做开机启动:
systemctl enable rpcbind.service
systemctl enable nfs-server.service
#然后分别启动rpcbind和nfs服务:
systemctl start rpcbind.service
systemctl start nfs-server.service
  • 配置服务生效
rpcinfo -p  #确认NFS服务器启动成功
exportfs -r #使exportfs生效
exportfs #可以查看到已经配置正确

客户端配置

  • 创建共享目录
mkdir /data_shares
  • 挂载共享目录
mount -t nfs 192.168.1.11:/data5/shares /data_shares
  • 开机自动挂载
vi /etc/fstab
192.168.1.11:/data5/shares /data_shares nfs defaults 0 0
  • 验证
df -h
192.168.1.11:/data5/shares  1.8T  507G  1.3T   29% /data_shares

注意:
192.168.1.11 根据每台环境来设置
客户端配置集群中每台服务器都执行

服务器之间配置

主机之间主机名同步

vi /etc/hosts  #设置集群主机名称
192.168.1.11 hubble01
192.168.1.12 hubble02

注意:
192.168.1.11 hubble01为每台服务器真实地址

scp -r /etc/hosts root@192.168.1.12:/etc/  

注意:
192.168.1.12 设置集群中每台节点主机名

Hubble数据库用户免密配置

规划的Hubble启动用户做免密登录,使用hubble用户操作

ssh-keygen -t rsa    #一路回车 --【各个节点都执行】  
cd ~/.ssh/ 
ssh-copy-id <目标节点地址>
ssh 192.168.1.12 #测试免密登录