模块化直面网络应用挑战

2009-04-14 02:41朱杰
中国计算机报 2009年11期
关键词:网络操作系统网络设备进程

朱杰

编者按:

冷冰冰的网络设备因为操作系统才有了鲜活的生命。

不同品牌的路由器、交换机,外表上看差别不大,真正让思科、Juniper、H3C等厂商们角逐的其实是设备内部看不见的操作系统。从本期开始,我们将开设“网络设备操作系统较量”专栏,从模块化选择、安全性比较、开放性设计等角度,分期为您展示网络设备背后的技术竞争。

网络设备操作系统较量(一)

一个好的操作系统,对网络设备的影响非常明显,而一个设计合理的模块化结构,将极大地保障操作系统对各种网络应用的支持。

模块化是大势所趋

最初网络操作系统通常基于UNIX系统开发,帮助网络设备实现最简单的路由交换功能,应用比较单一,而且对设备管理人员来说,最初的网络操作系统对其专业水平有着较高的要求,因为系统大多通过命令行操作的方式来对设备进行管理,因此运行维护成本较高。此外,当时系统的并行处理能力相对较差,某一个进程故障,容易造成整个内存溢出而崩溃,直接造成严重的业务损失。

随着网络应用的不断复杂,网络设备的功能也在不断增加,这对网络操作系统提出了更高的要求。Juniper公司1998年推出第一款路由器产品M40,所采用的操作系统JUNOS基于一种模块化架构进行设计开发,在网络操作系统领域开创了模块化的先河。Juniper公司工程师王栋告诉记者:“JUNOS操作系统最早是基于FreeBSD的内核作为基础开发的,它借鉴和继承了传统UNIX系统既有的多进程并行处理的计算能力。各实例进程间并行处理,互不影响。模块化JUNOS软件架构确保每个处理功能都独立运行在受保护的专用内存中。路由协议、接口管理、机箱管理、SNMP管理和其他主要功能都作为独立进程发挥作用,使用自己专用的受保护内存。单一管理进程可监管所有的内核进程,防止它们改写彼此的内存。”

通过多年的实际应用,我们发现对网络操作系统采用模块化的设计,可以为企业带来诸多好处,其中一大好处就是企业可以大大降低网络运行维护成本。以JUNOS软件为例,在使用该软件后,基于模块化稳定可靠的系统架构,不仅网络设备的运行效率得到快速提升,而且对整个网络系统来说,诸如规划、建设基础架构、处理计划中与计划外网络事件等工作,不但发生频率降低,执行时间也相应减少。

同时,模块化网络操作系统的应用,也降低了网管人员的工作压力。以JUNOS软件为例,它学习曲线短,管理简单、容易维护,支持不中断转发(NSF)、不中断的有效路由(NSR)以及不中断业务的在线软件升级特性(ISSU)能够实现持续运行和保证最长运行时间,即便在恶劣的网络条件下也不例外。

系统设计各有特色

目前,各大网络设备厂商基本都认识到在网络操作系统中采用模块化设计的好处,并相应推出了自己的模块化操作系统平台。不过在模块化设计的基础上,各大厂商的系统在功能表现上各有特色。

H3C的Comware软件平台,是以IPv4/IPv6协议栈为基础,集成了链路层协议、以太网交换技术、IRF技术、路由技术、MPLS技术、VPN技术、Q操作系统技术、语音技术、安全技术等丰富的数据通信特性。通过采用模块化设计,Comware软件可以对各种操作系统、各种硬件进行了有效的封装和屏蔽,具有良好的伸缩性和可移植性。

模块化同样是锐捷网络新一代RGOS操作系统的主要特性之一。锐捷网络工程师项小升告诉记者,RGOS是一种完全模块化的软件平台,它的各组成部分都针对完全独立的硬件模块,功能模块代码与运行都严格区分,统一模块接口。POSIX可移植操作系统接口是RGOS中关键的一个国际标准接口,通过POSIX,操作系统的各功能模块可以与内核通信和调度,达到了代码和运行的完全模块化。同时,RGOS还拥有一个硬件抽象层,可以通过不同的设备驱动程序连接不同的硬件设备,实现操作系统与硬件的无关性。

FTOS是Force10最新推出的操作系统,同样采用了模块化的架构设计。在这个系统中,设计者为网络功能提供了专用资源,以确保丰富服务环境所需的可预测性能。此外,FTOS系统还可将 sFlow 或 BFD 等进程的负载转移至E系列和C系列交换机/路由器的线路卡上,从而使设备能够同时轻松运行多个进程而不降低性能。通过分配处理容量与控制面板功能,FTOS使Force10 交换机/路由器能够在无损可靠性或性能的情况下实现动态扩展。模块化设计还可以让系统与第三方应用与功能快速集成。

模块化设计对系统可扩展性的提升在思科公司的IOS系统得到充分体现。该系统最初支持的网络协议非常少,随着技术的发展,需要支持和能够支持的协议、功能逐渐增加。由于IOS系统采用了非常合理的模块化结构,按照应用需求分成五大模块,各部分相对独立,互不影响,因此可以非常方便地进行系统升级,同时保证单一的代码库。例如当出现报文缓冲和快速交换需求的时候,思科只需要优化其快速交换软件模块,更广泛地支持进程交换、快速交换、最优交换和CEF方式,就可以快速提高设备的转发速率,同时不会影响其他模块的正常工作。

模块化设计的挑战

和传统的非模块化方式相比,模块化网络操作系统最大的好处是保证了系统的高可靠性和健壮性。模块化的网络操作系统可以保障各模块进程独立运行在受保护的专用内存中,单一进程故障不会造成整个系统的崩溃。其次模块化系统设计,为软件研发奠定了良好的基础。分模块开发,可以保证协同并行,提高研发效率。升级操作系统,也可以针对需要升级的模块进行,不用升级整个操作系统代码。

不过模块化设计在实现时同样会面临很多问题。王栋表示,采用模块化的设计模式,在产品实现中最大的挑战主要体现在软件的系统设计上。从软件工程的角度出发,软件系统的设计、模块的划分和建模,是软件成功的基础。如果一个软件系统的模块设计不合理,带来直接的问题是研发效率的降低,各模块功能重合或者相互交叉,会造成代码开发的混乱和冲突,严重时会造成软件系统设计推倒重来。

网络操作系统是一个针对于网络应用的高级操作系统软件,因此在系统设计之初,就必须充分考虑网络系统的特点,从路由协议、接口管理、机箱管理、SNMP管理和其他功能方面分别划分不同的系统模块,同时让各模块代码相对独立,这样为研发团队协同开发带来很大好处:各模块间通信通过统一的接口调用,而不用关心其他模块的代码是如何编写的;本模块的升级,不影响其他模块的开发。

猜你喜欢
网络操作系统网络设备进程
一种基于C# 的网络设备自动化登录工具的研制
债券市场对外开放的进程与展望
几种网络操作系统的浅析
社会进程中的新闻学探寻
基于列车监测网络设备的射频功放模块设计
基于三层交换技术架构数字化校园网络设备的配置与管理
我国高等教育改革进程与反思
Linux僵死进程的产生与避免
新一代计算机网络操作系统