金亮亮 吳洪成 祝緒東
摘 要: 介紹一種滿足車載工作環境的加固型存儲陣列設計,該存儲陣列采用國產CPU作為存儲控制器,利用可編程邏輯自主開發了RAID控制器,實現了面向網絡的iSCSI等通用存儲服務。雙機熱備技術的采用進一步確保了數據存儲的安全性和數據服務的不間斷性。
關鍵詞: 存儲陣列; iSCSI; 自主可控; 雙機熱備
中圖分類號:TP399 文獻標志碼:A 文章編號:1006-8228(2015)11-01-03
Abstract: This paper introduces a design of vehicular ruggedized storage array. The storage array adopts domestic CPU as the controller, the RAID controller is developed by using FPGA, and iSCSI and other network-oriented general storage services are realized. The use of hot standby technology further ensures the security of data storage and uninterrupted data service.
Key words: storage array; iSCSI; autonomous controllable; hot standby
0 引言
由于網絡存儲在存儲速率、數據可用性、I/O服務方面具有良好的性能,使其逐漸成為高性能信息處理系統的關鍵設施。目前,高性能網絡存儲設備的制造技術主要掌握在國外廠商手中,如EMC、HP、IBM等供應商,這些廠商不僅能夠提供高性能與高可靠性的存儲產品[1],而且可以提供整套的存儲解決方案。雖然國內存儲產品供應商如華為、浪潮、曙光占據了網絡存儲產品的一定市場份額,但核心存儲技術仍采用國外技術,存儲控制器一般依賴Intel的XEON等產品。
在軍事應用等敏感領域,技術自主可控的要求日益強烈,核心存儲控制器設計國產化已經迫在眉睫。現有的基于XEON等控制器的存儲產品,在飛機、越野車等工作環境中,穩定性大幅降低,無法滿足高低溫、濕熱、低氣壓、抗振等試驗要求。由于處理器、RAID卡等核心部件均是采購外國產品,無法修改,加固設計也很難進行。
本文介紹一種滿足車載工作環境的加固型存儲陣列設計,該存儲陣列對外提供SAN和NAS融合的統一網絡存儲服務[2],支持RAID5,容量達到24TB(熱備模式下有效容量為12TB)。設備采取標準上架式設計,要求工作溫度-10℃~55℃,并可支持高原低氣壓工作。
1 總體設計
為滿足振動、高低溫、低氣壓等車載的環境適應性要求,存儲陣列采用CPCI技術架構,將PCIe等高速總線集成在背板,從而避免商用存儲陣列中大底板和金手指等技術形式在惡劣環境下容易出現的接觸不可靠、傳輸不穩定、易熱脹冷縮等問題。加固型存儲陣列式示意如圖1所示。
存儲陣列選用電子盤作為存儲介質,并采取整體加固安裝形式,所有SAS/SATA總線均自主設計在背板中,消除了普通盤接口接觸的易松動特性,整機內部沒有線纜。而且,電子盤沒有機械磁頭,不受振動影響,對低氣壓也不敏感。
存儲陣列所有功能模塊均自主設計,包括CPU板、RAID卡、電源、電子盤等,對器件選型和PCB設計等均可遵照GJB等相關規范,增加設計冗余以滿足寬溫工作要求,并執行板級篩選。其中,CPU板選擇國產處理器SW410,RAID算法在FGPA內實現。
由于車載空間限制,設備機箱深度要求不超過460mm,普通的商用存儲陣列設計方法無法滿足要求(深度一般均超過500mm)。本設計采取了前后通風式的統一布局[3],模塊傳導與整體強迫風冷結合散熱,所有模塊均衡分布,機箱深度降低至440mm,防止模塊間熱串擾,設備散熱效果也大幅提升,提高高溫工作的可靠性。
2 存儲控制器設計
存儲控制器是網絡存儲陣列產品的核心部件,含存儲管理單元、RAID處理器、嵌入式的操作系統和專業的存儲管理軟件。
2.1 存儲管理單元
本設計中,選擇國產處理器SW410作為存儲控制器,自主設計了SW410的CPCI形式的主控板[4],以適應設備結構要求。如圖3。
在實際測試中發現,SW410兼顧讀寫控制與服務的響應較慢,對I/O控制過程耗時較長,不能及時響應外部服務。因此在本設計中,將存儲控制遷移至SCSI Target中層,直接向塊設備驅動建立地址映射,調用MD驅動建立邏輯卷,再掛載外部PCIe總線上的DMA通路,由硬件電路自主完成數據塊經RAID控制器寫入磁盤過程,SW410僅負責管理邏輯卷映射表,集中精力響應存儲服務。
2.2 RAID控制器
RAID是獨立磁盤冗余陣列的英文簡稱,有RAID0、RAID1、RAID5、RAID6、RAID10等多種RAID等級。RAID技術原理雖然很成熟,但目前市面上能夠購買的高性能RAID卡均是LSI金手指形式,抗振動性能較差,而且無法集成DMA控制器。
本設計的RAID算法基于XINLINX V6系列FPGA來實現,性能可以與RAID芯片保持一致,編碼速率可達900MB/s以上。FPGA內部還集成了DMA控制器,利用DirectIO技術掛載PCIe IP核,連接多個SAS/SATA IP核。FPGA掛載了高速、大容量DDR3緩存,將寫通路緩存和讀通路緩存獨立分開,各自建立FIFO隊列,避免讀/寫切換時緩存清空開銷,減小讀/寫過程轉換CPU等待時間。
3 雙機熱備技術
為保證數據存儲的安全性和數據服務的不間斷性,存儲陣列集成了完整的兩套存儲管理電路,可將電子盤分為兩組進行配置,組建兩個RAID陣列,執行雙機熱備的集群工作方式,數據自動被鏡像復制并分別存儲在兩組陣列中,以保證存儲數據的絕對安全。存儲對外服務執行主從模式,任意一個服務若發生中斷,另一個存儲管理器自動接管服務,保證對外存儲服務不間斷。
通過配置管理軟件可將其中一個存儲分機配置成“主服務器”,另一個配置成“從服務器”,主從服務器有各自的IP地址,主從服務器通過集群軟件虛擬出有一個共同的虛擬IP,這個虛IP就是客戶端訪問該系統時用的IP地址。這種措施是高可靠集群[5]的首要技術保證,可確保集群服務的切換不會影響客戶IP層的訪問。
心跳和同步線是高可靠集群系統中主從節點通訊的物理通道,通過集群軟件的控制來確保服務數據和狀態同步。心跳和同步線可采用串并口、USB口或TCP/IP網口,基于TCP/IP技術的心跳線因通用性和高性能而被廣泛采用。若僅有主從兩臺服務器,心跳和同步線刻可以采用直連的方式,無需通過交換機。
熱備集群軟件負責實現兩個存儲分機的同步狀態檢測、主備切換。當主服務器出現故障時,從服務器及時接管主服務器資源,這些資源包括處理器、內存數據列表和磁盤數據。為了支撐高可靠集群系統故障時順利接管磁盤數據,引入了磁盤鏡像技術。磁盤鏡像類似于在設備間實現一個RAID1的功能,當主服務器將數據寫入本地磁盤時,數據將被磁盤鏡像軟件捕獲并通過網絡發送到網絡中從服務器上,且以相同的形式記錄在磁盤中,保證主從存儲分機內的數據實時同步。當主服務器出現故障時,從服務器利用已同步的磁盤數據接管服務。
4 結束語
面對國外網絡存儲廠商設置的技術壁壘,自主可控高可靠存儲陣列的研制顯得尤為重要。本文介紹的加固型存儲陣列就是在自主可控的大背景下針對抗惡劣環境需求而提出的一種自主可控存儲陣列的典型架構。經測試和試驗驗證,該加固型存儲陣列在FC接口下iSCSI讀寫速率大于700MB/s;千兆網接口下CIFS和iSCSI讀寫速率均不低于70MB/s;組RAID5模式后有效存儲容量不低于24TB,雙機熱備時有效容量不低于12TB,熱備服務切換時間小于1s。
在國產CPU性能無法快速提升的情況下,如何優化流程控制、構建旁路系統以減輕CPU負載是存儲陣列進一步研究的內容。同時,還需在此基礎上研究網絡IO加速卡,創建從網絡服務端口至讀寫控制端口的直接映射,集成多級RAID控制技術,進一步釋放CPU負載,以提升存儲陣列性能。
參考文獻(References):
[1] 國內網絡存儲發展現狀[J].http://wenku.baidu.com.
[2] 張冬.網絡存儲系統原理精解與最佳實踐[M].清華大學出版
社,2008.
[3] 田云均.車載式數字圖像固態存儲技術協議的研究[J].長春
理工大學,2010:21-25
[4] 張忠濤等.抗惡劣環境高性能計算機[J].計算機工程,2008.9.
[5] 鞏天寧,周書明.基于DRBD的Linux高可用集群[J].電腦與
信息技術,2012.1.