◆何云龍
(上海領存信息技術有限公司 上海 201101)
截止到2020 年,全球數據總量已經達到40ZB[1]。如何高速、高可靠、高可用、高安全地將這些數據存儲起來,成為越來越多研究者亟待解決的技術難題。
近年來,“棱鏡門”、“中興事件”、“中美貿易戰”等一系列涉及信息安全的問題爆發,我國逐步加大黨政、軍工、金融等關鍵領域信息設備的國產化升級工作。本文研究的基于國產申威SW1621 處理器的自主可控高端雙控陣列,可解決關鍵領域數據的高可用存儲問題。
(1)雙控制器冗余機制
雙控陣列采用兩個配置完全相同的控制器作為冗余陣列,可避免單控制器發生故障,提高存儲系統的可用性。不但控制器需冗余,而且陣列中的電源、風扇及心跳信號等硬件資源也都需冗余。
(2)工作模式
雙控陣列可以分為主備和雙活兩種工作模式。主備模式下,兩個控制器被分為主控制器和備份控制器。客戶端通過主控制器來訪問陣列,備份控制器通過心跳信號實時檢測主控制器的狀態。當主控制器發生故障時,備份控制器會主動接管主控制器的業務,并將備份的緩存數據同步至硬盤中[1]。
雙活模式下,客戶端可通過任何一個控制器來訪問陣列。兩個控制器要分別備份對方的緩存,并同時相互監控對方狀態。當其中某個控制器發生故障時,另一個就會重新接管數據業務,并將緩存實時寫入硬盤中[2]。
(3)高速數據同步鏈路
文中的存儲陣列使用萬兆以太網接口作為高速數據同步鏈路,并采用TCP/IP 協議來保證數據的可靠傳輸。
(4)心跳模塊
心跳模塊每隔一段時間發送心跳包給對方,如果沒有收到心跳包,就認為控制器發生了故障。本文研究的雙控陣列中的心跳模塊采用了多種不同的冗余低速鏈路,用來確保心跳信號正常接收。
雙控陣列的設計目標是為了保證整個系統“數據不丟,任務不斷”。當其中出現故障時,能將存儲業務平滑遷移。陣列硬件平臺架構如圖1 所示。
雙控制器均為SW1621 16 核處理器的高性能計算刀片。24個雙端口的NVME SSD 通過無源背板和計算刀片實現高速連接。每一個NVME SSD 的兩個端口分別對應著兩個控制器。雙控制器、SSD 以及無源背板之間采用無線纜設計,將會大大減少信號間的串擾。
陣列整機采用19 英寸2U 上架式機箱,每個控制器單元為1U 高度。整機電源、風扇模塊也采用1+1 冗余備份的方式,每個電源模塊均選用750W 交流輸入電源,并分別位于整機兩側。風扇模塊位于機箱前端,采用前后通風的散熱方式,整機實物圖如圖2 所示。

圖1 基于SW1621 處理器的雙控陣列系統架構框圖

圖2 基于SW1621 處理器的雙控陣列整機實物圖
刀片以SW1621 處理器為計算核心,完成陣列業務數據流的管控和調度以及系統數據的高速密集計算。
刀片對外引出多路PCIE 插槽,通過擴展外接PCIE 網卡的方式來實現陣列緩存數據同步和心跳信號檢測。萬兆網卡可提供兩路萬兆網口,其中一路用于雙控之間的數據同步,另一路用于陣列對外提供存儲服務。千兆網卡擴展兩路千兆網口,用作心跳信號連接。硬件功能框圖如圖3 所示。
SW1621 處理器對外引出2 路8x PCIE 3.0 接口,統計刀片所需的PCIE 資源,通過外接2 個PCIE 3.0 交換芯片對實現外圍接口的擴展。
PCIE 3.0 交換芯片1 用于連接包括12 個NVME SSD、BMC芯片和千兆以太網卡在內的各個接口功能電路:
●12 路4x PCI-E 3.0 接口,連接12 個NVME SSD,用作陣列數據存儲;
●1 路4x PCI-E 2.0 接口,連接PCIE X4 插槽,用作千兆以太網接口;
●1 路1x PCI-E 2.0 接口,連接BMC 芯片,提供刀片健康狀態信息管理;
●PCIE 3.0 交換芯片2 用于連接包括另外12 個NVME SSD、ICH2 套片和萬兆以太網卡在內的各個接口功能電路:
●12 路4x PCI-E 3.0 接口,連接12 個NVME SSD,用作陣列數據存儲;
●1 路8x PCI-E 2.0 接口,連接PCIE X4 插槽,用作萬兆以太網接口;
●1 路4x PCI-E 2.0 接口,連接ICH2 套片,提供外圍IO 接口(如SATA、USB、SPI 以及UART 等接口),供系統調試使用。

