Ingestão de dados do Azure HPC Cache – método msrsync

Este artigo fornece instruções detalhadas sobre como usar o utilitário `msrsync` para copiar dados para um contêiner do Azure Blob Storage para uso com o Azure HPC Cache.

Para saber mais sobre como mover dados para o armazenamento de blobs para o Azure HPC Cache, leia Mover dados para o Armazenamento de Blobs do Azure.

A msrsync ferramenta pode ser usada para mover dados para um destino de armazenamento de back-end para o Azure HPC Cache. Essa ferramenta foi projetada para otimizar o uso de largura de banda executando vários processos paralelos rsync . Ele está disponível no GitHub em https://github.com/jbd/msrsync.

msrsync divide o diretório de origem em "buckets" separados e executa processos individuais rsync em cada bucket.

Testes preliminares usando uma VM de quatro núcleos mostraram a melhor eficiência ao usar 64 processos. Use a opção msrsync-p para definir o número de processos como 64.

Observe que msrsync só pode escrever para e a partir de volumes locais. A origem e o destino devem estar acessíveis como pontos de montagem locais na estação de trabalho usada para emitir o comando.

Siga estas instruções para usar msrsync para preencher o Armazenamento de Blobs do Azure com o Azure HPC Cache.

  1. Instale msrsync e seus pré-requisitos (rsync e Python 2.6 ou posterior)

  2. Determine o número total de arquivos e diretórios a serem copiados.

    Por exemplo, use o utilitário prime.py com argumentos prime.py --directory /path/to/some/directory (disponível baixando https://github.com/Azure/Avere/blob/main/src/clientapps/dataingestor/prime.py).

    Se não estiver usando prime.py, você poderá calcular o número de itens com a ferramenta GNU find da seguinte maneira:

    find <path> -type f |wc -l         # (counts files)
    find <path> -type d |wc -l         # (counts directories)
    find <path> |wc -l                 # (counts both)
    
  3. Divida o número de itens por 64 para determinar o número de itens por processo. Use esse número com a opção -f para definir o tamanho dos buckets ao executar o comando.

  4. Emita o msrsync comando para copiar arquivos:

    msrsync -P --stats -p64 -f<ITEMS_DIV_64> --rsync "-ahv --inplace" <SOURCE_PATH> <DESTINATION_PATH>
    

    Por exemplo, esse comando foi projetado para mover 11.000 arquivos em 64 processos de /test/source-repository para /mnt/hpccache/repositório:

    mrsync -P --stats -p64 -f170 --rsync "-ahv --inplace" /test/source-repository/ /mnt/hpccache/repository