2 votos

Aprovechando instantáneas de APFS para una herramienta de respaldo personalizado

Administro varios servidores Linux y en algunos de ellos, si quiero realizar copias de seguridad, puedo aprovechar instantáneas del sistema de archivos. Es decir, puedo crear una instantánea y luego clonarla en una segunda máquina, asegurando así que todos los datos están seguros.

En macOS, no es posible clonar instantáneas directamente. Sin embargo, según las guías que he visto en línea, debería ser posible:

  1. Crear una instantánea de la carpeta root /
  2. Montar esa instantánea como solo lectura
  3. Copiar los archivos desde el punto de montaje, por ejemplo, usando rsync

Esto es similar a Carbon Copy Cloner y Active Backup for Business (de Synology), que primero realizan una instantánea y luego copian los contenidos de ella durante la copia de seguridad.

Según entiendo, debería ser tan simple como:

$ tmutil localsnapshot /
$ tmutil listlocalsnapshots / # Ej: última instantánea = com.apple.TimeMachine.2024-06-12-114527.local
$ mount_apfs -s com.apple.TimeMachine.2024-06-12-114527.local / /private/tmp/rsync-apfs # carpeta /private/tmp/rsync-apfs creada por mí
$ # ...acceder a /private/tmp/rsync-apfs y copiar el contenido usando rsync

Desafortunadamente, mount_apfs da el siguiente error:

mount_apfs: el volumen no pudo ser montado: Recurso ocupado

También vi aquí una variación de estos comandos donde "/" se sustituye por "/System/Volumes/Data", en cuyo caso el error que obtengo es:

mount_apfs: el volumen no pudo ser montado: Operación no permitida

Ejecutar con sudo produce los mismos resultados. ¿Cuál es el problema aquí? La búsqueda en google de estas dos errores no dio ninguna solución.

Editar: En caso de que sea relevante, estoy en macOS Ventura 13.6.4

4voto

Oskar Puntos 1242

Lo que describes es posible, implementado y ya hecho con un producto comercial SuperDuper

Mi pensamiento es:

  • no quieres rsync para esto (usa git si tienes archivos de texto y código para guardar o usa una herramienta completa si quieres una copia de seguridad completa de archivos Mac)
  • Manejar la sintaxis de montaje es complicado (y espero que un experto venga y nos enseñe cómo hacer un script de lo que imaginas)
  • quieres asr para copiar los archivos y toda la metadata y todo tipo de enlaces en general
  • subcontrata esto a un experto en lugar de gastar tu valioso tiempo creando una solución DIY.
  • El tiempo que pasas poniéndote al día con la herramienta de Dave Nanian (o Mike Bombich) será mucho menos que tratar de alcanzar su habilidad para mejorar el funcionamiento de apfs no documentado por Apple. (Gracias a personas como Bombich, Nanian y Oakley por su trabajo documentando y ampliando la copia de seguridad de archivos APFS)
  • Carbon Copy Cloner también es increíble y vale la pena evaluarlo, pero si eres hábil en scripting y shell y rsync, empezaría con SD sobre CCC personalmente.

Considerando tu requerimiento,

"Quiero copiar archivos a través de una conexión de red de alta latencia (a mitad de camino alrededor del mundo a mi propio NAS alojado por mí mismo a través de mi propia VPN privada). CCC solo admite SMB para copiar por la red y SMB es lento como mierda, mientras que rsync maximiza el ancho de banda de la conexión."

y dado que las instantáneas de APFS de macOS parecen ser un objetivo móvil en cuanto a poder utilizarlas como quieras, ¿por qué no usar una herramienta de copia de seguridad (por ejemplo, Carbon Copy Cloner, SuperDuper) para crear una copia de seguridad propia (por ejemplo, un sparsebundle), y luego usar rsync para sincronizarlo como quieras? Algunas herramientas (incluido CCC) también admiten scripting previo y posterior al trabajo, lo cual podría ser una característica bienvenida para ti.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X