…
Uno de los factores determinantes dentro de una arquitectura de almacenamiento
es poseer mecanismos de protección datos, y que la recuperación de estos sea
los más rápido y consistentes posibles y sobre todo que estos mecanismos no
supongan una degradación del rendimiento y permita a los administradores
gestionar estas tareas de una manera fácil.
En
este artículo explicaremos el concepto de SNAPSHOT, concretamente desde el
punto de vista de NetApp, pero es importante tomar en cuenta que es un concepto
genérico, es decir, cada fabricante de acuerdo a su arquitectura define
SNAPSHOT de una manera diferente.
En
general se denomina SNAPSHOT, a una foto, instantánea o imagen de un sistema de
ficheros en un momento dado, para diferentes propósitos, sin necesidad de
afectar la disponibilidad de los datos e incluso el rendimiento, uno de los
propósitos de generar un snapshot es para respaldo de los datos o para realizar
clonados de sistemas de ficheros para proteger los datos ante cambios que se pueden
producir en ellos.
Por
ejemplo, el concepto de Snapshot en VMWARE es realizar una copia de una máquina
virtual específica, en este sentido los administradores de VMWare realizan
Snapshots cuando se quiere realizar algún cambio sobre alguna máquina virtual y
en caso de producirse algún problema, restaurar la máquina virtual a partir del
Snapshot que se generó y así volver al estado anterior de la máquina virtual.
Desde
el punto de vista de NetApp , es una imagen en un momento determinado del
sistema de ficheros, se realiza a nivel de volumen, por tanto, cuando se
realiza un snapshot se realiza una copia de la tabla de inodes del volumen,
cuando un fichero es modificado dentro del volumen, Data Ontap copia los
bloques antes de modificarse al espacio reservado para snapshots, apuntando los
punteros de snapshot a los bloques no modificados, mediante esta técnica se
consigue una copia fiable del sistema sin la necesidad de tener que copiar
todos los datos, solamente los que se modifican. Se pueden generar hasta 255
snapshots por volumen.
Cuando
se crea un volumen se reserva un espacio para los snapshots, y se puede
visualizar (es configurable) una vez montado el volumen, concretamente en el
directorio . /Snapshot, en el ejemplo vemos un volumen montado en una máquina
de Linux y se lista los snapshots generados.
root@maquetas> cd .snapshot/
root@maquetas> ls
hourly.0 hourly.1
hourly.2 hourly.3 hourly.4
snapshot1 snapshot2
root@maquetas> ls -la
drwxrwxrwx 9 root
root 4096 Jan 20 20:00 .
drwxr-xr-x 6 root
root 4096 Jan 20 19:30 ..
drwxr-xr-x 5 root
root 4096 Jan 20 19:30
hourly.0
drwxr-xr-x 4 root
root 4096 Nov 17 13:39
hourly.1
drwxr-xr-x 4 root
root 4096 Nov 17 13:39
hourly.2
drwxr-xr-x 4 root
root 4096 Nov 17 13:39
hourly.3
drwxr-xr-x 4 root
root 4096 Nov 17 13:39
hourly.4
drwxr-xr-x 4 root
root 4096 Nov 17 13:39
snapshot1
drwxr-xr-x 4 root
root 4096 Nov 17 13:39
snapshot2
La
generación de los snapshots se pueden programar en las siguientes periodicidades.
§ Weekly: Se realizan todos los domingos
a medianoche.
§ Nightly: Se realizan todos los días a
medianoche.
§ Hourly: Se realizan a las horas
programadas.
En el ejemplo mostramos una configuración de snapshots programados a
través del comando “ snap sched “
Snap sched 1 2 6@8,12,16,20
Donde
1 Nº de snapshots “Weekly” que se guardan
2 Nº de snapshots “Nightly” que se guardan
6 Nº de snapshots “Hourly” que se guardan
8, 12, 16, 20 Horas a
las que se realizan los snaps “Hourly”
Esta programación se
puede realizar a través del Oncommand System Manager, que es la herramienta
grafica de NetApp utilizada para administrar la cabina de NetApp.
A continuación
explicaremos, para entender mejor el comportamiento de los snapshots la salida del
comando “snap list” , esto nos ayudará a definir una buena configuración de
snapshots.
Supongamos que al listar
nuestros snapshots nos aparece la siguiente salida
%/used %/total date
name
31% (31%) 0% (
0%) Mar 08 00:00 nightly.0
47% (29%) 0% (
0%) Mar 07 20:00 hourly.0
57% (32%) 0% ( 0%) Mar
07 16:00 hourly.1
64% (29%) 0% ( 0%) Mar
07 12:00 hourly.2
69% (32%) 0% ( 0%) Mar
07 08:00 hourly.3
73% (29%) 0% ( 0%) Mar
07 00:01 nightly.1
76% (30%) 0% ( 0%) Mar
06 20:00 hourly.4
78% (31%) 0% ( 0%) Mar
06 16:00 hourly.5
La columna % used nos
muestra el espacio consumido por los snapshots dividido por los bloques
utilizados en el volumen, no toma en cuenta si ese espacio es utilizado por el
filesystem o snapshots, el primer número es acumulativo para todos los
snapshots de la lista, el segundo para el % usado por el snapshot específico.
La columna % total
muestra el espacio consumido por los snapshots dividido por el espacio total de
disco en el volumen, esto incluye el espacio de datos + espacio reservado para
los snapshots incluye todo los bloques usados y libres, si el espacio total del
volumen es 100 GB y el espacio consumido por snapshots son 60 MB el cálculo
sería < 1% , por tanto nos mostraría 0% tal y como muestra la salida del ejemplo.
Por tanto, la variación
de estos valores dependerá de los bloques nuevos, modificados y borrados, dicho
esto, si la cantidad de datos varia entonces el % total seguirá siendo el mismo
, pero el % used variará, si al contrario la tasa de cambio se mantiene
constante, pero el volumen se aumenta o se reduce, entonces el % Total cambiará
y el % used seguirá siendo el mismo.
Estos datos son útiles
analizarlos, para concluir que cuando se tienen una gran cantidad de datos de snapshots
y el espacio libre es alto, se debe de incrementar el % de reserva para
snapshots y cuando el espacio libre es bajo, entonces se debe aumentar el
tamaño del volumen, de la misma forma el valor del % total nos puede indicar si
el porcentaje reservado para los snapshots es insuficiente, y si se ha desbordado
el espacio de los datos en el volumen, si se tiene un periodo de retención grande
estos datos determinarán hasta cuanto se debe aumentar de tamaño el volumen.
Por último, si se decide
eliminar snapshots, ejecutar antes los siguientes comando “snap delta” y snap “reclaimable”
para tener una idea que snapshots eliminar.
En conclusión, es
importante definir una buena política de retención y reserva de los snapshots
tomando en cuenta la variación de los datos almacenados en el volumen, en la
práctica, muchas veces nos encontramos sin espacio en el volumen debido a una
mala definición de la configuración de los snapshots.
Bueno amigos, espero que
este articulo les haya sido de utilidad.
Hasta pronto
No hay comentarios:
Publicar un comentario