Capítulo 7. Sistemas de Arquivos
7.1. Considerações de ajustes para Sistemas de Arquivo
7.1.1. Formatando Opções
O tamanho do bloco pode ser selecionado no tempo mkfs
. A classe de tamanhos válidos depende do sistema: o limite acima é o tamanho máximo da página do sistema host, equanto o limite mais baixo depende do sistema de arquivo utilizado. O tamanho do bloco padrão é adequado para a maioria dos casos de uso.
Se seu sistema utiliza armazenamento em faixas tal qual o RAID, você poderá aprimorar o desempenho, alinhando os dados e metadados com a geometria de armazenamento adjacente no tempo mkfs
. Para o RAID software (LVM ou MD) e alguns armazenamentos de hardware corporativos, esta informação é enfileirada e definida automaticamente, mas em muitos casos o administrador precisa especificar esta geometria manualmente com o mkfs
na linha de comando.
Cargas de trabalho de metadados intensivos significa que a seção de log de um sistema de arquivo de agendamento (como o ext4 e XFS) é atualizado muito frequentemente. Para minimizar o tempo de busca do sistema de arquivos do diário, você pode colocar o diário no armazenamento dedicado. Note, no entanto, que a colocação do diário em armazenamento externo é mais lenta que o sistema de arquivos primário possa anular qualquer vantagem potencial associado com o uso de armazenamento externo.
Atenção
mkfs
, com os dispositivos de diário sendo especificados no tempo de montagem. Consulte as páginas man mke2fs(8)
, mkfs.xfs(8)
, e mount(8)
para maiores informações.
7.1.2. Opções de montagem
Uma barreira de gravação é um mecanismo do kernel usado para assegurar que os metadados do sistema de arquivos foi gravado corretamente e ordenado em armazenamento persistente, mesmo quando os dispositivos de armazenamento com gravações de caches voláteis perdem o poder. Os sistemas de arquivos com barreiras de gravação ativadas também garantem que todos os dados transmitidos via fsync ()
persistem através de uma queda de energia. O Red Hat Enterprise Linux permite barreiras por padrão em todos os hardwares que as suportam.
fsync ()
pesadamente, ou que cria e apaga muitos arquivos pequenos. Para o armazenamento, sem o cache de gravação volátil, ou no caso raro onde as inconsistências do sistema de arquivos e perda de dados após uma perda de potência é aceitável, barreiras podem ser desativadas usando a opção de montagem nobarrier
. Para mais informações, consulte o Guia de Administração de Armazenamento .
HIstóricamente, quando um arquivo é lido, o tempo de acesso (atime
) para aquele arquivo deve ser atualizado no metadado inode, que involve E/S de gravações adicionais. Se os metadados forem precisos atime
não forem necessários, monte o sistema de arquivo com a opção noatime
para eliminar estas atualizações de metadados. Na maioria dos casos, no entanto, o atime
não é um cabeçalho grande devido ao comportamento do atime relativo padrão (ou relatime
) no kernel do Red Hat Enterprise Linux 6. O comportamente do relatime
atualiza somente o atime
se o atime
for mais vejo do que o tempo de modificação (mtime
) ou tempo de mudança de status (ctime
).
Nota
noatime
também habilita o comportamento do nodiratime
; não há necessidade de definir ambos noatime
e nodiratime
.
O Read-ahead acelera acesso de arquivo buscando antecipadamente dados e carregando-os no cache de página para que possa estar disponível antes na memória ao invés de vir do disco. Algumas cargas de trabalho, tais como aquelas que envolvem transmissão contínua pesada de E/S sequencial, se beneficiam de valores altos de read-ahead.
blockdev
para visualizar e editar o valor read-ahead. Para visualizar o valor read-ahead atual para um dispositivo de bloco particular, execute:
# blockdev -getra device
# blockdev -setra N device
blockdev
não persistirá entre as inicializações. Nós recomendados criar um nível de execução do script init.d
para definir este valor durante a inicialização.
7.1.3. Manutenção de sistema de arquivo.
Operações de descarte em Lote e online são recursos de sistemas de arquivos montados que descartam blocos que não estão sendo utilizados pelo sistema de arquivo. Estas operações são úteis para ambos drives de estado sólido e armazenamento finalmente provisionado.
fstrim
. Este comando descarta todos os blocos não usados em um sistema de arquivo que coincida com os critérios de usuário. Ambos os tipos de operação são suportados para uso com o XFS e os sistemas de arquivo ext4 no Red Hat Enterprise Linux 6.2 e posteriores, desde que o dispositivo de bloco adjacente ao sistema de arquivo suporte as operações de discard físicas. As operações de Discard Físico são suportadas se o valor de /sys/block/device/queue/discard_max_bytes
não for zero.
-o discard
(tanto no /etc/fstab
quanto como parte do comando mount
), e executados em tempo real sem a intervenção do usuário. As operações de discard somente descartam blocos que esteja transitando de um usado para um livre. As operações discard são suportadas nos sistemas de arquivo ext4 no Red Hat Enterprise Linux 6.2 e posteriores, e nos sistemas de arquivo XFS no Red Hat Enterprise Linux 6.4 e posteriores.
7.1.4. Considerações de Aplicativos
Os sistemas de arquivo ext4, XFS, e GFS2 apoiam a pré-alocação eficiente do espaço através da chamada glibc fallocate (2)
. Nos casos em que os arquivos possam tornar-se muito fragmentados devido aos padrões de gravação, levando a má performance de leitura, a pré-alocação de espaço pode ser uma técnica útil. Pré-alocação marca de espaço em disco como se tivesse sido alocado para um arquivo, sem gravar nenhum dado naquele espaço. Até que os dados reais sejam gravados em um bloco pré-alocado, as operações de leitura retornarão como zeros.