Time Machine, y la manzana viaja en el tiempo

por davidgp el 12/05/2008

Una historia sobre la muerte de un disco duro, me recordó que era mejor automatizar mi proceso de copias de seguridad, tal y como tenía en Tiger y que no había reactivado desde que estaba en Leopard.

Así que, después de adquirir un disco duro de 500 GB usb, ya tenía todo lo que necesitaba. Aprovechando que tenía Leopard, ¿Por qué no probar Time Machine? Y de un día para otro me quedé enamorado de lo sencillo y elegante de la aplicación. Si ya lo decía John Siracusa en su análisis para Ars Technica, Apple ha conseguido una aplicación tan sencilla de usar, a la parte que práctica, que lo difícil es no usarla.

Tu enchufas un disco duro externo y, si tiene espacio suficiente, Time Machine te pregunta si deseas usarla para hacer copias de seguridad. Si dices que sí, a partir de ese momento, automáticamente se hará una copia de seguridad a cada hora. Las únicas opciones de configuración es indicar las carpetas del disco de las que no se quiere hacer copias de seguridad. En dos segundos ya está todo listo.

Preferencias Time Machine

Hacer la copia de seguridad es solamente la mitad de la ecuación, la otra mitad es recuperarlas. Entrando en Time Machine puedes observar una sucesión de finders con fondo espacial. Si te desplazas por ellos te puedes mover en el tiempo recuperando archivos borrados u anteriores versiones de los mismos. Hay como cuatro botones, más simple imposible. Y realmente no se echa en falta nada más.

Pantalla principal de Time Machine

Por supuesto está el caso extremo: se te ha muerto el disco duro. Pues recuperar tus datos sigue siendo igual de fácil. Arrancando con el CD de Leopard puedes regenerar tu ordenador tal y como lo tenías después de tu última copia de seguridad.

Si la sencillez de como funciona me gustó mucho, más aún me gustó la elegancia de como esta implementado. Si entráis en vuestro disco duro donde se archiva la copia de seguridad, veréis que dentro de una carpeta llamada Backups.backupdb aparece otra carpeta que tendrá el nombre de vuestro ordenador. Dentro de esta aparecen un montón de subcarpetas, cada una de ellas con el formato años-mes-día-horaminutosegundo. Si ojeáis dentro de estas veréis que cada una de ellas tiene una copia exacta del contenido de tu disco duro a esa hora.

Aquí es donde empieza a aparecer lo raro. En mi caso los contenidos de que se hacen copia de seguridad de mi disco duro son de 60 GB, en la captura de pantalla podéis ver que hay más de 10 subcarpetas, lo cual hace que el contenido sea mayor de 600 GB. Sin embargo, todo coge perfectamente en unos escasos 70 GB, dentro de mi nuevo disco duro de 500 GB que mencione anteriormente. Todo esto, sin utilizar ningún tipo de compresión, ni formato de fichero especial (si enchufáis este disco duro a otro ordenador podréis acceder a estos datos sin problemas, incluso desde Tiger).

Sistemas de ficheros que genera el Time Machine

Apple ha usado aquí, de una forma muy elegante desde mi punto de vista, los hardlinks que permiten los sistemas de ficheros de sistemas operativos tipo Unix, como es el caso de Mac OS X con su sistema de ficheros HFS+. Un fichero que ves cuando abres el Finder o haces un ls en un terminal no es más que una referencia a donde están almacenados los datos en un disco duro. Esta referencia es un enlace duro u hardlink a esa información en el disco duro. El «truco» aparece a que se pueden tener más de una de esas referencias. Para el sistema y el usuario cada una de esas referencias tiene el mismo aspecto, el único detalle es si el fichero ocupa 10 MB, seguirá ocupando 10 MB tenga una única referencia en el sistema de ficheros o tenga 10. Como ambas referencias apuntan a los mismos datos en el disco duro, si modifico cualquiera de ellas, se modifican todas al mismo tiempo.

Hay que tener cuidado de confundir esto con los enlaces simbólicos o los alias. Un enlace simbólico u alias es un fichero distinto en el disco duro. Si borras el fichero original al que apuntaba el enlace simbólico, el enlace simbólico sigue ahí, simplemente te dará un error diciendo que el fichero no existe en caso de intentar borrarlo.

