segunda-feira, 11 de maio de 2015

XFSv5 agora é o padrão no mkfs.xfs 3.2.3

Na versão 3.2.3 da suíte xfsprogs (rc1 no momento), o mkfs.xfs cria sistemas XFSv5 por padrão (-m crc=1,finobt=1). Essa configuração requer no mínimo o kernel 3.16.

XFSv5 não permite, por enquanto, alterar seu UUID. Cada bloco dos metadados tem um campo contendo o UUID do sistema de arquivos ao qual pertence, criado no momento da formatação. Isso é importante em casos de corrompimento grave, pois torna a identificação de tais blocos robusta. Contudo, ao trocar o UUID com o xfs_admin, seria necessário atualizar todos os blocos com o novo UUID!

Eric desativou a troca de UUID no XFSv5 por causa disto:

xfs_db: disallow sb UUID write on v5 filesystems

E propôs o seguinte:

http://thread.gmane.org/gmane.comp.file-systems.xfs.general/67885

Cria-se um novo campo no superbloco contendo um meta UUID. Assim, passam a existir dois: este novo, interno (sb_meta_uuid), usado para efetivamente identificar os metadados, e o visível (sb_uuid), reportado por ferramentas como blkid. Se sb_meta_uuid não for configurado, sb_uuid é usado como sb_meta_uuid. Se for configurado, uma flag de incompatibilidade é marcada no superbloco (para prevenir que kernels velhos se percam e pensem que tudo está corrompido) e sb_meta_uuid é usado para verificar os metadados, podendo assim sb_uuid ser modificado à vontade.

Tenho minhas dúvidas se resolve tudo. Seria definitivamente melhor existir também a infraestrutura para atualizar o UUID de todos os metadados. Será a terceira incompatibilidade no formato — a primeira foi o free inode btree index (-m finobt=1, kernel 3.16) e a segunda sparse inode allocation (-i sparse=1, kernel 4.2). Sistemas que tenham o meta UUID configurado requererão o kernel 4.3. Vejo como uma adição útil para sistemas de arquivos que temos certeza existirão apenas uma vez num mesmo disco/arranjo e onde mexer em todos os metadados é desnecessário. Aquele cenário de duplicar um volume em diferentes máquinas como faço no script do FSArchiver é típico.

XFSv5 é suportado a partir do FSArchiver 0.6.20.

[Atualização - 28/08/2015] Minha explicação sobre UUID visível estava invertida. Corrigido e expandido. Adicionada versão exata do kernel que suportará o recurso.
[Atualização - 09/01/2016] FSArchiver 0.6.20+ suporta XFSv5.
[Atualização - 26/07/2016] Adicionado recurso sparse inode allocation.

Nenhum comentário:

Postar um comentário