7 votos

Mostrar la diferencia entre la APF instantáneas

Problema

PASF es increíble... y se enfurece con su falta de herramientas disponibles.

Lo que estoy tratando de hacer es, simplemente, un equivalente de btrfs send --no-data -p /snapshots/parent /snapshots/child

Mi investigación

  1. La mayoría de los google-fu devuelve usos de tmutil
    • tmutil es capaz de listlocalsnapshots / deletelocalsnapshots / localsnapshot (crear)
    • tmutil compare <snapshot_path> no acepta 2 instantáneas
    • tmutil compare EXISTING_SNAPSHOT devuelve críptico & indocumentados Must specify a snapshot root when performing a machine comparison.
    • tmutil calculatedrift <machine_directory> no parecen estar relacionados con la APF instantáneas
    • tmutil contiene algunos indocumentados opciones, pero nada relacionado con las instantáneas
    • Instantánea creado por tmutil han codificado com.apple.TimeMachine.YYYY-MM-DD-HHMMSS.local formato de nomenclatura
  2. diskutil contiene limitada instantáneas de apoyo

    • diskutil deleteSnapshot funciona como se pretende
    • diskutil listSnapshots lista de instantáneas con tamaños y algunos metadatos (a diferencia tmutil)
    • Ninguna facilidad para la creación de instantáneas
  3. Núcleo contiene fs_snapshot_* syscalls

    • La documentación es casi inexistente, pero una sola man página está disponible
    • Todas las operaciones habituales (fs_snapshot_delete / fs_snapshot_list / fs_snapshot_create / fs_snapshot_mount) son compatibles
    • GitHub ahl/apfs aloja una pequeña utilidad que muestra el uso de syscalls
    • fs_snapshot_list lista sólo com.apple.TimeMachine.* instantáneas
    • Cualquier operación de escritura (por ejemplo fs_snapshot_create) terminan con la aplicación asesinados con fs_snapshot_create: Operation not permitted (probablemente debido a la documentada en el hombre la razón: "se requiere un adicional de derecho")
  4. Comercial de la aplicación, Carbon Copy Cloner, es capaz de manipular las instantáneas

    • Por razones obvias no revelar el modo en que lo hacen ;)

Ayuda? ;)

¿Hay algún método para obtener un diff entre dos instantáneas? Toda la documentación de cómo se puede ser administrada? El único acercamiento ingenuo que por la velocidad no es factible se está ejecutando rsync entre r/o montado instantáneas... pero esto es simplemente estúpido.

2voto

Jose Chavez Puntos 645

No hay ninguna herramienta disponible para la APF similar a lo que se ve con btrfs send. El estado de la APF es todavía relativamente "primeros días" cuando se trata de herramientas como el que. En btrfs tomó 3-4 años antes de la btrfs send herramienta ordinario Linux - yo no esperaría a Apple a ser capaz de empujar algo más rápido que eso.

El btrfs herramienta es muy elegante, en el que de manera relativamente eficiente proporciona una lista de comandos simples (tales como desvincular, cambiar el nombre, escribir) para transformar una instantánea existente (en el origen y el de destino) en otra instantánea que existe en la fuente, pero aún no en el destino.

Con APF usted no tiene una herramienta para crear de manera eficiente la lista de comandos diff. Sin embargo, puede utilizar cualquier herramienta que sincroniza dos carpetas ordinarias a través de una red. No va a ser tan eficientes en la generación de la lista de los diffs, pero debería ser posible que sea tan eficiente en la aplicación de los diffs (como btrfs receive comando está implementado en el espacio de usuario).

Una conocida herramienta para ese propósito es rsync, pero ya la hemos mencionado que usted no desea ejecutar rsync a causa de la velocidad. Lamentablemente, no hay realmente métodos más expeditivos - a menos que usted tiene algún tipo especial de caso de uso donde se pueden hacer suposiciones acerca de los cambios entre sus instantáneas.

Con respecto a Carbon Copy Cloner y los derechos - yo no creo que sea un "secreto" como tal cómo trabajan con las instantáneas. Has encontrado las distintas llamadas al sistema para la instantánea de la manipulación (que no lo uso), y se puede leer la la real en formato de disco de especificación en la Manzana de la página web. Usted podría utilizar dtrace para inspeccionar el sistema actual de los parámetros de llamada y el orden de ellos que CCC usos.

La parte triste es que la creación de sus propios programas, que hacer algo con las instantáneas (además de la lista), requiere que el derecho "com.apple.privado.vfs.instantánea". Usted puede conseguir que el derecho sólo por hablar con soporte técnico de Apple para los desarrolladores. Si vas a crear software de copia de seguridad, por ejemplo, que deben ajustarse a los criterios para obtener de ella -, pero la única manera de averiguarlo es ponerse en contacto con Apple.

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