一、集群架构介绍
集群就是指一组(若干个)相互独立的计算机,利用高速通信网络组成的一个较大的计算机服务系统,每个集群节点都是运行各自服务的独立服务器。这些服务器之间可以彼此通信,协同向用户提供应用程序、系统资源和数据,并以单一系统的模式加以管理。
集群架构的特点:
1. 高并发,大流量:面对高并发用户大量访问
2. 持续服务,高可用:系统7*24小时不间断服务
3. 海量数据:需要存储、管理海量数据,需要使用大量服务器
4. 用户分布广泛,网络情况复杂
二、集群架构组成说明
1. 基本架构组成:(用于让用户进行访问)
前端服务部分:
1)网站用户
是一个访问者,请求访问网站页面
2)防火墙设备
对访问架构用户进行策略控制,正常访问网站用户,可以放行进入;非法人员(黑客)访问网站,禁止进入
3)交换机(外网)
提供架构中服务器相互通讯交流的需求(提供外部人员访问)
4)负载均衡服务器
对用户的访问请求进行调度处理
5)网站web服务器
对用户的请求进行响应处理
后端服务部分:
1)交互机(内网)
提供架构中服务器相互通讯交流的需求(提供内部局域网服务器通讯交流)
2)数据库服务器
主要用于存储用户提交文字(字符串)数据信息
3)存储服务器
主要用于存储用户上传视频 音频 图片 附件等数据资料
4)备份服务器
主要用于对用户存储(上传)数据信息进行统一备份管理
5)缓存服务器
主要用于存储用户经常访问的数据信息,提升请求数据信息的响应效率
2. 扩展架构组成:(用于让运维人员远程管理架构中的服务器)
1)运维人员
可以远程管理架构中服务器
2)审计-跳板机服务器
用于监管内部运维人员操作记录信息,一旦出现架构问题,可以快速定位问题原因,进行相应人员失误问责
3)批量管理服务器
通过批量管理服务器可以批量管理架构中多台服务器,提升工作效率
4)监控服务器
用于监控管理架构中的服务器运行情况,一旦出现问题进行发送告警给相关运维管理人员
三、集群架构搭建规划
服务器及服务规划说明
主机地址及主机名规划
安装及配置路径等规划
1. 基础企业集群架构规划,各个服务器架构功能规划如下:
2. 网站集群搭建顺序规划
3.主机IP及主机名规划
一般企业对主机IP的规划为10网段
4.安装及配置路径等规划
5.集群架构系统基础环境准备
1)安装CentOS 7.6 64bit操作系统,修改网卡为eth0和eth1命名模式,并添加2块网卡
2)第一块网卡eth0配置为NAT模式【模拟公网环境】,网段为10.0.0.0网段(企业一般规划为10网段)
3)第二块网卡eth1配置为LAN区段模式【模拟局域网环境】,网段为172.16.1.0网段
虚拟软件主机虚拟网络配置
第一步:在虚拟软件中配置虚拟局域网
配置虚拟网段信息,以及虚拟网关信息
第二步:在虚拟软件中虚拟机添加网卡
虚拟主机中设置了两块网卡:
eth0:nat模式网卡
eth1:LAN区段网卡(区段名称为 172.16.1.0/24)注:此网段为内网网段,无需配置默认网关和DNS
第三步:在虚拟软件中虚拟机网卡配置
使用命令nmtui命令设置网卡
四、集群架构系统优化
1. 基础优化
1)规范功能目录
创建存储软件目录(/server/tools),创建存储脚本目录(/server/scripts)
mkdir -p /server/tools
mkdir -p /server/scripts
2) 配置hosts解析信息
设置本地服务主机名称与ip地址映射关系
cp /etc/hosts{,.bak}
cat >>/etc/hosts<<EOF
172.16.1.5 lb01
172.16.1.6 lb02
172.16.1.7 web01
172.16.1.8 web02
172.16.1.9 web03
172.16.1.51 db01
172.16.1.31 nfs01
172.16.1.41 backup
172.16.1.61 m01
EOF
3)修改主机名称
hostnamectl set-hostname backup
4)更新yum源信息
使用yum源地址
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
安装RHEL/CentOS官方源不提供的软件包
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache
yum repolist
5)优化安全设置
对于内网环境,部分安全方面的设置是必需的,可以进行关闭,避免不必要的安全策略影响系统服务的正常运行。
关闭selinux
getenforce (查看状态)
sed -i.bak 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
grep SELINUX=disabled /etc/selinux/config
setenforce 0 (临时关闭)
getenforce (查看状态)
关闭firewalld防火墙
systemctl status firewalld (查看状态)
systemctl stop firewalld (关闭防火墙)
systemctl status firewalld
注:通知系统防火墙功能,只是针对局域网内部的机器关闭,连接外网服务设备还需开启
6)精简开机启动程序
设置一些不必要的软件为不随系统开机自动运行,只将一些必须运行的服务程序,设置为开机自动启动
systemctl list-unit-files |grep enable|egrep -v "sshd.service|crond.service|NetworkManager.service|irqbalance.service|rsyslog.service"|awk '{print "systemctl disable", $1}' |bash
systemctl list-unit-files |grep enable
企业生产最小化原则:
安装软件包最小化;用户权限最小化;目录文件权限最小化;自启动服务最小化;服务运行用户最小化
7)设置普通用户提权操作(可选优化)
useradd test
echo 123456|passwd --stdin test
cp /etc/sudoers /etc/sudoers.ori
echo "test ALL=(ALL) NOPASSWD: ALL " >>/etc/sudoers
tail -1 /etc/sudoers
visudo -c
8)设置系统字符集(可选优化)
cat /etc/locale.conf
cp /etc/locale.conf{,.ori}
localectl set-locale LANG="zh_CN.UTF-8"
9)时间同步设置
在服务架构中,有时需要进行主备连接,或者服务端和客户端的链接,连接可能涉及数据信息的同步,而同步时就需要借用系统时间生成时间戳,判断周期性同步的间隔,如果同步服务器之间的时间不统一,可能会造成同步终端间数据同步异常。
设置定时任务,进行每5分钟进行时间同步一次
yum install ntpdate -y
echo "#crond-id-0001:time sync by test" >> /var/spool/cron/root
echo '*/5 * * * * /usr/sbin/ntpdate pool.ntp.org >/dev/null 2>&1' >>/var/spool/cron/root
crontab -l
10)提升命令行操作安全性(可选优化)
设置会话超时时间
设置命令行历史记录保留的行数
设置命令行历史记录格式
设置历史记录文件保留个数
echo "export TMOUT=300" >>/etc/profile
echo "export HISTSIZE=1000" >>/etc/profile
echo "export HISTFILESIZE=1000" >>/etc/profile
echo 'export HISTTIMEFORMAT="`whoami` %F %T"' >>/etc/profile
tail -5 /etc/profile
source /etc/profile
11)加大文件描述符(句柄数)
ulimit -SHn 65535 (临时加大文件描述符)
永久生效:echo '* - nofile 65535 ' >> /etc/security/limits.conf
tail -1 /etc/security/limits.conf
12)优化系统内核参数
内核参数一般配置在/etc/sysctl.conf内核文件中,利用sysctl -p命令使之内核文件中,修改的内容生效。
13)安装系统常用软件
CentOS 7安装的企业运维常用基础工具包如下:
yum install tree nmap dos2unix lrzsz nc lsof wget tcpdump htop iftop iotop sysstat nethogs psmisc net-tools bash-completion vim-enhanced
14)优化SSH远程连接效率
配置远程连接SSH配置文件,使之连接效率更高,连接更安全
sed -i.bak 's@#UseDNS yes@UseDNS no@g;s@^GSSAPIAuthentication yes@GSSAPIAuthentication no@g' /etc/ssh/sshd_config
systemctl restart sshd
15)锁定关键系统文件优化
对关键系统账号文件和启动文件进行锁定,防止用户篡改。
16)清理系统版本信息
说明:系统对外显示的信息越少越好
17)为GRUB增加密码
为了防止别人进入单用户模式破解密码,可以添加GRUB密码
grub2-setpassword
cat /boot/grub2/user.cfg
18)禁止用户ping服务器的ip地址
禁止用户ping服务器IP地址的目的也是让黑客用户以为服务器停机或者不可用,或禁止返回有效信息
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
2. 扩展优化(可选)
1)优化系统提示符(可根据个人喜好选择)
2)定义系统别名
简化常用的命令,提升工作效率
3)修改yum.conf文件配置信息
将yum.conf中的keepcache=0改为keepcache=1,为日后一键安装网站集群留好rpm及依赖工具包
4)自动快速配置主机名和IP地址
五、虚拟主机克隆操作
已经创建好了一台虚拟主机,可以利用创建好的虚拟主机,作为模板主机,进行架构中多台服务器的克隆创建。
第一步:调整虚拟主机网络配置信息
一清空 两删除
两删除:删除网卡(eth0 eth1)中,UUID(硬件标识信息)和HWADDR(网络mac地址)进行删除
sed -ri '/UUID|HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth[01]
一清空:清空网络规则配置文件
ls /etc/udev/rules.d
echo '>/etc/udev/rules.d/70-persistent-net.rules' >>/etc/rc.local (针对的CentOS 6)
第二步:关闭虚拟模板机
shutdown -h now
第三步:进行模板机的克隆操作
链接克隆:
优势:节省系统资源 克隆效率较高
劣势:模板主机不能出现问题,一旦模板主机失效,所有克隆主机也无法正常工作
完整克隆:
优势:模板主机和克隆主机相互独立,模板主机出现问题,克隆主机依旧可以正常使用
劣势:浪费系统资源 克隆效率较低 第四步:开启克隆后虚拟主机(一台一台开启,确认模板主机关闭),设置虚拟主机地址和网卡
# 修改主机名称
hostname backup
hostnamectl set-hostname backup
说明:主机名称需要填写为当前系统主机名,然后进行一下替换即可
# 修改主机IP地址信息
sed -i 's/200/41/g' /etc/sysconfig/network-scripts/ifcfg-eth[01]
cat /etc/sysconfig/network-scripts/ifcfg-eth[01]
# 重启网络服务,重新连接虚拟主机
systemctl restart NetworkManager