1. 程式人生 > >打造全國產儲存系統到底有多難?

打造全國產儲存系統到底有多難?

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

中華民族偉大復興的路上,計算機系統的國產化道路可謂任重道遠。本篇,冬瓜哥就來分析一下,打造一款全國產儲存系統,到底需要哪些部件,以及國產化現狀。

《儲存系統權協議棧總結》一文中,冬瓜哥給出了儲存系統中的權協議棧分析,其可作為一個瞭解儲存系統架構的基礎文章。

目前的儲存系統部件關係基本是這樣的:儲存介質(磁碟、NAND、光碟)--->介質驅動器/控制器(硬碟驅動器控制器、SSD控制器、光碟機控制器)---> I/O介面控制器(SATA/SAS/PCIE) ---> I/O通道擴充套件器/交換器(SAS Expander、PCIE Switch) ---> I/O通道主機匯流排介面卡(SAS/SATA HBA/Raid介面卡)---> CPU/橋片。

在這條完整的I/O路徑上,目前來講,可以說,從頭到尾全國產化,基本看不到邊。

一.  儲存介質和硬碟

先說說機械硬碟,當年長城硬碟算是國產,但是,其內部也並沒有實現全部件國產,曾經嘗試過使用一些國產部件,但是都以失敗告終,不得不換成日產部件,導致成本居高不下,最後夭折,演繹了一段悲情奏鳴曲。從此,再沒有人搞機械硬碟,市場被國外壟斷,如今只剩下三家在玩,而且面對固態硬碟的圍堵,玩也是毫無動力。

再說說固態硬碟,固態硬碟的門檻比機械盤可謂是低得多,其沒有精密機械部件和模擬訊號處理部件,全都在數字域,而SATA/SAS/PCIE,以及SCSI/NVMe協議都是標準開放的,所以用fpga就可以實現一個SSD控制器。但是企業級NAND顆粒和SDRAM顆粒佔了SSD整個成本的90%左右,而目前來講,這方面國產一片空白。紫光的3D NAND據息明年可以量產上市,這是個良好的開端,在固態儲存時代實現彎道超車,從儲存介質開始。

SSD控制器雖然不是SSD的成本的主要核心,卻是其他一切的核心,包括效能、可靠性、相容性、壽命、開發成本等。在這方面國產公司雨後春筍,其中大部分是中低端產品,而中高階產品則一直被國外產品壟斷,包括Intel、Microsemi(收購了PMC的Flashtec系列控制器)、三星以及其它廠商。不得不說,國外的這些SSD控制器在可靠性和成熟度、市場推廣能力和生態建設能力上都更勝一籌,但是其高價格也相對高。

SSD整盤方面,目前國產產品中較為高階的為Memblaze(憶恆創源)的PBlaze5系列產品,其採用了高規格的主控制器和3D NAND顆粒,韌體+演算法完全是自主研發,算是國產SSD廠商中唯一一個可以做到100萬IOPS以上的全系列企業級產品線的。另外,PBlze5系列產品還率先支援了NVMe雙埠設計,為NVMe固態盤在企業儲存系統中的廣泛應用掃清了一道關鍵障礙。企業級儲存系統的一個重要特徵就是雙冗餘部件,什麼都是雙份或者多份。縱使可以使用Raid技術實現硬碟的冗餘,但是為了防止單個控制器故障,其要求單個硬碟提供兩個物理上獨立的介面,分別接入到兩個控制器中的各一個。

0?wx_fmt=png

這個特性在SAS介面上得到了完美的實現,SAS硬碟都是雙埠,但是在新興的NVMe+PCIE介面的固態硬碟上卻一直沒有人推出,直到PBlze5。該特性可以通過軟體控制來變更,也就是原本一個x4 PCIE通道的U.2介面,可以被配置為分裂成2個x2通道的邏輯介面,然後通過背板或者專用聯結器,將這兩路的x2訊號分別導向兩個控制器中的一個上的CPU一端,這樣,當其中一個控制器故障時,依然可以通過另一個控制訪問該盤,從而實現冗餘。

光儲存應該說是儲存領域長期默默無聞的角色,但是俗話說,三十年河東三十年河西。光儲存或許會是將來的一匹黑馬。目前,光儲存系統已經基本上實現了全面國產化。其典型代表為國內的紫晶光儲存系統,紫晶是目前中國最大的藍光光碟和藍光光儲存系統提供商,也是擁有全自主研發的軟硬體和介質的廠商。

