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 控制器的小型化使当今的嵌入式系统最终能够实现真正的容错存储。

审核编辑:郭婷

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

    关注

    114

    文章

    17638

    浏览量

    190204
  • 嵌入式
    +关注

    关注

    5186

    文章

    20145

    浏览量

    328719
  • 服务器
    +关注

    关注

    13

    文章

    10094

    浏览量

    90870
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    ARM嵌入式这样学

    的内核就是ARM内核,它的主频高很多,普通的都有几百M。CPU缓存大,分有很多级的流水处理线,这样大大提高了CPU利用率。这种IC的资源足以让一个嵌入式操作系统正常跑起来,WINCE, LINUX
    发表于 12-04 07:48

    嵌入式和FPGA的区别

    开发中做出更明智的技术选择。 基本概念解析 嵌入式系统(Embedded System)是一种专用计算机系统,通常包含微处理器/微控制器、存储器和专用外围设备,被设计用于执行特定功能。它强调
    发表于 11-19 06:55

    嵌入式开发的关键点介绍

    嵌入式开发的关键点: 1. 硬件限制: 嵌入式系统通常具有严格的硬件限制,例如处理器速度、内存和存储容量等。因此,嵌入式开发需要考虑这些
    发表于 11-13 08:12

    CPM系列核心板,一款存储灵活的嵌入式核心板

    嵌入式产品开发中,存储空间不足是一个常见问题。一旦硬件设计定型,后期想扩容往往面临成本飙升、周期拉长、可靠性风险等难题。本文将介绍一种创新的解决方案,帮助开发者灵活应对存储空间不足的挑战。硬件定型
    的头像 发表于 08-13 11:34 384次阅读
    CPM系列核心板,一款<b class='flag-5'>存储</b>灵活的<b class='flag-5'>嵌入式</b>核心板

    盘点嵌入式就业所需要的技能有哪些?

    硬件结构,如处理器、存储器、传感器等。 - 具备良好的沟通能力和团队合作精神,能够与不同领域的工程师协同工作。 3.智能硬件行业: - 熟悉嵌入式编程语言,如C/C++、Python等。 - 掌握模拟
    发表于 08-11 15:43

    入行嵌入式应该怎么准备?

    架构、总线协议和存储器管理等概念的理解也是必不可少的。 三、操作系统嵌入式系统通常需要运行一个实时操作系统(RTOS)或者一个精简版的操作系统。熟悉RTOS的概念和使用方法,能够编写多任务和实时
    发表于 08-06 10:34

    Linux嵌入式和单片机嵌入式的区别?

    用于对实时性要求高、资源需求较低的场合,如家电控制、工业自动化、小型机器人等。 Linux嵌入式 :适用于需要复杂功能、高处理能力的应用,如智能手机、平板电脑、智能电视、汽车电子等。 2. 开发环境
    发表于 06-20 09:46

    入行嵌入式难度大不大?

    入行的难度会相对降低。 兴趣是最好的老师,它会驱使你主动学习和探索。在学习过程中,可以通过参与开源项目、自己动手开发小项目等方式,积累实践经验,提升自己的能力嵌入式系统行业具有广阔的市场前景和良好
    发表于 04-17 10:14

    从eMMC到NAND,嵌入式系统存储的软件优化策略

    嵌入式系统开发领域,存储器作为信息交互的核心载体,其技术特性直接影响着系统性能与稳定性。然而,有些人在面对Linux、安卓等复杂操作系统环境时,理解其存储机制尚存局限,为突破这些技术瓶颈,飞凌
    的头像 发表于 03-13 15:06 911次阅读
    从eMMC到NAND,<b class='flag-5'>嵌入式</b>系统<b class='flag-5'>存储</b>的软件优化策略

    嵌入式机器学习的应用特性与软件开发环境

    设备和智能传感器)上,这些设备通常具有有限的计算能力存储空间和功耗。本文将您介绍嵌入式机器学习的应用特性,以及常见的机器学习开发软件与开发环境。
    的头像 发表于 01-25 17:05 1209次阅读
    <b class='flag-5'>嵌入式</b>机器学习的应用特性与软件开发环境

    嵌入式主板的概述与发展

    随着科技的迅猛发展,嵌入式系统在现代电子产品中扮演着越来越重要的角色。嵌入式主板作为嵌入式系统的核心组件之一,承担着控制、处理和通讯等多种功能。本文将对嵌入式主板的基本概念、构成部分、
    的头像 发表于 01-13 16:30 1180次阅读
    <b class='flag-5'>嵌入式</b>主板的概述与发展

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

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

    新手怎么学嵌入式?

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

    什么是嵌入式人工智能

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

    嵌入式系统开发与硬件的关系 嵌入式系统开发常见问题解决

    系统开发与硬件关系的几个关键点: 硬件依赖性 :嵌入式系统的软件必须能够在特定的硬件上运行,这包括处理器、内存、输入/输出接口等。软件必须能够充分利用硬件的特性,同时绕过其限制。 资源限制 :嵌入式系统通常具有有限
    的头像 发表于 12-09 09:38 1466次阅读