Gerenciamento de flash wear

O armazenamento interno do Android Automotive usa memória flash com milhares de ciclos de limpeza e gravação. Se a memória flash falhar, o sistema pode se tornar inutilizável. Como os veículos têm vida útil longa (normalmente mais de 10 anos), a memória flash precisa ser extremamente confiável. Esta página descreve o comportamento da memória flash e como os OEMs podem reduzir o risco de falha em dispositivos de memória flash.

Desempenho da memória flash

Os dispositivos de memória flash usam técnicas de nivelamento de desgaste para contornar limitações de gravação e limpeza, organizando dados e distribuindo gravações de modo uniforme em todo o sistema, para que nenhum bloco falhe devido a gravações intensivas. A vida útil estimada da memória flash depende de:

  • Número de gravações
  • Padrões de gravação
  • Tamanho disponível da memória flash. Um tamanho de armazenamento maior significa que o algoritmo de nivelamento de desgaste pode espalhar as gravações por um número maior de blocos.
  • Técnicas de nivelamento do Wear
  • Fatores ambientais. Os exemplos incluem uma faixa de temperatura de funcionamento geralmente de -20 a 85 Celsius. Temperaturas fora desse intervalo podem reduzir ainda mais a vida útil da memória flash.

A vida útil da memória flash pode ser calculada com a ajuda desta fórmula:

$$ \frac{Max\ erase\ cycles * Storage\ capacity}{Data\ written\ per\ year} = {Flash\ memory\ lifespan\ in\ years} $$

No entanto, o sistema pararia de funcionar corretamente muito antes de a memória flash se desgastar completamente à medida que o tamanho do armazenamento utilizável diminui. Além disso, o eMMC pode ter uma vida útil ainda mais curta, dependendo das técnicas de nivelamento e dos padrões de gravação usados. Além disso, essa estimativa não considera os efeitos de apps com comportamento inadequado ou maliciosos, que podem interromper os sistemas automotivos gravando grandes blocos de dados desnecessários na memória flash sem permissões especiais.

Para detectar a possível falha na memória flash antes que ela realmente aconteça, é preciso integrar o monitoramento adequado da integridade do armazenamento como parte do monitoramento geral da integridade do sistema.

Implementar memória flash

O Android Automotive oferece suporte a recursos que permitem que OEMs protejam e monitorem o armazenamento interno dos sistemas para prolongar a vida útil.

Reduza o desgaste do flash

Os OEMs preocupados com o flash wear no armazenamento interno também podem adicionar um cartão SD rápido o suficiente para ser usado como armazenamento adotado. O cartão SD deve ter as seguintes propriedades:

  • Quando adotado, o cartão SD é criptografado e seguro para armazenar dados de apps.
  • O slot do cartão SD precisa estar em um local seguro (não é esperado que os usuários removam o cartão SD com frequência).
  • O cartão SD não pode ser usado para transferir dados entre sistemas automotivos e um computador.
  • A ejeção do cartão SD não afeta o sistema em execução. No entanto, ele não deve ser removido, a menos que precise ser substituído.

Apps em cartões SD

Para proteger ainda mais o armazenamento interno do sistema Android Automotive, os OEMs podem especificar se apps de terceiros podem ser instalados no armazenamento interno para que os apps possam gravar apenas na partição em que estão instalados. Para configurar, ajuste a seguinte configuração na sobreposição de recurso:

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

Para garantir que apps de terceiros (criados por desenvolvedores de apps para carros) possam ser instalados em cartões SD se o carro exigir, os desenvolvedores de apps para carros precisam incluir android:installLocation=["auto" | "preferExternal"] no arquivo de manifesto do app.

Se o carro não permitir que apps de terceiros sejam instalados no armazenamento interno, a instalação de apps falhará sem essa flag (ou se a configuração installLocation=internalOnly estiver definida).

Acessar métricas de disco

O AAOS 13 introduziu o monitoramento de uso excessivo de memória flash e a coleta de métricas como parte do Watchdog para carros. Para detalhes, consulte Monitorar o uso da memória flash.

O Android 8 introduziu o storaged, um serviço do sistema que faz amostras e publica métricas de memória flash e de disco, como informações sobre o uso geral do disco, estimativa de vida útil da memória flash e estatísticas de E/S de disco por app. Os OEMs podem usar essas informações para avisar os usuários quando o armazenamento interno começar a falhar ou quando apps específicos estiverem executando muitas E/S de disco. Para mais detalhes, consulte Implementar storaged.