Partilhar via


Personalizar write-back de arquivo no Cache HPC do Azure

Os usuários do Cache HPC podem solicitar que o cache grave arquivos individuais específicos no armazenamento back-end sob demanda usando o utilitário flush_file.py. Este utilitário é um pacote de software baixado separadamente que você instala e usa em máquinas cliente Linux.

Esse recurso foi projetado para situações em que você deseja que as alterações em arquivos armazenados em cache sejam disponibilizadas o mais rápido possível para sistemas que não montam o cache.

Por exemplo, você pode usar o Cache HPC do Azure para dimensionar seus trabalhos de computação na nuvem, mas armazenar seu conjunto de dados permanentemente em um data center local. Se as tarefas de computação acontecerem no data center que dependem de alterações criadas com o Cache HPC do Azure, você poderá usar esse utilitário para "enviar" a saída ou as alterações geradas por uma tarefa de nuvem de volta para o armazenamento NAS local. Isso permite que os novos arquivos sejam usados quase imediatamente por recursos de computação locais.

Escolha entre write-back personalizado e flush

Você pode forçar os dados a serem gravados novamente com a opção "liberação de destino de armazenamento" incorporada ao Cache HPC do Azure - mas essa abordagem pode não ser adequada para todas as situações.

  • Gravar todos os arquivos modificados de volta no sistema de armazenamento pode levar vários minutos ou até horas, dependendo da quantidade de dados e da velocidade do link de rede de volta ao sistema local. Além disso, você não pode escolher apenas os arquivos com os quais terminou para serem escritos; Os ficheiros que ainda estão a ser ativamente modificados serão incluídos neste cálculo.

  • O cache pode bloquear o atendimento de algumas solicitações desse destino de armazenamento durante o processo de liberação. Isso pode atrasar o processamento se houver outros clientes de computação usando arquivos que residem no mesmo destino de armazenamento.

  • Acionar essa ação requer acesso do colaborador ao Gerenciador de Recursos do Azure, que os usuários finais podem não ter.

Por exemplo, você pode ter vários trabalhos de computação paralelos (mas não sobrepostos) que consomem dados que residem no mesmo destino de armazenamento de cache HPC. Quando um trabalho for concluído, você deseja gravar imediatamente a saída desse trabalho do cache no armazenamento de longo prazo no back-end.

Tem três opções:

  • Aguarde até que os arquivos armazenados em cache sejam automaticamente gravados de volta do cache - mas os arquivos podem ficar no cache por mais de uma hora antes de serem completamente gravados de volta. O tempo depende do atraso de write-back do seu modelo de uso de cache, juntamente com outros fatores, como o desempenho do link de rede e o tamanho dos arquivos. (Ler Entenda os modelos de uso de cache para saber mais sobre o atraso de write-back.)

  • Libere imediatamente os arquivos armazenados em cache para todo o destino de armazenamento, mas isso interromperia outros trabalhos de computação que também estão usando os dados desse destino de armazenamento.

  • Use este utilitário de write-back personalizado para enviar uma solicitação NFS especial para o cache para gravar de volta apenas os arquivos específicos desejados. Esse cenário não interrompe o acesso de outros clientes e pode ser acionado a qualquer momento da tarefa de computação.

Sobre o utilitário write-back

O utilitário write-back tem um script que você pode usar para especificar arquivos individuais que serão gravados do cache para o sistema de armazenamento de longo prazo.

O script usa um fluxo de entrada dos arquivos para gravar, além do caminho do namespace de cache para a exportação de destino de armazenamento e um endereço IP de montagem de cache HPC.

O script usa uma chamada "commit" NFSv3 com argumentos especiais habilitados. O cliente Linux nfs-common não pode passar esses argumentos adequadamente, portanto, o utilitário flush_file.py usa um emulador de cliente NFS em uma biblioteca Python para se comunicar com o serviço NFS de cache HPC. A biblioteca inclui tudo o que é necessário, o que ignora quaisquer limitações que possam existir no cliente NFS baseado em kernel Linux do seu cliente de computação.

Para usar esse recurso, você precisa fazer o seguinte:

  • Instale a hpc-cache-nfsv3-client biblioteca do repositório GitHub Microsoft HPC-Cache-NFSv3-client em https://github.com/microsoft/hpc-cache-nfsv3-client. em um ou mais clientes de computação. Informações e instruções de pré-requisitos estão incluídas no arquivo LEIA-ME do repositório.

  • Use o script 'flush_file.py' incluído para dizer ao cache para gravar os arquivos exatos de que você precisa de volta para o sistema de armazenamento de longo prazo.

Saiba mais sobre como instalar e usar o script flush_file.py no repositório GitHub.