左 維a,b,張舟斌a,b,耿 良a,b,李春來a,b
(中國科學院 a.國家天文臺;b.月球與深空探測重點實驗室,北京 100012)
嫦娥三號(CE-3)任務是我國探月工程二期的關鍵任務,突破了月球軟著陸、月面巡視勘察、月面生存、深空測控通信與遙操作、運載火箭直接進入地月轉移軌道等關鍵技術,實現中國首次對地外天體的直接探測。
基于嫦娥一號(CE-1)和嫦娥二號(CE-2)任務,地面應用系統建立了一套集通信、網絡、計算、存儲和備份為一體的計算機業務運行環境系統,為地面應用系統圓滿完成探月工程項目中承擔的衛星有效載荷在軌業務運行管理、探測數據的接收、探測數據的存儲與管理、探測數據的分析與處理、以及探測數據的應用與研究等工程任務提供了堅實的基礎支持。由于CE-3任務的特殊性,地面應用系統的計算機業務運行環境系統需要在CE-2任務的基礎上進行適應性的改造。其中,更換原有文件共享系統實現高速數據異構共享訪問是一項重要的改造內容[1]。地面應用系統的數據應用特點主要表現為數據量大、異構共享、高性能低延時訪問等,如何有效研究高性能共享文件系統實現數據基于異構平臺的高速讀寫訪問、提高數據的讀寫性能、降低數據讀寫的延遲時間是本文的主要研究方向[2]。本文針對探月工程地面系統的應用需求,建立了一個基于SNFS的異構平臺高性能數據共享系統。
地面應用系統是嫦娥衛星探測數據的接收、處理、歸檔、管理、分發和應用研究中心,其計算機業務運行環境系統采用分布式體系結構,部署于北京總部、密云地面站和昆明地面站三地,系統采用高性能企業級UNIX服務器構建雙機高可用集群系統,并利用動態邏輯分區技術將物理服務器劃分成運行管理、遙科學探測、數據預處理和數據管理等對等業務邏輯分區,實現負載均衡調度,同時建立基于SAN(Storage Area Network)架構的數據存儲系統,以滿足系統對海量數據的高速存取要求[3]。此外,地面應用系統還在總部與密云地面站之間采用基于存儲系統的數據復制技術,建設了容災備份系統,其系統架構如圖1所示[4]。

圖1 地面應用系統的網絡拓撲結構
在CE-1和CE-2任務中,地面應用系統建立了基于通用并行文件系統(General Parallel File System,GPFS)的數據共享系統。CE-3任務中由于增加了對月表進行就位和巡視探測等新的工程任務,使地面應用系統的業務流程變得復雜,對數據存儲系統提出了新的要求,原有系統已經無法支撐多個業務系統之間異構環境下的高速數據交換與共享需求。因此,在CE-3任務中實現多個業務系統在AIX、Linux以及Windows7(32位、64位)等異構環境下高速、安全的海量數據共享訪問是地面應用系統建立高性能數據共享系統的首要目標,同時也是地面應用系統保障完成工程任務需要解決的基本關鍵技術問題之一。經過調研與測試,確立了基于昆騰公司的StorNext File System(SNFS)建立嫦娥三號任務地面應用系統高性能數據共享系統的解決方案。
SNFS是昆騰公司的一個軟件產品,最初的名稱為CVFS(Central Vision File System),是MGISC(MountainGate Imaging Systems Corporation)的產品,只用在Windows和IRIX之間的文件共享交換。后來被ADIC(Advanced Digital Information Corporation)收購并更名為Stornext File System,還加入了Solaris、Linux、Mac等更多的操作系統支持,在此期間引入國內,并在石油、廣電、衛星等行業得到了廣泛的應用。2006年8月昆騰收購了ADIC獲得了SNFS。
2012年8月15日,昆騰公司宣布推出StorNext 4.3軟件,它帶來智能化大數據管理,并提供更高的性能以及更大規模。這款最新一代的StorNext?軟件采納一個新數據庫,并最高支持10億份文件和數十PB的分層存儲,延伸了文件系統和歸檔性能的界限,其專有的分布式LAN客戶端技術比傳統NFS或CIFS協議的運行速度快50%以上。同時增加了一些諸如歸檔攝取、活躍倉儲和基于項目的容量管理等新的獨特功能,進一步加強了大量非結構化數據中的卷、速率和多樣性的管理[5]。
SNFS最初主要應用在情報和石油天然氣勘探等進行大規模數據收集的美國政府機構和公司,隨著媒體等行業漸漸轉變為采用以數字為主的創意流程,SNFS得以被廣泛應用。StorNext在該領域的領先地位體現在其廣泛的應用群上,其中包括:全球最大的廣播公司,全美四大電視廣播網絡,四大美國有線電視網中的三家,全球三大電影制片廠中的兩家,領先的后期制作、視頻編輯和數字內容制作公司。DG公司和GeoEye公司使用昆騰的StorNext數據管理軟件來更快地把產品投向市場[6]。2012年10月,昆騰公司宣布已售出超過70000張StorNext?文件系統許可。
StorNext在中國的廣電、石油、航天等領域都得到了很好的應用。在中國有16家電視臺采用StorNext;在石油天然氣行業,StorNext逐步成為主導的數據管理軟件,如大慶油田、新疆油田、吐哈油田、塔里木油田、長慶油田、青海油田等油田、研究院廣泛使用。同時,StorNext在航天領域為風云2號、嫦娥3號、測繪、減災、遙感、環保等衛星應用提供了技術支撐。
StorNext在大文件的處理上有著明顯的優勢,未來會有更多的變化在小文件(小于1 MB)管理上進行更新,同時優化數據檢索的性能[7],主要包括:(1)提供豐富的數據結構類型、快速可壓縮的二進制數據格式、存儲持久性數據的文件集、遠程調用RPC的功能和簡單的動態語言集成功能;(2)使數據的讀和寫在模式之下完成,減少寫入數據的開銷,同時方便動態腳本語言的使用;(3)優化客戶端和服務端通過握手協議進行模式的交換,解決不同模式下的相同命名字段、丟失字段和附加字段等信息的一致性問題;(4)放寬可移植操作系統接口(Portable Operating System Interface of Unix,POSIX)的要求,實現以流的形式訪問文件系統中的數據;(5)優化一致性模型,解決數據一致性和高吞吐量的數據訪問問題;(6)優化任務粒度、數據分割和數據合并等工作流程與方法,提高系統運行效率。
另外,StorNext未來在數據庫上也會進行改變,如使用NoSQL分布式數據庫。同時在支持云應用方面也會有較大的發展,為搭建云計算環境中的設備提供基本的服務,并為該平臺上的軟件開發提供所需的API。應用新的技術使StorNext環境中能無縫共享端到端工作流程內的內容,提供無縫的大數據采集和內容歸檔,以更快的速度將內容在工作平臺與歸檔存儲之間實現數據的遷移管理[8]。
本文系統的總體架構如圖2所示。

圖2 數據共享系統總體架構
CE-3地面應用系統北京總部的內網核心業務系統是處理、存儲、管理和分析嫦娥科學探測數據的核心場所,內網核心業務系統所建立的數據共享系統根據業務等級和性能需求的不同分別在SAN和LAN(Local Area Network)的基礎上進行構建。其中,21個基于AIX操作系統的關鍵任務系統、6臺基于RedHat Linux的數據處理工作站、28臺基于Windows的圖形渲染工作站作為SAN客戶端;以及20臺基于Linux和Windows的用于數據處理分析的工作站作為DLC(Distributed LAN Client)客戶端。為了使基于LAN的客戶端能夠訪問存儲于SAN之中的數據,將2臺Windows PC服務器配置為數據共享系統的SAN客戶端,同時以集群的方式作為網關服務器,為其他通過LAN訪問數據共享系統的客戶端提供數據訪問通道。
在系統架構中,SNFS主要由元數據控制服務器、SAN客戶端、DLC客戶端與網關服務器等關鍵部件組成。
(1)元數據控制服務器(Mata Data Controller,MDC):簡稱元數據服務器,MDC用于管理文件系統中存儲文件的基本屬性信息,包括文件名稱、文件的存取時間、文件在共享存儲設備中的存儲位置等信息[9]。在實施過程中利用2臺基于Linux的工作站建立了分離的元數據服務器,用來管理和維護文件系統的元數據信息,并為大容量數據訪問環境提供優化的性能。同時,成對的元數據服務器可以通過一主一備的方式實現故障切換機制,主服務器故障會激活一系列的事件來讓備用服務器接管元數據服務職能,而這種切換過程對于具有數據訪問需求的客戶端來說是完全透明的,從而提高了系統的可靠性,確保業務的持續性。
(2)SAN客戶端:SAN客戶端使用高效的光纖通道協議進行數據傳輸,其最大傳輸單元可達64個數據幀之多,這大大減少了校驗數據所需的CPU周期,并提高了數據傳輸效率。其中大部分功能都是基于硬件實現的,無需對數據進行額外的處理,從而大幅減少主機的處理開銷。此外,還支持SAN客戶端采用多路徑冗余或負載均衡等功能,使SAN客戶端獲得非常高的帶寬和極穩定的性能[10]。
(3)DLC客戶端與網關服務器:StorNext的DLC客戶端數據共享解決方案是其基于SAN的數據共享解決方案的一個重要補充,它能讓需要斷續訪問或部分訪問共享數據儲存庫的應用程序以更低的成本連接數據共享系統[11]。在系統中,多個網關服務器可作為服務器集群同時為所有的計算節點使用,提供了高速、并發的數據訪問支持,以及網絡數據訪問鏈路的冗余和負載均衡。
在CE-3任務中,要求實現異構平臺的數據共享,主要體現在主機、網絡接口和存儲設備等3個方面:(1)要求能夠支持異構平臺主機(AIX、Windows和Linux等)的高速共享存儲;(2)要求支持多種網絡接口(高速低延遲的FC接口和高性能的以太網DLC接口),主機可以按照性能需求自由選擇;(3)支持多種品牌和類型的存儲設備(磁盤陣列、磁帶設備和網絡附加存儲等)。以SNFS搭建的數據共享系統很好地解決了這三方面的問題,實現了異構平臺下的數據動態共享,同時為系統未來升級改造提供了更為廣泛的選擇。
StorNext通過多種機制確保異構環境下數據的穩定性、可靠性與安全性[12],主要包括:
(1)令牌機制:為了確保共享文件數據的一致性,元數據服務器和異構文件系統主機之間采用基于令牌的消息傳遞系統。SAN主機發出獲取文件信息的請求后,會從元數據服務器得到一個“信息”令牌。這個令牌包含著文件元數據和該文件第一個數據塊的數據。主機可以不用再發送請求而連續使用這個令牌,直到服務器發出一個令牌“回叫”命令。元數據服務器使用回叫機制來同步緩存,以便保證當共享文件被一個主機改動后,數據的一致性不被破壞。此外,文件系統還使用“打開”令牌來跟蹤哪一個主機正在使用某個特定文件,使用“數據”令牌指示數據存放在哪個物理存儲池當中。通過跟蹤系統擁有什么類型的令牌,元數據服務器可以維護文件系統命名空間和元數據的一致性。
(2)鎖:在一般情況下,StorNext采用POSIX鎖,大多數POSIX鎖操作可以映射到Windows環境,以便保證垮平臺操作的一致性。當應用將數據寫入一個共享文件時,元數據服務器對這個文件的鎖進行仲裁和跟蹤,以防止其他訪問這個文件的應用更改該文件的同一部分。
(3)安全描述符:UNIX文件服務器傳統上采用主機配置文件或網絡信息服務來實現文件訪問授權,并采用用戶、組和全局3個授權層次。而Windows則采用Windows安全參考模型,將安全標識指定給用戶并且使用訪問控制列表來控制對對象的訪問權限。StorNext對以上2種授權模式都提供了支持,它使用安全描述符作為文件對象的屬性,該屬性結合了2種模型的屬性,并且自動地將它們一一對應起來:對于UNIX主機,它與網絡信息服務模型配合工作;對于Windows主機,它支持Windows安全模式,從而保證基于Windows的應用可以不用修改就能正常運行。
(4)限額:限額機制用來限制某些用戶、組或特定目錄使用文件系統的空間。一旦一個用戶或組達到了空間使用的最大限額,對該用戶或組來看,文件系統已經沒有存儲空間了,只能尋求系統管理人員的幫助。目錄空間限額可針對工作組或特定應用實現,允許不同用戶存儲數據到配置限額的目錄,當達到限定的空間時,目錄中就不再允許寫入數據。限額對于采用策略進行空間分配非常有用。
(5)日志:StorNext是一個日志型文件系統,它跟蹤所有文件系統結構改變的信息,并把它們記錄在一個日志當中。對于共享文件系統,日志提供了一個有用的、基于交易模式的機制,以保證在出現意外時系統的一致性。
在CE-3任務中,多業務系統的協同處理、各應用之間頻繁而大量的數據交換,都對數據共享系統提出了嚴苛的性能要求,尤其是遙科學探測分系統大量的基于Windows和Linux的業務應用需要高速的數據吞吐和數據交換能力。基于StorNext的文件共享通過將Windows和Linux主機服務器作為SAN客戶端或DLC客戶端,實現了Windows和Linux主機服務器的高速訪問,主要通過以下3種技術手段為性能提供了保障[13-15]:
(1)條帶化:為提高I/O性能,通過在普通磁盤陣列上創建條帶化卷組,實現在多個物理設備上交叉存儲數據,且可以跨越多個磁盤控制器或光纖適配器。采用條帶化處理大規模、順序讀寫的I/O操作可以通過并行數據傳輸將單獨設備的性能聚集起來,非常適合于CE-3任務的I/O流特點。
(2)服務質量(QoS):為了確保核心的業務應用能夠得到最優的I/O帶寬,分析了各個系統和應用對帶寬預留的需求,并根據業務等級和關鍵性對那些實時和關鍵的應用實施了QoS設置,以在I/O操作高峰期時阻止其他文件系統主機訪問數據,從而為關鍵業務應用提供了性能保證,避免了應用軟件由于I/O競爭而造成任務流程的阻塞。
(3)緩沖和直接輸入/輸出:緩沖I/O方式可以提高那些經常重新使用某特定數據的應用的性能,而直接I/O方式對于大量數據的傳輸效果更好,因為這樣能夠消除文件系統對內存分配的需求。StorNext可以根據應用的讀寫模式和當前緩沖的利用率決定什么時候系統緩存可以增強單獨的寫操作。在系統實施過程中,根據CE-3任務的數據類型和特點,靈活地選擇緩沖或直接I/O模式,最大限度地提高不同業務系統的數據讀寫性能。
分別在CE-1、CE-2和CE-3的數據共享系統實施過程中,對系統進行性能測試。為了盡可能模擬真實業務流程下的數據讀寫能力,在對系統進行常規的讀寫性能測試外,還根據任務執行過程中的數據流特點,著重進行了多主機并發訪問下的數據讀寫性能測試。
在嫦娥一號任務中,測試環境包括1臺磁盤陣列(EMC CX700)、2臺光纖交換機(EMC DS4700M2)和2臺UNIX服務器(IBM P5-570)。2臺UNIX服務器采用雙機高可用方式,每臺UNIX服務器分為3個分區,共有6個主機,主機操作系統為AIX5.3/HACMP5.2,共享文件系統為GPFS。在6臺主機上同時執行命令:#time dd if=/dev/zero bs=1m of=./test1 count=2000和#time dd if=/dev/zero bs=1m of=./test 2 count=2000,讀寫數據文件大小為2 GB,共執行3次。
在嫦娥二號任務中,測試環境包括2臺磁盤陣列(EMC CX700和EMC CX4-480)、2臺光纖交換機(EMC DS5100 B)、2臺UNIX服務器(IBM P6-570)和6臺工作站(HP Z800)。其中,2臺UNIX服務器采用雙機高可用方式,每臺UNIX服務器分為5個分區,共有10個主機,主機操作系統為AI X6.1/HACMP5.5,工作站的操作系統為RedHat 5.2,共享文件系統為GPFS 3.3。在10臺主機和6臺Linux工作站上同時執行命令:#time dd if=/dev/zero bs=1m of=./test1 count=20000和#time dd if=/dev/zero bs=1m of=./test2 count=20000,讀寫數據文件大小為20 GB,共執行3次。
在嫦娥三號任務中,測試環境包括1臺磁盤陣列(EMC CX4-480)、2臺光纖交換機(EMC DS5700B)和2臺UNIX服務器(IBM P6-570)。其中,2臺UNIX服務器采用雙機高可用方式,每臺UNIX服務器分為5個分區,共有10個主機,主機操作系統為AIX6.1/HACMP5.5,共享文件系統為StorN extFS 4.2.2。在10臺主機上對多個不同大小的文件分別進行同時讀寫:#iozone-w-I-t 5-i 0-s 5000M-r 1M和#iozone-w-I-t 5-i 1-s 5000M-r 1M,文件大小參數視主機而定,讀寫數據文件大小為20 GB,共執行3次。
由于這3個任務的數據共享系統是在不同時期建立的,時間跨度較大(2006年-2012年),因此測試所依存的系統環境以及所采用的方法存在著一定的差異性,但考慮到業務的同向性,這種差異并不妨礙本文對數據共享系統的讀寫性能做出判斷和分析[16]。3個不同階段數據共享系統的性能測試結果如圖3~圖8所示。

