Prevenindo erro de escrita no RAID
Com uma falha no fornecimento de energia, existe uma pequena possibilidade de haver perda dos dados mais recentes (em cache), em especial em sistemas RAID. Nos casos mais graves, podem ocorrer uma corrupção do sistema de arquivos.
Vale ressaltar, que o XFS possui seu próprio sistema de Write Back. Caso você seja paranoico (como eu), desabilite o Write Back para cada um dos HDs, com os seguintes comandos:
# hdparm -W0 /dev/sdX
# hdparm -W0 /dev/sdZ
Atenção ao
W. Ele tem que estar em maiúsculo!
Se for mostrado algum erro, é porque o seu HD não suporta o comando e nada será alterado, nem nenhum dado perdido.
Verifique se está tudo funcionando, com o comando:
# hdparm -I /dev/sdX
Para que esta configuração esteja ativa no próximo boot, adicione estas linhas no final do arquivo
/etc/rc.local, logo antes do comando
exit 0 (se ele existir):
hdparm -W0 /dev/sdX
hdparm -W0 /dev/sdZ
Manutenção do RAID virtual
Removendo disco de um array:
# mdadm --fail /dev/md0 /dev/sdX1 --remove /dev/sdX1
Adicionando um disco ao array:
# mdadm --add /dev/md0 /dev/sdY1
Verificando o status do array:
# mdadm --detail /dev/md0
Ou:
# cat /proc/mdstat
Removendo um array:
# mdadm --stop /dev/md0
# mdadm --remove /dev/md0
"Zerando" o HD para formatação NTFS
Uma boa prática é "zerar" completamente o HD, para depois formatá-lo como NTFS, assim, siga os seguintes passos para cada um deles (
/dev/sdX e
/dev/sdZ):
# fdisk /dev/sdX
Dicas:
- Clique m, para obter uma lista de comandos possíveis.
- Clique p, para listar as partições em sdX.
Comando (
m para ajuda):
d
Partição selecionada 1
Comando (m para ajuda):
n
Comando - ação
e estendida
p partição primaria (1-4)
p
Numero da partição (1-4): 1
Primeiro cilindro (1-121601, padrão 1):
Usando valor padrão 1
Last cilindro, +cilindros or +size{K,M,G} (1-121601, padrão 121601):
Usando valor padrão 121601
Comando (m para ajuda):
t
Partição selecionada 1
Código hexadecimal (digite L para listar os códigos): 7
O tipo da partição 1 foi alterado para 7 (HPFS ou NTFS)
Comando (m para ajuda):
w
# mkntfs /dev/sdX1
Outros comandos interessantes para o gerenciamento de partições NTFS em
GNU/Linux são:
Altera o nome da partição:
# ntfslabel /dev/sdX1 NovoNome
Para corrigir erros na partição, é necessária a instalação do pacote
ntfs-3g, que inclusive, já contém os comandos do pacote
ntfsprogs:
# apt-get install ntfs-3g
# ntfsfix /dev/sdX1
Pode ser necessário garantir ao grupo do administrador do domínio acesso de administrador dos HDs do servidor. Para isso, execute o seguinte comando no servidor GNU/Linux:
# net rpc rights grant 'nome da rede Domain\Domain Admins' SeDiskOperatorPrivilege -U <nome do administrador do domínio>
Opções de configuração do XFS no fstab
Esta foi uma contribuição do
Galactus neste
tópico do Ubuntu Fórum:
noatime :: os tempos de acesso dos dados não serão atualizados quando lidos, apenas quando gravados. Não há risco de perda de dados com essa opção. Se o tempo de acesso dos dados for importante para você não use essa opção.
nodiratime :: os tempos de acesso dos diretórios não serão atualizados quando lidos, apenas quando gravados. Não há risco de perda de dados com essa opção. Se o tempo de acesso dos diretórios for importante para você não use essa opção.
nobarrier :: essa opção faz com que a verificação dos dados entre o cache do disco e o buffer da memória não sejam mais feitas. Com essa opção ativa você acelera a gravação dos dados mas existe o risco de perda de dados em uma queda de energia ou travamento do sistema, aquilo que estiver aberto pode ser perdido.
logbufs :: diz o número de buffers que devem ser guardados na memória, esse número varia de 2 a 8. Nos kerneis mais recentes o 8 já é o padrão. Essa opção ajuda muito o XFS a lidar com arquivos pequenos e aumenta o consumo de RAM. Use 8 e seja feliz!
logbsize :: especifica o tamanho de cada buffer na memória. Você pode especificar o tamanho em bytes ou kilobytes, o padrão é 32k nas versões mais recentes do kernel. Você pode aumentar esse valor para 64k, 128k até o máximo de 256k. Essa opção ajuda muito o XFS a lidar com arquivos pequenos e aumenta o consumo de RAM. Use 256k e seja feliz!
allocsize :: determina o tamanho final da pré-alocação do buffer de I/O. Seu tamanho varia de 64Kib a 1Gib. Essa opção ajuda a diminuir a fragmentação do disco e aumenta a velocidade de transferência de arquivos grandes. No caso do disco rígido servir apenas para arquivos grandes como imagens ISO, use 512mb, no geral 64mb está de bom tamanho. Você não aumenta o risco de perda de dados com essa opção. Na prática notei que quanto maior esse número, melhor a taxa de transferência, mas também o sistema fica mais "preso" a essa transferência, então não abuse.
delaylog :: atrasa a gravação das informações no journal do XFS o máximo possível. São parâmetros internos do XFS que determinarão quando as informações serão salvas. Essa opção acelera muito o XFS mas aumenta o risco de perda de dados no caso de uma queda de energia ou travamento do sistema. Note que você não está desativando o Journal, apenas atrasando a gravação dos dados nele. A opção delaylog não funciona em versões antigas do XFS ou do kernel Linux.
osynciosync :: essa aqui é complicada, mas resumindo, essa opção tem haver com uma espécie de garantia de que as gravações dos dados e metadados ocorram em sincronia com o cache do disco. Entendeu? Eu também não! Para piorar ainda mais, dizem que essa opção é obsoleta e não faz mais "efeito". Na prática o que notei é que o XFS pode ficar mais ágil com essa opção no fstab do que sem ela, dependendo da carga no sistema! Para quem usa kerneis mais novos, talvez o melhor seja não usar essa opção. Faça os seus testes e observe se ela ajuda mais que prejudica seu sistema. Ah sim, ela não é indicada para quem vai ter grandes bancos de dados no disco rígido.
inode64 :: indica que o XFS pode criar inodes em qualquer lugar do sistema de arquivos, essa opção pode criar problemas em aplicações de backup que não podem lidar com grande número de inodes. Essa opção é sempre indicada em grandes servidores de arquivos. Na prática achei que aumenta a latência em geral para o desktop. Também notei o seguinte, ou você usa o inode64 ou usa o allocsize para melhor desempenho. Os dois juntos atrasaram o tempo de resposta do desktop! Eu prefiro o allocsize para desktop e o inode64 para servidores de arquivos. Faça os seus testes e verifique se ele é bom pra você.
Desfragmentação de partições XFS
Mais uma contribuição do Galactus, disponível neste
tópido:
Esta é uma grande vantagem, frente a outros sistemas de arquivos que sua distro pode usar. O XFS é capaz de ser desfragmentado com suas partições montadas e ativas, sem risco de perda de dados.
Contudo, eu sugiro que o ideal seja fazer isso com todos os programas e arquivos fechados. O motivo é simples, se for detectado que um arquivo está em uso, este arquivo em particular, não é desfragmentado.
Quanto mais potente for o seu processador, mais rápida será a sua desfragmentação. A primeira desfragmentação/reorganização é bastante demorada. O comando para desfragmentar é o
xfs_fsr e deve ser dado como root. Ele vai reorganizar o sistema de arquivos, um arquivo por vez, procurando compactar e melhorar a disposição das extensões dos arquivos junto aos blocos e inodes. Ele também desfragmenta os 10% de arquivos mais fragmentados por vez que é executado.
Como root, você pode fazer:
# xfs_fsr -t 8000 /dev/sdxy -v
Onde:
- O -t, é o tempo máximo que ele pode levar para desfragmentar/reorganizar em segundos. Se não colocar o -t, o valor padrão é 7200 ou 2 horas.
- O -v, é o modo verbose, ou seja, ele vai te mostrar o que está fazendo, muito bom para saber se ele pulou algum arquivo que estava aberto.
Você também pode saber o quão desfragmentado o seu disco rígido está, antes de executar uma desfragmentação. O comando é:
# xfs_db -c frag -r /dev/sdxy
Exemplo da saída do comando:
# xfs_db -c frag -r /dev/sda5
actual 232989, ideal 232230, fragmentation factor 0.33%
Eu recomendo que você faça uso do
xfs_fsr, todas as vezes que uma quantidade grande de programas forem instalados ou removidos, assim, como se os seus dados forem inseridos, alterados ou deletados do disco.
Eu não espero a fragmentação aumentar, como ele reorganiza os inodes, o sistema fica sempre ágil com a execução frequente do
xfs_fsr.