Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
✔️ Se aplica a: Recursos compartidos de archivos NFS clásicos creados con el proveedor de recursos Microsoft.Storage
✖️ No se aplica a: recursos compartidos de archivos NFS creados con el proveedor de recursos Microsoft.FileShares o recursos compartidos de archivos SMB clásicos creados con el proveedor de recursos Microsoft.Storage
En este artículo se tratan los aspectos básicos de la migración de servidores de archivos de Linux a recursos compartidos de archivos de Azure NFS, que solo están disponibles como recursos compartidos de archivos SSD (Premium). También compara las herramientas de copia de archivos código abierto fpsync y rsync para ayudarte a entender cómo funcionan al copiar datos a los compartidos de archivos de Azure.
Nota:
Azure Files no admite listas de control de acceso (ACL) NFS.
Prerrequisitos
Necesitas al menos un recurso compartido de archivos NFS Azure montado en una máquina virtual (VM) de Linux. Para crear uno, consulte Creación de un recurso compartido de archivos clásico de Azure. Monta el recurso compartido usando nconnect para usar múltiples conexiones TCP y mejorar el rendimiento. Para más información, consulte Mejora del rendimiento del recurso compartido de archivos NFS de Azure.
Herramientas de migración
Muchas herramientas están disponibles para transferir datos a recursos compartidos de archivos NFS. Sin embargo, no todos ellos son eficaces cuando se trabaja con un sistema de archivos distribuido con distintas consideraciones de rendimiento en comparación con las configuraciones locales. En un sistema de archivos distribuido, cada llamada de red implica un recorrido de ida y vuelta a un servidor que podría no ser local. Por lo tanto, optimizar el tiempo invertido en las llamadas de red es fundamental para lograr un rendimiento óptimo y una transferencia de datos eficaz a través de la red.
Uso de Azure Storage Mover
Ahora puede usar Azure Storage Mover para migrar los recursos compartidos de archivos NFSv3 y NFSv4 a los recursos compartidos de archivos de Azure NFSv4.1. Azure Storage Mover es un servicio de migración totalmente administrado que permite migrar archivos y carpetas locales a Azure a la vez que se minimiza el tiempo de inactividad.
Uso de fpsync frente a rsync
A pesar de ser uniproceso, rsync es una herramienta versátil de copia de archivos de código abierto. Puede copiar localmente, hacia o desde otro host a través de cualquier shell remoto, o hacia o desde un demonio rsync remoto. Ofrece muchas opciones y permite copiar una especificación flexible del conjunto de archivos. Sin embargo, fpsync es una aplicación multiproceso y por tanto, ofrece algunas ventajas, incluida la capacidad de ejecutar trabajos rsync en paralelo.
Este artículo explica cómo usar fpsync para transferir datos desde un servidor de archivos Linux a los compartidos de archivos de NFS en Azure.
Para copiar los datos, fpsync usa herramientas rsync (valor predeterminado), cpioo tar. Calcula subconjuntos del directorio de origen src_dir/ y genera trabajos de sincronización para sincronizarlos con el directorio de destino dst_dir/. Ejecuta trabajos de sincronización sobre la marcha mientras rastrea simultáneamente el sistema de archivos, lo que lo convierte en una herramienta útil para migrar de forma eficaz sistemas de archivos grandes y copiar grandes conjuntos de datos con varios archivos.
Nota:
Fpsync solo sincroniza el contenido del directorio, no el propio directorio de origen. A diferencia de rsync, fpsync aplica el "/" final en el directorio de destino, lo que significa que no obtendrá un subdirectorio con el nombre del directorio de origen en el directorio de destino después de la sincronización.
Instalación de fpart
Para usar fpsync, necesitas instalar el particionador del sistema de archivos fpart. Instale fpart en la distribución de Linux que prefiera. Tras la instalación, fpsync aparece bajo /usr/bin/.
En Ubuntu, use el administrador de paquetes apt para instalar fpart.
sudo apt-get install fpart
Copia de datos de origen a destino
Asegúrate de que el recurso compartido de archivos de Azure de destino (destino) está montado en una máquina virtual Linux. Consulte Requisitos previos.
Si va a realizar una migración completa, copiará los datos en tres fases:
- Copia de línea base: copia de origen a destino cuando no exista ningún dato en el destino. Para la copia de línea base, se recomienda usar fpsync con cpio como herramienta de copia.
-
Copia incremental: copie solo los cambios incrementales de origen a destino. Para sincronización incremental, úsalo
fpsyncrsynccomo herramienta de copia. Ejecuta este comando varias veces para capturar todos los cambios. - Pase final: se necesita un pase final para eliminar los archivos del destino que no existen en el origen.
La copia de datos con fpsync siempre implica alguna versión de este comando:
fpsync -m <specify copy tool - rsync/cpio/tar> -n <parallel transfers> <absolute source path> <absolute destination path>
Copia de línea base
Para la copia de línea base, use fpsync con cpio.
fpsync -m cpio -n <parallel transfers> <absolute source path> <absolute destination path>
Para obtener más información, consulte Compatibilidad con Cpio y Tar.
Copia incremental
Para sincronización incremental, úsalo fpsync con la herramienta de copia por defecto (rsync). Ejecuta este comando varias veces para capturar todos los cambios.
fpsync -n <parallel transfers> <absolute source path> <absolute destination path>
Por defecto, fpsync especifica las siguientes rsync opciones: -lptgoD -v --numeric-ids. Añade -o option al fpsync comando para especificar opciones adicionales rsync .
Pase final
Después de varias sincronizaciones incrementales, debe realizar un pase final para eliminar los archivos de ese destino que no existen en el origen. Puede hacerlo manualmente con rsync --delete para eliminar archivos adicionales del directorio /data/dst/ o puede usar fpsync con la opción -E. Para obtener más información, consulte El pase final.
Comparación de rsync y fpsync con diferentes conjuntos de datos
En esta sección se compara el rendimiento de rsync y fpsync con diferentes conjuntos de datos.
Conjuntos de datos y configuración
La siguiente tabla enumera los diferentes conjuntos de datos utilizados para comparar el rendimiento de las herramientas de copia bajo distintas cargas de trabajo.
| Configuración # | Tipo de copia | Recuento de archivos | Recuento de directorios | Tamaño de archivo | tamaño total |
|---|---|---|---|---|---|
| 1.1 | Copia de línea base | 1 millón | 1 | 0-32 KiB | 18 GiB |
| 1.2 | Incremental (cambio diferencial) | 1 millón | 1 | 0-32 KiB | 18 GiB |
| 2 | Copia de línea base | 191,345 | 3,906 | 0-32 KiB | 3 GiB |
| 3 | Copia de línea base | 5.000 | 1 | 10 MiB | 50 GiB |
Las pruebas se realizaron en Máquinas virtuales de Azure Standard_D8s_v3 con 8 vCPU, 32 GiB de memoria y más de 1 TiB de espacio en disco para grandes conjuntos de datos. Para el destino, hemos configurado recursos compartidos de archivos de Azure NFS con más de 1 tamaño aprovisionado de TiB.
Experimentos y resultados: rsync frente a fpsync
Las pruebas muestran que fpsync rinde mejor cuando usas 64 hilos con rsync y 16 hilos con cpio para un archivo Azure NFS compartido con nconnect=8. Los resultados reales varían según tu configuración y conjuntos de datos.
Nota:
El rendimiento de Azure Files puede ser mucho mayor que el representado en los gráficos siguientes. Algunos de los experimentos se realizaron deliberadamente con pequeños conjuntos de datos para simplificar.
Configuración 1
Para un único directorio con 1 millón de archivos pequeños que sume 18 GiB, hemos ejecutado esta prueba como una copia de línea base y una copia incremental.
El siguiente gráfico muestra los resultados de una copia base desde la fuente hasta el destino.
El siguiente gráfico muestra los resultados de una copia incremental (cambio delta).
Configuración 2
El siguiente gráfico muestra los resultados de una copia de referencia de 191.345 archivos pequeños en 3.906 directorios con un tamaño total de 3 GiB.
Configuración 3
El siguiente gráfico muestra los resultados de una copia base de 5.000 archivos grandes (10 MiB) en un único directorio con un tamaño total de 50 GiB.
Resumen de los resultados
El uso de aplicaciones multiproceso como fpsync puede mejorar el rendimiento e IOPS al migrar a recursos compartidos de archivos de Azure NFS en comparación con las herramientas de copia de un solo subproceso, como rsync. Nuestras pruebas muestran que:
- La distribución de datos en el directorio ayuda a paralelizar el proceso de migración y, por tanto, logra un mejor rendimiento.
- La copia de datos de tamaños de archivo más grandes produce un mejor rendimiento que copiar datos de tamaños de archivo más pequeños.
En la tabla siguiente se resumen los resultados.
| Configuración # | Recuento de archivos | Recuento de directorios | Tamaño de archivo | tamaño total | Duración de rsync | Rendimiento rsync | Duración de fpsync | Rendimiento de fpsync | Ganancia de rendimiento |
|---|---|---|---|---|---|---|---|---|---|
| 1,1 (línea base) | 1 millón | 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 millón | 1 | 0-32 KiB | 18 GiB | 84,02 minutos | 3,25 MiB/s | 7,5 minutos | 36,41 MiB/s | 1020 % |
| 2 (línea base) | 191,345 | 3,906 | 0-32 KiB | 3 GiB | 191,86 minutos | 0,27 MiB/s | 8,47 minutos | 6,04 MiB/s | 2164 % |
| 3 (línea base) | 5.000 | 1 | 10 MiB | 50 GiB | 8,12 minutos | 105,04 MiB/s | 2,76 minutos | 308,90 MiB/s | 194 % |
Declinación de responsabilidades sobre la información de terceros
Las herramientas de código abierto mencionadas en este artículo son soluciones conocidas de terceros. Microsoft no desarrolla, posee ni soporta estas herramientas, ni directa ni indirectamente. Eres responsable de examinar la licencia del software y la declaración de soporte proporcionada en la documentación del tercero.