VSAN 6.2 – Deduplicación y compresión de datos

Que tal gente, el día de hoy continuaré hablando de lo nuevo que nos trajo VSAN 6.2, en este caso en especifico nos enfocaremos a las nuevas capacidades de compresión y deduplicación  de datos. Esto posiciona a Virtual SAN en otro nivel del cual se encontraba anteriormente, como sabemos estos servicios de datos eran ofrecidos por la competencia y constituyen capacidades que son esperadas por el mercado además que nos estará ayudando a reducir el TCO de nuestra solución. En este articulo estaré explicando como están implementadas las funciones de compresion y deduplicación de datos para después echar un vistazo al vSphere Web Client para entender como se configuran y como interactuamos con estas capacidades.

¿Como funciona la deduplicación y compresión de datos en VSAN 6.2?

Antes que nada debemos de entender que tanto la deduplicación y compresión de datos en el caso de VSAN se realizan para datos de tipo “nearline”, es decir, aquellos que estarán siendo enviados a los discos de capacidad y no estará “viviendo” en la capa de cache de VSAN, es por esto que los datos tocan primero la capa de cache (y se confirma que la escritura fue satisfactoria) y en el momento que se determina que tienen que ser “bajados” (destaged) a los discos de capacidad se aplican estos dos servicios de datos lo cual evita un posible impacto a las operaciones de escritura.

Como primer paso se deduplican los bloques, VSAN trabaja con bloques de 4KB determinando aquellos que son iguales para poder almacenar una sola copia, una vez que esta copia “única” esta lista para ser escrita a los discos de capacidad del disk group se le aplica el mecanismo de compresión basado en el algoritmo LZ4 el cual es bastante eficaz en términos de recursos consumidos (CPU/memoria) y el grado de compresión resultante. Para que un bloque comprimido pueda ser almacenado este deberá ser de menor o igual a  2KB esto obedece a dos razones muy importantes, la primera es mantener el alineado de todos los bloques y la segunda poder reducir el impacto que se puede llegar a tener en términos de CPU para descomprimir aquellos bloques mas “pesados”.

Estos servicios de datos se activan a nivel cluster, pero aplican específicamente a nivel de grupo de discos (disk group) ¿Que quiero decir con esto? básicamente o activamos los servicios de compresión y deduplicación de datos para todo el cluster o no lo activamos, así de simple. Una vez que están activados tanto la deduplicación como la compresión de datos sucederá exclusivamente a nivel del grupo de discos evitando contar con un tabla de búsqueda (lookup table) universal para bloques comprimidos y deduplicados entre hosts/disk groups lo cual impactaría posiblemente en términos de CPU/memoria y latencia.

¿Como se activan los servicios de deduplicación y compresión de datos en VSAN 6.2?

Para el caso de clusters nuevos, es tan simple como configurar como “Enabled” los servicios de “Deduplication and Compression”:

Screen Shot 2016-03-08 at 12.41.29 AM

En el caso de clusters existentes también estaremos habilitando los servicios simplemente marcándolos como “Enabled” solo que necesitamos tener en mente que esto implicará una actualización del formato de disco teniendo que evacuar los datos existentes en el disk group hacia otros disk groups o hosts ESXi lo cual podría tomar bastante tiempo dependiendo de la cantidad de información que tengamos almacenada. La casilla de “Allow Reduced Redundancy” nos permite llevar a cabo esta actualización de formato (rolling update/en vivo) sin asegurar que la protección de datos se cumpla, es decir, si tenemos 3 hosts y queremos hacer una actualización de formato de disco no podemos asegurar que la disponibilidad de los datos se mantenga debido a que para ello tendríamos que contar con 4 hosts, también existen otros casos como no tener suficiente espacio o con los nuevos Erasure codes no tener mas hosts ESXi de la cantidad mínima que estos requieren (4 para RAID-5 y 6 para RAID-6). Si quieren saber mas sobre los nuevos Erasure Codes disponibles en VSAN 6.2 pueden leer mi articulo: VSAN 6.2 – Erasure Coding.

¿Como llevamos control y monitoreo de la deduplicación y compresión de datos?

Se agregaron varios puntos de información disponibles en el vSphere Web client vamos a revisar cada uno de ellos:

  • Pestañas de Monitoreo a nivel de cluster,  “summary” a nivel de cluster y de monitoreo a nivel de Datastore – Como podemos ver en la imagen tenemos una sección dedicada a Virtual SAN donde podemos encontrar información de capacidad aquí se nos muestra de manera simple cual es el nivel compresión que estamos logrando y la cantidad de espacio que se ha reducido:

Screen Shot 2016-03-08 at 1.02.31 AM

  • Pestaña de Manage a nivel de datastore – Aquí se nos muestra información un poco mas completa donde podemos comprender la cantidad de espacio físico que se ha consumido y espacio lógico (espacio físico + reducciones).

Screen Shot 2016-03-08 at 1.08.48 AM

Puntos a tener en mente

  • Las capacidades de deduplicación y compresión de datos solo son soportadas en configuraciones All-Flash de VSAN, debido a que contamos con un rendimiento muy alto que no se ve demasiado afectado.
  • El nivel de compresión que podremos lograr dependerá totalmente del tipo de VMs que estemos almacenando en VSAN, por ejemplo, un ambiente de VDI con clones completos podría verse beneficiando pero si tomamos otro ejemplo donde estemos utilizando VDI con linked clones o instant clones claramente las ganancias serán mucho menores.
  • Si se utiliza encriptación a nivel de VM podríamos tener un nivel de deduplicación nulo o muy cercano a 0.
  • Como se comentó anteriormente tanto la deduplicación como la compresión de datos trabaja a nivel de disk group, por lo cual a mayor cantidad de espacio (dependiendo todavía del tipo de VM almacenada) podríamos estar manejando niveles de deduplicación y compresión mayores.
  • La deduplicación y compresión de datos trabaja sin problemas con los diferentes Erasure codes que VSAN 6.2 maneja, por lo que podemos tener una reducción en términos de espacio consumido bastante interesante, recordemos que RAID-5 reduce un 33% y RAID-6 reduce un 50%.
  • Estas funcionalidades están soportadas en ambientes de stretched cluster y ROBO.

Leave a Reply