domingo, 3 de janeiro de 2016

FSArchiver com suporte ao XFSv5

Meus agradecimentos ao Francois Dupoux pela presteza em modificar o FSArchiver de modo a torná-lo compatível com XFSv5.

A partir do FSArchiver 0.6.20 fica assim:

- Imagens contendo XFS criadas com FSArchiver ≤ 0.6.19 são sempre restauradas como XFSv4.
- XFSv4 sempre é criado com -n ftype=0 para garantir ampla compatibilidade.
- Imagens criadas com FSArchiver ≥ 0.6.20 armazenam a versão do XFS. Dependendo da versão da suíte xfsprogs usada no momento da restauração, o comportamento é o seguinte:
    - Se a imagem contiver XFSv4, é idem acima.
    - Se a imagem contiver XFSv5, é restaurado mantendo a versão 5 se xfsprogs ≥ 4.3.0, porque apenas a partir dessa versão o mkfs.xfs permite definir o UUID no momento da criação do sistema de arquivos. Como em todos os blocos de metadados do XFSv5 o UUID está estampado, trocá-lo depois de ter sido criado (possível a partir de xfsprogs ≥ 4.2.0) joga o kernel mínimo necessário para o 4.3. Sem contar que o sistema de arquivos continua usando o UUID antigo para identificar os metadados. A única solução limpa é defini-lo via mkfs.xfs, que também mantém o kernel mínimo no 3.15 (-m crc=1,finobt=0) ou 3.16 (-m crc=1,finobt=1).
    - Se a imagem contiver XFSv5 e tivermos xfsprogs < 4.3.0, o programa faz um downgrade para XFSv4 e emite um aviso. Assim o administrador não fica na mão num caso de emergência.
    - A imagem armazena se o sistema de arquivos XFSv5 original tinha finobt habilitado ou não. A configuração é respeitada ao restaurar o volume (pressupondo xfsprogs ≥ 4.3.0).

Parte da empreitada foi o trabalho de pesquisar quais recursos eram suportados por cada versão das ferramentas, o que já havia feito aqui no blog nos posts relativos ao XFS. Francois desenvolveu a lógica e programou-a em C, cujo resultado testei usando diferentes combinações de imagens (V4-0.6.19, V4, V4-com-ftype, V5, V5-sem-finobt) e versões da suíte xfsprogs (3.1.9, 3.2.0, 3.2.2, 4.3.0). Ganhei até uma menção no arquivo THANKS. ☺

Feliz 2016 a todos os leitores!

Nenhum comentário:

Postar um comentário