集群架构的配置
集群架构之准备工作(1)
在对各功能进行详细介绍之前,我们需要先准备虚拟机环境,我们规划如下:
目录结构规划:
~/scripts存放脚本文件的目录~/tools存放软件安装包的目录/backup存放备份文件的目录/data存放共享文件的目录,即NFS服务器存放数据的目录
环境规划完毕。读者可以搭建自己的虚拟机环境,也可以采用阿里云环境等,如果还有疑惑,可以在微信公众号给我发消息哦。
系统配置及优化
我们把这些规划的目录,在模板机里准备好:
mkdir scripts
mkdir tools
mkdir /data /backup
这里的优化我们照做即可,具体原理我们后面遇到时再做详解。
配置所有主机域名解析(配置模板机)
设置本地服务主机名称与IP地址映射关系[root@localhost ~]# cat >>/etc/hosts<<EOF
> 10.0.0.11 m01
> 10.0.0.12 lb01
> 10.0.0.13 lb02
> 10.0.0.14 web01
> 10.0.0.15 web02
> 10.0.0.21 nfs
> 10.0.0.22 rsync
> 10.0.0.23 mysql
> EOF
更新yum源
# 使用阿里云的yum源
curl -s -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 安装RHEL/CentOS官方源不提供的软件包(也是用阿里的源)
curl -s -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
和安全相关的优化
关闭一些安全服务,可以避免一些不必要的麻烦。生产中,相关的安全服务由单独的防火墙完成。
关闭selinux
# 修改配置文件,使配置永久生效
[root@localhost ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 上面的修改并不能即时生效,所以我们需要通过下面的命令来即时关闭selinux
[root@localhost ~]# setenforce 0
# 查看seLinux是否已经关闭
[root@localhost ~]# getenforce
Permissive # 这种状态表示selinux已经不再起作用。
关闭防火墙
# 禁止开机启动
[root@localhost ~]# systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
# 关闭防火墙
[root@localhost ~]# systemctl stop firewalld
推荐阅读
《一站式教程之集群架构》:
一文彻底搞懂IP地址知识(值得收藏的手册)
老司机:子网掩码我不怕,怕的是子网划分!
看完本文有收获?请分享给更多人
推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!
集群架构之准备工作(3)
教程每周二、四、六更新
命令行设置
为了保证操作的安全性和可回顾性,我们设置:
echo 'export TMOUT=300' >>/etc/profile # 设置ssh超时时间为300s
echo 'export HISTSIZE=2000' >>/etc/profile # 记录命令行历史命令条数
echo 'export HISTFILESIZE=1000' >>/etc/profile # 历史命令文件保存的历史命令条数
增加文件描述符
# 永久生效的修改方法:
[root@localhost ~]# echo '* - nofile 65535 ' >>/etc/security/limits.conf
[root@localhost ~]# tail -1 /etc/security/limits.conf
# 临时生效的修改方法
[root@localhost ~]# ulimit -SHn 65535
注意:如果仅仅修改配置文件的话,不会立刻生效。所以我们还会使用临时生效的方法,一边达到立刻生效的目的。
内核优化
[root@localhost ~]# cat >>/etc/sysctl.conf<<EOF
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000 65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
#以下参数是对iptables防火墙的优化,防火墙不开会提示,可以忽略不理。
net.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_max = 25000000
net.netfilter.nf_conntrack_tcp_timeout_established = 180
net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120
net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60
net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120
EOF
# 使之生效
[root@localhost ~]# sysctl -p
ssh连接优化
在工作中,我们会遇到ssh连接服务器较慢的情况,我们可以通过如下方式来优化:
# 修改配置文件
[root@localhost ~]# sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
[root@localhost ~]# sed -i 's/GSSAPIAuthentication yes/GSSAPIAuthentication no/g' /etc/ssh/sshd_config
# 重启ssh服务使配置生效
[root@localhost ~]# systemctl restart sshd
为了保证ssh工作的安全性,工作中还需要更换ssh默认端口号和监听地址段,防止黑客攻击。但是为了学习的方便性,我们这里就不修改了,请知道加强ssh安全还有这些手段即可:
# 更改默认端口号
[root@localhost ~]# sed -i '17s/.*/Port 51622/g' /etc/ssh/sshd_config
# 修改ssh服务监听的默认ip地址(默认0.0.0.0),这里我们指定监听内网地址172.16.1.3
[root@localhost ~]# sed -i '20s/.*/ListenAddress 172.16.1.3/g' /etc/ssh/sshd_config
安装vim
[root@localhost ~]# yum -y install vim
到此为止,系统的初步优化就到这里了,此时就可以开始克隆虚拟机了。
修改主机名称(修改除模板机以外的所有主机)
[root@web01 ~]# hostnamectl set-hostname web01
注意:有些vmware版本在克隆命名虚拟机的时候,会自动把主机名改掉。
推荐阅读
《一站式教程之集群架构》:
一文彻底搞懂IP地址知识(值得收藏的手册)
老司机:子网掩码我不怕,怕的是子网划分!
看完本文有收获?请分享给更多人
推荐关注「Cloud研习社」,带你从零开始掌握云计算技术!