0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使嵌入式存储具有容错能力

星星科技指导员 来源:嵌入式计算设计 作者:C.C. Wu 2022-10-24 11:11 次阅读

容错是嵌入式系统的圣杯,特别是对于军事和工业应用,在这些应用中,实时操作系统很常见,停机时间成本高昂。然而,最大限度地减少停机时间说起来容易做起来难 - 尤其是在存储方面。

几十年来,使用独立磁盘冗余阵列 (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

    文章

    16333

    浏览量

    177813
  • 嵌入式
    +关注

    关注

    5082

    文章

    19107

    浏览量

    304829
  • 服务器
    +关注

    关注

    12

    文章

    9123

    浏览量

    85331
收藏 人收藏

    评论

    相关推荐

    嵌入式工程师常用的开发工具有哪些?

    项目管理和调试。IAR Embedded Workbench 也是广受欢迎的 IDE,具有出色的优化能力和调试工具,能够帮助工程师快速开发出高质量的嵌入式软件。 二、编译器 编译器将高级语言
    发表于 12-20 15:29

    新手怎么学嵌入式?

    基本的概念。嵌入式系统是一种将计算机技术嵌入到特定设备中的系统,它通常具有特定的功能和有限的资源。你需要学习一些计算机基础知识,如数据结构、操作系统、计算机组成原理等。这些知识将帮助你理解嵌入
    发表于 12-12 10:51

    什么是嵌入式人工智能

    嵌入式人工智能的目标是使嵌入式系统具备智能化的感知、分析和响应能力,从而实现自主决策、自适应学习和智能交互等功能,以提高系统的性能、效率和用户体验.
    的头像 发表于 12-11 09:23 258次阅读
    什么是<b class='flag-5'>嵌入式</b>人工智能

    嵌入式主板是什么意思?嵌入式主板全面解析

    嵌入式主板,通常被称为嵌入式系统的核心组件,是一种用于控制和数据处理的计算机硬件,其设计旨在嵌入特定设备中执行专门任务。嵌入式主板如同是设备的“大脑”,主要功能是根据需要管理和控制设备
    的头像 发表于 09-30 10:05 451次阅读

    嵌入式系统的未来趋势有哪些?

    处理器、增大存储容量和提高时钟频率等措施。更强的处理能力将使得嵌入式系统能够胜任更高级的应用场景,比如自动驾驶汽车当中的复杂决策支持系统。 3. 更低的功耗 尽管处理能力不断增强,但在
    发表于 09-12 15:42

    嵌入式linux开发的基本步骤有哪些?

    之前,首先需要选择合适的硬件平台。硬件选择需要考虑以下几个方面: 1.1 处理器 嵌入式Linux开发需要一个处理器,常见的处理器有ARM、MIPS、PowerPC等。选择处理器时,需要考虑处理器的性能、功耗、成本等因素。 1.2 存储
    的头像 发表于 09-02 09:11 480次阅读

    嵌入式linux开发板怎么操作

    嵌入式Linux开发板是一种基于Linux操作系统的嵌入式系统开发平台。它通常包括一个处理器、内存、存储器、输入/输出接口等硬件组件,以及一个基于Linux的操作系统和开发工具。 嵌入式
    的头像 发表于 09-02 09:09 373次阅读

    嵌入式工控机的优势与示例

    和可靠性进行了优化,并且通常具有固定用途,运行专用软件来控制和监控设备的操作。嵌入式工控机有多种形式,从具有最小处理能力的微控制器到具有更大
    的头像 发表于 07-24 16:25 394次阅读
    <b class='flag-5'>嵌入式</b>工控机的优势与示例

    EVASH Ultra EEPROM:助力ChatGPT等AI应用的嵌入式存储解决方案

    EVASH Ultra EEPROM:助力ChatGPT等AI应用的嵌入式存储解决方案
    的头像 发表于 06-26 18:13 902次阅读

    如何提升嵌入式编程能力?

    如何提升嵌入式编程能力? 要提升嵌入式编程的能力,可以从以下几点学习: 1. 理解硬件:熟悉你正在编程的硬件平台,包括微控制器、处理器、内存、输入/输出设备等基础理论与应用。 2. 学
    发表于 06-21 10:01

    嵌入式系统软硬件基础知识大全

    的重要方面。不同的处理器架构,如CISC、RISC和ARM,具有不同的指令集和执行效率。了解这些架构和指令集的特点,可以帮助我们更好地选择和使用处理器。存储器是嵌入式系统中用于存储数据
    发表于 05-09 14:12

    嵌入式系统的外设器件选择

    ,都可视系统的实际需求来进行选择。本文将为您介绍上述外设器件的类型与选择的考虑要素。 存储器的种类众多且特性不同 存储器 在嵌入式系统中,[存储器]是一个关键的器件,它用于
    的头像 发表于 05-05 09:38 897次阅读
    <b class='flag-5'>嵌入式</b>系统的外设器件选择

    再谈嵌入式实时操作系统

    由于嵌入式处理器早期功能单一且运算能力不高,嵌入式应用已不能满足各个领域不断增长的需求。嵌入式操作系统应运而生,嵌入式操作系统可以支持新时代
    的头像 发表于 04-09 17:27 788次阅读
    再谈<b class='flag-5'>嵌入式</b>实时操作系统

    嵌入式工控机性能特点 嵌入式工控机应用场景

    嵌入式工控机性能特点 嵌入式工控机应用场景 嵌入式工控机是一种专门设计用于工业控制系统的计算机设备。它具有与传统计算机不同的性能特点,并且在各种工业领域中有广泛的应用场景。 一、
    的头像 发表于 02-04 11:35 680次阅读

    嵌入式软件开发和软件开发的区别

    之间的区别。 硬件环境和资源限制: 嵌入式系统通常运行在资源有限的嵌入式设备上,如单片机、嵌入式开发板或微控制器等。这些设备通常具有有限的处理能力
    的头像 发表于 01-22 15:27 2275次阅读