容錯是嵌入式系統的圣杯,特別是對于軍事和工業應用,在這些應用中,實時操作系統很常見,停機時間成本高昂。然而,最大限度地減少停機時間說起來容易做起來難 - 尤其是在存儲方面。
幾十年來,使用獨立磁盤冗余陣列 (RAID) 技術的冗余存儲一直在企業級流行,但嵌入式系統的大小、重量和計算限制使得在該部門實施起來變得更加困難。最近,高密度 SSD 在越來越小的外形尺寸中盛行,使得即使在緊湊的嵌入式系統中也可以實現存儲冗余。隨著超緊湊的硬件RAID控制器,我們可能正在進入一個新時代,在這個時代,高可用性的嵌入式存儲不再是矛盾的。
在創建可靠的存儲系統時,冗余是關鍵。自 20 世紀 90 年代以來,使用 RAID 鏡像磁盤一直是常見的做法,RAID 是一種用于跨驅動器鏡像數據的標準化系統,允許構建容錯存儲系統 - 即使使用相對便宜的硬件也是如此。如果驅動器發生故障,其鏡像備份可以接管,從而在實施良好的系統中實現最少甚至沒有停機時間。
雖然RAID對服務器應用程序很有意義,但在嵌入式系統級別實現它是一個挑戰。在SSD普及之前,硬盤驅動器是主要的存儲介質。它們的尺寸和重量意味著對于大多數(如果不是全部)嵌入式應用程序來說,擁有冗余驅動器是不可能的。
當固態硬盤進入市場時,RAID仍然難以實施。閃存存儲最初非常昂貴,對于許多應用程序來說,冗余嵌入式存儲的成本過高。即使使用SSDS,尺寸也是一個問題,因為早期的SSD并不總是比它們更換的硬盤驅動器小。
傳統上,管理RAID所需的計算能力需要笨重的硬件RAID控制器(對于空間受限的系統不切實際)或軟件RAID控制器。雖然軟件RAID控制器在節省空間方面是有意義的,但對于嵌入式系統來說,它并不總是正確的選擇。嵌入式計算機通常是大小和能量受限的系統,無法承受運行RAID軟件的CPU和內存開銷。
可靠性與容錯
由于在嵌入式系統中實現存儲冗余存在各種挑戰,因此最大限度地減少嵌入式存儲的停機時間傳統上側重于可靠性而不是容錯。通過確保使用高質量的組件并設計具有更高平均故障時間(MTTF)的可靠系統,可以延長使用壽命和運行時間。
機械硬盤容易出現多種故障模式。振動、沖擊和普通的舊磨損意味著驅動器是否會發生故障,而是何時發生故障。制造可靠的硬盤意味著使用更高質量的組件和堅固的機械設計,以更好地承受沖擊和振動。
如今的固態硬盤采用固態設計,可消除機械問題作為故障模式,但在驅動控制器或存儲介質級別仍可能發生故障。閃存單元的寫入周期數有限,然后單元不再準確存儲位狀態。因此,雖然閃光燈在面對沖擊和振動時很堅固,但需要仔細監控固態硬盤的寫入耐久性。
因此,對于固態硬盤,提高可靠性需要使用工業驅動器,這些驅動器具有針對可靠性和寫入耐久性(而不是純性能)而優化的驅動器控制器,以及使用更高等級的閃存。工業系統通常不使用消費級多級單元(MLC)閃存,而是使用單級單元(SLC)或類似SLC的閃存,如iSLC。這些更高等級的閃存比MLC閃存長,可持續數千個寫入周期,從而大大延長了存儲使用壽命。
雖然提高可靠性始終是工業系統的主要目標,但真正的彈性也需要容錯能力。要了解如何創建容錯,我們只需要查看企業數據中心 - 其中停機時間可能花費數千至數百萬美元。在這些關鍵任務環境中,可靠的組件與容錯設計相結合,以創建高度可用的系統。
可用性(可被視為最大限度地減少停機時間)通過兩種方式進行處理。第一種方法是延長系統的使用壽命,即提高可靠性。另一種方法是減少恢復系統所需的時間,從而提高容錯能力。
容錯嵌入式存儲
容錯存儲需要存儲冗余 - 沒有辦法繞過它。值得慶幸的是,如今,SSD和RAID控制器的大小都大大縮小了。
[圖1|像這樣的M.2固態硬盤M.2 3SE3驅動器將高達32GB的存儲空間打包成一個微小的22x42x3.5mm外形]
雖然SSD最初與他們更換的3.5英寸硬盤驅動器大小相同,但今天的mSATA和M.2外形尺寸的SSD甚至使2.5英寸筆記本電腦驅動器看起來像超大的龐然大物。這些緊湊型 SSD 的尺寸不到撲克牌的一半,其厚度以毫米為單位。
RAID控制器也經歷了嚴重的節食。過去需要完整 PCIe 卡的功能現在可以在 SoC 型芯片上實現。當與正確的固件配對時,新一代RAID控制器旨在與SSD配合使用,而不是與SSD配合使用。
對于當今的嵌入式系統設計人員來說,市場上有許多適用于各種存儲外形規格的選項:
[圖2 |這款 E2SS-32R2 xRAID 控制器采用 2.5 英寸驅動器外殼,將雙 M.2 SSD 陣列虛擬化為單個 2.5 英寸驅動器。
對于具有現有 2.5 英寸驅動器插槽的大型系統,這些 AID 控制器模擬 2.5 英寸磁盤。它們由一個硬件 RAID 控制器組成,該控制器具有兩個用于冗余 SSD 的 mSATA 或 M.2 插槽,可以配置為 RAID 1 或 RAID 0 配置以提高性能,它們顯示為主機系統的普通 2.5 英寸驅動器,同時提供冗余和容錯能力,或者在 RAID 0 的情況下提供更高的性能。
[圖3|這款 EGSS-32R1 RAID 控制器集成在 22x42x11mm M.2 外形中,是目前市面上最小的 RAID 控制器卡。
對于較小的系統,mSATA 或 M.2 接口可以提供當今最緊湊的 RAID 配置之一。就像 2.5 英寸磁盤更換一樣,mSATA 或 M.2 RAID 控制器插入相應的接口并呈現單個驅動器。實際上,它通過與兩個 SATA 驅動器的物理連接提供存儲冗余。
這些 SATA 驅動器可以是使用柔性電纜連接的正常大小的 SATA 驅動器,也可以是為了獲得最大的空間效率,SATADOM 驅動器是直接連接到 SATA 連接器的緊湊型 SSD。因諾迪斯克的 SATADOM 驅動器具有從垂直到水平的各種物理配置,以適應各種嵌入式系統。
[圖4|像這樣的SATADOM驅動器因諾迪斯克SH 3SE3有垂直和水平配置,以適應空間受限的嵌入式系統]
雖然對于大多數低功耗嵌入式系統來說,這不是一種選擇,但具有嚴重空間限制的高端嵌入式PC可以考慮將雙 SSD與軟件RAID結合使用。mSATA、M.2 和 SATADOM 固態硬盤的緊湊特性使其成為終極的緊湊型 RAID 配置,但軟件 RAID 的 CPU 和內存使其僅適用于具有支持此配置資源的高端嵌入式系統。
實施高可用性嵌入式存儲
容錯冗余 RAID 存儲與可靠的工業級 SSD 驅動器(如 SLC 或 iSLC 級 SSD)相結合,使嵌入式系統能夠實現真正的高可用性。可靠性(故障前的時間)和容錯(修復時間)都得到了解決,從而最大限度地減少了存儲子系統的停機時間。
容錯功能也可以單獨使用,適用于 MLC 級 SLC。對于低寫入周期應用程序,這是一種經濟實惠且非常有效的方法,可最大限度地減少停機時間。
雖然這是一個漫長而艱巨的旅程,但 SSD 和 RAID 控制器的小型化使當今的嵌入式系統最終能夠實現真正的容錯存儲。
審核編輯:郭婷
-
控制器
+關注
關注
112文章
16402瀏覽量
178591 -
嵌入式
+關注
關注
5087文章
19148瀏覽量
306182 -
服務器
+關注
關注
12文章
9237瀏覽量
85666
發布評論請先 登錄
相關推薦
評論