Como ajustar o Linux para rodar confiavelmente na memória flash?

6

Como a memória flash possui apenas um número limitado de gravações, quais ajustes são necessários para instalar um sistema Linux na mídia flash para que o sistema operacional possa ser executado de forma confiável por um longo período de tempo?

Alguns exemplos de instalações de memória flash incluem a gravação de uma imagem do Linux na memória flash de um roteador sem fio ou a instalação de uma distribuição Linux em uma caixa que usa um cartão SD para seu disco rígido.

Além disso, além do firmware do roteador sem fio (OpenWRT, DD-WRT, etc) que presumivelmente já implementa esses ajustes, há alguma distribuição de propósito geral que faça esses ajustes ou permita usá-los como uma opção?

    
por Justin Ethier 05.03.2011 / 15:03

2 respostas

2

Os diretórios /tmp e /var são os que muitos programas do sistema gravam muito e dependem de serem graváveis. Minimizar as gravações nesses diretórios ou configurar o Linux para montar esses diretórios em dispositivos de armazenamento externos que são substituíveis, ao contrário do flash on board, seria um grande passo para atingir sua meta.

/home e partição swap devem ser tratados da mesma maneira.

rsyslogd , o syslogd padrão no Debian e muitas distribuições derivadas do Debian, tem a capacidade de não gravar logs em disco, mas enviá-los por uma conexão de rede, e apenas gravá-los no armazenamento se um buffer interno ficar cheio. A implementação disso (que estou tentando descobrir como fazer atualmente de uma maneira boa) poderia eliminar muitas gravações em flash.

Além disso, você deseja montar seus sistemas de arquivos com a opção noatime , o que impede que o Linux atualize o tempo de acesso em cada arquivo tocado. Isso também pode eliminar muitas gravações e acelerar o desempenho. Eu acho que há também um parâmetro do kernel que controla o intervalo de tempo entre a chamada automática sync do Linux. Se o seu sistema não espera experimentar interrupções repentinas de energia, você pode definir isso para um valor maior que o padrão de 5 segundos (eu acho).

    
por 05.03.2011 / 15:25
2

Seria mais apropriado dizer que a Memória Flash possui apenas um número limitado de ciclos de apagamento, causados por gravações. Há muitos bons artigos disponíveis sobre essa distinção.

Quando você menciona a gravação de uma imagem do Linux no firmware do roteador, provavelmente é um flash NOR ou um EEProm. NOR é o tipo de flash com leituras mais rápidas, NAND o tipo com gravações mais rápidas.

Sob o ext3, o periódico é o arquivo escrito com mais freqüência, e essas gravações eventualmente preencherão um bloco, forçando o apagamento de outro bloco. Definir um valor commit= maior na montagem reuniria essas gravações de diário em blocos maiores.

Por fim, para ecoar outras soluções, a montagem com noatime é uma prática padrão que reduzirá o impacto.

    
por 09.03.2011 / 17:57