Devo estar executando o fstrim em um contêiner?

1

Se eu executar fstrim em um contêiner do docker, receberei erros sobre os arquivos montados no host (?) sendo not a directory .

$ docker run -ti -v tmp:/tmp2 ubuntu:16.04 /sbin/fstrim --all
fstrim: /etc/hosts: not a directory
fstrim: /etc/hostname: not a directory
fstrim: /etc/resolv.conf: not a directory
fstrim: /tmp2: FITRIM ioctl failed: Operation not permitted

Acredito que isso ocorra porque o contêiner não é privilegiado . (pelo menos o erro FITRIM ioctl failed )

Descobri isso instalando cron em um novo contêiner ubuntu:16.04 (sei que isso viola a filosofia "um processo" - isso é outra discussão) Mas a imagem padrão tem /etc/cron.weekly/fstrim , uma vez que você instalar o cron, fstrim começa a rodar semanalmente e o cron me envia os erros.

Devo estar executando fstrim em um contêiner?

Eu ainda estou enrolando minha cabeça em torno de aufs e todas as páginas que encontrei sobre fstrim falam sobre SSDs e recuperação de espaço livre.
Será aplicado em um container? O trabalho fstrim cron do host não vai cuidar de tudo? Devo remover a tarefa cron do container ou é um bug na janela de encaixe?

edit: informações do sistema:

$ uname -sri; docker --version
Linux 4.4.0-53-generic x86_64
Docker version 1.12.3, build 6b644ec
    
por codywohlers 12.12.2016 / 07:15

1 resposta

0

fstrim não faz absolutamente nenhum sentido dentro de um contêiner.

O ponto de fstrim é desmapear o armazenamento não utilizado na loja de apoio, seja um SSD local ou um armazenamento SAN com provisionamento thin montado via iSCSI, FibreChannel ou o que for. Esse processo precisa ser executado no host, e não dentro de um contêiner.

Os erros específicos que você vê são porque fstrim tenta chamar o FITRIM ioctl em cada ponto de montagem e os pontos de montagem dentro de um contêiner não correspondem aos dispositivos de bloco reais que o host está usando. Isso geralmente é verdade mesmo se o contêiner for privilegiado.

Por que o Ubuntu coloca fstrim em uma imagem de container é um completo mistério. Se você está preso com contêineres do Ubuntu, sugiro desabilitar esse trabalho do cron.

    
por 13.12.2016 / 03:09

Tags