容錯是嵌入式系統(tǒng)的圣杯,特別是對于軍事和工業(yè)應(yīng)用,在這些應(yīng)用中,實(shí)時(shí)操作系統(tǒng)很常見,停機(jī)時(shí)間成本高昂。然而,最大限度地減少停機(jī)時(shí)間說起來容易做起來難 - 尤其是在存儲方面。
幾十年來,使用獨(dú)立磁盤冗余陣列 (RAID) 技術(shù)的冗余存儲一直在企業(yè)級流行,但嵌入式系統(tǒng)的大小、重量和計(jì)算限制使得在該部門實(shí)施起來變得更加困難。最近,高密度 SSD 在越來越小的外形尺寸中盛行,使得即使在緊湊的嵌入式系統(tǒng)中也可以實(shí)現(xiàn)存儲冗余。隨著超緊湊的硬件RAID控制器,我們可能正在進(jìn)入一個新時(shí)代,在這個時(shí)代,高可用性的嵌入式存儲不再是矛盾的。
在創(chuàng)建可靠的存儲系統(tǒng)時(shí),冗余是關(guān)鍵。自 20 世紀(jì) 90 年代以來,使用 RAID 鏡像磁盤一直是常見的做法,RAID 是一種用于跨驅(qū)動器鏡像數(shù)據(jù)的標(biāo)準(zhǔn)化系統(tǒng),允許構(gòu)建容錯存儲系統(tǒng) - 即使使用相對便宜的硬件也是如此。如果驅(qū)動器發(fā)生故障,其鏡像備份可以接管,從而在實(shí)施良好的系統(tǒng)中實(shí)現(xiàn)最少甚至沒有停機(jī)時(shí)間。
雖然RAID對服務(wù)器應(yīng)用程序很有意義,但在嵌入式系統(tǒng)級別實(shí)現(xiàn)它是一個挑戰(zhàn)。在SSD普及之前,硬盤驅(qū)動器是主要的存儲介質(zhì)。它們的尺寸和重量意味著對于大多數(shù)(如果不是全部)嵌入式應(yīng)用程序來說,擁有冗余驅(qū)動器是不可能的。
當(dāng)固態(tài)硬盤進(jìn)入市場時(shí),RAID仍然難以實(shí)施。閃存存儲最初非常昂貴,對于許多應(yīng)用程序來說,冗余嵌入式存儲的成本過高。即使使用SSDS,尺寸也是一個問題,因?yàn)樵缙诘腟SD并不總是比它們更換的硬盤驅(qū)動器小。
傳統(tǒng)上,管理RAID所需的計(jì)算能力需要笨重的硬件RAID控制器(對于空間受限的系統(tǒng)不切實(shí)際)或軟件RAID控制器。雖然軟件RAID控制器在節(jié)省空間方面是有意義的,但對于嵌入式系統(tǒng)來說,它并不總是正確的選擇。嵌入式計(jì)算機(jī)通常是大小和能量受限的系統(tǒng),無法承受運(yùn)行RAID軟件的CPU和內(nèi)存開銷。
可靠性與容錯
由于在嵌入式系統(tǒng)中實(shí)現(xiàn)存儲冗余存在各種挑戰(zhàn),因此最大限度地減少嵌入式存儲的停機(jī)時(shí)間傳統(tǒng)上側(cè)重于可靠性而不是容錯。通過確保使用高質(zhì)量的組件并設(shè)計(jì)具有更高平均故障時(shí)間(MTTF)的可靠系統(tǒng),可以延長使用壽命和運(yùn)行時(shí)間。
機(jī)械硬盤容易出現(xiàn)多種故障模式。振動、沖擊和普通的舊磨損意味著驅(qū)動器是否會發(fā)生故障,而是何時(shí)發(fā)生故障。制造可靠的硬盤意味著使用更高質(zhì)量的組件和堅(jiān)固的機(jī)械設(shè)計(jì),以更好地承受沖擊和振動。
如今的固態(tài)硬盤采用固態(tài)設(shè)計(jì),可消除機(jī)械問題作為故障模式,但在驅(qū)動控制器或存儲介質(zhì)級別仍可能發(fā)生故障。閃存單元的寫入周期數(shù)有限,然后單元不再準(zhǔn)確存儲位狀態(tài)。因此,雖然閃光燈在面對沖擊和振動時(shí)很堅(jiān)固,但需要仔細(xì)監(jiān)控固態(tài)硬盤的寫入耐久性。
因此,對于固態(tài)硬盤,提高可靠性需要使用工業(yè)驅(qū)動器,這些驅(qū)動器具有針對可靠性和寫入耐久性(而不是純性能)而優(yōu)化的驅(qū)動器控制器,以及使用更高等級的閃存。工業(yè)系統(tǒng)通常不使用消費(fèi)級多級單元(MLC)閃存,而是使用單級單元(SLC)或類似SLC的閃存,如iSLC。這些更高等級的閃存比MLC閃存長,可持續(xù)數(shù)千個寫入周期,從而大大延長了存儲使用壽命。
雖然提高可靠性始終是工業(yè)系統(tǒng)的主要目標(biāo),但真正的彈性也需要容錯能力。要了解如何創(chuàng)建容錯,我們只需要查看企業(yè)數(shù)據(jù)中心 - 其中停機(jī)時(shí)間可能花費(fèi)數(shù)千至數(shù)百萬美元。在這些關(guān)鍵任務(wù)環(huán)境中,可靠的組件與容錯設(shè)計(jì)相結(jié)合,以創(chuàng)建高度可用的系統(tǒng)。
可用性(可被視為最大限度地減少停機(jī)時(shí)間)通過兩種方式進(jìn)行處理。第一種方法是延長系統(tǒng)的使用壽命,即提高可靠性。另一種方法是減少恢復(fù)系統(tǒng)所需的時(shí)間,從而提高容錯能力。
容錯嵌入式存儲
容錯存儲需要存儲冗余 - 沒有辦法繞過它。值得慶幸的是,如今,SSD和RAID控制器的大小都大大縮小了。

