视频存储服务端半年开发历程(二)

来源:互联网 发布:银泰网网络 编辑:程序博客网 时间:2024/05/22 15:26

       个人认为服务端最重要的就是:稳定,稳定,再稳定。上一节主要通过代码级别探讨程序本身的稳定性,这节通过其它的机制进一步加强系统稳定性。

        为了进一步提高服务端程序的稳定性,我们往往会另外写一个看守程序,也就是俗称的看门狗。其原理就是服务程序在启动时向看门狗注册,也就是告诉狗这个门是需要它看守的;然后每隔一定的时间间隔服务程序发送一个消息给看门狗程序,就是所谓的喂狗,告诉狗这个门还是安全的;当服务程序有相当长的一段时间没有喂狗,看门狗就认为服务程序是不安全的了(程序死锁或bug退出),看门狗就会咬人了,强制杀掉以前的服务程序进程,然后再生成一个新的服务进程。当然,这里的前提是看守程序本身是稳定的,对于短短的几百行代码来说,经过一定的测试还是可以信任它的。

   什么是稳定的存储服务器,按照标准需要达到99.9999%,也就是丢包率控制在百万分之一。这是一个艰巨的目标,丢包可能存在于前端编码,可能在于中心交换,可能在于存储服务器;甚至存在于这整个过程中的每一个端口和网线上。在存储服务端解决所有问题是不可能的,但是,在存储服务端知道到底有没有丢包,丢包率大小是可能的。所以必须要做的工作是统计丢包数/总包数=丢包率;当丢包率过大时及时告警。我的做法是每隔1分钟检查丢包率并告警。

       软件机制可能还有许多其它好的方法,

       其它机制:参看附,主要是硬件方面。

附:

        服务器系统需要它长时、高速、可靠的运行,不能轻易断电、关机、停止服务,即使发生故障,也必须能很快恢复,最好是自动恢复。所以服务器在设计时,必须考虑整个系统架构的高效、稳定,高的可靠性和可用性。

        那么,服务器系统保证保证和可靠性的措施具体有些什么呢?其实,从服务器的诞生开始,为了提高其可靠性,工程师们已经想了许多办法,有些办法还在不断改进,一些新的办法还在不断的产生出来。以下只是许许多多办法的部分内容:

    1,从服务器硬件系统的总线和处理器的处理能力入手。服务器的系统总线已经从过去的16位、32位发展到现在的64位;局部I/O总线技术(例如AGPPCI-Express)在不断改进;SMP(对称多处理器)技术和DP(双处理器)技术的应用,硬件冗余和负载均衡技术的发展,大容量内存校验、纠错和专用内存技术的进步。

    2,服务器硬件设计改进。硬件设计高度模块化,便于故障诊断与维修。硬件冗余,例如双电源、双CPU(CPU还能提高性能)。大功率的冷却系统。指示灯故障示警。

    3,高速、多个数、大容量磁盘的应用。支持 SCSI高速硬盘及 Raid技术,支持阵列卡以及光通讯设备。外接磁盘扩展阵列柜满足了大容量存储和提高了存储的I/O性能,高智能的阵列可以保证数据的安全和完整。本地Raid1双硬盘基本杜绝了由于磁盘损坏而破坏OS的可能性。

    4,支持集群、热备和均衡技术。集群和均衡技术的使用,使服务器系统具备了整体的容错功能和承载能力,我们不必担心由于服务器的意外故障和突发访问而引起的服务关闭甚至系统崩溃。

    5,系统备份和容灾。高性能的备份软件可以对系统进行备份,便于软件系统(OS、数据库系统、邮件系统、财务软件等)的及时恢复。异地容灾、应用级容灾降低了软件系统遭受数据丢失的灾难,和提高了灾难恢复的效率。