Gestión del desgaste flash

El almacenamiento interno de Android Automotive utiliza una tarjeta MultiMediaCard integrada (eMMC) con miles de ciclos de borrado/escritura; Si el eMMC falla, el sistema puede quedar inutilizable. Como los vehículos tienen una larga vida útil (normalmente más de 10 años), el eMMC debe ser extremadamente fiable. Esta página describe el comportamiento de eMMC y cómo los OEM pueden reducir el riesgo de que un eMMC falle (y así evitar sistemas Android Automotive fallidos).

Comportamiento eMMC

Los dispositivos eMMC utilizan técnicas de nivelación de desgaste para solucionar las limitaciones de borrado/escritura organizando los datos y distribuyendo las escrituras de manera uniforme en todo el sistema (para que ningún bloque falle debido a escrituras intensivas). La vida estimada de eMMC depende de:

  • Cantidad de escrituras . En los teléfonos, la cantidad de datos escritos en el almacenamiento interno puede ser de más de 10 GB por día. En las implementaciones automotrices, no tenemos datos del mundo real sobre la cantidad de datos que se escribirán debido a las aplicaciones limitadas. Sin embargo, cuando los usuarios transmiten música de alta calidad y utilizan la navegación, observamos que se escriben 50 MB de datos en eMMC cada minuto. En el futuro, es posible que tengamos otros tipos de aplicaciones de escritura intensiva, como aplicaciones de cámara en el tablero que graban y almacenan videos continuamente. Además, algunos coches son vehículos compartidos que se utilizan varias horas al día. Por estas y otras razones, esperamos que las implementaciones de Android Automotive tengan más escrituras eMMC que un teléfono.
  • Escribir patrones . Las escrituras y borrados se realizan en bloques. Escribir datos con frecuencia en pequeños fragmentos desgasta el eMMC más rápido que escribir la misma cantidad de datos con menos frecuencia y en fragmentos más grandes.
  • Tamaño disponible de eMMC . Un tamaño de almacenamiento más grande significa que el algoritmo de nivelación de desgaste puede distribuir las escrituras en una mayor cantidad de bloques.
  • Use técnicas de nivelación.
  • Factores ambientales . Los ejemplos incluyen un rango de temperatura de funcionamiento normalmente de -20 a 85 grados Celsius; Una temperatura más allá de este rango podría acortar aún más la vida útil del eMMC.

Para un eMMC con 16 GB de espacio utilizable y 3k ciclos de borrado/escritura, estimamos lo siguiente:

Escrituras diarias 16 GB 32GB
Tiempo de vida estimado 10 años 5 años

Sin embargo, el sistema dejaría de funcionar correctamente mucho antes de que el eMMc se desgastara por completo a medida que disminuye el tamaño de almacenamiento utilizable, y el eMMC puede tener una vida útil aún más corta dependiendo de las técnicas de nivelación y los patrones de escritura utilizados. Además, esta estimación no considera los efectos de aplicaciones maliciosas o que se comportan mal, que podrían atacar los sistemas automotrices escribiendo grandes bloques de datos basura en eMMC sin permisos especiales.

Para detectar la posible falla de eMMC antes de que realmente suceda, se debe incorporar un monitoreo adecuado del estado del almacenamiento como parte del monitoreo general del estado del sistema.

Implementación

Android O admite funciones que permiten a los OEM proteger y monitorear el almacenamiento interno de Android Automotive y prolongar su vida útil.

Restringir aplicaciones de terceros

Para proteger el almacenamiento interno del sistema Android Automotive, Android O permite a los OEM configurar si se pueden instalar aplicaciones de terceros en el almacenamiento interno (las aplicaciones solo pueden escribir en la partición en la que se instalaron). Para configurar, establezca la siguiente configuración en la superposición de recursos:

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

Reducir el desgaste del flash

Los OEM preocupados por el desgaste de la memoria flash en el almacenamiento interno también pueden agregar una tarjeta SD que sea lo suficientemente rápida como para usarse como almacenamiento adoptado. La tarjeta SD tiene el siguiente comportamiento:

  • Cuando se adopta, la tarjeta SD está cifrada y es segura para almacenar datos de aplicaciones.
  • La ranura para tarjetas SD debe estar en un lugar seguro (no se espera que los usuarios retiren la tarjeta SD con frecuencia).
  • La tarjeta SD no se puede utilizar para transferir datos entre sistemas automotrices y una computadora.
  • Expulsar la tarjeta SD no afecta el sistema en ejecución. Sin embargo, no se debe quitar a menos que sea necesario reemplazarlo.

Para garantizar que las aplicaciones de terceros (aquellas creadas por desarrolladores de aplicaciones para automóviles) se puedan instalar en la tarjeta SD si el automóvil lo requiere, los desarrolladores de aplicaciones para automóviles deben incluir android: installLocation =["auto" | "preferExternal"] en el archivo de manifiesto de la aplicación.

Si el automóvil no permite que se instalen aplicaciones de terceros en el almacenamiento interno (como se describe en Restringir aplicaciones de terceros ), sin este indicador (o si la configuración installLocation =internalOnly está configurada), la instalación de la aplicación falla.

Obtenga métricas de disco con Storaged

Android O presenta Storaged , un nuevo servicio del sistema que muestra y publica métricas de disco y eMMc, como información sobre el uso general del disco, estimación de vida útil de eMMC y estadísticas de E/S de disco por aplicación. Los OEM pueden utilizar esta información para advertir a los usuarios cuando el almacenamiento interno comienza a fallar o cuando aplicaciones específicas realizan demasiadas E/S de disco. Para obtener más información, consulte Implementar almacenado .

Validación

Esta característica se prueba en las pruebas PackageManager .