comware

comware

Comware是H3C公司的軟體平台,其地位,如同IOS之於Cisco、JUNOS之於Juniper,支撐著公司眾多的網路產品的發展。

軟體介紹

Comware從其誕生的第一天起,就一刻不停地發展完善自己,不斷地進化,經過10年的持續努力,使得無論是內在品質,發展潛力,還是市場份額,Comware都已經進化成當今世界最優秀的網路作業系統之一。

H3C同樣採用了單一軟體系統策略,卻比Juniper做的更徹底:Comware向單一軟體版本覆蓋更多產品的目標邁進。就像北京奧運的口號,Comware所追求的,是“同一個世界,同一個夢想”。

comware comware

Comware能夠迅速地發展,與其市場定位和發展思路密不可分。Comware立項之初,就被定義成H3C公司的核心競爭力之一,成為公司最為重要的軟體平台和核心技術的載體,支撐公司從低端盒式設備到高端框式設備全系列化網路產品的開發。因此,Comware必須具有豐富的特性、良好的可裁減性、靈活的可伸縮性,以支撐各種硬體平台和體系結構。如何能夠做到這一點?只有通過良好的架構設計,這一切才有可能。

三級體系架構

下面我們來撥開Comware神秘的面紗,看看其內部的構造。

comware comware

Comware採用了Linux的核心,但卻僅僅保留了其核心的最基本的調度功能,而其他諸如記憶體管理、訊息管理都根據自己的需要,替換成自己的。最為重要的是,全部的網路協定,以及網路產品地支撐架構,Comware全部換成了自己的,這樣才最適合Comware地發展。

Comware的體系結構由大到小分解,可以分為平面(plane)、子系統(subsystem)和模組(module)三級。其構成如左圖所示:

Comware由上至下被分為了4大平面:管理平面、控制平面、數據平面和基礎設施平面。其中:基礎設施平面在作業系統的基礎上提供業務運行的軟體基礎;數據平面提供數據報文轉發功能;控制平面運行路由、MPLS、鏈路層、安全等各種路由、信令和控制協定;管理平面則對外提供設備的管理接口,如命令行、SNMP管理,WEB管理等。此外,作為一個完整的軟體系統,運行Comware軟體的產品還有自己的驅動和對應的硬體系統,構成完整的軟硬體體系結構,只不過這部分是隨著產品變化的,不作為Comware平台化的構件的一部分。

平面之下,Comware被進一步劃分成了25個子系統,分別完成一部分相對獨立的系統功能。這些子系統各自相對獨立,又有一定的依賴關係。每個子系統又可以分解成為大小規模不同的模組。這些模組才是Comware系統運行的基本單元。目前Comware系統已經包含了270多個不同的模組,覆蓋路由、交換、無線、安全等不同領域的各種特性,為產品提供了極為豐富的特性。

可伸縮

Comware支持的產品眾多,結構差異巨大:從只有一個單核CPU的小盒子,到擁有多核CPU以及各種加速單元的集中式產品,再到擁有雙主控和多個業務板的分散式設備;從多個小盒子堆疊而形成的大傢伙,到多個分散式設備級聯形成的巨無霸。 一套代碼如何支持這樣從簡單到複雜的硬體體系結構?答案就來自於Comware系統的層級結構和對硬體的合理抽象。

Comware撇去各種複雜結構的差異,把管理的實體分為連線埠(port)、子槽(subslot)、槽(slot)、機框(chassis)四級。連線埠和子槽屬於集中式的範疇,槽、框架屬於分散式範疇。這樣不管產品結構如何變換,最終都落入這樣的4級管理結構中。同時,Comware重新定義了主控板和接口板的功能劃分,支持主控板出業務口,實際上從功能角度模糊了主控板和接口板界線,同時實現了1:N備份,進一步打破傳統雙主控系統1:1備份的限制。這樣,使得不同的產品結構得到了統一。至此,Comware的世界中只有集中式和分散式兩類產品:集中式的產品不必考慮系統間通訊問題,結構簡單;分散式產品需要考慮系統間通訊問題,結構相對複雜一點,但所有的分散式問題都被同一化了。

