前言

开启实战50台服务器规模集群模式

搭建集群:

  • 采购服务器、性能测试
  • 采购云服务(云主机、虚拟机)
  • 采购带宽,压力测试
  • 采购CDN服务

 

1. 集群图解

 

 

 

2. 服务器规划

  • 负载均衡服务器  2台  对访问网站的流量进行分流,减少流量对某台服务器的压力
  • web服务器  2台   处理用户页面访问请求(Nginx,Apache)
  • NFS存储兼 兼 批量管理 1台   存储图片,附件,头像等静态数据,兼职批量分发和管理
  • 备份服务器  1台   对全网服务器数据,进行实时与定时备份
  • 数据库服务器  1台   对动态变化数据进行存储(文本内容)
  • 管理服务器  1台 
    • 作为yum仓库服务器,提供全网服务器的软件下载;
    • 跳板机、操作审计;
    • vpn(pptp);
    • 监控服务nagios,zabbix

说明:总计需要服务器8台,完成本次项目

 

3. 主机规划

服务器说明 外网IP 内网IP 主机名称规划
A1-nginx 负载服务器 01 10.0.0.5/24 192.168.0.5/24 lb01
A2-nginx 负载服务器 02 10.0.0.6/24 192.168.0.6/24 lb02
B1-apache web服务器 10.0.0.7/24 192.168.0.7/24 web02
B2-apache web服务器 10.0.0.8/24 192.168.0.8/24 web01
C3-mysql数据库服务器 10.0.0.51/24 192.168.0.51/24 db01
C1-NFS 存储服务器 10.0.0.31/24  192.168.0.31/24 nfs01
C2-rsync 存储服务器 10.0.0.41/24 192.168.0.41/24 backup
X-管理服务器 10.0.0.61/24 192.168.0.61/24 m01

提示:

  • C1-NFS存储服务器是临时使用,企业场景是没有的
  • 斜体的IP在实际是可以没有的,可以配了再关掉查看是否ok
  • 负载均衡器的  VIP 10.0.0.3/24
  • 带外网IP的服务器的内网IP 不配网关和DNS
  • 外部IP该配啥就配啥
  • 注意,示例案例要求外网IP和内网IP都是NAT网络,但是mac的虚拟机NAT不支持互联,只支持桥接网络,具体内容根据实际修改。
  • 注意,原本的方法中内网IP的网络位是172.16.1.*,但是个人的主机的网络位网段是192.168.0,所以只能根据实际情况修改。

4. hosts解析

将主机域名和IP的dns对应关系添加到/etc/hosts文件。

[root@oldboy network-scripts]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 oldboy
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 oldboy
183.232.231.174 baidu
192.168.0.5 lb01
192.168.0.6 lb02
192.168.0.7 web02
192.168.0.8 web01
192.168.0.51 db01
192.168.0.31 nfs01
192.168.0.41 backup
192.168.0.61 m01

 

5. 虚拟机环境准备

5.1 模版机准备

【网卡相关设置】

网卡设置:/etc/sysconfig/network-scripts/ifcfg-eth1

ip选择一个不在计划内的指定主机位,可以保证模版机的正常开启,方便查询。【192.168.0.111作为模版机的ip地址】

删除uuid和mac地址。

 

在/etc/rc.local配置文件中添加:

  cat /dev/null > /etc/udev/rules.d/70-persistent-net.rules 

实现开机自启动清空网卡配置,避免mac地址和uuid和网卡设备不一致导致的联网失败。

 

【Linux系统基础优化】

1. 关闭selinux防火墙

  • 临时关闭selinux
    • setenforce 0 将状态设置为permissive,给出警告提示,但不会阻止操作,相当于disable
    • getenforce 查看
  • 永久关闭,修改配置文件/etc/selinux/config

2. 关闭iptables

  • /etc/init.d/iptables stop 最好执行两遍,确保成功关闭
  • chkconfig iptables off 

3. 精简开机自启动服务

  • chkconfig|egrep -v "crond|sshd|network|rsyslog|sysstat"|awk '{print "chkconfig",$1,"off"}'
  • export LANG=en
  • chkconfig --list|grep 3:on

4. 授权用户oldboy可以sudo

  • [root@oldboy ~]# useradd oldboy
    [root@oldboy ~]# \cp /etc/sudoers /etc/sudoers.ori  # 备份
    [root@oldboy ~]# echo "oldboy ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers  # 添加授权语句,oldboy授权无密码登陆,所有权限所有主机
    [root@oldboy ~]# tail -1 /etc/sudoers
    oldboy ALL=(ALL) NOPASSWD:ALL
    
    [root@oldboy ~]# visudo -c  # 语法检查
    /etc/sudoers: parsed OK

5. 中文字符集【可选】

cp /etc/sysconfig/i18n /etc/sysconfig/i18n.ori
echo  'LANG=zh_CN.UTF-8' >/etc/sysconfig/i18n
source /etc/sysconfig/i18n
echo $LANG

6. 时间同步

echo "#time sync" >>/var/spool/cron/root
echo '*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1' >> /var/spool/cron/root
crontab -l # 检查

7. 命令行安全

[root@oldboy ~]# echo 'export TIMEOUT=300' >>/etc/profile
[root@oldboy ~]# echo 'export HISTSIZE=50' >>/etc/profile
[root@oldboy ~]# echo 'export HISTFILESIZE=5' >>/etc/profile
[root@oldboy ~]# tail -3 /etc/profile
export TIMEOUT=300
export HISTSIZE=50
export HISTFILESIZE=5
[root@oldboy ~]# source /etc/profile

8. 调整文件描述符数量(加大)

[root@oldboy ~]# echo '*       -   nofile    65535 '>>/etc/security/limits.conf
[root@oldboy ~]# tail -1 /etc/security/limits.conf
*       -   nofile    65535 

9. 内核优化

优化方法是,执行vi /etc/sysctl.conf命令到文件结尾,然后拷贝如下内容并保存。

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 arguments 
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

sysctl -p命令检查输入的参数是否有误,生效。

 

5.2 backup,nfs等存储服务器准备

网卡配置:更新ip地址。 


 

6. 备份服务器backup --工具rsync

 

posted on 2019-11-29 16:31  Zoe233  阅读(234)  评论(0编辑  收藏  举报