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