Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
✔️ Aplica-se a: Partilhas de ficheiros NFS clássicos criadas com o fornecedor de recursos Microsoft.Storage
✖️ Não se aplica a: partilhas de ficheiros NFS criadas com o fornecedor de recursos Microsoft.FileShares ou partilhas de ficheiros SMB clássicas criadas com o fornecedor de recursos Microsoft.Storage
Este artigo aborda os aspetos básicos da migração de servidores de ficheiros Linux para partilhas de ficheiros NFS Azure, que estão disponíveis apenas como partilhas de ficheiros SSD (premium). Também compara as ferramentas open source de copiar ficheiros fpsync e rsync para te ajudar a perceber como se comportam ao copiar dados para partilhas de ficheiros no Azure.
Observação
O Ficheiros do Azure não oferece suporte a ACLs (listas de controle de acesso) NFS.
Pré-requisitos
Precisas de pelo menos uma partilha de ficheiros NFS Azure montada numa máquina virtual Linux (VM). Para criar um, consulte Criar um compartilhamento de arquivos clássico do Azure. Monta a partilha usando o nconnect para usar múltiplas ligações TCP e melhor desempenho. Para obter mais informações, consulte Melhorar o desempenho do compartilhamento de arquivos do Azure NFS.
Ferramentas de migração
Muitas ferramentas estão disponíveis para transferir dados para compartilhamentos de arquivos NFS. No entanto, nem todos eles são eficientes ao lidar com um sistema de arquivos distribuído com considerações de desempenho distintas em comparação com as configurações locais. Em um sistema de arquivos distribuído, cada chamada de rede envolve uma viagem de ida e volta a um servidor que pode não ser local. Portanto, otimizar o tempo gasto em chamadas de rede é crucial para alcançar o desempenho ideal e a transferência eficiente de dados pela rede.
Usar o Armazenamento do Azure Mover
Agora você pode usar o Armazenamento do Azure Mover para migrar seus compartilhamentos de arquivos NFSv3 e NFSv4 para compartilhamentos de arquivos do Azure NFSv4.1. O Armazenamento do Azure Mover é um serviço de migração totalmente gerenciado que permite migrar arquivos e pastas locais para o Azure enquanto minimiza o tempo de inatividade.
Usando fpsync vs. rsync
Apesar de ser single-threaded, o rsync é uma ferramenta versátil de cópia de arquivos de código aberto. Ele pode copiar localmente, de/para outro host em qualquer shell remoto ou de/para um daemon rsync remoto. Ele oferece muitas opções e permite a especificação flexível do conjunto de arquivos a serem copiados. No entanto, o fpsync é um aplicativo multithreaded e, portanto, oferece algumas vantagens, incluindo a capacidade de executar trabalhos rsync em paralelo.
Este artigo explica como usar o fpsync para transferir dados de um servidor de ficheiros Linux para partilhas de ficheiros do NFS Azure.
Para copiar os dados, o fpsync usa as ferramentas rsync (padrão), cpio ou tar. Ele calcula subconjuntos do diretório src_dir/ de origem e gera trabalhos de sincronização para sincronizá-los com o diretório dst_dir/de destino. Ele executa trabalhos de sincronização em tempo real enquanto rastreia simultaneamente o sistema de arquivos, tornando-se uma ferramenta útil para migrar eficientemente grandes sistemas de arquivos e copiar grandes conjuntos de dados com vários arquivos.
Observação
O Fpsync sincroniza apenas o conteúdo do diretório, não o diretório de origem em si. Ao contrário do rsync, o fpsync impõe o '/' final no diretório de origem, o que significa que você não obterá um subdiretório com o nome do diretório de origem no diretório de destino após a sincronização.
Instalar fpart
Para usar o fpsync, precisas de instalar o particionador do sistema de ficheiros fpart. Instale o fpart na distribuição Linux de sua escolha. Após a instalação, o fpsync aparece em /usr/bin/.
No Ubuntu, use o gerenciador de pacotes apt para instalar o fpart.
sudo apt-get install fpart
Copiar dados da origem para o destino
Verifique se o compartilhamento de arquivos do Azure de destino (destino) está montado em uma VM Linux. Veja Pré-requisitos.
Se você estiver fazendo uma migração completa, copiará seus dados em três fases:
- Cópia da linha de base: Copie da origem para o destino quando não existirem dados no destino. Para cópia inicial, recomendamos usar o fpsync com o cpio como ferramenta de cópia.
-
Cópia incremental: Copie apenas as alterações incrementais da origem para o destino. Para sincronização incremental, usa
fpsynco withrsynccomo ferramenta de cópia. Execute este comando várias vezes para captar todas as alterações. - Passe final: Uma passagem final é necessária para excluir todos os arquivos no destino que não existem na origem.
Copiar dados com fpsync sempre envolve alguma versão deste comando:
fpsync -m <specify copy tool - rsync/cpio/tar> -n <parallel transfers> <absolute source path> <absolute destination path>
Versão de referência
Para cópia de linha de base, use fpsync com cpio.
fpsync -m cpio -n <parallel transfers> <absolute source path> <absolute destination path>
Para obter mais informações, consulte Suporte do Cpio e Tar.
Cópia incremental
Para sincronização incremental, use fpsync com a ferramenta de cópia padrão (rsync). Execute este comando várias vezes para captar todas as alterações.
fpsync -n <parallel transfers> <absolute source path> <absolute destination path>
Por defeito, fpsync especifica as seguintes rsync opções: -lptgoD -v --numeric-ids. Adicione -o option ao fpsync comando para especificar opções extra rsync .
Passe final
Depois de várias sincronizações incrementais, você precisa fazer uma passagem final para excluir todos os arquivos nesse destino que não existem na origem. Você pode fazer isso manualmente com rsync --delete para excluir arquivos extras do /data/dst/ diretório ou pode usar fpsync com a opção -E. Para obter detalhes, consulte O Passe Final.
Comparando rsync e fpsync com diferentes conjuntos de dados
Esta seção compara o desempenho de rsync e fpsync com diferentes conjuntos de dados.
Conjuntos de dados e configuração
A tabela seguinte lista os diferentes conjuntos de dados usados para comparar o desempenho das ferramentas de cópia sob diferentes cargas de trabalho.
| Configuração # | Tipo de cópia | Contagem de ficheiros | Contagem de diretórios | Tamanho do ficheiro | Tamanho total |
|---|---|---|---|---|---|
| 1.1 | Versão de referência | 1 milhão | 1 | 0-32 KiB | 18 GiB |
| 1.2 | Incremental (variação delta) | 1 milhão | 1 | 0-32 KiB | 18 GiB |
| 2 | Versão de referência | 191,345 | 3,906 | 0-32 KiB | 3 GiB |
| 3 | Versão de referência | 5.000 | 1 | 10 MiB | 50 GiB |
Os testes foram realizados em VMs do Azure Standard_D8s_v3 com 8 vCPUs, 32 GiB de memória e mais de 1 TiB de espaço em disco para grandes conjuntos de dados. Para o destino, configuramos compartilhamentos de arquivos do Azure NFS com mais de 1 TiB de tamanho provisionado.
Experiências e resultados: rsync vs. fpsync
Testes mostram que o fpsync tem melhor desempenho quando se usam 64 threads com rsync e 16 threads com cpio para uma partilha de ficheiros NFS do Azure montada com nconnect=8. Os resultados reais variam consoante a sua configuração e conjuntos de dados.
Observação
A taxa de transferência dos Arquivos do Azure pode ser muito maior do que a representada nos gráficos a seguir. Algumas das experiências foram deliberadamente conduzidas com pequenos conjuntos de dados para simplificar.
Configuração 1
Para um único diretório com 1 milhão de arquivos pequenos totalizando 18 GiB, executamos este teste como uma cópia de linha de base e cópia incremental.
O gráfico seguinte mostra os resultados de uma cópia de referência desde a origem até ao destino.
O gráfico seguinte mostra os resultados de uma cópia incremental (variação delta).
Configuração 2
O gráfico seguinte mostra os resultados de uma cópia de referência de 191.345 ficheiros pequenos em 3.906 diretórios, com um tamanho total de 3 GiB.
Configuração 3
O gráfico seguinte mostra os resultados de uma cópia de referência de 5.000 ficheiros grandes (10 MiB) num único diretório com um tamanho total de 50 GiB.
Resumo dos resultados
O uso de aplicativos multi-threaded como fpsync pode melhorar a taxa de transferência e IOPS ao migrar para compartilhamentos de arquivos do Azure NFS em comparação com ferramentas de cópia de thread único como rsync. Os nossos testes mostram que:
- A distribuição de dados pelo diretório ajuda a paralelizar o processo de migração e, assim, alcança um melhor desempenho.
- Copiar dados de tamanhos de arquivo maiores produz melhor desempenho do que copiar dados de tamanhos de arquivo menores.
A tabela a seguir resume os resultados:
| Configuração # | Contagem de ficheiros | Contagem de diretórios | Tamanho do ficheiro | Tamanho total | Duração do rsync | Rsync taxa de transferência | Duração do FPSYNC | Taxa de transferência do fpsync | Ganho de taxa de transferência |
|---|---|---|---|---|---|---|---|---|---|
| 1.1 (Base de referência) | 1 milhão | 1 | 0-32 KiB | 18 GiB | 837.06 minutos | 0,33 MiB/s | 228.16 minutos | 1,20 MiB/s | 267% |
| 1.2 (incremental) | 1 milhão | 1 | 0-32 KiB | 18 GiB | 84.02 minutos | 3,25 MiB/s | 7.5 minutos | 36,41 MiB/s | 1.020% |
| 2 (linha de base) | 191,345 | 3,906 | 0-32 KiB | 3 GiB | 191.86 minutos | 0,27 MiB/s | 8.47 minutos | 6,04 MiB/s | 2,164% |
| 3 (linha de base) | 5.000 | 1 | 10 MiB | 50 GiB | 8.12 minutos | 105,04 MiB/s | 2.76 minutos | 308,90 MiB/s | 194% |
Isenção de responsabilidade de informações de terceiros
As ferramentas de código aberto mencionadas neste artigo são soluções de terceiros bem conhecidas. A Microsoft não desenvolve, possui nem suporta estas ferramentas, nem direta nem indiretamente. És responsável por examinar a licença do software e a declaração de suporte fornecida na documentação do terceiro.