Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Há várias opções para disponibilizar os arquivos de cena e de ativos para os aplicativos de renderização nas VMs do pool:
-
Armazenamento de Blobs do Azure:
- Arquivos de cena e de recursos são carregados para o armazenamento de blobs a partir de um sistema de arquivos local. Quando o aplicativo é executado por uma tarefa, os arquivos necessários são copiados do armazenamento de BLOBs na máquina virtual para que possam ser acessados pelo aplicativo de renderização. Os arquivos de saída são gravados pelo aplicativo de renderização no disco da VM e, em seguida, copiados para o armazenamento de blobs. Se necessário, os arquivos de saída podem ser baixados do armazenamento de blobs para um sistema de arquivos local.
- O Armazenamento de Blobs do Azure é uma opção simples e econômica para projetos menores. Como todos os arquivos de ativos são necessários em cada VM do pool, à medida que o número e o tamanho desses arquivos aumentam, é preciso tomar cuidado para garantir que as transferências de arquivos sejam as mais eficientes possível.
- Armazenamento do Azure como um sistema de arquivos usando blobfuse:
- Para VMs do Linux, uma conta de armazenamento pode ser exposta e usada como um sistema de arquivos quando o driver do sistema de arquivos virtual blobfuse é usado.
- Essa opção tem a vantagem de ser muito econômica, uma vez que nenhuma VM é necessária para o sistema de arquivos, além de o cache blobfuse nas VMs evitar downloads repetidos dos mesmos arquivos para vários trabalhos e tarefas. A movimentação de dados também é simples, pois os arquivos são apenas blobs, e APIs e ferramentas padrão, como o AzCopy, podem ser usadas para copiar um arquivo entre um sistema de arquivos on-premises e o Armazenamento do Azure.
- Sistema de arquivos ou compartilhamento de arquivos:
- Dependendo do sistema operacional da VM e dos requisitos de desempenho/escala, as opções incluem Arquivos do Azure, o uso de uma VM com discos anexados para NFS, o uso de várias VMs com discos anexados para um sistema de arquivos distribuído como o GlusterFS, ou o uso de uma oferta de terceiros.
- Os Sistemas de Avere agora fazem parte da Microsoft e, no futuro próximo, terão soluções que são ideais para a renderização em larga escala e de alto desempenho. A solução Avere permite que um cache NFS ou SMB baseado no Azure seja criado para funcionar com o armazenamento de blobs ou com dispositivos NAS locais.
- Com um sistema de arquivos, os arquivos podem ser lidos ou gravados diretamente no sistema de arquivos ou podem ser copiados entre o sistema de arquivos e o pool de VMs.
- Um sistema de arquivos compartilhados permite um grande número de ativos compartilhados entre projetos e trabalhos a serem utilizados com as tarefas de renderização apenas acessando o que é necessário.
Usar o Armazenamento de Blobs do Azure
Use uma conta de armazenamento blob ou uma conta de armazenamento v2 de uso geral. Esses dois tipos de conta de armazenamento podem ser configurados com limites significativamente mais altos comparados a uma conta de armazenamento de uso geral v1, conforme detalhado nessa postagem no blog. Quando configurados, os limites mais altos permitem melhor desempenho e escalabilidade, especialmente quando muitas VMs de pool acessam a conta de armazenamento.
Copiando arquivos entre o cliente e o armazenamento de blobs
Para copiar arquivos para o armazenamento do Azure e dele, vários mecanismos podem ser usados, incluindo a API de Blob Storage, a Biblioteca de Movimentação de Dados do Armazenamento do Azure, a ferramenta de linha de comando AzCopy para Windows ou Linux, o Gerenciador de Armazenamento do Azure e o Lote do Azure Explorer.
Por exemplo, usando o azcopy, todos os ativos em uma pasta podem ser transferidos da seguinte maneira:
azcopy /source:. /dest:https://account.blob.core.windows.net/rendering/project /destsas:"?st=2018-03-30T16%3A26%3A00Z&se=2020-03-31T16%3A26%3A00Z&sp=rwdl&sv=2017-04-17&sr=c&sig=sig" /Y
Para copiar somente os arquivos modificados, o parâmetro /XO podem ser usados:
azcopy /source:. /dest:https://account.blob.core.windows.net/rendering/project /destsas:"?st=2018-03-30T16%3A26%3A00Z&se=2020-03-31T16%3A26%3A00Z&sp=rwdl&sv=2017-04-17&sr=c&sig=sig" /XO /Y
Copiando arquivos de entrada do Armazenamento de Blobs para as VMs do pool do Batch
Há duas abordagens diferentes para copiar arquivos com a melhor abordagem determinada pelo tamanho dos ativos de trabalho. A abordagem mais simples é copiar todos os arquivos de recurso para as VMs do pool para cada tarefa:
- Quando houver arquivos exclusivos para um trabalho, mas que são necessários para todas as tarefas de um trabalho, em seguida, um tarefa de preparação de trabalho pode ser especificada para copiar todos os arquivos. A tarefa de preparação de trabalho é executada uma vez quando a primeira tarefa de trabalho for executada em uma VM, mas não será executada novamente para tarefas de trabalho subsequente.
- Quando uma tarefa de liberação do trabalho precisar ser especificada para remover os arquivos de cada trabalho após a conclusão do trabalho, isso evitará que o disco da VM fique cheio com todos os arquivos de ativos do trabalho.
- Quando houver vários trabalhos usando os mesmos ativos, com apenas alterações incrementais nos ativos de cada trabalho, todos os arquivos de ativos ainda serão copiados, mesmo que apenas um subconjunto deles tenha sido atualizado. Isso poderá ser ineficiente quando houver muitos arquivos grandes de ativo.
Quando os arquivos de recursos são reutilizados entre tarefas, com apenas alterações incrementais entre elas, uma abordagem mais eficiente, embora um pouco mais complexa, é armazenar os recursos na pasta compartilhada da VM e sincronizar apenas os arquivos alterados.
- A tarefa de preparação do trabalho executaria a cópia usando o AzCopy com o parâmetro /XO para a pasta compartilhada da VM especificada pela variável de ambiente AZ_BATCH_NODE_SHARED_DIR. Isso copiará os arquivos alterados somente para cada VM.
- Será preciso considerar o tamanho de todos os ativos para garantir que caibam na unidade temporária das VMs do pool.
O Lote do Azure tem suporte nativo para copiar arquivos entre uma conta de armazenamento e as VMs de pool do Batch. Os arquivos de recurso da tarefa copiam arquivos do armazenamento para as VMs do pool e podem ser especificados para a tarefa de preparação do trabalho. Infelizmente, quando há centenas de arquivos, é possível chegar a um limite e as tarefas falharem. Quando houver um grande número de ativos, é recomendável usar o utilitário de linha de comando AzCopy na tarefa de preparação do trabalho, que oferece suporte a caracteres curinga e não tem limite.
Copiar arquivos de saída para o Armazenamento de Blobs das VMs do pool do Batch
Arquivos de saída podem ser usados para copiar arquivos de uma VM do pool para o armazenamento. Um ou mais arquivos podem ser copiados da VM para uma conta de armazenamento especificada quando a tarefa for concluída. A saída renderizada deve ser copiada, mas também pode ser desejável para armazenar arquivos de log.
Usando um sistema de arquivo virtual blobfuse para os pools de VM do Linux
Blobfuse é um driver de sistema de arquivos virtual para o Armazenamento de Blobs do Azure, que permite acessar os arquivos armazenados como blobs em uma conta de armazenamento por meio do sistema de arquivos Linux.
Os nós do pool podem montar o sistema de arquivos quando são iniciados, ou a montagem pode ocorrer como parte de uma tarefa de preparação do job — uma tarefa que só é executada quando a primeira tarefa de um job é executada em um nó. O Blobfuse pode ser configurado para usar tanto um ramdisk quanto o SSD local da VM para armazenar arquivos em cache, o que aumentará significativamente o desempenho se várias tarefas em um nó acessarem alguns dos mesmos arquivos.
Modelos de exemplo estão disponíveis para executar renderizações autônomas do V-Ray usando o sistema de arquivos blobfuse e podem ser usados como base para modelos de outros aplicativos.
Acessar arquivos
Tarefas de trabalho especificam caminhos para arquivos de entrada e saída usando o sistema de arquivos montado.
Copiando arquivos de entrada do Armazenamento de Blobs para as VMs do pool do Batch
Como os arquivos são simplesmente blobs no Armazenamento do Azure, APIs, ferramentas e interfaces do usuário padrão de blob podem ser usadas para copiar arquivos entre um sistema de arquivos local e o armazenamento de blobs; por exemplo, AzCopy, Gerenciador de Armazenamento, Batch Explorer etc.
Como usar os Arquivos do Azure com as VMs do Windows
Os Arquivos do Azure oferecem compartilhamentos de arquivos totalmente gerenciados na nuvem que são acessíveis por meio do protocolo SMB. O Arquivos do Azure baseia-se no Armazenamento de Blobs do Azure; é econômico e pode ser configurado com replicação de dados para outra região, tornando-se globalmente redundante. Metas de escalabilidade devem ser revisadas para determinar se o Arquivos do Azure deve ser usado, considerando o tamanho previsto do pool e o número de arquivos de ativos.
Há uma documentação que aborda como montar um compartilhamento de arquivos do Azure.
Montagem de um compartilhamento de arquivos do Azure
Para usar no Batch, é necessário realizar uma operação de montagem sempre que uma tarefa for executada, pois não é possível manter a conexão entre as tarefas. A maneira mais fácil de fazer isso é usar cmdkey para manter as credenciais usando a tarefa inicial na configuração do pool e, em seguida, montar o compartilhamento antes de cada tarefa.
Exemplo de uso de cmdkey em um modelo de pool (com caracteres de escape para uso em arquivo JSON) – observe que, ao separar a chamada cmdkey da chamada net use, o contexto do usuário para a tarefa de inicialização deve ser o mesmo usado para executar as tarefas:
"startTask": {
"commandLine": "cmdkey /add:storageaccountname.file.core.windows.net
/user:AZURE\\markscuscusbatch /pass:storage_account_key",
"userIdentity":{
"autoUser": {
"elevationLevel": "nonadmin",
"scope": "pool"
}
}
Exemplo de Linha de comando de tarefa de trabalho:
"commandLine":"net use S:
\\\\storageaccountname.file.core.windows.net\\rendering &
3dsmaxcmdio.exe -v:5 -rfw:0 -10 -end:10
-bitmapPath:\"s:\\3dsMax\\Dragon\\Assets\"
-outputName:\"s:\\3dsMax\\Dragon\\RenderOutput\\dragon.jpg\"
-w:1280 -h:720
\"s:\\3dsMax\\Dragon\\Assets\\Dragon_Character_Rig.max\""
Acessar arquivos
As tarefas especificam caminhos para arquivos de entrada e de saída usando o sistema de arquivos montado, seja por meio de uma unidade mapeada ou de um caminho UNC.
Copiando arquivos de entrada do Armazenamento de Blobs para as VMs do pool do Batch
O Arquivos do Azure é compatível com todas as principais APIs e ferramentas com suporte ao Armazenamento do Azure, por exemplo: AzCopy, CLI do Azure, Gerenciador de Armazenamento, Azure PowerShell, Batch Explorer etc.
Sincronização de Arquivos do Azure está disponível para sincronizar automaticamente os arquivos entre um sistema de arquivos local e um compartilhamento de arquivos do Azure.
Próximas etapas
Para obter mais informações sobre as opções de armazenamento, consulte a documentação detalhada: