Pregunta Almacene varias versiones de archivos binarios grandes con una duplicación de datos mínima (preferiblemente Linux)


Necesito almacenar varias versiones de un archivo binario de ~ 150 GB (qcow2) en servidores Linux con almacenamiento local, y esperaba que hubiera alguna solución que implique mantener diferencias que puedan combinarse según sea necesario, para que no tenga que crear otra. Copia de un archivo de 150 GB cuando solo 4 Gigs han cambiado. Esta es una pregunta de almacenamiento, no una pregunta sobre las características específicas de KVM / qcow2. Ya he explorado algunas de esas opciones. Actualmente utilizando CentOS 6.3 con EXT4. Los archivos deberán almacenarse indefinidamente y deberán estar completamente intactos cuando se restauren. Estoy dispuesto a cambiar el sistema de archivos, etc. si una solución vale la pena.


5
2017-09-23 17:49


origen


¿Qué "algunas de esas opciones" ya exploraste? - Michael Hampton♦
Usando superposiciones y simplemente haciendo una copia de seguridad de las superposiciones, manteniendo la imagen base de solo lectura, instantáneas internas y externas ...
¿Qué hay de usar SVN o Git? Si está en un servidor dedicado solo para este propósito y un repositorio dedicado.
Estoy considerando buscar en git-annex o boar para controlar la versión de los archivos. Cualquier información pertinente sería genial.
Es posible que desee investigar xdelta. xdelta.org - Mark Wagner


Respuestas:


ZFS en Linux con deduplicación puede ser tu amigo en este caso. Existen RPMs / repos de Red Hat Disponible para su instalación.

Incluso sin deduplicación, si puede trabajar esto en el flujo de trabajo de instantáneas de ZFS, hay algunas ventajas significativas al intentarlo con ZFS.

¿Puede explicar un poco más sobre cómo desea trabajar con estos archivos? ¿Está buscando instantáneas de un punto en el tiempo, o está copiando múltiples revisiones de los mismos archivos / archivos similares en el almacén de datos?


2
2017-10-07 20:19



Múltiples revisiones a las que se puede acceder de forma independiente
Sí, entonces lo que desea son instantáneas / clones de ZFS, ya que tendrá acceso de lectura / escritura a sus revisiones intermedias. - ewwhite


Estaría mirando las instantáneas de LVM como una solución. Sin entrar en muchos detalles, haría esto:

  1. Cree un volumen LVM lo suficientemente grande como para contener sus datos.
  2. Suba la copia inicial de su archivo binario grande a este volumen.
  3. Crear instantánea LVM.
  4. Use rsync para copiar otra versión de un archivo grande en lugar de un archivo existente.

En este punto, puede acceder al archivo original montando una instantánea de LVM. También estará disponible la última versión del archivo grande. Puede crear múltiples instantáneas de esta manera.


0
2017-10-07 20:13





Estoy usando librsync para este propósito. Está disponible para CentOS y otros clones de RHEL en Repositorio de EPEL.

Solo usa:

rdiff signature new.qcow2 /tmp/new.qcow2.rdiffsig
rdiff delta /tmp/new.qcow2.rdiffsig old.qcow2 new.qcow2--old.qcow2.rdiff
rm /tmp/new.qcow2.rdiffsig
xz new.qcow2--old.qcow2.rdiff 

A continuación, puede eliminar old.qcow2. Cuando lo necesitaras de nuevo lo harías:

xz -d < new.qcow2--old.qcow2.rdiff.xz > /tmp/new.qcow2--old.qcow2.rdiff
rdiff patch new.qcow2 /tmp/new.qcow2--old.qcow2.rdiff old.qcow2
rm /tmp/new.qcow2--old.qcow2.rdiff

Esto puede ser encadenado - puede crear un rdiff desde old.qcow2 a evenolder.qcow2 y así. Esto es bastante lento pero muy eficiente en espacio. Por lo general, no necesito eliminar las copias de seguridad antiguas con esto. También hay un rdiff-backup Programa, que automatiza esquemas similares para directorios completos.


0
2017-10-07 21:43