命运是大海,当你能够畅游时,你就要纵情游向你的所爱,因为你不知道狂流什么会到来,卷走一切希望与梦想。
本文作者:燁未央_Estelle
版权声明:测试学习,不足之处,欢迎指正。允许转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明
第一章 集群架构搭建部署目标
1.1 本次架构部署配置概况
提示,本次集群架构所使用的服务器均为VM虚拟机进行模拟搭建测试及学习。
①两台linux服务器作为负载均衡服务器(LVS-01/LVS-02),基本模式:LVS-DR+keepalived。负责分发所有的请求给后面的WEB服务器。
②两台linux服务器作为WEB服务器(web-01/web-02),学习目的,分别配置Apache和Nginx,提供HTTP网页服务,分别实现LAMP和LNMP的WEB服务架构。
③两台linux服务器作为数据库服务器(MySQL-01/MySQL-02),分别部署MySQL多实例,数据库实现主从同步,并有相关数据备份方案。
④一台linux服务器作为Memcache缓存服务器,部署在数据库服务器的前端,作为web服务器的session共享以及数据库的缓存cache,减轻数据库压力。
⑤一台linux服务器作为NFS共享服务器,实现NFS和备份服务器实时数据实时同步(Rsync+inotify)。为所有的WEB服务器公共数据提供数据共享访问服务。
⑥一台linux服务器作为备份服务器,为全网服务器数据提供备份,同时作为全网服务器的日志服务器。同时备份服务器作为为NFS备机。
⑦一台linux服务器作为全网的监控服务器(Nagios+Cacti),负责全网服务器的所有主机流量情况以及图形显示监控(主动被动)。
⑧软件版本:虚拟机VMware Work staation 10版本。linux为Cent OS-6.5-x86_64版本。Linux内核版本选择为“其他linux2.6.x内核64位”。
⑨外部远程连接软件使用CRT5.1版本。
1.2 集群部署整体要求目标
①所有服务器搭建之初,进行linux系统的基本优化操作。全网服务器时间同步以及安装目录、存放目录路径统一规范。
②WEB服务器,配置站点产品目录(实现伪静态/动静分离)。并分别针对LAMP环境和LNMP环境进行深度优化。内部业务实现域名调用。
③全网服务器重要文件,定时更新备份,以及重要业务数据的备份存储。
④WEB服务数据库实现动静分离部署。部署DB读写分离软件。
⑤数据库服务器前端部署缓存服务器,减轻后端数据库的访问请求压力。
⑥整个集群架构中任何一台机器宕机,不影响整体业务的继续提供。
⑦提供外网服务的linux服务器开启iptables(根据业务需求)。内网服务器通过iptables设置NAT网关上网。
⑧实现全网服务器的sudo权限集中管理及日志审计。
1.3 全网服务器配置实现要求
①负载均衡服务器
LVS-01为主负载均衡,负责分发所有的用户请求给后面的WEB服务器。(LVS+leepalived)
LVS-02为备用负载均衡,(LVS+keepalived),当主负载均衡,不能提供服务的时候,由备用负载均衡接管,也可以配置成多实例多主的负载均衡模式。
注:可以部署双主的负载均衡模式,两个WEB站点程序在LB1上跑,另外两个WEB站点服务在LB2上跑,LB1和LB2互相监听,当一方遇到故障的时候,另一方接管服务。
②LAMP架构WEB服务
负载提供HTTP网页服务,后期部署DB读写分离软件(amoeba或者mysql-proxy),部署四个虚拟主机的网站程序(本地host文件解析实现)。
注:LAMP必须深入优化配置,如gzip压缩,expires,目录权限控制,上传目录禁止PHP解析(一键脚本优化)。网页实现伪静态解析。网站文件篡改监控报警。
③LNMP架构WEB服务
同LANP架构WEB部署。注意LNMP的深度优化。
④备份服务器Backup
设置定时任务,备份全网服务器的重要文件以及WEB服务器重要目录文件,按服务器IP备份存档。为所有的WEB服务器提供公共数据的共享访问。
按照业务对多个网站站点的WEB访问日志进行合并。并分析IP访问前十的IP地址及对应的访问量、每日PV及IP量发管理员信箱。。
注1:备份服务器保存最近7日,所有数据,每周六再保存一份全备数据,留存一年内的数据(定时任务)。
注2:备份服务器做完整性检查,,日志分析等可以使用脚本+定时任务实现,发管理员信箱。
⑤Memcache缓存及session共享缓存
为数据库内存缓存以及WEB session共享。负载数据库的缓存以及WEB服务的数据cache。
注1:部署Memcache服务端程序,至少启动两个Memache实例,上线提服务的时候,只有内网网卡。无外网网卡,通过固定网关上网。数据库的缓存需要修改程序支持,BB等有缓存的接口设置。
注2:WEB服务的session共享存储可以在php.ini里进行配置,也可以通过LVS会话保持。或者通过cookies实现。
⑥数据库服务器MySQL
负责提供数据库服务,MySQL-01和MySQL-02,分别部署双实例。
MySQL-01的3306端口到MySQL-02的3306端口部署主从同步。
MySQL-02的3307端口到MySQL-01的3307端口部署主从同步。
mysql-01服务器:端口为3306和3307,其中3306指定用于两个站点(bbs/www)的主库写数据服务,3307端口用于另外两个站点(blog/wiki)的从库读写数据库。
注:数据库服务均无外网IP,通过固定网关上网。分库最低授权,从库只读。
mysql-02服务器:端口为3306和3307,其中3306指定用于两个站点(bbs/www)的从库读数据服务,3307端口用于另外两个站点(blog/wiki)的主库写数据库。
注:数据库服务均无外网IP,通过固定网关上网。分库最低授权,从库只读。
提示:给开发人员提供不同的读写库(3306端口和3307端口分别配置)。
另:MySQL主库的高可用方案:
1、使用mysql-mmm工具实现主库高可用部署,实现热备库半同步(保持实时同步)。
2、使用leeepalved+mysql双主,实现mysql主库的高可用部署,实现热备库半同步(保持实时同步)。
3、使用heartbeat-mysql-drbd方案实现MySQL主库的高可用(DRBD)。
⑦共享服务器NFS
共享目录和备份服务器实时同步(NFS+inotify)。同时NFS服务作为后端的存储服务器提供服务。
⑧监控服务器Nagios+Cacti
Nagios负责监控全网服务器的系统资源使用情况及服务运行情况,并作计时的故障报警。,Cacti负责所有全网主机的网络流量情况出图,以及上联出口的流量图,系统资源的出图。监控服务器同时作为代码分发或更新服务器。
负责IDC正式环境的上限程序最后的测试平台,需要环境:WEB(LAMP或者LNMP)。
###注意事项:
①日常工作需要的项目做脚本实现。
②批量管理优化项目做脚本实现。
③增添服务以及服务运行管理做脚本实现(如有必要)。
④重点服务项目,提供多种方法实现,并做对比分析。
第二章 VMware测试系统环境部署配置
2.1 VM部署安装注意事项(CentOS6.5)
①虚拟机数量10台,分别为Nagios/LVS-01/LVS-02/NFS/Apache_web-01/Nginx_web-02/Memcache/MySQL-01/MySQL-02/Backup。
②虚拟机选择的是VMware Work staation 10版本。linux为Cent OS-6.5-x86_64版本。Linux内核版本选择为“其他linux2.6.x内核64位”。
③虚拟机的硬盘统一配置8G,内存配置根据需要调整。网络连接方式统一初始设置为NAT。
④虚拟机初始化安装,设置为三个分区:swap分区512M、boot分区200M,根分区剩余全部、。
⑤初始安装包选择1.Base、2.Compatibility libraries、3.Debugging Tools、4.Development tools、5.Dial-up Networking Support、6.Hardware monitoring utilities、7.Performance Tools。
⑥登录虚拟机,setu设置DCHP自动获取IP,.然后编辑网卡配置文件中:删除UUID选项,设置ONBOOT选项为yes并重启网卡。获得本机IP地址。
2.2 linux服务器主机名、IP规划配置
192.168.109.154 Memcache
192.168.109.155 Nagios
192.168.109.156 LVS-01
192.168.109.157 LVS-02
192.168.109.158 Apache_web-01
192.168.109.159 Nginx_web-02
192.168.109.162 NFS
192.168.109.164 Backup
192.168.109.165 MySQL-01
192.168.109.166 MySQL-02
192.168.109.167 备用
2.3 linux服务器基本常规要求配置
本集群操作模拟规范简单配置如下:
①部署前期,所有linux统一接入外网,进行软件的安装以及配置等,网卡均为双网卡(内外),部署完成之后,后端服务器如mysql、nagios等,只留内网网卡,提供服务。
②虚拟机初始化安装,设置为三个分区:swap分区512M、boot分区200M,根分区剩余全部
③初始安装包选择
1.Base
2.Compatibility libraries
3.Debugging Tools
4.Development tools
5.Dial-up Networking Support
6.Hardware monitoring utilities
7.Performance Tools。
注:部署过程中根据需要,安装相关插件。
④全网服务器配置目录规范:软件的存放目录:/application/toos/、脚本的存放:/server/scripts/、安装目录:/appliacation/。本机备份目录:/data/backup。
⑤监控服务器D开发脚本,根据设置,报警信息发送管理员邮箱。
⑥备份服务器D上开发脚本实现对所有备份的数据的完整性进行检查,并把检查结果定时发送到运维人员的信箱。
⑦所有服务的开机自启动都要加到/etc/rc.local 中,并注释
⑧注意整体环境字符集的设置规范。
第三章 linux系统基本优化解析
3.1 基本优化项目
##禁止root远程登录使用普通用户登录
Port 52113
PermitRootLogin no
PermitEmptyPasswords no
UseDNS no
GSSAPIAuthentication no
##创建普通用户及sudo授权
tslove ALL=(ALL) ALL
##关闭Selinux及防火墙iptables
查看Selinux:getenforce
打开Selinux:setenforce
关闭Selinux:setenforce 0
##更新国内镜像yum源
改变安装源地址:wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
##更改字符集,支持中文显示:修改之后的文件内容为
LANG="en_US.UTF-8"
SYSFONT="latarcyrheb-sun16"
##加大文字描述符
echo ‘* - nofile 65535 ‘ >>/etc/security/limits.conf
##精简开机启动服务(crond、sshd、network、rsyslog)
for oldboy in `chkconfig --list|grep "3:on"|awk ‘{print $1}‘|grep -vE "crond|network|sshd|rsyslog"`;do chkconfig $oldboy off;done
##Linux内核参数优化/etc/sysctl.conf,执行sysct -p生效
##Kernel base
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
##IF START 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
##时间同步:定时自动更新服务器时间,增加以下定时任务:
##time sync by tslove at 2014-12-19
*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1
##锁定关键系统文件(chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
chattr +i /etc/passwd /etc/shadow /etc/group /etc/gshadow /etc/inittab
##清空 /etc/issue,去除系统及内核版本登陆前的屏幕显示
##删除/etc/issue和/etc/issue.net这两个文件。在文件中/etc/motd增加内容为:
Where we love is home, home that our feet may leave, but not our hearts.
## 超时退出登录及历史记录数据,编辑/etc/profile文件
TMOUT=3600 #超时时间
HISTFILESIZE=50 ##包含最大内容行数
HISTSIZE=50 ##包含最大命令内容行数
本文出自 “燁未央_Estelle” 博客,请务必保留此出处http://tslove.blog.51cto.com/9115838/1591887
Linux服务器企业集群架构部署搭建(一)----环境配置要求与系统基础优化
原文地址:http://tslove.blog.51cto.com/9115838/1591887