Flash-Verschleißmanagement

Der interne Speicher von Android Automotive nutzt eine Embedded MultiMediaCard (eMMC) mit Tausenden von Lösch-/Schreibzyklen; Bei einem Ausfall des eMMC kann das System unbrauchbar werden. Da Fahrzeuge eine lange Lebensdauer haben (in der Regel mehr als 10 Jahre), muss das eMMC äußerst zuverlässig sein. Auf dieser Seite wird das eMMC-Verhalten beschrieben und wie OEMs das Risiko eines eMMC-Ausfalls verringern (und so ausgefallene Android-Automotive-Systeme vermeiden) können.

eMMC-Verhalten

eMMC-Geräte verwenden Wear-Leveling-Techniken, um Lösch-/Schreibbeschränkungen zu umgehen, indem sie Daten anordnen und Schreibvorgänge gleichmäßig über das System verteilen (damit kein einzelner Block aufgrund intensiver Schreibvorgänge ausfällt). Die geschätzte Lebensdauer von eMMC hängt ab von:

  • Anzahl der Schreibvorgänge . Bei Telefonen kann die in den internen Speicher geschriebene Datenmenge mehr als 10 GB pro Tag betragen. Bei Automotive-Implementierungen liegen uns aufgrund begrenzter Apps keine realen Daten darüber vor, wie viele Daten geschrieben werden. Wenn Benutzer jedoch hochwertige Musik streamen und die Navigation verwenden, beobachten wir, dass jede Minute 50 MB Daten auf eMMC geschrieben werden. In Zukunft werden wir möglicherweise andere Arten von schreibintensiven Apps haben, beispielsweise Dashboard-Kamera-Apps, die kontinuierlich Videos aufzeichnen und speichern. Darüber hinaus handelt es sich bei einigen Fahrzeugen um Gemeinschaftsfahrzeuge, die mehrere Stunden am Tag genutzt werden. Aus diesen und anderen Gründen gehen wir davon aus, dass Android Automotive-Implementierungen mehr eMMC-Schreibvorgänge haben als ein Telefon.
  • Muster schreiben . Schreib- und Löschvorgänge erfolgen blockweise. Das häufige Schreiben von Daten in kleinen Blöcken beansprucht die eMMC schneller als das seltenere Schreiben derselben Datenmenge in größeren Blöcken.
  • Verfügbare Größe von eMMC . Eine größere Speichergröße bedeutet, dass der Wear-Leveling-Algorithmus die Schreibvorgänge auf eine größere Anzahl von Blöcken verteilen kann.
  • Verschleißausgleichstechniken.
  • Umweltfaktoren . Beispiele hierfür sind ein Betriebstemperaturbereich von üblicherweise -20 bis 85 Grad Celsius; Temperaturen außerhalb dieses Bereichs könnten die Lebensdauer des eMMC weiter verkürzen.

Für eine eMMC mit 16 GB nutzbarem Speicherplatz und 3.000 Lösch-/Schreibzyklen schätzen wir Folgendes:

Täglich schreibt 16 Gigabyte 32 GB
Geschätzte Lebensdauer 10 Jahre 5 Jahre

Allerdings würde das System lange vor der vollständigen Abnutzung des eMMc nicht mehr ordnungsgemäß funktionieren, da die nutzbare Speichergröße abnimmt, und die Lebensdauer des eMMC könnte je nach Ausgleichstechnik und verwendeten Schreibmustern sogar noch kürzer sein. Darüber hinaus berücksichtigt diese Schätzung nicht die Auswirkungen von sich schlecht verhaltenden oder bösartigen Apps, die Automobilsysteme angreifen könnten, indem sie ohne besondere Berechtigungen große Blöcke Junk-Daten in eMMC schreiben.

Um einen möglichen eMMC-Fehler zu erkennen, bevor er tatsächlich auftritt, sollte eine ordnungsgemäße Überwachung des Speicherzustands als Teil der allgemeinen Systemzustandsüberwachung integriert werden

Implementierung

Android O unterstützt Funktionen, die es OEMs ermöglichen, den internen Speicher von Android Automotive zu schützen und zu überwachen und dessen Lebensdauer zu verlängern.

Beschränken Sie Apps von Drittanbietern

Um den internen Speicher des Android Automotive-Systems zu schützen, können OEMs mit Android O konfigurieren, ob Apps von Drittanbietern auf dem internen Speicher installiert werden können (Apps können nur auf die Partition schreiben, auf der sie installiert wurden). Legen Sie zum Konfigurieren die folgende Konfiguration im Ressourcen-Overlay fest:

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

Reduzieren Sie den Blitzverschleiß

OEMs, die über den Flash-Verschleiß des internen Speichers besorgt sind, können auch eine SD-Karte hinzufügen, die schnell genug ist, um als übernommener Speicher verwendet zu werden. Die SD-Karte zeigt folgendes Verhalten:

  • Bei der Übernahme ist die SD-Karte verschlüsselt und eignet sich sicher zum Speichern von App-Daten.
  • Der SD-Kartensteckplatz muss sich an einem sicheren Ort befinden (es wird nicht erwartet, dass Benutzer die SD-Karte häufig entfernen).
  • Die SD-Karte kann nicht für die Datenübertragung zwischen Fahrzeugsystemen und einem Computer verwendet werden.
  • Das Auswerfen der SD-Karte hat keine Auswirkungen auf ein laufendes System. Es sollte jedoch nicht entfernt werden, es sei denn, es muss ersetzt werden.

Um sicherzustellen, dass Apps von Drittanbietern (die von Auto-App-Entwicklern erstellt wurden) auf der SD-Karte installiert werden können, wenn das Auto dies erfordert, müssen Auto-App-Entwickler android: installLocation =["auto" | "preferExternal"] in der Manifestdatei der App.

Wenn das Auto die Installation von Drittanbieter-Apps im internen Speicher nicht zulässt (wie unter „Drittanbieter-Apps einschränken“ beschrieben), schlägt die App-Installation ohne dieses Flag (oder wenn die Einstellung installLocation =internalOnly konfiguriert ist) fehl.

Erhalten Sie Festplattenmetriken mit storaged

Android O führt storaged ein, einen neuen Systemdienst, der Festplatten- und eMMc-Metriken abtastet und veröffentlicht, z. B. Informationen zur gesamten Festplattennutzung, zur Schätzung der eMMC-Lebensdauer und Festplatten-E/A-Statistiken pro App. OEMs können diese Informationen verwenden, um Benutzer zu warnen, wenn der interne Speicher auszufallen beginnt oder wenn bestimmte Apps zu viele Festplatten-I/Os durchführen. Einzelheiten finden Sie unter Implementieren von storaged .

Validierung

Diese Funktion wird in den PackageManager Tests getestet.