Estoy buscando una solución de sistema de archivos de copia y escritura con deduplicación para datos generales del usuario, como /home
copias de seguridad de los mismos . Debe usar la deduplicación en línea / en línea / síncrona a nivel de bloque utilizando hashing seguro (para una posibilidad insignificante de colisiones) como SHA256 o TTH . Los bloques duplicados ni siquiera necesitan tocar el disco.
La idea es que debería poder copiar /home/<user>
a un HDD externo con el mismo sistema de archivos para hacer una copia de seguridad. Simple. Sin perder el tiempo con copias de seguridad incrementales donde la corrupción de cualquiera de las instantáneas casi siempre romperá todas las instantáneas posteriores, y no es necesario usar una herramienta específica para eliminar o 'retirar' una instantánea. Todo debe hacerse simplemente desde el navegador de archivos sin preocupaciones. ¿Te imaginas lo fácil que sería? ¡Nunca tendría que pensar dos veces antes de retroceder!
No me importa un golpe de rendimiento, la fiabilidad es la principal preocupación. Aunque, con implementaciones específicas de cp
, mv
y scp
, y un complemento de explorador de archivos, estas operaciones serían muy rápidas, especialmente cuando hay mucha duplicación, ya que solo tendrían que transferir los bloques ausentes. El uso accidental de herramientas de copia convencionales que no se integran con el FS simplemente llevaría más tiempo, desperdiciaría algo de ancho de banda al copiar de forma remota y desperdiciaría algo de CPU, ya que los datos duplicados se volverían a leer, se volverían a transferir y se volverían a codificar (aunque nada sería reescrito), pero absolutamente no corrompería nada. (Algunos software de intercambio de archivos también pueden beneficiarse al integrarse con el FS).
Entonces, ¿cuál es la mejor manera de hacer esto?
He visto algunas opciones:
- lessfs - Parece sin mantenimiento. ¿Ningún bien?
- Opendedup / SDFS - Java? ¿Podría usar esto en Android? ¿Qué significa SDFS ?
- Btrfs : algunos parches que flotan en los archivos de la lista de correo, pero no hay soporte real.
- ZFS : espero que algún día vuelvan a otorgar una licencia bajo una verdadera licencia compatible con GPL gratuita / de código abierto.
Además, hace 2 años probé un intento en Python usando Fuse en el nivel de archivo para usar sobre la parte superior de un FS sólido típico como EXT4, pero encontré que Fuse para Python estaba subdocumentado y no pude implementarlo todas las llamadas del sistema