Con de-duplicación nos referimos a una funcionalidad que implementan las cabinas de almacenamiento y que permite que se identifiquen y eliminen bloques de datos redundantes. Esto se hace de forma transparente para los servidores o usuarios clientes, que seguirán viendo la estructura de datos original, pero internamente la cabina estará ahorrándonos los bloques de 4KB que estén escritos varias veces.
Esto se puede hacer para cualquier tipo de protocolo de acceso: FC, iSCSI, NFS y/o CIFS. En los dos últimos, dado que se exporta un sistema de ficheros, los ahorros de la de-duplicación son mostrados directamente al cliente, que vera como sus datos ocupan menos espacio en el sistema de ficheros tras ejecutar el proceso de la de-duplicación.
En los servicios de LUNs (FC o iSCSI), los clientes ven un disco SCSI virtual que típicamente formatearan con un sistema de ficheros propios. En estos casos los clientes no pueden ver ningún cambio en el espacio disponible, puesto que esto “volvería loco” al sistema de ficheros en el cliente. Lo que conseguimos en estos casos es que el espacio "de-duplicado" sea espacio libre en la cabina, y que haciendo *thin-provisioning ese espacio lo podamos reutilizar para otras LUNs o servicios. Este es el cacharrito en cuestión:
La forma en que en NetApp implementan la de-duplicación está pensada para poderla utilizar en muchos conjuntos de datos productivos, ya que al realizarse la búsqueda de bloques redundantes como un proceso “batch”, que típicamente se ejecutará fuera de la ventana de máximo rendimiento del equipo, el habilitar la de-duplicación no afecta en gran medida al rendimiento del equipo y es bastante probable que dado un equipo que está dando un determinado servicio, sin cambiar ni añadir nada de hardware podamos de-duplicar parte o todos los datos de ese servicio/s.
Una consideración que si hay que tener en cuenta a la hora del rendimiento es que al de-duplicar los datos perdemos secuencialidad en los mismos, por lo que las lecturas secuenciales de datos de-duplicados pueden verse algo penalizadas, es decir, nuestros backups puede que tarden un poco más. Las lecturas aleatorias y las escrituras típicamente no sufren penalización o esta es muy baja.
Ejemplo Practico:
Primero creamos tres maquinas virtuales y realizamos la de-duplicación (documento explicativo). Las maquinas ocupaban 4GB cada una de espacio de almacenamiento, un total de 12GB. Tras la de-duplicación el espacio se quedo en 4,1GB. Después añadimos otras 3 maquinas y volvimos a realizar la de-duplicación para ver la evolución. Los resultados finales fueron (antes/después de la de-duplicación):
con lo cual tenemos que cada maquina virtual incrementa en 0,2GB mas o menos el total del almacenamiento reduciendo notablemente su espacio inicial.
THIN-PROVISIONING
*El thin-provisioning consiste en presentar más espacio de almacenamiento del que se está utilizando o incluso existe en el sistema de almacenamiento. El caso más habitual consiste en poder crear una LUN (o disco SCSI virtual) que no consume todo el espacio que tiene la misma. Por ejemplo, creamos una LUN de 100GB que no consume 100GB en la cabina. Un ejemplo con la línea de comandos de equipos netapp de como controlar el thin-provisioning de una LUN, una propiedad que podemos activar o desactivar para cada LUN de forma individual:
# Creamos una LUN
> lun create -s 2g -t linux /vol/test/lun0
> df -h test
Filesystem total used avail capacity Mounted on
/vol/test/ 10GB 2052MB 8187MB 20% /vol/test/
# Consume 2GB del volumen que la contiene
# Le quitamos la reserva de espacio, para que sea "thin-provisioned"
> lun set reservation /vol/test/lun0 disable
> lun show -v /vol/test/lun0
/vol/test/lun0 2g (2147483648) (r/w, online)
Serial#: C4ifmJMYpfja
Share: none
Space Reservation: disabled
Multiprotocol Type: linux
> df -h
Filesystem total used avail capacity Mounted on
/vol/test/ 10GB 128KB 10239MB 0% /vol/test/
Tras quitar la reserva de espacio, la LUN solo consume unos pocos KB, por que todavía no tiene datos. Conforme se almacenen datos se irá consumiendo espacio del volumen hasta un máximo de 2GB que es el tamaño de ese disco virtual, tal y como lo ve el servidor cliente. Desde el interfaz web es incluso más sencillo, puesto que lo único que hay que hacer es quitar la reserva de espacio en el momento de crear la LUN:
No hay comentarios:
Publicar un comentario