1. 程式人生 > >Android Automotive 中的快閃記憶體磨損管理 emmc

Android Automotive 中的快閃記憶體磨損管理 emmc

Android Automotive 中的快閃記憶體磨損管理

Android Automotive 內部儲存裝置使用了支援上千次清空/寫入週期的嵌入式多媒體卡 (eMMC);如果 eMMC 發生故障,系統可能會變得無法使用。由於汽車的使用壽命較長(通常為 10 年以上),因此 eMMC 必須非常穩定可靠。本頁面介紹了 eMMC 行為,以及 OEM 如何降低 eMMC 發生故障的風險(從而避免 Android Automotive 系統發生故障)。

eMMC 行為

eMMC 裝置使用耗損均衡技術來解決清空/寫入限制的問題,具體方法是在整個系統內均勻地放置資料和分配寫入操作(避免單個塊因密集寫入而發生故障)。eMMC 的預計使用壽命取決於以下因素:

  • 寫入量。在手機上,每天寫入內部儲存裝置的資料量可能會超過 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 的內部儲存裝置,並延長其使用壽命。

限制第三方應用

為了保護 Android Automotive 系統的內部儲存裝置,Android O 支援 OEM 配置是否允許第三方應用安裝在內部儲存裝置中(應用只能向其安裝所在的分割槽寫入資料)。要進行配置,請在資源疊加層中設定以下配置:

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

 

減少快閃記憶體磨損

如果 OEM 擔心內部儲存裝置上的快閃記憶體磨損問題,也可以增加 SD 卡,SD 卡支援足夠快的資料寫入速度,可用作合併儲存裝置。SD 卡具有以下行為:

  • 合併時,SD 卡會被加密,可以安全儲存應用資料。
  • SD 卡槽必須位於安全的位置(不要讓使用者頻繁移除 SD 卡)。
  • SD 卡不能用於在 Automotive 系統和計算機之間傳輸資料。
  • 彈出 SD 卡不會影響正在執行的系統。不過,除非需要更換,否則不應移除 SD 卡。

要確保第二方應用(由汽車應用開發者構建的應用)可以安裝在 SD 卡上(如果汽車提供授權的話),汽車應用開發者必須將 android:installLocation=["auto" | "preferExternal"] 納入應用的清單檔案中。

如果汽車禁止將第三方應用安裝在內部儲存裝置上(如限制第三方應用中所述),則在沒有上述標記(或者如果配置了 installLocation=internalOnly 設定)的情況下,應用安裝將會失敗。

使用 storaged 獲取磁碟指標

Android O 中引入了 storaged,這是一個新的系統服務,會對磁碟指標和 eMMc 指標進行取樣併發布,例如有關總體磁碟使用情況、估算的 eMMC 使用壽命和磁碟 I/O 統計資料(按應用統計)的資訊。當內部儲存裝置開始出現故障或特定應用執行的磁碟 I/O 過多時,OEM 可以使用這些資訊來向用戶發出警告。有關詳情,請參閱實現 storaged