一个网站需要稳定的运行,需要从代码层面上与服务器管理层面上多方面下功夫,代码结构的合理与稳定固然重要,服务器的稳定运行与故障解决更是重中之重。
无论什么网站的运营都不可能是绝对稳定且不会发生故障的,然而如何让服务器的运行更加稳定?发现故障后如何解决?这又延伸出另一个知识领域。
就目前的所知所学,暂且记录下一些东西,供自省自查自励。
冗余
表示多余的重复或啰嗦内容(包括信息、语言、代码等),通常指通过多重备份来增加系统的可靠性。
路由冗余
使用多wan口的路由器为整个局域网提供多网络接入端,当其中一个接入端故障另一个接入端仍可以提供接入服务。一般来说的路由冗余指的是"负载均衡"。用以解决故障发生后的故障转移的问题。
故障转移
故障转移技术就是创建一个"热站点"或"热备用"同时运行与主站上相同的系统和服务,理想情况下,当主服务、系统或站点失效时,终端用户可以无缝地转到备用站点,备用站点与主站点是全部同步的,因此无需恢复操作,业务不会因此中断。在切换中,用户只能感觉到一点轻微的延时,用户的体验感不会受到太多的影响。
传统的故障转移方案,在于同时建立几套与主服务器同样的备选服务器,无论组织,构建,与运行环境都相同的服务器,用于在主服务器发生故障时,由备选服务器来托管主服务器的工作,而不会影响到网站的正常运行。
然而,传统的故障转移方案的缺点在于需要同时运营一套甚至是几套同等的服务器,这样运营管理成本就会成倍的上升,对于大多数企业来说都是无法承担的。所以,虚拟化成为了解决这个问题最妥当的方法。
虚拟化技术
也就是通常来说的虚拟机,指计算元件在虚拟的基础上而不是真实的基础上运行。虚拟化技术可以扩大硬件的容量,简化软件的重新配置过程。CPU的虚拟化技术可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。从而既节省了硬件成本,又减少了数据中心空间占用,最大化了设备的投资回报。可以简化数据系统的弹性,支持关键应用程序故障转移。
负载均衡
负载平衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。使用带有负载平衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负载平衡服务通常是由专用软体和硬件来完成。
负载均衡经常被用于实现故障转移-当一个或多个组件出现故障时能持续提供服务这些组件都在持续监控(例如:Web服务器通过请求一个已知页面来监控是否正常工作)中,当一个组件没有响应,负载均衡器就会发现并不再向其发送数据。同样当一个组件重新上线,负载均衡器会重新开始向其发送数据。为了能够如前所述正常工作,负载均衡体系中至少要有一个冗余服务。采用一用一备方案(一个组件提供服务,一个备用,当主组件故障时备用组件将接管继续提供服务)比故障转移方案更加经济,灵活。