1. 程式人生 > >簡介二:操作系統和集群開源技術研究

簡介二:操作系統和集群開源技術研究

pla 設計 成本 期貨 jit cin 虛擬化技術 特性 基礎

作者:王步宙、陳晨

2008年似乎是個有魔力的一年,在這一年裏大西洋兩岸的德國和紐約兩大證券交易所集團幾乎不約而同的啟動了交易系統開源化項目。對於開源項目的動因,有人提出成本論,有人提出是低延遲論,我們認為可能兼而有之。

我們作為一家以建設一流交易所為目的的企業,面對全球交易所的這種開源化技術潮流,首先將仔細研究、儲備相關的技術,再做判斷。既不會固步自封無視技術潮流,也不會盲目的跟風。

操作系統和集群技術是企業IT系統的建設基礎,也是目前業界開源化技術潮流中,軟件最成熟、用戶群較為廣泛的技術。選擇此類技術作為此次研究方向既符合開源化潮流在各交易所的實踐,也能為我們未來的技術規劃提供參考。

1 開源軟件在全球交易所的應用綜述

紐約證券交易所

2008年5月紐約證券交易所宣布使用開源軟件Red Hat Linux構建下一代交易系統(Universal Trading Platform,簡稱UTP),同年600臺x86服務器(CPU處理器共4800核)購買了Red Hat Linux服務。隨著2008年底UTP交易系統的第一階段上線成功,紐約證券交易所將盤後處理、企業系統都逐步遷移到Red Hat Linux上。在積累了一定的開源技術經驗後,嘗試使用又一個開源軟件JBoss中間件,用於交易大廳數據系統、實時監察系統(Stockwatch)、外部網站。其中構建於Red Hat Linux和JBoss兩個開源軟件之上的實時監察系統每秒能接收10萬條以上的消息。

德國證券交易所集團

2008年德國證券交易所集團啟動了新交易系統(Global Trading System,簡稱GTS)的開發,使用開源軟件Red Hat Linux作為操作系統平臺,08和09兩年共投入3220萬歐元,原計劃2010年第4季度首先在美國國際證券交易所ISE(期權交易)上線,但由於ISE會員的反饋上線將延期到2011年4月。部分模塊基於Red Hat Linux和Red Hat MRG Messaging這兩個開源軟件的交易實時風險管理系統,已於2010年初上線,將風控信息的傳輸從每10分鐘一次,提高到可選擇每秒一次傳輸。

芝加哥商品交易所

2004年芝加哥商品交易所已經在商品期貨交易系統Globex中開始引入Red Hat Linux 2.1,後來逐步在交易系統、交易大廳數據系統中更多的使用Red Hat Linux和JBoss兩種開源軟件。截至2009年底,芝加哥商品交易所共有4000臺x86服務器使用並購買了Red Hat Linux服務。

東京證券交易所

東京證券交易所的新一代現貨和期貨系統都基於開源軟件Red Hat Linux開發,其中已於2010年1月上線的“Arrowhead”交易系統,每秒訂單處理能力提升了10倍,行情發布延遲縮減到3毫秒。

倫敦證券交易所

倫敦交易所基於開源軟件SUSE Linux和Real Time Extension的新一代交易系統Turquoise原計劃於2010年11月上線,但由於幾次嘗試失敗,上線暫延期到2011年早些時候。Turquoise系統使用了300臺x86服務器和萬兆以太網絡技術。

Chi-X

Chi-x作為一家交易系統基礎設施供應商,支持多家大型另類交易系統。目前交易系統運行在經過裁剪的開源軟件CentOS上,支持萬兆以太網和Infiniband網絡,延遲低於120微秒。

其它

拉合爾證券交易所2010年完成了原交易系統向開源軟件Red Hat Linux平臺的遷移,並上線成功。

境外主要交易所的開源項目小結

多數交易所的開源項目是基於開源操作系統Red Hat Linux、SUSE Linux等各種Linux分支進行的,部分技術實力強的交易所引入JBoss、MRG Messaging等開源中間件軟件。

交易所

應用系統

軟件平臺

硬件平臺

紐約證券交易所

交易大廳數據系統;

實時監察系統 Stockwatch;

交易所外部網站

Red Hat JBoss Enterprise Portal

Red Hat JBoss Enterprise Application

Red Hat Enterprise Linux

x86服務器和刀片

新一代交易平臺(現貨、期貨)Universal Trading Platform;

盤後處理;企業系統

Red Hat SELinux

Red Hat Enterprise Linux

