电信级服务器软件架构
电信级服务器是电信运营商使用的网络设备,是对性能、可用性和安全性要求最高的商用服务器,以交换机、路由器等核心网络设备为代表,支撑着计算机网络的发展,并随着电信业务的不断丰富,电信级服务器设备的类型也飞速地发展。
服务器与个人电脑一样都是计算机,以处理器、硬盘、内存、系统总线等组成硬件平台,在硬件平台上运行软件程序。不同之处在于是服务器是针对具体的网络应用特别制定的,与微机在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面存在差异很大。随着信息技术的进步,网络的作用越来越明显,服务器的功能也越来越复杂。而电信级服务器着主要体现在三个关键特征上
·高性能 电信级服务器是为大量的终端用户服务的设备,在业务高峰期要处理海量的数据业务。例如春节前,国人通常会通过手机互发短信问候,对于1个千万人口的国内大型城市,按2010年全国人均发送31条问候短信计算,该市短信系统一共发送3亿1千万短信,即使系统吞吐量峰值是5000条/秒,也需要连续工作17小时多才能发完。而10多个小时才能将短信发给亲友,应该是不会有人满意的,对于北京、上海等2~3千万的特大型城市,系统吞吐量还必须成倍增加。
·高可用性 电信级服务器的要求是 7 x 24 小时不间断服务,满足99.999%的高可用性,这意味着一年内的计划外停机时间只有5分钟。任何时候,一次服务中断对于电信业务来说都是非常严重的事故,以电话业务为例,如果服务器意外中断,大量正在拨号的用户将不能拨通好吗,而大量正在通话的用户的电话会突然中断,这将造成无法估量的损失。
·高安全性 电信级服务器承担着互联网业务数据传输的重要功能。互联网浪潮发展到今天,已经深入了人们的日常生活,保护个人隐私,抵御恶意攻击是电信级服务器的基本要求。以网上购物为例,2011年,淘宝平均每分钟交易4.8万件商品,单日交易额最高达43.8亿元,如果服务器不能保证网上购物业务的安全性,后果是无法想象的。
辩证唯物主义哲学的三大规律之一,量变质变规律告诉我们,事物的量变会引起质变。建造承重300吨的大桥和建造承重30吨的大桥是不一样的;开发可以运行1个小时的程序与开发可以连续运行7 x 24小时的程序是不同的;开发接入10个客户端的服务器,和开发接入1万个客户端的服务器也是不同的。本文将从3个方面介绍电信级服务器软件的设计。
软件流程设计
由于电信业务的时间复杂度是指数级的,要扩大数据规模,提高硬件速度是没有效果的,必须采用更优的计算模式。我们从数据流程的角度,将计算模式分为两种,同步模式和异步模式。
同步模式下,数据是服务器一个一个地处理的,前一个数据处理完再处理下一个数据,对于多核和多CPU的平台,可以同时并发处理n个数据(n是CPU数量)。假设A节点通过B服务器与C节点交互,同步模式的处理方式如下
同步模式的程序的逻辑简单,软件代码量相对较少,异常处理考虑相对容易。但是对于电信级服务器来说,同步模式的性能是不够的
异步模式下,服务器可以连续地处理数据,通过内部缓存数据处理的中间结果,记录每个数据的处理状态,直到处理完成。
根据我在电信行业十年多的经验,异步模式下系统的吞吐量比同步模式高出一个数量级。但是异步模式程序就比同步模式复杂多了,需要用到内存表、状态机、工作流等技术。而电信级服务器软件一般都是采用异步模式实现。
硬件平台
主流的电信级服务器的硬件平台,经历了由塔式服务器到机架服务器,再到刀片服务器的发展历程。
塔式服务器
外形及结构都与普通的PC机差不多,主板扩展性较强,机箱内部往往会预留很多空间,以便进行硬盘,电源等的冗余扩展。缺点是体积较大,占用空间多,不方便管理。
机架服务器
外观按照统一标准来设计,配合机柜统一使用。相比塔式服务器,占用空间小,便于统一管理,但由于内部空间限制,扩充性较受限制。
刀片服务器
是一种低成本服务器平台,是专门为特殊应用行业和高密度计算机环境设计的,其主要结构为一大型主体机箱,内部可插上许多“刀片”,其中每一块刀片实际上就是一块系统母板,类似于一个个独立的服务器,它们可以通过本地硬盘启动自己的操作系统。刀片服务器比机架式服务器更节省空间,且扩展性较强。
目前电信级服务器的主流硬件平台是刀片式服务器组成的集群,并以负载均衡、四层交换等技术为基础实现高性能的业务数据的处理。
异常处理
要满足5个9的高可用性要求,很多对于普通服务器来说出现几率很小而可以忽略不计的异常情况,对电信级服务器来说则是必须应对的风险。
·存储空间不足
由于电信级服务器需要不间断处理海量数据,即使配置海量数据存储设备,有定期的数据清理机制,也必须要考虑空间满的情况,要慎重分析业务峰值的压力,确保在空间不足的时候业务不会中断。而相应的常采用的技术方案包括备用存储、告警恢复等等。
·数据库异常
即便是oracle和sybase等业内成熟的商用数据库,支撑电信级服务器时也不能完全避免挂起、死锁等问题。以我在电信行业工作十年的经历,接近1/5的现网问题都和数据库异常有关。所以电信级服务器必须要有在数据库异常时确保业务不中断的机制。
·硬件设备异常
电信级服务器最常出现问题的设备是磁盘/磁阵,我在工作中经常碰到磁阵挂起导致的现网问题。所以设计电信级服务器的时候,必须要有应急机制,避免因为硬件故障导致业务长时间中断。
本文介绍了电信级服务器的三个重要特征:高性能、高可用性和高安全性,并从流程设计、硬件平台和异常处理三个方面简单介绍了电信级服务器的软件设计。当然,电信级服务器软件的架构需要考虑的方面远不只这些,要成功开发的电信级服务器软件,除了扎实地通信领域技术基础,长期的软件开发经验积累,还需要特别能战斗的团队组织。
作者简历