De esta forma, cuando Time Machine hace una copia de seguridad. Si el archivo que esta copiando al disco duro no ha cambiado, simplemente hace un hardlink al mismo, en vez de duplicar de nuevo la información. Sin embargo, si el fichero si ha cambiado, copia todos los datos de nuevo. Lo ideal sería que hiciese un copiado de forma incremental, de forma que solamente se copiasen los cambios. En ficheros pequeños no se ganaría mucho espacio. Pero haciendo backups de vídeos, archivos de audio, o la imagen de disco de una máquina virtual en nuestro ordenador puede hacer que el disco duro de copia de seguridad se llene rápidamente.

Precisamente por lo anterior puede que sea la razón por la que Apple ha comenzado a jugar con el sistema de ficheros ZFS desarrollado por Sun. Este sistema de ficheros si soportaría una forma de simplemente copiar los cambios a nivel de bloque que se han producido en un archivo. De esta forma la optimización del espacio utilizado sería mucho mayor. Por el momento, Apple solamente permite usar volúmenes ZFS en modo lectura en Leopard (en modo escritura se puede utilizar, pero en teoría es solamente para que lo prueben programadores de forma experimental) y, de todas formas, Time Machine no lo permite usar.

Queda un último detalle por resolver. Time Machine optimiza el espacio de forma eficiente en un volumen de disco HFS+, pero aún así, comparar que ficheros se han modificado en 60 GB, mi caso particular, cada vez que se hace una copia de seguridad, lleva su tiempo. Para ello Apple ha introducido un pequeño demonio en el sistema, FSEvents, que va registrando en un archivo de log todos los cambios que se producen a nivel de directorio en el disco duro. De esta forma, Time Machine simplemente le pregunta a FSEvents en que directorios ha cambiado algo desde la última vez que ha hecho copia de seguridad y mira ahí, optimizando de esta forma en gran medida los recursos del sistema.

{ 1 trackback }

Sobre Time Machine
26/05/2008 a las 10:07 am

{ 14 comentarios… read them below or add one }

eduo 12/05/2008 a las 2:28 pm

Muy buen resumen. Lo he compartido por el Google Reader que no se que ha pasado estas semanas que en los ultimos quince dias conozco once switchers nuevos. Así de la nada.

Sobre el fsevents, fue introducido originalmente en Tiger y Spotlight lo usa activamente (para evitar reindexar, principalmente). Hay un programita extremadamente adictivo llamado fseventer que a lo mejor quieres ver, que te muestra, en tiempo real, los accesos a ficheros que hace el sistema consultando, precisamente, fsevents. Han sacado una version nueva hace poquito. Lo abres y «aprietas al play» 🙂

Durante un tiempo en los betas podíamos ver soporte nativo para ZFS que desapareció de repente. Estoy casi seguro que Apple consideró la opción de tener versionamiento incremental a nivel de bloque (con ZFS) en vez de a nivel de ficheros (con HFS+) y decidió irse por el segundo porque le suponía ventajas ante un universo aún dominado por Tiger, quien no puede soportar ZFS nativamente.

No dudo que en el futuro Apple ofrecerá el esquema actual por defecto y un esquema «pro» como opción avanzada. Este esquema pro conviene a gente que maneje ficheros grandes pero sacrifica retrocompatibilidad (siendo compatible SOLO con Leopard o superiores).

El sistema actual, por supuesto, conviene a la gran mayoría de la gente. Aún así una notita de no incluir los directorios de videos y/o de downloads no estaría de más.

Irónicamente el uso de hardlinks (excepto por el supuesto nuevo de hardlinks para directorios que Apple ha creado en Leopard) ha existido en Unix durante años y es una muestra del triste estado al que nos ha llevado la muchachada linuxeril el que la gran mayoría de ellos no tenga idea de que esto se puede hacer.

Digo esto porque excepto por los fsevents el uso de hardlinks podría haber sido un estándar hace mucho tiempo. Es lo que se llama un «no-brainer».

David García Pérez 12/05/2008 a las 6:31 pm

