¿Cómo mover archivos de un sistema de archivos zfs a un sistema de archivos zfs diferente en el mismo grupo?

17

Tengo dos sistemas de archivos en el mismo grupo de zfs, /mnt/fs_ay /mnt/fs_b. Quiero mover aproximadamente 1 TB de datos de fs_aa fs_b. Pero cuando yo:

mv /mnt/fs_a/mythtv_recordings /mnt/fs_b/

para mi sorpresa, comienza a copiar los archivos bloque por bloque. Dado el tiempo que tomó mover un archivo de 2GB, parece que esta operación tomaría días de agitación masiva para terminar.

Tiene que haber una forma mucho más inteligente y rápida de hacer esto, ¿verdad?

Fred Hamilton
fuente

Respuestas:

22

(Esto comenzó como un comentario pero se hizo demasiado largo, así que ahora es una respuesta)

Desafortunadamente, la respuesta es no". No hay una forma más rápida o inteligente de hacer esto.

Los sistemas de archivos ZFS (aunque estén en el mismo grupo) son sistemas de archivos separados. Ni mvninguna otra herramienta puede mover los punteros de bloque o lo que sea para que los archivos que estaban encendidos fs_aestén ahora encendidos fs_b.

(Por cierto, múltiples particiones formateadas o volúmenes LVM en el mismo disco o matriz de incursiones también son sistemas de archivos separados y también se mvpueden copiar y eliminar)

Este problema ha surgido varias veces a lo largo de los años (con algunas conversaciones sobre la creación de una herramienta para hacer lo que quiere) y, según tengo entendido, la mayor dificultad que lo pone en la canasta demasiado difícil es la cuestión de cómo manejar las instantáneas - si hay instantáneas de fs_a, los bloques estarían en ambos sistemas de archivos al mismo tiempo. Lo mismo es cierto para los archivos que tienen enlaces duros.

Me he encontrado con él muchas veces (por ejemplo, cuando movía archivos entre conjuntos de datos como lo hizo, o cuando necesito convertir un subdirectorio a fs), y acabo de aprender a soportar las molestias. Puede ser una gran PITA.

si fs_bestá vacía o no existe todavía y que desea mover los enteros contenidos de fs_aa fs_b(y no sólo algunos o la mayoría de los archivos y directorios) que puede utilizar zfs renamepara cambiar el nombre fs_aa fs_b. Sin embargo, sospecho que esto no es relevante para su situación.

Hay un problema abierto sobre esto para ZFSOnLinux en https://github.com/zfsonlinux/zfs/issues/2991

No he buscado, pero esperaría que OpenZFS ascendente e incluso Sun / Oracle ZFS probablemente tengan informes de errores / solicitudes de características similares.

Por cierto, consulte también /server/584693/freenas-why-isnt-mv-command-instant-within-a-raidz1-volume

cas
fuente
3
Gracias por la respuesta completa. Agradezco la sugerencia de cambio de nombre, pero como sospechas, tengo aún más datos sobre los que no quiero en b. Al menos puedo seguir adelante y copiar los archivos a través de un disco de búfer para al menos eliminar la paliza.
Fred Hamilton