圖3 CE-1任務共享文件系統寫性能的測試結果

圖4 CE-1任務共享文件系統讀性能的測試結果

圖5 CE-2任務共享文件系統寫性能的測試結果

圖6 CE-2任務共享文件系統讀性能的測試結果

圖7 CE-3任務共享文件系統寫性能的測試結果

圖8 CE-3任務共享文件系統讀性能的測試結果
3個階段的總體性能測試結果如表1所示,將所有參加并發讀寫測試服務器的讀速度和寫速度進行累加,得到總速度作為I/O性能指標來衡量數據共享系統的整體性能表現。從測試結果看,由于CE-2數據共享系統在測試過程中采用16臺服務器對2臺磁盤陣列進行并發讀寫訪問,相比于CE-3采用10臺服務器對1臺磁盤陣列進行并發讀寫訪問,性能明顯優異,但若扣除由于磁盤陣列和讀寫服務器數量較多所帶來的性能優勢,同時考慮圖3中CE-2任務中寫性能可能由于緩存的影響而給部分服務器帶來的性能上的突升,認為CE-3基于SNFS建立的數據共享系統在整體性能得到了穩步提升。在實際使用過程中,CE-3任務所建立的數據共享系統表現了較為出色的異構環境下的數據共享能力,滿足支持更復雜、更苛刻數據共享和處理的應用要求。

