宏 观 架 构 图

首先要分析网站需求:硬件选择、IP地址的规划、主机名规划、服务的目录结构规划。
1 中小型规模网站集群的好处:
- 国内99%的企业网站都是中小型规模的。
- 中小型网站规模的集群技术容易落地、实用、对新手摸得着、看得见。
- 所有的大规模网站集群架构都是从中小型规模集群扩展起来的,整个架构核心还是中小型的架构。
- 服务器数量可以从50-150台(含产线应用的云主机及虚拟主机)。
- 可以支撑的最高网站流量大小为日PV2000万左右,可以支撑的高峰期并发连接数过万。
- 需要运维人员人数3-5个。5个的话:1运维总监、1企业网管、1初级运维、1高级运维兼运维开发。
- 正常情况下,这个规模的网站集群消耗的IDC总带宽大小为100MB独享。
2 本架构对应企业网站的各项指标参考如下:
2.1 集群节点的主机名及IP地址规划
2.1.1 主机名规划说明
表1.1主机名规划说明(各字段间用“-”连接)
|
功能区域名称 |
服务器应用名称 |
应用功能或角色名称 |
服务器编码 |
|
DB |
MySQL |
master |
01 |
|
WEB |
LNMP |
node |
02 |
以下为各字段名称的含义:
- 功能区域名称:目前架构分为5个功能区域,分别为LB(负载)、WEB(网页访问)、STORE(存储)、DB(数据库)、MAGE(管理)。
- 服务器应用名称:根据服务器所装的核心应用服务命名。例如:web服务器安装nginx、PHP、MySQL软件一体的环境,可命名为LNMP。
- 应用功能或角色名称:根据服务器的业务不同,会出现相同的软件实现不同的功能情况,并且相同功能软件也会划分主从等不同角色等,因此也就有了根据功能或角色命名的方式,例如:MySQL Master数据库。
- 服务器编号:根据相同应用功能服务器的排序或分组进行命名。例如:两台服务器的命名规范为:WEB-LNMP01、WEB-LNMP02(node为通用节点名,可以省略)。
- 以上仅仅是单机房简单的规划思路,如果是跨机房,分组还的规划出地区及机房标识。如阿里集团的做法:“appname+IP地址+环境标识+机房标识”,但自动化出来的机器名大多只做到了“appname+IP标识+机房标识”。
2.1.2 集群节点的主机名及IP地址规划
表1.2集群节点的主机名及IP地址规划
|
服务器说明 |
外网IP eth0 |
VIP |
内网 eht1 |
名称规划 |
域名规划 |
|
反向代理服务01 |
10.0.0.3 |
10.0.0.5 |
172.16.1.3 |
lb-haproxy-01 |
lb01.lzbbg.cn |
|
反向代理服务02 |
10.0.0.4 |
172.16.1.4 |
lb-haproxy-02 |
lb02.lzbbg.cn |
|
|
nginx web01 |
|
|
172.16.1.10 |
web-lnmp-01 |
web01.lzbbg.cn |
|
http web02 |
|
|
172.16.1.11 |
web-lamp-02 |
web02.lzbbg.cn |
|
NFS存储服务 |
|
172.16.1.32 |
172.16.1.30 |
store-nfs-01 |
nfs01.lzbbg.cn |
|
rsync备份服务 |
|
172.16.1.31 |
store-rsync-01 |
rsync01.lzbbg.cn |
|
|
MySQL主数据库 |
|
172.16.1.52 |
172.16.1.50 |
mysql-master-01 |
dbmaster01.lzbbg.cn |
|
MySQL主热备数据库 |
|
172.16.1.51 |
mysql-master-02 |
dbmaster02.lzbbg.cn |
|
|
MySQL从服务器 |
|
|
172.16.1.53 |
mysql-slave-01 |
dbslave01.lzbbg.cn |
|
mysql-proxy互为主备 |
VIP: 172.16.1.56 |
172.16.1.54 |
mysql-proxy-01 |
myproxy01.lzbbg.cn |
|
|
mysql-proxy互为主备 |
VIP: 172.16.1.57 myproxy_vip57.lzbbg.cn |
172.16.1.55 |
mysql-proxy-02 |
myproxy02.lzbbg.cn |
|
|
Redis 缓存及session共享1 |
|
172.16.1.63 |
172.16.1.61 |
cache-redis-01 |
cache01.lzbbg.cn |
|
Redis 缓存及session共享2 |
|
172.16.1.62 |
cache- redis-02 |
cache02.lzbbg.cn |
|
|
监控管理服务 |
|
|
172.16.1.201 |
MAGE-monitor-01 |
monitor.lzbbg.cn |
|
跳板机管理服务 |
10.0.0.200 |
|
172.16.1.200 |
MAGE-jump-01 |
jump.lzbbg.cn |
3 集群节点VIP地址及对应域名解析规划
3.1 集群节点VIP地址及对应域名解析规划
表1.3集群节点VIP地址及对应域名解析规划
|
服务器VIP说明 |
VIP |
对应域名解析 |
|
反向代理服务VIP |
10.0.0.3 |
download.lzbbg.cn blog.lzbbg.cn |
|
MySQL主数据库VIP |
172.16.1.52 |
dbmaster_vip.lzbbg.cn |
|
NFS存储服务VIP |
172.16.1.32 |
nfs_vip.lzbbg.cn |
|
myproxy反向代理VIP1 |
172.16.1.56 |
myproxy_vip56.lzbbg.cn |
|
myproxy反向代理VIP2 |
172.16.1.57 |
myproxy_vip57.lzbbg.cn |
|
Redis 缓存服务VIP |
172.16.1.63 |
cache_vip.lzbbg.cn |
3.2 IP地址及主机名规划思路说明
本网站架构集群分为5个功能区域,统一采用C类地址段:(10.0.0.0/24)作为所有外网IP地址段;(172.16.1.0/24)作为内网地址段。5个功能区域IP地址段具体规划如下:
- 前端负载均衡代理区域
外网地址段范围10.0.0.1~10.0.0.3 eth0,内网地址段范围172.16.1.1~172.16.1.9 eth1; - web服务应用区域
应用范围172.16.1.10~172.16.1.29 eth1,无外网IP; - 存储服务应用区域
应用范围172.16.1.30~172.16.1.49 eth1,无外网IP;VIP 172.16.1.32(NFS和rsync做keepalived) - 数据库及缓存服务器区域
MySQL应用范围172.16.1.50~172.16.1.59 eth1,无外网IP;VIP 172.16.1.53(主主做keepalived)
Redis 缓存应用范围172.16.1.60~172.16.1.69 eth1,无外网IP;目前有两台服务器作为MySQL的前端分布式缓存服务集群(分布式调算法使用一致性哈希算法),每台服务器上均配置2个实例分别做为缓存服务和session共享服务; - 管理服务器应用区域
IP地址200以后的用作监控管理地址。
一台监控管理IP172.16.1.201 ,无外网IP,配zabbix和批量管理服务(ssh key或saltstack)。
一台跳板机服务器外网10.0.0.200内网172.16.1.200,配置的服务为跳板机及VPN。 - 所有服务器地址都是有小到大进行规划的,内网和外网的最后8位尽量相同
3.3 架构hosts文件的规则
主机名+域名的方式:
常规:172.16.1.1 lb-haproxy-01
lb01.lzbbg.cn
VIP: 172.16.1.32 nfs_vip.lzbbg.cn
网站域名:download.lzbbg.cn zabbix.lzbbg.cn phpMyAdmin.lzbbg.cn
jpress.lzbbg.cn blog.lzbbg.cn
确保每台服务器的hosts文件一致
4 集群节点网络服务规划表
4.1 各集群节点对应的网络服务规划表
表1.4集群节点网络服务规划表
|
服务器说明 |
安装服务说明 |
|
rsync备份服务说明 |
1)安装rsync服务软件,提供网络数据远程备份功能,设定备份目录为/backup |
|
NFS存储服务器 |
1)安装NFS服务软件,提供网络文件共享功能,设定目录为/data |
|
|
1)安装MySQL服务软件,提供主数据库服务功能 |
|
|
1)安装MySQL服务软件,提供主数据库服务功能 |
|
|
1)安装MySQL服务软件,提供主数据库服务功能,只用于读取数据库 |
|
|
1)安装mysql-proxy服务软件(测试可以用mysql-proxy,工作中多为开发改造程序实现读写分离),提供web程序对数据库的读写分离功能 |
|
mysql-proxy热备 |
同mysql-proxy主一样功能 |
|
Redis 缓存及session共享1 |
1)安装Redis 服务软件 |
|
Redis 缓存及session共享2 |
同Redis 缓存及session共享1一样 |
|
nginx web01 |
1)安装nginx服务软件,作为web服务器使用 |
|
nginx web02 |
同nginx web01一样 |
|
|
1)安装nginx服务软件,为后端的web服务提供负载均衡及反向代理功能,可以配置成和反向代理服务02互为主主模式,只不过各自为不同的业务提供不同的对外服务功能 |
|
反向代理及负载均衡服务器02 |
1)安装nginx服务软件,为后端的web服务提供负载均衡及反向代理功能,可以配置成和反向代理服务01互为主主模式,只不过各自为不同的业务提供不同的对外服务功能 |
|
监控管理服务 |
安装zabbix服务,监控所有服务器及服务器上的服务,并实现画趋势图及邮件短信报警 |
|
跳板机管理服务 无网络情况下可以提供其他机器yum及下载服务 |
1)光盘安装系统。创建yum仓库,file类型只提供本机安装cobbler |
5 集群节点服务应用的目录规划
表1.5集群节点服务应用的目录规划表
|
服务器说明 |
目录结构 |
目录结构说明 |
|
|
/server/cron_scripts |
存放定时任务脚本的目录 |
|
web服务 |
/webCodes/ |
web服务站点目录,下面包含www、bbs、blog目录 |
|
rsync备份服务器 |
/backup/upload/ |
NFS服务器实时无差异同步目录 |
|
NFS存储服务 |
/nfs_data |
NFS服务器共享存储的大目录 |
6 集群服务搭建部署详细规划设计说明
表1.6网站集群服务最佳部署顺序
|
安装最佳排序 |
服务器 |
|
01 |
跳板机管理服务(自动化安装先装,非自动化无所谓) |
|
02 |
监控及批量管理服务(批量安装,加入监控) |
|
03 |
rsync存储及备份服务 |
|
04 |
NFS存储服务 |
|
05 |
MySQL主数据库 |
|
06 |
MySQL主热备数据库 |
|
07 |
MySQL从数据库 |
|
08 |
Nginx web01 |
|
09 |
Nginx web02 |
|
10 |
反向代理服务01 |
|
11 |
反向代理服务02 |
提示: 从后往前为备份、存储、数据库的方式部署为佳。
7 集群服务搭建部署详细规划设计说明
7.1 集群所有服务器节点的基础优化设置
- sudo 授权添加用户
- 隐藏系统版本信息issue issue.net
- sshd
- openfile
- hosts
- chkconfig boot
- sync system time
- sysctl.conf
- IPtables
- hostname
浙公网安备 33010602011771号