Mover dados para o armazenamento de Blob do Azure

Se o seu fluxo de trabalho incluir a movimentação de dados para o armazenamento de Blob do Azure, certifique-se de que está a utilizar uma estratégia eficiente. Você deve criar o cache, adicionar o contêiner de blob como um destino de armazenamento e copiar seus dados usando o Cache HPC do Azure.

Este artigo explica as melhores maneiras de mover dados para o armazenamento de blob para uso com o Cache HPC do Azure.

Gorjeta

Este artigo não se aplica ao armazenamento de blob montado em NFS (destinos de armazenamento ADLS-NFS). Você pode usar qualquer método baseado em NFS para preencher um contêiner de blob ADLS-NFS antes ou depois de adicioná-lo ao cache HPC. Leia Pré-carregar dados com o protocolo NFS para saber mais.

Tenha estes factos em mente:

  • O Cache HPC do Azure usa um formato de armazenamento especializado para organizar dados no armazenamento de blobs. É por isso que um destino de armazenamento de blob deve ser um contêiner novo e vazio ou um contêiner de blob que foi usado anteriormente para dados do Cache HPC do Azure.

  • Copiar dados através do Cache HPC do Azure para um destino de armazenamento back-end é mais eficiente quando você usa vários clientes e operações paralelas. Um comando de cópia simples de um cliente moverá os dados lentamente.

As estratégias descritas neste artigo funcionam para preencher um contêiner de blob vazio ou para adicionar arquivos a um destino de armazenamento usado anteriormente.

Copiar dados através da Cache HPC do Azure

O Cache HPC do Azure foi projetado para atender vários clientes simultaneamente, portanto, para copiar dados por meio do cache, você deve usar gravações paralelas de vários clientes.

Diagram showing multi-client, multi-threaded data movement: At the top left, an icon for on-premises hardware storage has multiple arrows coming from it. The arrows point to four client machines. From each client machine three arrows point toward the Azure HPC Cache. From the Azure HPC Cache, multiple arrows point to blob storage.

Os cp comandos ou copy que você normalmente usa para transferir dados de um sistema de armazenamento para outro são processos de thread único que copiam apenas um arquivo de cada vez. Isso significa que o servidor de arquivos está ingerindo apenas um arquivo de cada vez - o que é um desperdício dos recursos do cache.

Esta seção explica estratégias para criar um sistema de cópia de arquivos multicliente e multithreaded para mover dados para o armazenamento de blob com o Cache HPC do Azure. Ele explica conceitos de transferência de arquivos e pontos de decisão que podem ser usados para cópia eficiente de dados usando vários clientes e comandos de cópia simples.

Ele também explica alguns utilitários que podem ajudar. O msrsync utilitário pode ser usado para automatizar parcialmente o processo de divisão de um conjunto de dados em buckets e usando comandos rsync. O parallelcp script é outro utilitário que lê o diretório de origem e emite comandos de cópia automaticamente.

Planeamento estratégico

Ao criar uma estratégia para copiar dados em paralelo, você deve entender as compensações em tamanho de arquivo, contagem de arquivos e profundidade de diretório.

  • Quando os arquivos são pequenos, a métrica de interesse são os arquivos por segundo.
  • Quando os ficheiros são grandes (10MiBi ou superior), a métrica de interesse é de bytes por segundo.

Cada processo de cópia tem uma taxa de transferência e uma taxa de transferência de arquivos, que pode ser medida temporizando o comprimento do comando copy e fatorando o tamanho do arquivo e a contagem de arquivos. Explicar como medir as taxas está fora do escopo deste documento, mas é imperativo entender se você estará lidando com arquivos pequenos ou grandes.

As estratégias para ingestão de dados paralelos com o Cache HPC do Azure incluem:

Próximos passos

Depois de configurar o armazenamento, saiba como os clientes podem montar o cache.