Aquí explico el método para la mejora del ratio de compresión de los backups del entorno de desarrollo PiServer. Se basa en eliminar del espacio vacío, todo el contenido residual que queda almacenado en nuestra unidad de almacenamiento.
El procedimiento: ¿Cómo lo hago?
Primero es necesario montar el fichero de backup deseado, a continuación se elimina todo el contenido residual del espacio vacío de almacenamiento, poniendo todos sus bits a cero. Y por último, el desmontaje de la copia de seguridad optimizada, y posterior compresión con ayuda de gzip, como ya vimos en este artículo.
Todo el proceso, lo realizo en mi ordenador de escritorio, pues es donde tengo almacenadas las copias de seguridad de PiServer.
El montaje de un fichero de backup
Nuestros ficheros de backup contiene un particionado interno, que resulta más conveniente montar con el comando kpartx de Linux, ya que se encarga de leer la tabla de particiones. Y luego, asigna automáticamente un dispositivo loop a cada partición existente.
# kpartx -a -v /ruta_al_backup_deseado/fichero_backup.img
En las distribuciones Linux más recientes, además se monta automáticamente estos dispositivos, para utilizarse en el explorador de archivos o la terminal de comandos.
La captura anterior, muestra el cómo listar los dispositivos loop montados en nuestro sistema. Aquí se observa dos dispositivos montados, el primero loop0p2 que se identifica con la partición rootfs, y el segundo loop0p3 con la partición datafs.
Recuerda: ¿Cómo se nombran la particiones en PiServer?
- boot: Partición del sistema de arranque.
- rootfs: Partición del sistema operativo para PiServer.
- datafs: Partición del home con los datos de usuario.
El dispositivo loop0p1 con el boot, no aparece en el listado como montado, pero si existe el dispositivo para hacerlo desde el propio explorador de archivos, como se muestra en la captura de abajo.
Mejora del ratio de compresión de los backups
Ahora se procede a eliminar el contenido residual del espacio vacío de almacenamiento. Para ello, se utiliza el comando dd ya conocido, y del dispositivo especial /dev/zero que se encarga de poner caracteres nulos en una unidad, para sobrescribir información.
# (sudo) dd if=/dev/zero of=/punto_de_montaje/BORRAME.000
Si fuese necesario, se incluye el comando sudo para ejecutar la acción anterior con privilegios de administrador. Y <punto_de_montaje> de sustituye por la ruta de montaje para las particiones rootfs y datafs.
Cuando finalice el comando dd simplemente se elimina este archivo.
# (sudo) rm -rf /punto_de_montaje/BORRAME.000
RECUERDA: Se necesita ejecutar ambas acciones en cada partición.
El desmontaje del fichero de backup
Ahora se requiere desmontar las particiones accesibles y el fichero de backup utilizado. Para ello utilizamos los comandos kpartx y umount, la secuencia de comandos necesaria es la siguiente:
# cd ~
# umount /punto_de_montaje_bootfs (si estuviese montada)
# umount /punto_de_montaje_rootfs
# umount /punto_de_montaje_datafs
# kpartx -d /ruta_al_backup_deseado/fichero_backup.img
Una vez completadas las acciones, ya se puede comprimir el backup, con la ayuda de los pasos descritos en este artículo.
Conclusiones
En este artículo, se ha aprendido manualmente a montar y desmontar fichero de backup .img con el comando kpartx. Además, de limpiar el espacio vacío de todo contenido residual, poniendo todos sus bits a cero. Más adelante, todo este proceso será incluido como funcionalidad al script de herramientas para el lado cliente.