Gestion de l'usure flash

Le stockage interne d'Android Automotive utilise une carte multimédia intégrée (eMMC) avec des milliers de cycles d'effacement/écriture ; si l'eMMC tombe en panne, le système peut devenir inutilisable. Étant donné que les véhicules ont une longue durée de vie (généralement plus de 10 ans), l'eMMC doit être extrêmement fiable. Cette page décrit le comportement de l'eMMC et comment les OEM peuvent réduire le risque de défaillance d'un eMMC (et ainsi éviter la défaillance des systèmes Android Automotive).

comportement eMMC

Les appareils eMMC utilisent des techniques de nivellement d'usure pour contourner les limitations d'effacement/écriture en organisant les données et en répartissant les écritures uniformément sur le système (de sorte qu'aucun bloc ne tombe en panne en raison d'écritures intensives). La durée de vie estimée de l'eMMC dépend de :

  • Nombre d'écritures . Sur les téléphones, la quantité de données écrites sur le stockage interne peut dépasser 10 Go par jour. Concernant les implémentations automobiles, nous ne disposons pas de données réelles sur la quantité de données qui seront écrites en raison du nombre limité d'applications. Cependant, lorsque les utilisateurs diffusent de la musique de haute qualité et utilisent la navigation, nous observons 50 Mo de données écrites sur eMMC chaque minute. À l’avenir, nous pourrions avoir d’autres types d’applications gourmandes en écriture, telles que des applications de caméra de tableau de bord qui enregistrent et stockent en continu des vidéos. De plus, certaines voitures sont des véhicules partagés utilisés plusieurs heures par jour. Pour ces raisons et d’autres, nous nous attendons à ce que les implémentations d’Android Automotive aient plus d’écritures eMMC qu’un téléphone.
  • Écrivez des modèles . Les écritures et les effacements se font par blocs. L'écriture fréquente de données en petits morceaux use l'eMMC plus rapidement que l'écriture de la même quantité de données moins fréquemment et en morceaux plus gros.
  • Taille disponible de l'eMMC . Une taille de stockage plus grande signifie que l'algorithme de nivellement de l'usure peut répartir les écritures sur un plus grand nombre de blocs.
  • Porter des techniques de nivellement.
  • Facteurs environnementaux . Les exemples incluent une plage de températures de fonctionnement allant généralement de -20 à 85 Celsius ; une température au-delà de cette plage pourrait réduire encore davantage la durée de vie de l’eMMC.

Pour une eMMC avec 16 Go d'espace utilisable et 3 000 cycles d'effacement/écriture, nous estimons ce qui suit :

Écrit quotidiennement 16 GB 32 Go
Durée de vie estimée 10 années 5 années

Cependant, le système cesserait de fonctionner correctement bien avant que l'eMMc ne s'use complètement, à mesure que la taille de stockage utilisable diminue, et l'eMMC peut avoir une durée de vie encore plus courte en fonction des techniques de mise à niveau et des modèles d'écriture utilisés. De plus, cette estimation ne prend pas en compte les effets d'applications mal comportées ou malveillantes, qui pourraient attaquer les systèmes automobiles en écrivant de gros blocs de données indésirables sur eMMC sans autorisations spéciales.

Pour détecter une éventuelle défaillance de l'eMMC avant qu'elle ne se produise réellement, une surveillance appropriée de l'état du stockage doit être intégrée dans le cadre de la surveillance globale de l'état du système.

Mise en œuvre

Android O prend en charge des fonctionnalités qui permettent aux OEM de protéger et de surveiller le stockage interne d'Android Automotive et de prolonger sa durée de vie.

Restreindre les applications tierces

Pour protéger le stockage interne du système Android Automotive, Android O permet aux OEM de configurer si des applications tierces peuvent être installées sur le stockage interne (les applications ne peuvent écrire que sur la partition sur laquelle elles ont été installées). Pour configurer, définissez la configuration suivante dans la superposition de ressources :

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

Réduire l'usure du flash

Les constructeurs OEM préoccupés par l'usure du flash sur le stockage interne peuvent également ajouter une carte SD suffisamment rapide pour être utilisée comme stockage adopté. La carte SD a le comportement suivant :

  • Une fois adoptée, la carte SD est cryptée et peut stocker en toute sécurité les données de l'application.
  • La fente pour carte SD doit se trouver dans un endroit sûr (les utilisateurs ne sont pas censés retirer la carte SD fréquemment).
  • La carte SD ne peut pas être utilisée pour transférer des données entre les systèmes automobiles et un ordinateur.
  • L'éjection de la carte SD n'affecte pas un système en cours d'exécution. Cependant, il ne doit pas être retiré, sauf s'il doit être remplacé.

Pour garantir que les applications tierces (celles créées par les développeurs d'applications automobiles) peuvent être installées sur la carte SD si la voiture l'exige, les développeurs d'applications automobiles doivent inclure android: installLocation =["auto" | "preferExternal"] dans le fichier manifeste de l'application.

Si la voiture n'autorise pas l'installation d'applications tierces sur le stockage interne (comme décrit dans Restreindre les applications tierces ), sans cet indicateur (ou si le paramètre installLocation =internalOnly est configuré), l'installation de l'application échoue.

Obtenez des métriques de disque avec le stockage

Android O introduit storaged , un nouveau service système qui échantillonne et publie des métriques de disque et eMMc telles que des informations sur l'utilisation globale du disque, l'estimation de la durée de vie de l'eMMC et les statistiques d'E/S du disque par application. Les OEM peuvent utiliser ces informations pour avertir les utilisateurs lorsque le stockage interne commence à tomber en panne ou lorsque des applications spécifiques effectuent trop d'E/S disque. Pour plus de détails, reportez-vous à Implémenter stocké .

Validation

Cette fonctionnalité est testée dans les tests PackageManager .