Red Hat Network

200xHP DL585(8C)

400xHP BL685c(8C)

2008年底完成1階段

德國證券交易所集團

交易實時風險管理系統

Red Hat Enterprise MRG Messaging with AMQP

Red Hat Enterprise Linux

MRG Messaging for OpenVMS (for DBAG)

2010年初上線

新一代交易平臺(現貨、期貨)Global Trading System

Red Hat Enterprise Linux

2011年4月上線

芝加哥商品交易所

商品期貨交易系統Globex;

交易大廳數據系統

Red Hat Technical Account Manager

Red Hat JBoss Enterprise Application

Red Hat Enterprise Linux

4000 x86 Servers

已上線

東京證券交易所

新一代交易系統(現貨)Arrowhead

Red Hat Enterprise Linux

Fujitsu PRIMEQUEST & PRIMERGY

已上線

交易系統(期貨)

Red Hat Enterprise Linux

已上線

倫敦證券交易所

新一代交易系統 Turquoise

SUSE Real Time Extension

SUSE Linux Enterprise Server

300 IBM xServers

10Gb/s network

2011年初

Chi-X交易系統技術公司

多家大型另類交易系統

CentOS

10Gb/s network

Infiniband

已上線

拉合爾證券交易所

交易系統

Red Hat Enterprise Linux Advanced

IBM xServer

Red Hat合作夥伴

已上線

註:以上消息來源為互聯網和廠商宣傳資料,僅供參考

2 操作系統的開源技術

傳統的閉源操作系統由統一的架構團隊規劃和設計實現操作系統各個組件;但開源操作系統則不同,它不存在一個統一的架構團隊,而是由每個社區各自獨立的完成操作系統組件的開發,由使用者來完成開源操作系統的各個組件挑選和組合構建,挑選過程中一個操作系統組件常常會有適應於不同場合的多種實現,可能是不同社區的實現,也可能是同一個社區不同版本的實現。因此這就對開源操作系統的使用者提出了很高的技術要求,而且安裝配置復雜。這些制約了早期開源操作系統的推廣和發展,為了解決這種曲高和寡的局面,一些商業公司根據自己使用和測試的經驗,定期推出不同版本的開源操作系統組件組合,並簡化安裝配置流程,方便用戶的使用,也促進了開源操作系統的推廣,目前比較流行的企業級開源操作系統有Novell公司的SUSE Linux、Red Hat公司的Red Hat Linux和近幾年新起的Oracle公司Oracle Linux等。使用這些公司發布的操作系統版本,雖然方便部署和運行,但按照默認選項運行並不能很好的適應所有的應用場景,因此對於性能依賴形的應用,仍然需要針對應用特性進行操作系統組件的配置或者調整。開源操作系統Linux也可以提供與商業UNIX產品類似的安全性和易管理性,但同樣也需要特別的配置。

目前我們在企業內部使用開源操作系統時,還停留在一切默認安裝的狀態,沒有針對應用的優化配置、也缺乏統一系統管理。因此,有必要對以下3個方面進行研究,並建立原型試用便於日後的推廣。

(1) 主要系統組件的優化配置

l 文件系統:開源操作系統Linux支持多種文件系統,常見的有Ext3/Ext4、JFS、VxFS等;這些文件系統的功能特性、技術成熟度、社區活躍度、技術優劣等都是值得考慮的,可以作為基於Linux應用選擇文件系統的技術參考。建議研究過程中構建基於我所典型應用的IO模型,對各文件系統的IO性能進行測試,從吞吐量、低延遲、可靠性三個方面評估。

l 進程調度:當應用以多進程方式運行,特別是當系統運行在一定負載壓力下時,進程調度就顯得非常重要,直接影響應用的執行性能。Linux操作系統從支持FIFO、RR、NORMAL的調度策略,到最近SD、RSDL、CFS的調度器,顯然沒有一種調度算法可以滿足所有應用的需求,因此建議從吞吐量、低延遲兩個方面進行研究,比較這些調度器的優劣,同時可關註Apache Qpid項目對低延遲應用的支持,研究其在消息轉發應用中SUSE Real Time Extension和Red Hat MRG商業發行版本中的實際低延遲效果。

l 多線程:開源操作系統Linux在2.6內核以前對線程的支持很有限,但隨著NPTL線程庫在2.6內核上的實現,多線程在Linux上的應用也開始廣泛。建議研究在Linux上多線程相關的線程通信和同步方式、調度粒度,權衡在Linux上實現多線程還是多進程應用在性能和健壯性上的差異。

