Se ha publicado la versión del sistema de copias de seguridad restic 0.15, que proporciona almacenamiento de copias de seguridad encriptadas en un repositorio versionado. El sistema está diseñado originalmente para almacenar copias de seguridad en entornos no confiables, y la caída de una copia de seguridad en manos ajenas no debería comprometer el sistema. Es posible definir reglas flexibles para incluir y excluir archivos y carpetas al crear una copia de seguridad (el formato de las reglas es similar a rsync o gitignore). Se admite el funcionamiento en Linux, macOS, Windows, FreeBSD y OpenBSD. El código del proyecto está escrito en Go y se distribuye bajo licencia BSD.
Las copias de seguridad pueden almacenarse en el sistema de archivos local, en externos servidor con acceso SFTP/SSH o HTTP REST, en nubes como Amazon S3, OpenStack Swift, BackBlaze B2, Microsoft Azure Blob Storage y Google Cloud Storage, así como en cualquier almacenamiento para el cual existen backend de rclone. Para la organización del almacenamiento, también se puede utilizar un servidor rest especial, que proporciona un rendimiento más alto en comparación con otros backend y que puede funcionar en modo solo para complemento, impidiendo eliminar o modificar las copias de seguridad en caso de compromiso del original servidores y el acceso a las claves de encriptación.
Se admiten instantáneas que reflejan el estado de un directorio específico con todos los archivos y subdirectorios en un momento dado. Con cada nueva copia de seguridad creada, se genera una instantánea asociada que permite restaurar el estado en ese momento. Es posible copiar instantáneas entre diferentes repositorios. Para ahorrar tráfico, durante el proceso de creación de copias de seguridad se copian solo los datos que han cambiado. Para una evaluación visual del contenido del repositorio y simplificar la recuperación, la instantánea con la copia de seguridad puede montarse en forma de una partición virtual (el montaje se realiza mediante FUSE). También se proporcionan comandos para analizar cambios y extraer archivos de manera selectiva.
El sistema manipula no archivos enteros, sino bloques de tamaño variable seleccionados usando la firma de Rabin. La información se almacena vinculada al contenido y no a los nombres de archivo (los nombres y objetos relacionados con los datos se determinan a nivel de metadatos del bloque). Basándose en el hash SHA-256 del contenido, se realiza la deduplicación y la exclusión de copias innecesarias de datos. En servidores externos, la información se almacena en forma cifrada (se utiliza SHA-256 para los checksums, AES-256-CTR para el cifrado y códigos de autenticación basados en Poly1305-AES para garantizar la integridad). Se prevé la posibilidad de verificar la copia de seguridad a través de checksums y códigos de autenticación para confirmar que la integridad de los archivos no ha sido comprometida.
En la nueva versión:
- Se ha implementado un nuevo comando rewrite que permite eliminar datos innecesarios de un snapshot, cuando por descuido se incluyen archivos que no estaban destinados originalmente a la copia de seguridad (por ejemplo, archivos con información confidencial o logs muy grandes que no tienen valor).
- Se ha añadido a la comando backup la opción «—read-concurrency» para establecer el nivel de paralelización al leer archivos, lo que permite acelerar la copia en dispositivos de almacenamiento rápidos como NVMe.
- Se ha añadido a la comando backup la opción «—no-scan» para desactivar la etapa de escaneo del árbol de archivos.
- El consumo de memoria en el comando prune se ha reducido significativamente (hasta un 30%).
- Se ha añadido a la comando restore la opción «—sparse» para una recuperación eficiente de archivos con grandes áreas vacías.
- Se ha implementado el soporte para la recuperación de enlaces simbólicos en la plataforma Windows.
- En macOS se ha añadido la posibilidad de montar el repositorio de copias de seguridad utilizando macFUSE.
Fuente: opennet.ru