紫晶光儲存系統有3個系列:分別為櫃式中低端的BD系列(光碟庫)、櫃式高階的ZL系列(光儲存系統)以及桌面式的MHL系列(光儲存系統)。BD系統更像是以光碟為邊界的光碟管理系統,其上儲存的資料格式符合標準格式,可以被任意標準光碟機讀寫。其他來源的標準格式儲存的光碟也可以納入BD系統的管理範圍。而ZL系列更像是個比較封閉的光儲存系統,其有自己的儲存格式,使用者感知不到光碟,而只感知到NFS/CIFS目錄空間。

0?wx_fmt=png

ZL系列在一個標準機櫃內最多可裝載 12240 張光碟,儲存容量按型號的不同從 180TB 到 1.2PB,屬於業界領先水平。支援可48個光碟機併發,支援萬兆網傳輸。提供資料冗餘技術,使用者可按需要配置冗餘級別,實現資料的最高安全化。MHL系列為4U高度的機架式光儲存系統。

小結:固態硬碟全國產化,指日可待!但是隨著Intel推出3d Xpoint介質和對應產品,NAND介質以及其附屬生態是否會迎來發展瓶頸,也是值得思考和觀察的。

二. I/O通道和Serdes

硬碟的主控前端,是I/O介面控制器,包括SATA、SAS和PCIE這三者。其核心技術並不在於聯結器形態,這些都根不不是事。其核心技術也並不過多的在於其互動協議,因為這些協議都是開放的、標準的,其無非就是一堆事務資料包編碼格式。其真正的核心在SATA/SAS/PCIE的PHY層,或者說,Serdes層,或者說,Serdes中的訊號完整性處理層。

目前,中低端的SAS/SATA I/O控制器基本上被Marvell壟斷,而中高階的(效能、可靠性、擴充套件性都要更高)基本被Microsemi和Broadcom壟斷。Intel一度想把SAS控制器整合到橋片內部,但是最後出了bug,據說也是Serdes方面的問題,後面就再也沒玩了,只搞PCIE,以及後續的Ominipath介面。

那麼,這個Serdes又是什麼東西呢?它是Serial De-Serial的全稱,起作用就是在並行和序列訊號之間進行轉換,按理說這個功能並不算什麼,移位暫存器,或者Mux級聯就可以搞定。關鍵是其轉換完之後的對訊號的整形,包括預加重、去加重、各種均衡(DFE、FIR)等等,以及執行時動態調整均衡引數的能力,這塊需要一些獨特的演算法和經驗積累,甚至需要一小塊DSP進行訊號分析並最終給出新引數。這方面搞不好,就談不上系統穩定性,鏈路時斷時續,或者傳送一些上層訊號時沒有問題,而另一些訊號就會出現問題。Serdes裡面的訊號處理是核心技術,國內目前在這方面還是有相當差距的。

企業級儲存系統中經常使用FC HBA作為前端網路,曾經,國內某個公司推出過一款自研的FC HBA,冬瓜哥並不瞭解其所使用晶片的背景,不好評論,但是基本上其核心知識還是國外的。

I/O路徑上另一個關鍵部件是SAS Expander,這方面目前也是被Microsemi和Broadcom壟斷。其核心技術在於對SAS協議的遵循,以及SAS PHY層中的Serdes中的訊號完整性部分,這是一道很難逾越的技術壁壘。而SAS體系已經是太過成熟的東西,國內也不可能再有人去耕耘這個產業,也根本無法競爭。

I/O介面方面,GenZ目前被廣泛認為是下一代最具潛力的外部I/O+訪存一體化網路。然而,就國內目前的晶片產業來看,也不可能有任何一家公司有實力和魄力去參與GenZ相關晶片的開發,因為GenZ這個生態非常複雜,其牽扯到很多橋接和交換,只有那些有影響力的巨頭公司敢去碰它。目前,PCIE控制器的智慧財產權也都是國外公司的,這些公司緊靠一個IP就可以坐擁智慧財產權和專利費,一本萬利。

