comware
comware
Comware從其誕生的第一天起,就一刻不停地發展完善自己,不斷地進化,經過10年的持續努力,使得無論是內在品質,發展潛力,還是市場份額,Comware都已經進化成當今世界最優秀的網路操作系統之一。
H3C同樣採用了單一軟體系統策略,卻比Juniper做的更徹底:Comware向單一軟體版本覆蓋更多產品的目標邁進。就像北京奧運的口號,Comware所追求的,是“同一個世界,同一個夢想”。
comware
下面我們來撥開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必將變的更加強大,更為易用,成為所有用戶的最佳選擇。