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