再來看SAS/SATA介面的主機匯流排介面卡方面,由於Intel在SAS上搞怕了,或者說Intel也不想把生態給做絕,所以繼續留下這個難啃的骨頭給Microsemi和Broadcom去玩,所以SAS/SATA到PCIE介面的轉接介面卡,也就是SATA/SAS HBA以及帶有Raid功能的Raid卡,目前依然佔據較大的市場份額。這種控制器國內也不可能再有人去自主研發了,因為很難競爭,除非用於一些特定領域要求純國產的領域。後續某個時間點,可能會全面過渡到PCIE,或者GenZ介面上。

再來看看乙太網控制器/網絡卡和交換機。交換機方面已經實現了純國產化,但是Host端的網路控制器基本上都是被國外壟斷。

最後,CPU、I/O橋、SDRAM等,也是任重道遠,國內的龍芯、飛騰、申威等這幾年逐漸發展,逐漸羽翼豐滿,但是在應用場景上非常首先,龍芯從一開始定位到消費市場替代Intel,到轉向軍工、工控等特種領域,申威則更像是一款HPC專用晶片,成功讓神威太湖之光計算機群登頂世界超算平臺。而飛騰目前基於ARM指令集核心構建,面向更加通用的市場,目前發展也很快。

 三. 國產化儲存系統

單個部件/器件,相比整個系統來講,後者的複雜度也是相當驚人的。企業級SAN/NAS儲存系統由於考慮了冗餘性和擴充套件性以及效能,架構比較複雜,其中包含了大量的部件,系統要將多個部件之間有機的聯絡起來,其工作量不亞於單個部件內部的邏輯。

比如對JBOD以及其中硬碟的管理,包括加電順序、各種資訊收集監控、熱插拔管理、壞盤判斷、資料重構、韌體升級等等,這方面牽扯到SES(SCSI Enclosure Service)協議、不同的SAS HBA和Expander的相容性、訊號完整性影響等諸多方面因素的作用。

除了管理此外,還需要優化I/O路徑以提升效能,效能與可管理性、冗餘性、擴充套件性其實是矛盾的,比如,提升了可管理性,可能會影響到效能,必須需要記錄更多更詳細的日誌,此時會耗費更多CPU和記憶體資源。

所以,儲存系統的OS平臺以及其內部執行儲存管理程式(或者統稱為儲存系統的韌體),是整個儲存系統的核心關鍵技術。對於儲存系統而言,只要韌體擁有自主產權,基本上就可以稱之為一款國產儲存系統。因為在系統級層面,底層的各個部件的功能變得更加透明和一致,只要遵循相同的標準,是否國產化其實都能被驅動。所以,系統級考察的東西與部件級是不同的。

更換到國產CPU平臺的步驟是什麼?1.把Intel CPU從主機板上拿下來。2. 換上國產CPU。3. 開機。當然,這是個段子。要換CPU,意味著指令集可能會變化,這就意味著需要重新修改和編譯核心,此外,之前的一些底層裝置驅動程式也需要進行修改移植。除了指令集不同之外,不同CPU的快取架構、記憶體管理、任務管理、中斷機制和流程、I/O和DMA架構可能都不相同,而底層軟體中有些邏輯可能是與CPU的這些架構緊耦合的,需要移植工作。比如網絡卡、SAS HBA/Raid卡、顯示卡各類HBA的驅動,這方面的負擔很重,如果對應板卡廠商不願意或者沒有資源去開發基於該CPU、對應OS版本的驅動的話,CPU廠商倒是可以基於這些板卡的Linux開源驅動進行移植,但是在不知道暫存器手冊和板卡上I/O控制器架構的前提下,很多地方只能猜測,然後通過黑盒測試去窮舉問題,這個過程真是焦頭爛額。

不同CPU的橋片和主機板設計不同,不過,PCB設計其實並不是什麼問題,而外圍橋片上各個部件的驅動程式這方面牽扯到較大工作量的開發和跨平臺移植工作。

另外,BIOS的開發其實也夠喝一大壺了。所以,做個CPU,除了效能高、功耗低、I/O介面擴充套件性高之外,還得要求生態要完善,後者其實才是核心挑戰。

但是,冬瓜哥很欣喜的看到,國內純自研儲存廠商巨集杉科技推出了基於飛騰平臺的自主國產儲存產品。欲知詳情,且聽冬瓜哥下回分解。

0?wx_fmt=png