Personalizar o write-back de arquivo no Azure HPC Cache

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

Esse recurso foi projetado para situações em que você deseja que as alterações nos 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 Azure HPC Cache para dimensionar seus trabalhos de computação na nuvem, mas armazenar seu conjunto de dados permanentemente em um data center local. Se acontecem tarefas de computação no data center que dependem das alterações criadas com o Azure HPC Cache, você poderá usar esse utilitário para "efetuar push" da saída ou das 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 liberação

Você pode forçar o write-back dos dados com a opção "liberação de destino de armazenamento" interna no Azure HPC Cache, 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 para o sistema local. Além disso, você não pode escolher gravar apenas os arquivos que você terminou de usar; os arquivos que ainda estão sendo modificados ativamente 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 poderá atrasar o processamento se houver outros clientes de computação usando arquivos que residem no mesmo destino de armazenamento.

  • Disparar essa ação requer acesso de contribuidor ao Azure Resource Manager, 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 HPC Cache. Quando um trabalho for concluído, é recomendável gravar imediatamente a saída do trabalho do cache no armazenamento de longo prazo no back-end.

Você tem três opções:

  • Aguarde até que o write-back dos arquivos armazenados em cache seja realizado automaticamente no cache, mas os arquivos podem ficar no cache por mais de uma hora antes de serem completamente gravados. O tempo depende do atraso de write-back do modelo de uso do cache, além de outros fatores, como o desempenho do link de rede e o tamanho dos arquivos. (Leia Entender os modelos de uso de cache para saber mais sobre 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 esse utilitário de write-back personalizado para enviar uma solicitação NFS especial para o cache para fazer o write-back somente dos arquivos específicos desejados. Esse cenário não interrompe o acesso para outros clientes e pode ser disparado a qualquer momento na tarefa de computação.

Sobre o utilitário de write-back

O utilitário de 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 a serem gravados, além do caminho do namespace de cache para a exportação de destino de armazenamento e um endereço IP de montagem HPC Cache.

O script usa uma chamada de "commit" NFSv3 com argumentos especiais habilitados. O cliente nfs-common linux 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 HPC Cache. A biblioteca inclui tudo o que é necessário, o que ignora todas as limitações que possam existir no cliente NFS baseado em kernel do Linux do cliente de computação.

Com esse recurso, você poderá fazer o seguinte:

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