[圖1|像這樣的M.2固態(tài)硬盤M.2 3SE3驅(qū)動器將高達(dá)32GB的存儲空間打包成一個微小的22x42x3.5mm外形]
雖然SSD最初與他們更換的3.5英寸硬盤驅(qū)動器大小相同,但今天的mSATA和M.2外形尺寸的SSD甚至使2.5英寸筆記本電腦驅(qū)動器看起來像超大的龐然大物。這些緊湊型 SSD 的尺寸不到撲克牌的一半,其厚度以毫米為單位。
RAID控制器也經(jīng)歷了嚴(yán)重的節(jié)食。過去需要完整 PCIe 卡的功能現(xiàn)在可以在 SoC 型芯片上實(shí)現(xiàn)。當(dāng)與正確的固件配對時(shí),新一代RAID控制器旨在與SSD配合使用,而不是與SSD配合使用。
對于當(dāng)今的嵌入式系統(tǒng)設(shè)計(jì)人員來說,市場上有許多適用于各種存儲外形規(guī)格的選項(xiàng):

[圖2 |這款 E2SS-32R2 xRAID 控制器采用 2.5 英寸驅(qū)動器外殼,將雙 M.2 SSD 陣列虛擬化為單個 2.5 英寸驅(qū)動器。
對于具有現(xiàn)有 2.5 英寸驅(qū)動器插槽的大型系統(tǒng),這些 AID 控制器模擬 2.5 英寸磁盤。它們由一個硬件 RAID 控制器組成,該控制器具有兩個用于冗余 SSD 的 mSATA 或 M.2 插槽,可以配置為 RAID 1 或 RAID 0 配置以提高性能,它們顯示為主機(jī)系統(tǒng)的普通 2.5 英寸驅(qū)動器,同時(shí)提供冗余和容錯能力,或者在 RAID 0 的情況下提供更高的性能。

[圖3|這款 EGSS-32R1 RAID 控制器集成在 22x42x11mm M.2 外形中,是目前市面上最小的 RAID 控制器卡。
對于較小的系統(tǒng),mSATA 或 M.2 接口可以提供當(dāng)今最緊湊的 RAID 配置之一。就像 2.5 英寸磁盤更換一樣,mSATA 或 M.2 RAID 控制器插入相應(yīng)的接口并呈現(xiàn)單個驅(qū)動器。實(shí)際上,它通過與兩個 SATA 驅(qū)動器的物理連接提供存儲冗余。
這些 SATA 驅(qū)動器可以是使用柔性電纜連接的正常大小的 SATA 驅(qū)動器,也可以是為了獲得最大的空間效率,SATADOM 驅(qū)動器是直接連接到 SATA 連接器的緊湊型 SSD。因諾迪斯克的 SATADOM 驅(qū)動器具有從垂直到水平的各種物理配置,以適應(yīng)各種嵌入式系統(tǒng)。

[圖4|像這樣的SATADOM驅(qū)動器因諾迪斯克SH 3SE3有垂直和水平配置,以適應(yīng)空間受限的嵌入式系統(tǒng)]
雖然對于大多數(shù)低功耗嵌入式系統(tǒng)來說,這不是一種選擇,但具有嚴(yán)重空間限制的高端嵌入式PC可以考慮將雙 SSD與軟件RAID結(jié)合使用。mSATA、M.2 和 SATADOM 固態(tài)硬盤的緊湊特性使其成為終極的緊湊型 RAID 配置,但軟件 RAID 的 CPU 和內(nèi)存使其僅適用于具有支持此配置資源的高端嵌入式系統(tǒng)。
實(shí)施高可用性嵌入式存儲
容錯冗余 RAID 存儲與可靠的工業(yè)級 SSD 驅(qū)動器(如 SLC 或 iSLC 級 SSD)相結(jié)合,使嵌入式系統(tǒng)能夠?qū)崿F(xiàn)真正的高可用性。可靠性(故障前的時(shí)間)和容錯(修復(fù)時(shí)間)都得到了解決,從而最大限度地減少了存儲子系統(tǒng)的停機(jī)時(shí)間。
容錯功能也可以單獨(dú)使用,適用于 MLC 級 SLC。對于低寫入周期應(yīng)用程序,這是一種經(jīng)濟(jì)實(shí)惠且非常有效的方法,可最大限度地減少停機(jī)時(shí)間。
雖然這是一個漫長而艱巨的旅程,但 SSD 和 RAID 控制器的小型化使當(dāng)今的嵌入式系統(tǒng)最終能夠?qū)崿F(xiàn)真正的容錯存儲。
審核編輯:郭婷
-
控制器
+關(guān)注
關(guān)注
114文章
17105瀏覽量
184265 -
嵌入式
+關(guān)注
關(guān)注
5152文章
19670瀏覽量
317516 -
服務(wù)器
+關(guān)注
關(guān)注
13文章
9795瀏覽量
87973
發(fā)布評論請先 登錄
Linux嵌入式和單片機(jī)嵌入式的區(qū)別?
入行嵌入式難度大不大?
嵌入式機(jī)器學(xué)習(xí)的應(yīng)用特性與軟件開發(fā)環(huán)境

嵌入式工程師常用的開發(fā)工具有哪些?
新手怎么學(xué)嵌入式?
什么是嵌入式人工智能

mmc卡在嵌入式系統(tǒng)中的使用
什么是嵌入式?一文讀懂嵌入式主板
AMD 面向嵌入式系統(tǒng)推出高能效 EPYC 嵌入式 8004 系列
嵌入式主板是什么意思?嵌入式主板全面解析
為何嵌入式控制器首選ARMxy?深度解析

嵌入式系統(tǒng)的未來趨勢有哪些?
嵌入式linux開發(fā)的基本步驟有哪些?
嵌入式linux開發(fā)板怎么操作
嵌入式工控機(jī)的優(yōu)勢與示例

評論