圖3 刀片硬件功能框圖
陣列背板為2U 無源背板,用于2 塊1U 計算刀片、2 塊電源模組和24 塊NVME SSD 的連接,從而實現對供電信號、SSD 信號、風扇控制信號和心跳信號連接的作用。其硬件設計框圖如圖4 所示。

圖4 背板設計框圖
陣列軟件采用模塊化、標準化、層次化的體系架構。其自下而上分別為板級BSP 與設備驅動、雙控存儲專用存儲操作系統、存儲陣列管理軟件及WEB 管理配置軟件等四個部分,軟件總體架構框圖如圖5 所示。
BSP 提供了專用存儲操作系統與硬件平臺的基本接口,其作用包括:
(1)負責刀片上電時芯片的初始化;
(2)對操作系統訪問芯片提供驅動支持;
(3)銜接操作系統與底層硬件;
(4)實現板級芯片的適配及調優工作。

圖5 陣列軟件總體架構框圖
本文研究的專用存儲操作系統是在國產睿思通用操作系統的基礎上,加上專用陣列管理軟件構成。陣列管理軟件主要由三個部分組成:iSCSI 目標端軟件、熱備集群軟件和WEB 配置管理軟件[3]。
(1)iSCSI 目標端軟件
本文研究的存儲陣列可通過以太網接口對外實現IP_SAN 或NAS 等存儲服務。目前,通用Linux 操作系統有對iSCSI 系統專門的支持,稱之為iSCSI-SCST。iSCSI-SCST 目標端驅動封裝在內核態,可以減少系統調用率,從而提高系統性能[4]。
為解決內核態的SCST 的鎖競爭問題,通過對專用存儲操作系統內核的優化改造,可使磁盤陣列的邏輯卷能夠高效導出,更好地為用戶提供網絡存儲服務。
(2)熱備集群軟件
熱備集群軟件主要負責雙控陣列的故障監測、故障切換和緩存數據備份等功能。熱備集群軟件主要包括:虛擬IP、共享卷組、復制邏輯卷和腦裂等多種技術[5]。
為了讓陣列更大限度提高硬盤利用率,實現故障快速重構,在熱備集群軟件中還加入了RAID2.0 管理技術。利用RAID2.0管理技術,可以將陣列中的所有存儲資源進行池化,從而更加高效地實現數據保護。
(3)Web 配置管理軟件
Web 配置管理軟件采用SNMP 管理協議。它采用獨特的方式使網絡管理者和代理進程之間相互作用,來實現對遠程資源的訪問及控制??勺層脩舾奖愕厥褂秒p控陣列,使其置于網絡管理之下。在本文所研究的雙控陣列中,用戶可通過管理網絡登錄WEB 頁面,遠程配置管理陣列。
為擺脫國外大廠商對高端存儲行業的壟斷,突破高可用存儲核心技術,研制一款自主可控的高可用存儲陣列非常重要。本文研究的自主可控高端雙控陣列,具有良好的擴展功能,支持基于高速網絡的海量數據共享,數據訪存高效、安全、可靠,可滿足軍用云計算、關鍵領域大數據應用等大規模存儲需求。
但在國產處理器性能不足的前提下,還存在如何提高網絡訪問效率、如何更好地使用RAID2.0 技術、如何做好全局負載均衡等問題,解決這些問題將成為下一步研究的主要內容。