可裁減

比如,作為Comware基本單元的模組,可以根據產品的需要進行靈活的裁減和定製。產品可以自由的決定需要哪些模組,不要哪些模組,或者決定一個模組所支持的特性規格。這種裁減和定製是通過編譯連結完成的。平台並不會針對每款不同的產品提供不同的代碼版本,而是提供一個支持所有特性的超集代碼,並編譯形成一個統一的LIB庫。產品只需要修改Comware另外單獨提供一套初始化代碼和工程檔案,就可以在連結時,從這個超集的LIB庫中,自動選擇自己所需要的特性和規格,把不需要的LIB忽略掉,形成各自不同的目標檔案——IMAGE,最終形成自己個性化的產品,彷佛這套代碼就是為產品量身定做的一樣,不會缺少任何產品所需的規格,也不會有冗餘和浪費。

除了提供模組級的功能裁減和定製以外,Comware更是根據自己支持的產品特徵,提出了模組和子系統替換概念。舉例來說,IPv4路由子系統是一個龐大的系統,內部包括了多種單播路由協定,靜態路由,路由協定之間各種複雜的引入引出策略以及各種路由疊代算法。這樣的子系統,為了支撐各種複雜的套用,其基幹部分——路由管理——的設計也是十分複雜的。即使裁減掉各種路由協定,其基幹部分規模客觀。而對於一些桌面終端產品而言,僅僅支持靜態路由就足夠,並且由於硬體限制,諸如記憶體、Flash太小,無法提供太多的空間容納這樣的規模。於是,子系統替換就派上了用場。Comware另外單獨構建了一個輕量級的IPv4路由子系統,其規模甚至遠遠小於一個模組的平均大小,僅僅支持靜態路由,從而滿足了對容量的要求。而這樣的替換子系統,由於對外提供的子系統間接口與原來的子系統完全一致,Comware內部的其他子系統根本不關心其內部變化,所以新的子系統和Comware整體可以無縫的融合在一起。

面向接口開發,正是Comware支持靈活裁減和定製的一大法寶,也是隔絕不穩定因素在系統中擴散的防火牆。面向接口開發的設計理念,使得Comware在實現“靈活”的同時,又不失“穩重”,所有的工作都有良好的可繼承性,使得Comware的規模得以不斷的擴張,而質量卻並沒有隨著規模的擴張而下降。目前的Comware已經發展成為有上千萬行原始碼的龐大系統,但其質量相比5年前的百萬行規模的小系統,反而有明顯的提升。

由上述特點看出,Comware的軟體架構伸縮性極強, 同一個版本的軟體,即可以運行在4G記憶體,支持豐富的特性和卓越性能的高端路由器,也可以運行在只有128M記憶體,特性簡單靈活的小盒子上,覆蓋了H3C三大產品線,60多款產品,130多個不同的編譯版本。綜觀當前業界,採用單一版本代碼可以覆蓋如此之廣的產品範圍,亦是絕無僅有的事情!

採用同一版本的代碼為特性的開發和維護都帶來巨大的價值,不僅僅加快了特性開發的周期,而且維護也更為方便,代碼的質量也更為優秀。同時,也使得同一個特性,在H3C產品體系中表現出天然的一致性,為用戶的學習和使用提供了極大的方便。

開放

Comware在業界率先提出了OAA(Open Application Architecture)的理念。通過OAA,Comware對外界開放了自己的編程接口。Comware提供的開發接口,是基於POSIX兼容的,同時,還輔以ACFP、ACSEI等輔助協定工具。POSIX是目前被套用最為廣泛的開放接口,業界龐大的第三方軟體開發團隊都可以輕鬆使用。而通過ACFP和ACSEI這樣的輔助協定工具, 第三方開發的軟體一旦嵌入到H3C的產品上,就可以輕鬆控制Comware主系統的行為,使得一切套用皆有可能。

Comware強大生命力的源泉在於自身永遠回響市場需求,處於不斷的發展進化之中。未來的Comware必將變的更加強大,更為易用,成為所有用戶的最佳選擇。

相關詞條

相關搜尋

熱門詞條

聯絡我們