Con btrfs llegando a producción en Oracle EL 14th este mes (junto con fsck de trabajo y depuración de Linux 3.2) estaba pensando en rediseñar mi solución de respaldo actual para utilizarla. Tenga en cuenta que estoy pensando en hacerlo para pequeñas cantidades de datos, menos de 10 TB, eso es bastante estático (menos del 1% cambia diariamente). En resumen, una solución de respaldo SMB / SOHO.
Lo que debe hacer la copia de seguridad:
- hacer una instantánea LVM de ext [234] / XFS / JFS en el servidor de producción
rsync
/ transferir datos modificados a btrfs en el servidor de respaldo- instantánea del sistema de archivos btrfs
- soltar instantáneas antiguas cuando el espacio libre se está agotando
Pros:
- Todos los archivos están fácilmente disponibles, no se necesita descompresión ni montaje en bucle
- Las instantáneas pasadas también están fácilmente disponibles ...
- ... para poder compartirlos como recursos compartidos de Samba de solo lectura (con soporte de instantáneas)
- Las instantáneas ocupan una cantidad mínima de espacio gracias a la copia en escritura (la instantánea sin cambios toma literalmente pocos KiB en el disco)
- Alta consistencia de copia de seguridad: sumas de comprobación en archivos, depuración de todos los datos y redundancia incorporada
Preguntas:
- ¿Existe alguna solución de respaldo (en forma de Bacula, BackupPC, etc.) que sea, o pueda ser fácilmente, consciente del sistema de archivos de copia en escritura?
- ¿O tendré que usar una
rsync
solución en el hogar ? - ¿Qué hacen las personas con cajas ZFS dedicadas a la copia de seguridad para hacer una copia de seguridad de sus máquinas Linux?
cons
! Una de ellas sería que las instantáneas Btrfs solo son equivalentes a las copias de seguridad incrementales (sin copia física por copia de seguridad de su archivo en el disco). Lo que podría ser importante cuando se enfrentan problemas de superficie del disco. Tenga en cuenta que puede forzar una duplicación con el soporte RAID1 nativo incluido en Btrfs.pro
: más de dos copias no son realmente necesarias si tiene sumas de verificación y frega activamente el FS, tres probablemente vendrán con soporte RAID6. Como he dicho, es una configuración para un sistema de respaldo dedicado, no copias de "respaldo" dentro del FS en una sola computadora. Eso sería "RAID no es una copia de seguridad" y "las instantáneas no son una copia de seguridad".cp -a
yrsync
son para eso ...rsync -a --delete /home/user /mnt/butterfs/backups/ && snapper create
, aparte de crear una instantánea después de la copia de seguridad, ¿qué quieres decir con COW-aware?rsync
sin--inplace
obtendrá múltiples copias de los mismos datos en el sistema de archivos remoto. (rsync normalmente copia datos en un archivo oculto temporal y luego lo mueve sobre el archivo antiguo, con un sistema de archivos de Copia en escritura obtiene dos copias de datos sin cambios de esta manera)Respuestas:
Hice una búsqueda exhaustiva en la última semana para algo similar. No he encontrado soluciones para hacer los 4 pasos. Existen numerosos blogs de usuarios domésticos que prueban el tipo de copias de seguridad ' rsync to btrfs ', y todas las principales wikis de Btrfs cubren cómo realizar instantáneas de Btrfs.
También hay algunas personas que intentan diferentes formas de rotar las instantáneas de Btrfs . Sin embargo, usted es la primera persona que he visto que quiere rotar las instantáneas en función del espacio en disco. Estoy jugando con btrfs-snap, que crea un conjunto de instantáneas por hora, semanales y mensuales, y es agradable y simple.
El proyecto Dirvish parece cumplir con muchos de sus requisitos. Algunos desarrolladores están intentando integrar Dirvish con Btrfs . Sin embargo, el proyecto Dirvish parece un poco estancado .
En este momento, estás por delante de la curva.
fuente
Según Avi Miller (su charla durante LinuxConf.AU) se está trabajando en un envío / recepción de btrfs. Será más rápido que rsync ya que no necesita atravesar directorios para encontrar cambios en los archivos. Sin embargo, aún no sé si hay una fecha de lanzamiento esperada.
Sin embargo, existe una utilidad integrada en btrfs-progs que enumera todos los archivos que han cambiado entre instantáneas / etc. btrfs subvolume find-new
fuente
Estoy trabajando en un sistema de copia de seguridad del sistema operativo similar a BackupPC. He pensado en esto. Lo que me ha impedido implementar realmente eso es que no se puede vincular entre subvolúmenes. También solo puede crear instantáneas de subvolúmenes -> Un subvolumen por cliente de respaldo. Por lo tanto, la función de deduplicación a nivel de archivo no puede coexistir con este enfoque. Y esa deduplicación a nivel de archivo generalmente ahorra mucho espacio. ¿Desea hacer una copia de seguridad de un solo servidor?
Si btrfs tuvo deduplicación a nivel de bloque, este problema probablemente se puede evitar, pero eso también es muy lento ...
Entonces, dicho enfoque implicaría, por supuesto, una estrecha integración con un sistema de archivos (btrfs), por lo que esta debería ser una característica opcional.
Lo pregunto porque estoy pensando en agregar una función de vaca, pero no sé si debería debido a los inconvenientes mencionados anteriormente.
Editar: UrBackup admite copias de seguridad como se describe en la pregunta ahora con núcleos Linux> = 3.6 (con soporte de reflink de volumen cruzado). Vea cómo configurarlo.
fuente
cp --reflink
) ya está implementada o se implementará en un futuro próximo. Línea de-duplicación de FS es bien lenta (LessFS) o necesita grandes cantidades de memoria RAM (ZFS) así que dependiendo de que sería realmente una mala función en el software de copia de seguridad. De cualquier manera, el software de respaldo orientado a btrfs tendrá una gran audiencia, se supone que es la próxima ext3 después de todo.La página wiki de btrfs " Casos de uso " enumera algunas herramientas: SnapBtr , Snapper, btrfs-time-machine, UrBackup.
Hay una propuesta para una herramienta integrada llamada autosnap :
Sin embargo, a partir de octubre de 2013, el wiki afirma que "la funcionalidad de autosnap no está incluida actualmente en la versión anterior de btrfs".
fuente
Tuve frustraciones similares, así que terminé creando algunos scripts que llamo snazzer . Juntos ofrecen instantáneas, podas, mediciones y transporte a través de ssh (pero a partir de hoy también pueden enviar / recibir a / desde sistemas de archivos locales). Las mediciones son solo informes de firmas sha512sum y PGP de rutas de instantáneas. Aún no está listo para su lanzamiento, pero me encantaría recibir comentarios si alguien tiene tiempo para revisarlo en esta etapa temprana.
CLI-sólo en este punto, pero he tomado algún tiempo para que sea fácil de usar en sistemas con muchas subcaudales btrfs - normalmente tengo subcaudales separadas para
/var/cache
,/home
etc., que pueden necesitar ser excluido de copia instantánea o tienen más / menos horarios de poda agresivos.Me temo que el algoritmo de poda simplemente toma decisiones sobre la presencia del conjunto de instantáneas y sus fechas, no hay nada para seguir podando hasta que se cumpla una restricción de uso del disco, ¿cuál elimina primero? ¿Reducir el número de horas por hora primero o por día? Quizás deje caer al más viejo, por ej. Yearlies? Las diferentes implementaciones tendrán diferentes prioridades; y no puedo saber si este es el único nivel de copia de seguridad (en cuyo caso no debe eliminar las copias de seguridad más antiguas en caso de obligaciones legales / de seguro), o simplemente una intermedia (en cuyo caso probablemente tenga esos anuarios archivados en algún lugar seguro en otra parte).
Agregaré compatibilidad con ZFS y / o interoperabilidad en algún momento; está escrito principalmente en shell y perl posix-ish debido a un fuerte deseo de dependencias "cero" en este momento, espero tener una implementación alternativa de Python más limpia mantenida en paralelo en algún momento.
fuente