Android Automotive 中的闪存磨损管理 emmc

Android Automotive 中的闪存磨损管理

Android Automotive 内部存储设备使用了支持上千次清空/写入周期的嵌入式多媒体卡 (eMMC);若是 eMMC 发生故障,系统可能会变得没法使用。因为汽车的使用寿命较长(一般为 10 年以上),所以 eMMC 必须很是稳定可靠。本页面介绍了 eMMC 行为,以及 OEM 如何下降 eMMC 发生故障的风险(从而避免 Android Automotive 系统发生故障)。html

eMMC 行为

eMMC 设备使用耗损均衡技术来解决清空/写入限制的问题,具体方法是在整个系统内均匀地放置数据和分配写入操做(避免单个块因密集写入而发生故障)。eMMC 的预计使用寿命取决于如下因素:android

  • 写入量。在手机上,天天写入内部存储设备的数据量可能会超过 10GB。在 Android Automotive 实现中,因为应用数量有限,咱们没法提供有关会有多少数据写入的真实数据。不过,据咱们观察,当用户流式传输高品质音乐和使用导航时,每分钟写入 eMMC 的数据有 50MB。将来,可能会出现其余类型的写入密集型应用,例如持续录制和存储视频的中控台摄像头应用。另外,有些汽车是天天都会有几个小时处于行使状态的共享车辆。因为这些缘由及其余缘由,咱们预计 Android Automotive 实现会面临比手机更多的 eMMC 写入量。
  • 写入模式。写入和清空操做是在块中进行的。 与不太频繁地在较大的区块中写入数据相比,在较小的区块中频繁地写入相同的数据量会更快地磨损 eMMC。
  • eMMC 的可用空间。较大的存储空间意味着耗损均衡算法能够将写入分摊到较多的块中。
  • 耗损均衡技术。
  • 环境因素。例如:工做温度范围一般介于 -20 和 85 摄氏度之间;若是温度超出此范围,eMMC 的使用寿命会进一步缩短。

对于具备 16GB 可用空间和 3000 次清空/写入周期的 eMMC,咱们估算的数据以下:算法

日写入量 16GB 32GB
预计使用寿命 10 年 5 年

不过,随着可用存储空间的减小,系统可能会早在 eMMc 完全磨损以前就中止正常运行,而且根据所使用的均衡技术和写入模式,eMMC 的使用寿命甚至可能会更短。此外,这方面的估算并无将行为异常的应用或恶意应用的影响考虑在内,这些应用可能会在没有特殊权限的状况下将大量垃圾数据写入 eMMC 来攻击 Automotive 系统。安全

要在潜在的 eMMC 故障实际发生以前就检测出来,应将适当的存储设备运行情况监控功能整合到总体系统运行情况监控功能中。并发

实现

借助 Android O 支持的功能,OEM 能够保护和监控 Android Automotive 的内部存储设备,并延长其使用寿命。app

限制第三方应用

为了保护 Android Automotive 系统的内部存储设备,Android O 支持 OEM 配置是否容许第三方应用安装在内部存储设备中(应用只能向其安装所在的分区写入数据)。要进行配置,请在资源叠加层中设置如下配置:ide

<bool name="config_allow3rdPartyAppOnInternal">false</bool>

 

减小闪存磨损

若是 OEM 担忧内部存储设备上的闪存磨损问题,也能够增长 SD 卡,SD 卡支持足够快的数据写入速度,可用做合并存储设备。SD 卡具备如下行为:ui

  • 合并时,SD 卡会被加密,能够安全存储应用数据。
  • SD 卡槽必须位于安全的位置(不要让用户频繁移除 SD 卡)。
  • SD 卡不能用于在 Automotive 系统和计算机之间传输数据。
  • 弹出 SD 卡不会影响正在运行的系统。不过,除非须要更换,不然不该移除 SD 卡。

要确保第二方应用(由汽车应用开发者构建的应用)能够安装在 SD 卡上(若是汽车提供受权的话),汽车应用开发者必须将 android:installLocation=["auto" | "preferExternal"] 归入应用的清单文件中。加密

若是汽车禁止将第三方应用安装在内部存储设备上(如限制第三方应用中所述),则在没有上述标记(或者若是配置了 installLocation=internalOnly 设置)的状况下,应用安装将会失败。spa

使用 storaged 获取磁盘指标

Android O 中引入了 storaged,这是一个新的系统服务,会对磁盘指标和 eMMc 指标进行采样并发布,例若有关整体磁盘使用状况、估算的 eMMC 使用寿命和磁盘 I/O 统计数据(按应用统计)的信息。当内部存储设备开始出现故障或特定应用执行的磁盘 I/O 过多时,OEM 可使用这些信息来向用户发出警告。有关详情,请参阅实现 storaged

相关文章
相关标签/搜索