(2) 安全加固

數據安全一直是商業應用關註的重點,操作系統作為應用軟件的基礎,配置過程中也需充分考慮到數據的保護。建議從超級用戶的權限限制、記錄系統的運行日誌、FTP/NFS/遠程登錄/X-Window等工具的安全防護等提供數據安全,並結合SELinux組件建立一個安全操作系統的原型。

(3) 統一的系統管理

當在企業中廣泛的使用開源操作系統Linux後,要部署管理的服務器可能有上千臺、其中可能還涉及集群,如何部署安裝軟件、更新補丁、實時監控系統運行狀況、定期備份是一個艱巨的任務,建議研究如何利用開源的軟件產品或者廉價的商業軟件完成統一管理的工作,例如:Red Hat提供的Network或者Novell提供的ZENworks商業組件方式。

操作系統故障診斷是系統管理員的一項重要工作,如何利用現有的工具診斷Linux操作系統的掛起和崩潰,是具有現實意義的。

3 集群的開源技術

常見的集群配置模式有兩種:高可用性集群和負載均衡集群。基於開源操作系統Linux的常見集群產品,既有Novell Cluster Services、Red Hat Cluster Suite等開源軟件,也有Veritas Cluster Server、HP Service Guard、IBM Tivoli System Automation等商業化軟件。涉及的集群組件大致可分為三類:集群成員管理、集群文件系統管理、集群資源管理,常見的技術有Heartbeat、Corosync、OCFS2、GFS2、DRBD、Pacemaker等。建議結合現有成熟的開源集群軟件和商業化集群軟件的方案,根據技術成熟度和未來發展,研究並提出一套穩定的集群組件組合原型。對於其中關鍵技術之一的分布式鎖組件DLM測試其性能,並解決基於GPL協議不能被閉源軟件引用的問題。

除了集群技術,近年來興起的虛擬化技術也是一個很好的研究方向,對於開源操作系統Linux上的Xen和KVM兩種技術,進行歷史回顧、比較當前實現的優劣以及未來的發展。並選擇一種比較成熟的技術,提出統一部署、遷移、管理和監控的解決方案原型。

4 應用遷移

下面討論的應用,可以分為兩類:完全基於中間件開發的應用,例如:JAVA應用、Perl語言應用;完全基於操作系統鏈接庫開發的應用,例如:C語言應用。

(1) 非Linux操作系統的應用遷移到Linux下

對於基於中間件開發的應用程序,由於中間件的函數調用屏蔽了操作系統的差異性,使得遷移工作會進展的比較順利。

對於基於操作系統鏈接庫開發的應用程序,由於不同UNIX、LINUX變體之間存在的差異會使應用遷移工作變得困難。遷移的主要工作是發現兩個系統之間的引用庫差異和頭文件差異,雖然符合POSIX的函數調用能在所有支持相同標準的操作系統上不加修改的使用,但是函數定義的位置也可能會不一樣,而且應用程序中還可能會有對特有操作系統的函數調用。由於企業使用的主要平臺是HP-UX、WINDOWS、OPENVMS,建議研究一種方法論,幫助找到應用程序中和LINUX不兼容的代碼,整理庫函數和頭文件的對應關系,以及如何構建LINUX平臺上的新應用程序。

(2) Linux操作系統之間的應用遷移

雖然各Linux的發布都是基於相同的內核,但是由於選擇的內核版本不同,以及各廠商在後期更新的補丁不同,使應用在不同的Linux發布版本之間很難做到無縫遷移。建議研究在何種約束條件下,可以做到應用在不同Linux發布版本之間的無縫遷移。

(3) 相同Linux操作系統的應用在不同硬件之間的遷移

選擇Linux操作系統的最大優勢在於對硬件有自由的選擇權,但是如果由於硬件驅動而影響應用的無縫遷移,那麽Linux將不再具備這種自由性。建議研究在何種約束條件下,能實現相同Linux上的應用能在不同硬件之間的無縫遷移。

5 研究展望

開源軟件的研究,首先針對不同的應用特性(吞吐量、低延遲、或者高可靠性)挑選相匹配的一套成熟操作系統組件、集群組件和虛擬化技術,並考慮數據安全和統一管理,建立測試原型;其次對於非Linux操作系統的應用遷移到Linux下,提出一種方法論;對於Linux操作系統之間的應用遷移和相同Linux操作系統的應用在不同硬件之間的遷移,找出其可能實現無縫遷移的約束條件。

簡介二:操作系統和集群開源技術研究