基本需求:
1、
高可用性:将停止服务时间降低到最低甚至是不间断服务
2、
可扩展性:随着访问的增加,系统具备良好的伸缩能力
3、
可视性:系统、服务的状态处于一个实时的监控之下
4、
高性能高可靠性:经过优化的体系结构及合理的备份策略
5、
安全性:结构上的安全及主机的安全策略
基本思路
1、对于访问频繁,用户量大的对象(bbs,blog)采用某种合理的方式负载到多个服务器上。把数据库独立出来,准备2套mysql数据库,以实现主从复制,即减轻负载,又提高了可靠性。更近一步,使用mysql proxy技术,实现主从服务器的读写分离,大大提高这个系统的性能和负载能力。
2、数据库与外部网络隔离,只允许web服务器(bbs,blog等)通过私有地址方式访问。这样就提高了数据库的安全性,同时也节省了宝贵的带宽。
3、部署监控系统,通过监控主机存活、服务、主机资源,实时把系统的健康状态置于可视状态,对系统的运营状态心中有数。
4、备份是想都不用想的事情,使用单独的服务器集中备份,是一个比较不错的主意。
拓扑结构
业务逻辑
技术实现
1、负载均衡。2台同样配置的linux服务器,内核支持lvs,配置keepalived工具,即可实现负载转发。一旦其后的真实服务器出现故障,keepalived会自动把故障机器从转发队列删除掉,等到故障修复,它又会自动把真实服务器的地址加入转发列表。由于lvs支持会话保持,因此对于bbs 这样的应用,一点也不用担心其登录丢失。
2、mysql主从复制。即保证数据的安全,又提高了访问性能。我们在前端的每个web服务器上加入mysql proxy这个工具,即可期待实现读写的自动分离,让写的操作发生在主数据库,让查询这类读操作发生在从数据库。
3、nagios是一个开源的,受广泛欢迎的监控平台。它可对主机的存活、系统资源(磁盘空间、负载等)、网络服务进行实时监控。一旦探测到故障,将自动发送邮件(短信)通知故障。
4、备份。包括web数据和数据库服务器的备份。对于web服务而言,GNU tar即可实现备份的一切愿望。简单的设置一下crontab 就可以让系统在我们做梦的时刻老老实实的帮我们备份了。但是,由于空间的限制,不可能一直备份下去,所以要做一个合适的策略,以不断的用新的备份去替换陈旧的备份数据;多少天合适?看磁盘容量吧。对于数据库,先mysqldump一下,再tar.完成这些工作后把备份文件传输到备份服务器集中。一个比较省事的方法是把备份服务器以NFS方式挂接到web服务器及数据库服务器。
5、web服务器。至少包括apache和mysql proxy这两个组件。Apache做bbs和blog的容器,以虚拟机方式把用户的请求转发到bbs目录或blog目录。
6、安全措施。包含两层安全,一层是主机本身,另一层是结构(mysql从外部网络隔离)。实践证明,iptables是一个非常值得信赖的防火墙工具。在实际应用中,采取先关门后开窗的策略,大大增强系统的安全性。
组件
一、
硬件: 负载均衡2台(dell 1950),web服务器2-3台(dell1950),数据库2台(dell 2950),存储NAS(5T格式化后容量),备份4u服务器(带磁盘阵列5T容量),监控服务器1台(dell1850).
二、
软件:操作系统centos 5(定制安装),负载均衡ipvsadm、keepalived,监控nagios,web服务apache+php等,数据库mysql,数据库代理mysql proxy.
进度安排
1、
lvs负载均衡配置及测试:2-3天
2、
web服务器配置:2-3天
3、
mysql主从服务器配置:1-3天
4、
web数据迁移:1天
5、
数据库数据迁移:2天
6、
上线测试:1-2天
7、
正式上线:2天
keepalived.conf
! Configuration File for keepalived
global_defs {
router_id LVS_DEVEL
}
vrrp_instance VI_1 {
state
master
interface eth0
virtual_router_id 59
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
61.61.61.100
#61.61.61.101
}
}
virtual_server 61.61.61.100 80 {
delay_loop 6
lb_algo rr
lb_kind DR
persistence_timeout 50
protocol TCP
real_server 61.61.61.102 80 {
weight 100
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
real_server 61.61.61.103 80 {
weight 100
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 80
}
}
}
真实服务器虚拟ip设置脚本
#!/bin/bash
#description : start realserver
VIP=61.61.61.100
./etc/rc.d/init.d/functions
case "$1" in
start)
echo " start LVS of REALServer"
/sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
echo "1" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "1" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "2" >/proc/sys/net/ipv4/conf/all/arp_announce
;;
stop)
/sbin/ifconfig lo:0 down
echo "close LVS Directorserver"
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/lo/arp_announce
echo "0" >/proc/sys/net/ipv4/conf/all/arp_ignore
echo "0" >/proc/sys/net/ipv4/conf/all/arp_announce
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
esac
本文出自 “sery” 博客,请务必保留此出处http://sery.blog.51cto.com/10037/85910
分享到:
相关推荐
可扩展、高可用与负载均衡网站架构设计方案 本文档介绍了一种可扩展、高可用的网站架构设计方案,旨在解决高并发访问、数据库性能瓶颈、安全性和可维护性等问题。该方案基于负载均衡、数据库主从复制、监控系统和...
可扩展、高可用、负载均衡网站架构设计方案.docx
可扩展、高可用与负载均衡网站架构设计方案.pdf
可扩展、高可用与负载均衡网站架构设计策划方案.doc
K8S环境有两种架构方式,单Master集群和多Master集群,将先搭建起单Master集群,再扩展为多Master集群。开发、测试环境可以部署单Master...本设计中主要基于开源软件HAProxy实现负载均衡并且通过Keepalived实现高可用。
【架构设计:负载均衡层设计方案(2)——Nginx 安装1】 在构建复杂的IT系统时,负载均衡是确保服务稳定性和可扩展性的重要组成部分。Nginx作为一个流行的高性能反向代理服务器和负载均衡器,其在架构设计中的角色...
《服务器负载均衡架构:传输层负载均衡与高可用性》 服务器负载均衡是现代网络服务不可或缺的一部分,尤其在面临高流量和高并发访问时,它的重要性更为凸显。本文主要探讨了传输层负载均衡如何实现服务器集群的高...
【企业级Web负载均衡完美架构】是针对大型网站或电子商务平台设计的一种解决方案,旨在提高系统的稳定性和可扩展性。在这样的架构中,Nginx+Keepalived是核心组件,它们共同提供了高可用性和负载均衡功能。 Nginx是...
在构建高可用、高性能的网站架构时,负载均衡是至关重要的技术之一,它不仅能够提升网站的访问速度,还能确保...企业在设计网站架构时,应综合考虑以上八个方面的负载均衡策略,以构建出既可扩展又可靠的在线服务平台。
在设计架构时,负载均衡层扮演着至关重要的角色,它负责将外部请求合理地分发到内部服务器,确保系统的稳定性和高可用性。本文将基于四个不同规模的业务场景,探讨如何选择和设计负载均衡策略。 场景一,物流园区的...
网站架构设计是构建互联网应用的核心环节,其主要目标是确保服务的高可用性、可伸缩性和性能优化。高可用(High Availability, HA)架构设计通常涉及以下几个关键知识点: 1. **负载均衡**:通过分配网络流量到多个...
在企业级IT环境中,保持服务的高可用性和性能优化是至关重要的。本教程将深入探讨如何利用Keepalived实现高可用性以及如何...同时,这些知识也能帮助你更好地理解和设计复杂的服务架构,提高系统的稳定性和可扩展性。
在架构设计中,负载均衡层扮演着至关重要的角色,它负责分散网络流量,确保服务的高可用性和性能。Nginx 作为一款高性能的反向代理服务器,常常被用作负载均衡器。在本篇文章中,我们将深入探讨Nginx的高级特性,...