Hacía ya un tiempo que no hacia entradas sobre Netapp, así que vamos a retomar un poco el tema con la utilidad Snapmirror, que permite replicar volumenes/qtrees entre filers. Snapmirror va a trabajar de forma sincrona (snapmirror_sync) y replicando los datos contra el volumen de respaldo a la vez que se escriben en el volumen original o por contra especificando una periodicidad concreta al más puro estilo cron. Los datos antes de ser escritos en disco se guardan en NVRAM con el fin de asegurar su consistencia.
Lo primero de todo, lógicamente es disponer la licencia de snapmirror en ambas cabinas, en este caso vamos a trabajar sobre netapp01 (192.168.1.100) y netapp02 (192.168.1.129). Activamos la licencia y posteriormente snapmirror:
Activación de Snapmirror
Para realizar en los dos filer:
NetApp01> license add XXXXXX A snapmirror site license has been installed. snapmirror enabled. NetApp01> Sat Dec 3 20:02:32 GMT [rc:notice]: snapmirror licensed NetApp01> license add XXXXXX A snapmirror_sync site license has been installed. Sync SnapMirror enabled. NetApp01> options snapmirror.enable on NetApp01> options snapmirror.log.enable on
Conectividad entre filers
Lo primero que debemos hacer es revisar la conectividad entre ambas cabinas:
NetApp01> ping 192.168.1.129 192.168.1.129 is alive NetApp02> ping 192.168.1.100 192.168.1.100 is alive
Configuramos el filer origen permitiendo que el filer destino pueda acceder a él, para ello hay que añadir el hostname/ip del filer destino en el fichero /etc/snapmirror.allow. Antes de nada verificad si existe y tiene contenido para preservarlo, ya que con wrfile eliminamos lo que hubiera anteriormente:
NetApp01> rdfile /etc/snapmirror.allow /etc/snapmirror.allow: No such file or directory NetApp01> rdfile /etc/snapmirror.allow /etc/snapmirror.allow: No such file or directory NetApp01> wrfile /etc/snapmirror.allow 192.168.1.129 NetApp02 CTRL + C read: error reading standard input: Interrupted system call NetApp01> rdfile /etc/snapmirror.allow 192.168.1.129
Creación de volúmenes a replicar
Vamos a crear el volumen de datos en el filer origen:
NetApp01> vol create vol_backup aggr_test 200M Creation of volume 'vol_backup' with size 200m on containing aggregate 'aggr_test' has completed.
Snapmirror
Una vez creado el volumen en el filer origen, ya podemos crear la configuración de Snapmirror en el destino. Algunas consideraciones son que para hacer Snapmirror el volumen destino tiene que estar en modo restricted. De este modo únicamente permitimos ciertas operaciones en el volumen, como snapmirror o tareas de mantenimiento, pero nunca el acceso a los datos:
Creamos el volumen:
NetApp02> vol create vol_mirror aggr0 200M Creation of volume 'vol_mirror' with size 200m on containing aggregate 'aggr0' has completed.
Lo restringimos para poder hacer la transferencia inicial:
NetApp02> vol restrict vol_mirror Volume 'vol_mirror' is now restricted.
Ejecutamos la transferencia inicial de datos:
NetApp02> snapmirror initialize -S 192.168.1.100:vol_backup NetApp02:vol_mirror Transfer started. Monitor progress with 'snapmirror status' or the snapmirror log.
Podemos ver el estado mediante snapmirror status o a través del log específico (en caso de haber sido activado como mencionaba antes):
NetApp02> snapmirror status Snapmirror is on. Source Destination State Lag Status 192.168.1.100:vol_backup NetApp02:vol_mirror Snapmirrored 00:00:15 Idle
Configurar periodicidad de sincronización
Una vez realizada la copia inicial, podemos programar las copias incrementales cada X tiempo o que se realicen de forma síncrona. En estas copias únicamente se transferirán los bloques que hayan sido modificados desde la última realizada. Estas configuraciones se especifican en el fichero de configuración /etc/snapmirror.conf con esta estructura:
filer_origen:volumen_origen filer_destino:volumen_destino – opciones min hora dia_mes dia_sem
Para configurar que la copia sea síncrona y que los datos se mantengan actualizados al mismo tiempo en ambos volúmenes únicamente hay que añadir la palabra sync (recordad revisar antes el contenido del fichero):
NetApp02> wrfile /etc/snapmirror.conf 192.168.1.100:vol_backup NetApp02:vol_mirror - sync CTRL+C
Nota: para la replicación síncrona el volumen tiene que tener un tamaño mínimo, sino recibiréis este error:
Sun Dec 4 08:38:00 GMT [snapmirror.src.sync.FvolSyncTooSmall:error]: The flexible volume Synchronous SnapMirror source vol_backup is 200 MB, which is smaller than the minimum supported size of 10240 MB.
Y si lo que queremos es que la sincronización se realice periódicamente en lugar de a tiempo real usamos el estilo cron que veíamos en la estructura. Vamos a configurarlo todos los días a las 23:00:
NetApp02> wrfile /etc/snapmirror.conf 192.168.1.100:vol_backup NetApp02:vol_mirror - 00 23 * * CTRL+C
Es recomendable cuando hacemos la configuración de snapmirror y las primeras sincronizaciones tener las consolas de ambas cabinas abiertas para revisar todos los errores que puedan ir apareciendo en una y otra.
Si necesitaramos forzar manualmente la sincronización podemos hacerlo con el comando snapmirror update, con la misma sintaxis que utilizamos con la sincronización inicial:
NetApp02> snapmirror update -S 192.168.1.100:vol_backup NetApp02:vol_mirror Transfer started. Monitor progress with 'snapmirror status' or the snapmirror log.
Podéis revisar otros comandos como snapmirror abort para cancelar la sincronización, snapmirror break, snapmirror resync, etc.