◆何云龍
(上海領(lǐng)存信息技術(shù)有限公司 上海 201101)
截止到2020 年,全球數(shù)據(jù)總量已經(jīng)達(dá)到40ZB[1]。如何高速、高可靠、高可用、高安全地將這些數(shù)據(jù)存儲(chǔ)起來(lái),成為越來(lái)越多研究者亟待解決的技術(shù)難題。
近年來(lái),“棱鏡門”、“中興事件”、“中美貿(mào)易戰(zhàn)”等一系列涉及信息安全的問題爆發(fā),我國(guó)逐步加大黨政、軍工、金融等關(guān)鍵領(lǐng)域信息設(shè)備的國(guó)產(chǎn)化升級(jí)工作。本文研究的基于國(guó)產(chǎn)申威SW1621 處理器的自主可控高端雙控陣列,可解決關(guān)鍵領(lǐng)域數(shù)據(jù)的高可用存儲(chǔ)問題。
(1)雙控制器冗余機(jī)制
雙控陣列采用兩個(gè)配置完全相同的控制器作為冗余陣列,可避免單控制器發(fā)生故障,提高存儲(chǔ)系統(tǒng)的可用性。不但控制器需冗余,而且陣列中的電源、風(fēng)扇及心跳信號(hào)等硬件資源也都需冗余。
(2)工作模式
雙控陣列可以分為主備和雙活兩種工作模式。主備模式下,兩個(gè)控制器被分為主控制器和備份控制器??蛻舳送ㄟ^(guò)主控制器來(lái)訪問陣列,備份控制器通過(guò)心跳信號(hào)實(shí)時(shí)檢測(cè)主控制器的狀態(tài)。當(dāng)主控制器發(fā)生故障時(shí),備份控制器會(huì)主動(dòng)接管主控制器的業(yè)務(wù),并將備份的緩存數(shù)據(jù)同步至硬盤中[1]。
雙活模式下,客戶端可通過(guò)任何一個(gè)控制器來(lái)訪問陣列。兩個(gè)控制器要分別備份對(duì)方的緩存,并同時(shí)相互監(jiān)控對(duì)方狀態(tài)。當(dāng)其中某個(gè)控制器發(fā)生故障時(shí),另一個(gè)就會(huì)重新接管數(shù)據(jù)業(yè)務(wù),并將緩存實(shí)時(shí)寫入硬盤中[2]。
(3)高速數(shù)據(jù)同步鏈路
文中的存儲(chǔ)陣列使用萬(wàn)兆以太網(wǎng)接口作為高速數(shù)據(jù)同步鏈路,并采用TCP/IP 協(xié)議來(lái)保證數(shù)據(jù)的可靠傳輸。
(4)心跳模塊
心跳模塊每隔一段時(shí)間發(fā)送心跳包給對(duì)方,如果沒有收到心跳包,就認(rèn)為控制器發(fā)生了故障。本文研究的雙控陣列中的心跳模塊采用了多種不同的冗余低速鏈路,用來(lái)確保心跳信號(hào)正常接收。
雙控陣列的設(shè)計(jì)目標(biāo)是為了保證整個(gè)系統(tǒng)“數(shù)據(jù)不丟,任務(wù)不斷”。當(dāng)其中出現(xiàn)故障時(shí),能將存儲(chǔ)業(yè)務(wù)平滑遷移。陣列硬件平臺(tái)架構(gòu)如圖1 所示。
雙控制器均為SW1621 16 核處理器的高性能計(jì)算刀片。24個(gè)雙端口的NVME SSD 通過(guò)無(wú)源背板和計(jì)算刀片實(shí)現(xiàn)高速連接。每一個(gè)NVME SSD 的兩個(gè)端口分別對(duì)應(yīng)著兩個(gè)控制器。雙控制器、SSD 以及無(wú)源背板之間采用無(wú)線纜設(shè)計(jì),將會(huì)大大減少信號(hào)間的串?dāng)_。
陣列整機(jī)采用19 英寸2U 上架式機(jī)箱,每個(gè)控制器單元為1U 高度。整機(jī)電源、風(fēng)扇模塊也采用1+1 冗余備份的方式,每個(gè)電源模塊均選用750W 交流輸入電源,并分別位于整機(jī)兩側(cè)。風(fēng)扇模塊位于機(jī)箱前端,采用前后通風(fēng)的散熱方式,整機(jī)實(shí)物圖如圖2 所示。
圖1 基于SW1621 處理器的雙控陣列系統(tǒng)架構(gòu)框圖
圖2 基于SW1621 處理器的雙控陣列整機(jī)實(shí)物圖
刀片以SW1621 處理器為計(jì)算核心,完成陣列業(yè)務(wù)數(shù)據(jù)流的管控和調(diào)度以及系統(tǒng)數(shù)據(jù)的高速密集計(jì)算。
刀片對(duì)外引出多路PCIE 插槽,通過(guò)擴(kuò)展外接PCIE 網(wǎng)卡的方式來(lái)實(shí)現(xiàn)陣列緩存數(shù)據(jù)同步和心跳信號(hào)檢測(cè)。萬(wàn)兆網(wǎng)卡可提供兩路萬(wàn)兆網(wǎng)口,其中一路用于雙控之間的數(shù)據(jù)同步,另一路用于陣列對(duì)外提供存儲(chǔ)服務(wù)。千兆網(wǎng)卡擴(kuò)展兩路千兆網(wǎng)口,用作心跳信號(hào)連接。硬件功能框圖如圖3 所示。
SW1621 處理器對(duì)外引出2 路8x PCIE 3.0 接口,統(tǒng)計(jì)刀片所需的PCIE 資源,通過(guò)外接2 個(gè)PCIE 3.0 交換芯片對(duì)實(shí)現(xiàn)外圍接口的擴(kuò)展。
PCIE 3.0 交換芯片1 用于連接包括12 個(gè)NVME SSD、BMC芯片和千兆以太網(wǎng)卡在內(nèi)的各個(gè)接口功能電路:
●12 路4x PCI-E 3.0 接口,連接12 個(gè)NVME SSD,用作陣列數(shù)據(jù)存儲(chǔ);
●1 路4x PCI-E 2.0 接口,連接PCIE X4 插槽,用作千兆以太網(wǎng)接口;
●1 路1x PCI-E 2.0 接口,連接BMC 芯片,提供刀片健康狀態(tài)信息管理;
●PCIE 3.0 交換芯片2 用于連接包括另外12 個(gè)NVME SSD、ICH2 套片和萬(wàn)兆以太網(wǎng)卡在內(nèi)的各個(gè)接口功能電路:
●12 路4x PCI-E 3.0 接口,連接12 個(gè)NVME SSD,用作陣列數(shù)據(jù)存儲(chǔ);
●1 路8x PCI-E 2.0 接口,連接PCIE X4 插槽,用作萬(wàn)兆以太網(wǎng)接口;
●1 路4x PCI-E 2.0 接口,連接ICH2 套片,提供外圍IO 接口(如SATA、USB、SPI 以及UART 等接口),供系統(tǒng)調(diào)試使用。
圖3 刀片硬件功能框圖
陣列背板為2U 無(wú)源背板,用于2 塊1U 計(jì)算刀片、2 塊電源模組和24 塊NVME SSD 的連接,從而實(shí)現(xiàn)對(duì)供電信號(hào)、SSD 信號(hào)、風(fēng)扇控制信號(hào)和心跳信號(hào)連接的作用。其硬件設(shè)計(jì)框圖如圖4 所示。
圖4 背板設(shè)計(jì)框圖
陣列軟件采用模塊化、標(biāo)準(zhǔn)化、層次化的體系架構(gòu)。其自下而上分別為板級(jí)BSP 與設(shè)備驅(qū)動(dòng)、雙控存儲(chǔ)專用存儲(chǔ)操作系統(tǒng)、存儲(chǔ)陣列管理軟件及WEB 管理配置軟件等四個(gè)部分,軟件總體架構(gòu)框圖如圖5 所示。
BSP 提供了專用存儲(chǔ)操作系統(tǒng)與硬件平臺(tái)的基本接口,其作用包括:
(1)負(fù)責(zé)刀片上電時(shí)芯片的初始化;
(2)對(duì)操作系統(tǒng)訪問芯片提供驅(qū)動(dòng)支持;
(3)銜接操作系統(tǒng)與底層硬件;
(4)實(shí)現(xiàn)板級(jí)芯片的適配及調(diào)優(yōu)工作。
圖5 陣列軟件總體架構(gòu)框圖
本文研究的專用存儲(chǔ)操作系統(tǒng)是在國(guó)產(chǎn)睿思通用操作系統(tǒng)的基礎(chǔ)上,加上專用陣列管理軟件構(gòu)成。陣列管理軟件主要由三個(gè)部分組成:iSCSI 目標(biāo)端軟件、熱備集群軟件和WEB 配置管理軟件[3]。
(1)iSCSI 目標(biāo)端軟件
本文研究的存儲(chǔ)陣列可通過(guò)以太網(wǎng)接口對(duì)外實(shí)現(xiàn)IP_SAN 或NAS 等存儲(chǔ)服務(wù)。目前,通用Linux 操作系統(tǒng)有對(duì)iSCSI 系統(tǒng)專門的支持,稱之為iSCSI-SCST。iSCSI-SCST 目標(biāo)端驅(qū)動(dòng)封裝在內(nèi)核態(tài),可以減少系統(tǒng)調(diào)用率,從而提高系統(tǒng)性能[4]。
為解決內(nèi)核態(tài)的SCST 的鎖競(jìng)爭(zhēng)問題,通過(guò)對(duì)專用存儲(chǔ)操作系統(tǒng)內(nèi)核的優(yōu)化改造,可使磁盤陣列的邏輯卷能夠高效導(dǎo)出,更好地為用戶提供網(wǎng)絡(luò)存儲(chǔ)服務(wù)。
(2)熱備集群軟件
熱備集群軟件主要負(fù)責(zé)雙控陣列的故障監(jiān)測(cè)、故障切換和緩存數(shù)據(jù)備份等功能。熱備集群軟件主要包括:虛擬IP、共享卷組、復(fù)制邏輯卷和腦裂等多種技術(shù)[5]。
為了讓陣列更大限度提高硬盤利用率,實(shí)現(xiàn)故障快速重構(gòu),在熱備集群軟件中還加入了RAID2.0 管理技術(shù)。利用RAID2.0管理技術(shù),可以將陣列中的所有存儲(chǔ)資源進(jìn)行池化,從而更加高效地實(shí)現(xiàn)數(shù)據(jù)保護(hù)。
(3)Web 配置管理軟件
Web 配置管理軟件采用SNMP 管理協(xié)議。它采用獨(dú)特的方式使網(wǎng)絡(luò)管理者和代理進(jìn)程之間相互作用,來(lái)實(shí)現(xiàn)對(duì)遠(yuǎn)程資源的訪問及控制??勺層脩舾奖愕厥褂秒p控陣列,使其置于網(wǎng)絡(luò)管理之下。在本文所研究的雙控陣列中,用戶可通過(guò)管理網(wǎng)絡(luò)登錄WEB 頁(yè)面,遠(yuǎn)程配置管理陣列。
為擺脫國(guó)外大廠商對(duì)高端存儲(chǔ)行業(yè)的壟斷,突破高可用存儲(chǔ)核心技術(shù),研制一款自主可控的高可用存儲(chǔ)陣列非常重要。本文研究的自主可控高端雙控陣列,具有良好的擴(kuò)展功能,支持基于高速網(wǎng)絡(luò)的海量數(shù)據(jù)共享,數(shù)據(jù)訪存高效、安全、可靠,可滿足軍用云計(jì)算、關(guān)鍵領(lǐng)域大數(shù)據(jù)應(yīng)用等大規(guī)模存儲(chǔ)需求。
但在國(guó)產(chǎn)處理器性能不足的前提下,還存在如何提高網(wǎng)絡(luò)訪問效率、如何更好地使用RAID2.0 技術(shù)、如何做好全局負(fù)載均衡等問題,解決這些問題將成為下一步研究的主要內(nèi)容。