As seguintes são exceções à conformidade com POSIX do Google Cloud Managed Lustre:
Atualizações do
atime: por padrão, oatimeestá ativado no Lustre, mas, por motivos de desempenho, as atualizações podem ser adiadas. Isso significa que o tempo de acesso de um arquivo pode não ser atualizado imediatamente após cada operação de leitura.flock/lockf: referem-se a duas APIs principais de bloqueio de arquivos:flock(2)efcntl(2).flock: um bloqueio consultivo de arquivo inteiro no estilo BSD que não é definido pelo POSIX. O Lustre oferece suporte total à semânticaflockno estilo BSD em todo o cluster por padrão.fcntl: é a API de bloqueio definida pelo POSIX, que oferece suporte a bloqueios de intervalo de bytes. A implementação do Lustre de bloqueiosfcntlé quase compatível com POSIX e funciona como esperado para a maioria dos aplicativos. No entanto, como ofcntlfoi originalmente projetado para sistemas de arquivos locais, nenhum sistema de arquivos distribuído pode corresponder 100% a todos os requisitos defcntldo POSIX, incluindo o Lustre. Por exemplo,fcntl()especifica que os bloqueios precisam ser liberados imediatamente quando o processo proprietário é encerrado, mas a liberação de bloqueio do Lustre pode ser adiada se o cliente falhar.
Consulte as perguntas frequentes do Lustre para mais detalhes.
Mudanças no número do inode devido à migração de metadados
O número do inode de um arquivo em um sistema de arquivos Lustre não é um identificador imutável.
Uma operação de rebalanceamento de metadados, como uma iniciada por lfs migrate,
envolve a migração de metadados de alguns arquivos de um MDT para outro. Como consequência direta dessa migração para uma nova MDT, esses arquivos recebem um novo número de inode.
Embora esse comportamento esteja em conformidade com o padrão POSIX, ele pode violar as premissas de muitos aplicativos e serviços comuns do Unix/Linux criados para esperar um número de inode persistente durante o ciclo de vida de um arquivo. Isso inclui, mas não se limita a:
Front-ends NFS e SMB: esses serviços geralmente derivam identificadores de arquivo de números de inode. Uma mudança pode causar erros
Stale file handlepara os clientes.Utilitários de arquivamento e backup: ferramentas como o
tar, que rastreiam arquivos pelo dispositivo e pelo número do inode, podem tratar um arquivo migrado como um novo arquivo, resultando em backups incrementais ineficientes.Agregadores de registros, sistemas de detecção de intrusões e aplicativos personalizados que usam
stat()e armazenamst_inotambém podem ser afetados.
Os administradores precisam estar cientes desse comportamento e do possível impacto dele nos aplicativos antes de iniciar qualquer rebalanceamento manual de metadados.
Estratégias de mitigação
O rebalanceamento de metadados precisa ser tratado como um evento de manutenção planejado e destrutivo.
Programe uma janela de manutenção. Comunique uma interrupção planejada a todos os usuários e proprietários de aplicativos. Se possível, não realize operações
lfs migrateem grande escala em um sistema de produção ativo.Se necessário, desconecte e reconecte o sistema de arquivos após a migração.
Alguns aplicativos podem precisar ser liberados ou reiniciados após uma migração.