表1 數據共享系統性能測試結果(MB·s-1)
隨著月球探測工程的不斷深入、各類應用的不斷增多以及探測數據量的不斷累積,對系統的計算機應用架構提出了更高的要求。實現多種異構平臺下的數據共享以及海量數據的高性能低延時讀寫訪問,是一個較為復雜的問題,采用本文技術方案可以有效地解決深空探測任務中基于大數據的多種異構平臺數據共享和高效訪問問題。在實際應用中,該方案與研究成果也得到了很好的驗證,系統性能穩定滿足工程要求。由于CE-3任務的業務流程高度復雜以及后續深空探測任務的需求多變,因此針對具體業務的特點對系統進行精細化的調整和優化是后續的工作重點。
[1]月球與深空探測研究部.探月工程二期地面應用系統嫦娥三號任務總部計算機系統改造方案[R].北京:中國科學院國家天文臺,技術報告:CE-3-DMS-FASJ-001,2011.
[2]郭 潔.近線存儲異構播出平臺的研究與實現[D].廣州:華南理工大學,2011.
[3]Butler G,Lee R,Welcome M.GUPFS:The Global Unified Parallel File System Project at NERSC[R].Berkeley,USA:National Energy Research Scientific Computing Center Lawrence Berkeley National Laboratory,Tech.Rep.:MSST2004-41,2004.
[4]月球與深空探測研究部.探月工程二期地面應用系統嫦娥三號任務總部計算機系統集成實施方案與計劃[R].北京:中國科學院國家天文臺,技術報告:CE-3-GRAS-YSWJ-001,2012.
[5]Quantum Corp..StorNext Technical Product Brief[EB/OL].(2011-02-01).http://salestools.quantum.com/getDocERetriever.cfm?filename=%2A%2BRC%5CT%5E%40%3AX4%3A2GP%20%20%0A&loc=2&ext=.pdf&type_mime=undefined.
[6]Quantum Corp..Faster Processing Helps Digital Globe at GoogleEarth[EB/OL].(2006-02-01).http://www.quantum.com/iqdoc/doc.aspx?id=5333.
[7]Perry R,Nadkami A.展示StorNext的商業價值[EB/OL].(2012-08-01).http://www.quantum.com/cn/products/software/stornext/index.aspx.
[8]劉 杰.昆騰大數據:磁帶重生磁盤主導[EB/OL].(2013-06-03). http://stor-age.zdnet.com.cn/stor-age/2013/0603/2162361.shtml.
[9]Quantum Corp..Extended Data Life Management:Protecting Data over Long Periods of Time[EB/OL].(2011-11-01).http://www.quantum.com/products/bigdatamanagement/storne xtael/index.aspx.
[10]Shu Jiwu,Li Bigang,Zheng Weimin.Design and Implementation of an SAN System Based on the Fiber Channel Protocol[J].IEEE Transactions on Computers,2005,54(4):439-448.
[11]Quantum Corp..StorNext 4.0 Technical Product Brief[EB/OL].(2011-02-01).http://www.dscon.ru/quantumdocs/quantum_stor next_4.pdf.
[12]張雪冰,張延園.SAN異構存儲共享系統實現技術研究[J].計算機工程,2006,32(3):105-107.
[13]Villars R L,Regula B.Quantum StorNext:High-performance Scale-out File System Solution Large Data Types[R].San Jose,USA:Quantum Corp.,Tech.Rep.:IDC#230916,2011.
[14]Quantum Corp..A Fast File System Just Keeps on Getting Faster[R].San Jose,USA:Quantum Corp.,Tech.Rep.:PB00039A-v01,2011.
[15]Palmer T,Garrett B.Quantum StorNext 3.0 High Performance Workflow and Digital Archiving,A Validation Study by ESG Lab[EB/OL].(2007-05-01).http://www.esg-global.com/default/?LinkServID=E421EBBC-DAF6-3D47-D36CB76B4C108113.
[16]楊 進,魏軼偉,賈惠波,等.存儲區域網的性能測試[J].計算機工程,2003,29(16):43-44.