Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.8. Diário de Dados

Geralmente, o GFS2 edita somente os metadados em seu diário. O conteúdo do arquivo é subsequentemente editado no disco pela sincronização periódica do kernel, a qual libera buffers de sistema de arquivo. Uma chamada fsync() em um arquivo, faz com que os dados do arquivo sejam editados no disco imediatamente. A chamada retorna quando o disco informa que todos os dados estão editados de maneira segura.
O diário de dados pode resultar em uma redução de tempo do fsync(), especialmente para arquivos pequenos, pois os dados do arquivo são editados no diário além dos metadados. Esta vantagem é inversamente proporcional ao tamanho do arquivo, sendo que a edição em arquivos médios e grandes levará mais tempo com o diário de dados acionado.
Os aplicativos que contam com o fsync() para sincronizar os dados do arquivo, podem melhorar o desempenho usando o diário de dados. O diário de dados pode ser ativado automaticamente para qualquer arquivo GFS2 criado em um diretório sinalizado ( e todos os seus subdiretórios). Os arquivos existentes com comprimento zero, também possuem diário de dados ativados ou desativados.
A ativação do diário de dados num diretório modifica o diretório para "inherit jdata", que indica que todos os arquivos e diretórios criados subsequentemente neste diretório passarão pelo diário. Você pode ativar e desativar o diário de dados num arquivo com o comando chattr.
Os comandos a seguir ativam o diário de dados no arquivo /mnt/gfs2/gfs2_dir/newfile e depois verifica se o sinalizador foi ajustado adequadamente.
[root@roth-01 ~]# chattr +j /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile
Os comandos a seguir desativam o diário de dados no arquivo /mnt/gfs2/gfs2_dir/newfile e depois verifica se o sinalizador foi ajustado adequadamente.
[root@roth-01 ~]# chattr -j /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
------------- /mnt/gfs2/gfs2_dir/newfile
Você pode usar o comando chattr para ajustar o sinalizador num diretório. Quando isto acontecer, todos os arquivos e diretórios criados subsequentemente naquele diretório passarão pelo diário. O seguinte conjunto de comandos ajusta o sinalizador j no diretório gfs2_dir e verifica se o sinalizador foi ajustado corretamente. Em seguida, os comandos criam um novo arquivo chamado newfile no diretório /mnt/gfs2/gfs2_dir e verifica se o sinalizador foi ajustado para o arquivo. Como o sinalizador jdata é estabelecido para o diretório, então o newfile também deve ter o diário ativado.
[root@roth-01 ~]# chattr -j /mnt/gfs2/gfs2_dir
[root@roth-01 ~]# lsattr /mnt/gfs2
---------j--- /mnt/gfs2/gfs2_dir
[root@roth-01 ~]# touch /mnt/gfs2/gfs2_dir/newfile
[root@roth-01 ~]# lsattr /mnt/gfs2/gfs2_dir
---------j--- /mnt/gfs2/gfs2_dir/newfile