FSArchiver com suporte ao XFS V5
Meus agradecimentos ao Francois Dupoux pela presteza em modificar o FSArchiver de modo a torná-lo compatível com XFS V5.
A partir do FSArchiver 0.6.20 fica assim:
- Imagens contendo XFS criadas com FSArchiver ≤ 0.6.19 são sempre restauradas como XFS V4.
- XFS V4 sempre é criado com
- 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 XFS V4, é idem acima.
- Se a imagem contiver XFS V5, é restaurado mantendo a versão 5 se xfsprogs ≥ 4.3.0, porque apenas a partir dessa versão o
- Se a imagem contiver XFS V5 e tivermos xfsprogs < 4.3.0, o programa faz downgrade para XFS V4 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 XFS V5 original tinha
Parte da empreitada foi o trabalho de pesquisar quais recursos eram suportados por cada versão das ferramentas. 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!
A partir do FSArchiver 0.6.20 fica assim:
- Imagens contendo XFS criadas com FSArchiver ≤ 0.6.19 são sempre restauradas como XFS V4.
- XFS V4 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 XFS V4, é idem acima.
- Se a imagem contiver XFS V5, é 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 XFS V5 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 XFS V5 e tivermos xfsprogs < 4.3.0, o programa faz downgrade para XFS V4 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 XFS V5 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. 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!
Comentários
Postar um comentário