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

從eMMC到NAND,嵌入式系統(tǒng)存儲的軟件優(yōu)化策略

嵌入式系統(tǒng)存儲的軟件優(yōu)化策略
嵌入式機器學(xué)習(xí)的應(yīng)用特性與軟件開發(fā)環(huán)境

嵌入式主板的概述與發(fā)展

什么是嵌入式人工智能

評論