Realmente Time Machine no usa exactamente el fsevents del que hablas, usa un demonio llamado fseventsd que recoge todo lo que dice fsevents y lo archiva en un fichero de log. Como archivar todo haría un fichero muy grande, simplemente informa en que directorios han sido modificados ficheros. (http://arstechnica.com/reviews/os/mac-os-x-10-5.ars/7 ). Ese demonio creo que se añadió especificamente en Leopard y no existía en Tiger.

Por otro lado, no me extrañaría que Apple personalizase el ZFS para sus necesidades, tal vez por eso aun no lo añadiesen.

Yo realmente nunca le vi nada práctico a los hardlinks hasta este momento, es más, no me quedaba claro cual podía ser su utilidad.

Por otro lado, tienes razón, deberían decir que no hagas backup de downloads y otras cosas como máquinas virtuales (a no ser que contengan datos importantes)

k40s 12/05/2008 a las 7:01 pm

David García Pérez tiene razón, mejor no hacer copias con TM de las maquinas virtuales ya que las duplica una y otra vez, al menos con VMWare Fusion

david s 13/05/2008 a las 3:52 pm

Pues yo hago backup de todo con time machine y tengo 1 maquina virtual con vmware fusion, aunque aun no he restaurado nunca, ¿a que te refieres que duplica las maquinas virtuales?. Por cierto, ¿alguien ha probado VirtualBox de Sun ? dicen que es mucho más rápido que fusion o parallels..

k40s 13/05/2008 a las 6:59 pm

Pues que cuando cambias algo en la maquina virtual te hace otra copia identica de la maquina, si la tienes de 8GB si que te ocupa 16GB. Igual es porque en eso no puede usar enlaces duros, no se.

También decir que hace ya dás que quité TM (hasta que tenga Capsule) ya que con el portátil es muy incomodo, así que igual lo han arreglado

eduo 13/05/2008 a las 8:51 pm

Davidgp: He sobresimplificado «fsevents» como todo el tema detrás de fsevents y fseventsd. Mi error y aceptada la aclaración.

david s, k40s: Las máquinas virtuales, con frecuencia, tienen un solo fichero gigante que representa el disco duro. Time Machine usa hardlinks cuando un fichero no ha cambiado para evitar duplicarlo pero en un fichero que representa un disco duro el fichero como tal cambia cada instante por lo que siempre será duplicado por time machine (sin ninguna utilidad práctica).

Lo mismo sucedería si Time Machine está incluyendo los directorios de downloads de torrent o emule, o los cachés de disco.

Hay una versión especial de Grand Perspective que muestra time machine de forma más útil que la normal (que muestra los hardlinks como ficheros repetidos, aunque no lo sean). Ese me hizo darme cuenta de que estaba guardando copia de mi cache de disco de 1.6GB que MacOS regenera cada vez que arranca.

k4os: Así, pues, no hay nada que arreglar. Es como funciona Time Machine y no tiene relación con los hardlinks. Tu máquina virtual de hace una hora es un fichero diferente al de ahora.

k40s 13/05/2008 a las 8:58 pm

Me refería a que lo hubieran arreglado los de VM Ware pero claro, lo que dices tiene mucho sentido. Aunque igual sí se podría. No se 🙂

Yo cuando vuelva a ponerme TM me excluiré el directorio de maquinas virtuales e iré haciendo copias manuales de seguridad cada cierto tiempo

David García Pérez 14/05/2008 a las 12:54 pm

Vaya, no me había dado cuenta de la caché de disco, voy a excluirla también…

k40s 14/05/2008 a las 1:03 pm

¿Podríais indicar donde se encuentra la caché para excluirla?

frank 03/06/2008 a las 10:25 am

voy a probarlo, compre un disco duro solo para back del portatil hace dos meses y aun no lo he usado. no me convencia mucho el time machine pero si tu lo recomiendas pues lo probare

David García Pérez 04/06/2008 a las 12:23 am

Frank, a mí en un principio no me convencía del todo, pero lo probó pjorge y me dije que tal vez también debía probarlo yo, y la verdad, es que me encantó, la solución más cómoda para backups que he usado hasta el momento.

bianca 20/06/2008 a las 10:33 pm

conecte un disco duro externo q no era mio, se borro la informacion por el time machine, puedo recuperar la informacion del disco duro externoo?? es urgente

eduo 21/06/2008 a las 6:34 pm

Bianca:

Qué sucedió realmente? Time Machine no te borra nada del disco y tampoco te lo formatea si no le dices que lo haga.

Dependiendo del formato en el que el disco original estuviese se puede recuperar o no.

David García Pérez 22/06/2008 a las 9:01 pm

Bianca – Tal como dice eduo es raro lo que cuentas, Time Machine no borra nada… simplemente añade muchos archivos.

Leave a Comment

Entrada anterior:

Entrada siguiente