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

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

3天内不再提示

使嵌入式存储容错

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

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

几十年来,使用独立磁盘冗余阵列 (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 控制器的小型化使当今的嵌入式系统最终能够实现真正的容错存储。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 驱动器
    +关注

    关注

    51

    文章

    7305

    浏览量

    142916
  • 嵌入式
    +关注

    关注

    4981

    文章

    18274

    浏览量

    288353
  • SSD
    SSD
    +关注

    关注

    20

    文章

    2688

    浏览量

    115475
收藏 人收藏

    评论

    相关推荐

    嵌入式热门发展方向有哪些?

    ;POS网络、交通管理、环境工程等领域也都应用了嵌入式系统技术。 2.人工智能: 嵌入式系统在人工智能领域也有着广泛的应用。例如,在机器人技术方面,嵌入式人工智能为机器人技术提供了有力的支持,
    发表于 04-11 14:17

    嵌入式工程师需要掌握哪些技术?

    系统开发的基础。你需要了解数字电路、模拟电路、传感器和执行器的工作原理。此外,对于处理器架构、总线协议和存储器管理等概念的理解也是必不可少的。 3. 操作系统:嵌入式系统通常需要运行一个实时操作系统
    发表于 03-04 16:38

    嵌入式系统发展前景?

    嵌入式系统发展前景? 嵌入式系统,从定义上来说,是一种专用的计算机系统,它被设计用来控制、监视或者帮助操作一些设备、装置或机器。在过去的几年里,嵌入式系统已经取得了显著的进步,而未来,嵌入式
    发表于 02-22 14:09

    嵌入式学习步骤

    嵌入式行业是一个涉及广泛领域的行业,嵌入式、物联网、人工智能、智能与科学、电子信息工程、通信工程、自动化工程、测控、计算机科学等专业在嵌入式系统中使得软件和硬件的结合更加高效,适合从事嵌入式
    发表于 02-02 15:24

    嵌入式自学好书推荐

    嵌入式自学好书推荐 在数字时代的浪潮中,嵌入式系统一直是数字电子产品中的重要组成部分。无论是家用电器、工业控制、汽车电子、医疗保健、军事应用还是物联网,嵌入式系统都无处不在,展现了广阔的前景。随着
    发表于 01-11 15:13

    嵌入式开发学习的十三法则分享

    有限性法则 嵌入式计算不仅需要网络快速、一致的计算,而 且也要求系统能够井然有序地将其执行代码和数 据,存储在一个“ 共同” 的“ 狭小” 的空间内。 四、结构性法则 对于嵌入式系统而言,其
    发表于 12-21 06:32

    嵌入式硬件和软件哪个好?

    嵌入式硬件和软件哪个好? 嵌入式软硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的,首先我们先来看看嵌入式硬件工程师吧! 嵌入式
    发表于 12-05 15:17

    分区存储助力QLC应用到嵌入式存储设备

    分区存储助力QLC应用到嵌入式存储设备
    的头像 发表于 11-27 17:44 230次阅读
    分区<b class='flag-5'>存储</b>助力QLC应用到<b class='flag-5'>嵌入式</b><b class='flag-5'>存储</b>设备

    为什么嵌入式没有35岁危机?

    为什么嵌入式没有35岁危机? 在当今数字化时代,IT行业变化迅速,技术的更新迭代速度惊人。然而,有一个技术领域却能够在这个竞争激烈的行业中稳步前行,而且不受35岁危机所困扰,那就是嵌入式技术
    发表于 11-17 10:33

    什么是嵌入式Linux?

    Linux到底是什么呢? 嵌入式linux 是将日益流行的Linux操作系统进行裁剪修改,使之能在嵌入式计算机系统上运行的一种操作系统。简单来说,是除了电脑之外可以运行程序的设备,将CPU嵌入
    发表于 10-11 13:47

    从事嵌入式工作有哪些优势?

    随着物联网和人工智能的发展,嵌入式技术越来越值钱,学嵌入式的人也越来越多,现在开始入行嵌入式。根据一些权威部门统计,我国目前嵌入式软件人才缺口每年为40万人左右,
    发表于 10-08 15:05

    嵌入式Linux应用开发的完全手册

    嵌入式Linux在嵌入式领域发展迅速、需求旺盛,但是嵌入式Linux 的入门很难。初学者多是自己琢磨,效率不高。学习过程中碰到的问题千奇百怪,解决后却往往发现是极其低级的错误,以作者为例,初学时在
    发表于 09-25 07:12

    嵌入式编程和微控制器应用

    对AtmelAVRRISC处理器的介绍,读者会立即进入嵌入式C语言教程之中。在本书中,读者将学习C语言的变量和常量、运算符和表达式、控制语句、指针和数组、存储器类型、预处理指令、实时方法等等。u3000u3000本书第4
    发表于 09-20 07:52

    嵌入式新手应该怎么学?

    嵌入式新手应该怎么学? 对于嵌入式新手来说,知道一点嵌入式,知道嵌入式大概是做什么的,不是很懂,所以要熟悉掌握嵌入式的概念。我们可以看到网上
    发表于 09-08 10:22

    嵌入式学习路线你知道吗?

    嵌入式学习路线你知道吗? 1打好嵌入式软件编程的基础 这一阶段重点打好嵌入式软件编程的基础,包括学习Linux系统的基本应用,Linux的常用命令、C语言编程基础、常用的数据结构。特别是C语言
    发表于 06-14 16:00