博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
可扩展、高可用服务网络设计方案
阅读量:4056 次
发布时间:2019-05-25

本文共 1604 字,大约阅读时间需要 5 分钟。

定义
可扩展
:在用户访问数量快速增长的情况下,不终止现有服务来扩展系统的容量。比如web服务器目前已经不能接受更多的用户访问,可以在不停止服务的情况下增加第2台服务器,甚至更多的服务器,而且新增服务器对已有的服务器不会造成负面影响。
高可用性
:没有办法保证系统7*24不发生故障,但用户却要求任何时候都可以正常访问系统,这就是系统高可靠性的需求。一般来说,一个服务是运行在一个系统/机器上,一旦系统/机器出现故障,用户就不能再正常访问这个服务;如果把同一个服务分开放在2个不同的系统/机器,那么即使是一个系统出故障,服务依然是可以访问的。另外一个好处是恢复故障的压力减轻了。
负载均衡
:将用户的访问按照某种方式分配到不同的服务器,这样既能减轻单个服务器的负荷,又能增加访问容量。
 
要点
可扩展性和高可用性不是孤立的,只有结合起来,才能达到理想的效果。因此称这个方案为高可用、可扩展设计。
 
一、现状
1、 
系统多数是windows,可靠性和稳定性都非常的差。在历次的网络安全事故中,windows都是最大的受害者。尽管windows占据了绝大部分的桌面市场,但在服务器领域,其份额还是很少的:象google、yahoo、baidu等拥有上万台服务器应用的机构都不约而同的选择linux/unix做为运营平台来支撑巨大的业务访问。
2、 
存在单点故障。每个业务都运行在一个系统/机器上,一旦系统/机器发生故障,业务将不可避免的停止服务。拿网站做例子,web服务apache或数据库(mysql)只要任意一个服务出故障,整个网站的访问将变成不可能。
3、 
缺乏集中的,可靠性高的存储机制。现有的配置文件、程序、数据库等数据都是单独存放在各自运行的系统上,维护成本非常高,而且很容易丢失。
4、 
不具备可扩展性和高可用性。任何一个服务器出故障,运行在上面的业务将不再问用户提供有效服务。
5、 
缺乏有效的流量监控设施。现在总的访问流量是未知数,因此对总带宽的使用率没有评估的依据。租了20M的带宽,实际使用了多少,不得而知。
 
二、改进措施
1、尽可能的把应用移植到linux平台。
2、采用NAS存储解决方案。
3、部署同一个业务到不同的服务器,然后使用LVS-DR做负载均衡,同时避免了单点故障。
4、后台数据库mysql采用主从方式的复制机制保证database的高可用性。
 
三、基本原理:
1、 
LVS-DR:这是一个开源的产品,已经成为linux内核的一部分。用户的访问首先被转向到LVS-DR,然后根据业务的类别被重新定向到真实的服务器,由于LVS-DR只是转发,一旦客户短与提供服务的真实服务器连接成功,就不再使用LVS-DR的资源。
2、 
多服务器运行同一个应用。既克服单点故障,又能增加系统的容量。
3、 
NAS存储。提供集中可靠的存储机制。
4、 
Mysql复制。避免数据库单点故障;如果将来访问量增大到一定程度的时候,可以改变到mysql集群的方式
  
     出现故障
    
 
三、实施步骤
1、 
移植应用到linux平台
2、 
配置LVS-DR负载均衡控制器部分。
3、 
部署相同的应用(web等)到两个不同的服务器
4、 
部署NAS
5、 
测试
6、 
正式运营。
 
四、设备分配
1、 
LVS-DR 1个服务器
2、 
Web服务器2个
3、 
Mysql服务器2个
4、 
其他的几个服务器暂时不变
5、 
可网管交换机一个(cisco 2950)
6、 
NAS一套
 
五、进度安排
名称
花费时间
备注
LVS-DR控制器配置
1天(以后逐步增加转发条目)
以配置ipvs转发规则和防火墙规则
平台移植(windowsàlinux)
5天
已经移植了web和bbs
把服务器加入lvs集群
2天
已经加了一个bbs和mms
新建一个邮件服务器
1天
测试中
部署流量监控
1天
 
Nas上线及配置
2天
 
其他
7天
 

转载地址:http://gweci.baihongyu.com/

你可能感兴趣的文章
Variable property attributes or Modifiers in iOS
查看>>
NSNotificationCenter 用法总结
查看>>
C primer plus 基础总结(一)
查看>>
剑指offer算法题分析与整理(三)
查看>>
mint/ubuntu安装搜狗输入法
查看>>
C++动态申请数组和参数传递问题
查看>>
opencv学习——在MFC中读取和显示图像
查看>>
JVM并发机制探讨—内存模型、内存可见性和指令重排序
查看>>
nginx+tomcat+memcached (msm)实现 session同步复制
查看>>
WAV文件解析
查看>>
WPF中PATH使用AI导出SVG的方法
查看>>
QT打开项目提示no valid settings file could be found
查看>>
android 代码实现圆角
查看>>
android中shader的使用
查看>>
java LinkedList与ArrayList迭代器遍历和for遍历对比
查看>>
drat中构造方法
查看>>
JavaScript的一些基础-数据类型
查看>>
ReactNative使用Redux例子
查看>>
Promise的基本使用
查看>>
coursesa课程 Python 3 programming 统计文件有多少单词
查看>>