ShadowCopy con Samba

ShadowCopy es una característica de Windows 2003 y posteriores que nos permite obtener instantáneas de nuestros volúmenes mediante Volume Snapshot Service (VSS). De esta forma podemos tener respaldos (backups) automáticos o manuales de archivos o carpetas de una unidad de disco en un momento concreto, y mediante un pequeño cliente integrado con el explorador de Windows, acceder al histórico de versiones de un documento o de una carpeta.


En Samba podemos activar esta funcionalidad mediante un VFS especial y la ayuda de Snapshots de LVM sobre volúmenes lógicos. Para ello, procederemos de la siguiente forma:
  1. Disponer el share de Samba sobre un volumen lógico LVM. Por ejemplo, nosotros tendremos /dev/VG_Samba/lv_homes, formateado con EXT4 y lo montaremos sobre el directorio /home/usuarios.
  2. Crear un directorio a la altura de nuestro punto de montaje, para montar los Snapshots del volúmen. En nuestro ejemplo, tendremos el punto de montaje en /home/usuarios_snapshots.. Es importante disponer de espacio libre en el mismo Grupo de Volumen para albergar los snapshots (en nuestro ejemplo, en /dev/VG_Samba)
  3. Configurar la instancia de Samba para activar ShadowCopy. En nuestro ejemplo, añadiremos a smb.conf las cuatro últimas líneas del siguiente bloque, que activan esta configuración.
    [prueba]
    public = yes
    writable = yes
    comment = Prueba ShadowCopy2
    path = /home/usuarios

    # Config ShadowCopy
    vfs objects = shadow_copy2
    shadow:snapdir = /home/usuarios_snapshots
    shadow:basedir = /home/usuarios
    Cuando lo hayamos editado tendremos que reiniciar nuestra instancia de Samba.
  4. Desarrollar un pequeño script para realizar los snapshots del volumen /dev/VG_Samba/lv_homes y montarlos en /home/usuarios_snapshots. Es importante respetar el formato del nombre del punto de montaje (@GMT-Año.Mes.dia-hora.minuto.segundo), si no, el módulo no será capaz de reconocerlo:
    #!/bin/bash

    # Nombre del SnapShot
    SNAPNAME=`date +%Y.%m.%d-%H.%M.%S`

    # Crear el snapshot en LVM de 1G
    lvcreate -L1G -s -n $SNAPNAME /dev/VG_Samba/lv_usuarios

    # Crear el punto de montaje
    mkdir /home/usuarios_snapshots/\@GMT-$SNAPNAME

    # Montar el snapshot en sólo lectura
    mount /dev/VG_Samba/$SNAPNAME /home/usuarios_snapshots/\@GMT-$SNAPNAME -o ro
  5. Instalar el cliente de ShadowCopy en el equipo cliente Windows XP (http://technet.microsoft.com/es-es/windowsserver/bb405951)y probar.

La foto la he sacado del album de Carla216 en flickr

No hay comentarios: