FAST VP en Unity Storage: cómo funciona

Hoy hablaremos de una tecnología interesante implementada en los sistemas de almacenamiento Unity / Unity XT: FAST VP. Si escuchó por primera vez acerca de Unity, en el enlace al final del artículo puede familiarizarse con las características del sistema. Como parte del equipo del proyecto Dell EMC, he estado trabajando en FAST VP durante más de un año. Hoy quiero hablar más sobre esta tecnología y revelar algunos detalles de su implementación. Por supuesto, solo aquellos que pueden revelar. Si está interesado en los problemas del almacenamiento eficiente de datos o simplemente no ha resuelto completamente la documentación, entonces este artículo sin duda será útil e interesante.



Debo decir de inmediato lo que no estará en el material. No habrá búsqueda de competidores y comparaciones con ellos. Tampoco planeo hablar sobre tecnologías similares de código abierto, porque un lector curioso ya las conoce. Y, por supuesto, no voy a anunciar nada.

Almacenamiento en niveles. Metas y objetivos de FAST VP


FAST VP significa almacenamiento en niveles totalmente automatizado para la agrupación virtual. ¿Es complicado? Nada, ahora lo resolveremos. La organización por niveles es una forma de organizar el almacenamiento de datos, en el que hay varios niveles (niveles) donde se almacenan estos datos. Cada uno tiene sus propias características. Lo más importante: rendimiento, volumen y precio de almacenamiento de una unidad de información. Por supuesto, hay una relación entre ellos.

Una característica importante de los niveles es que el acceso a los datos se proporciona de manera uniforme, independientemente del nivel de almacenamiento en el que se encuentren actualmente, y el tamaño del grupo es igual a la suma de los tamaños de los recursos incluidos en él. Aquí radica la diferencia con el caché: el tamaño del caché no se suma a la cantidad total del recurso (el grupo en este caso), y los datos del caché duplican cualquier pieza de datos en el medio principal (o se duplicarán si los datos del caché aún no se han escrito). Además, la distribución de datos por niveles está oculta para el usuario. Es decir, no ve qué tipo de datos se encuentran en cada nivel, aunque puede influir indirectamente al establecer políticas (sobre ellos más adelante).

Ahora veamos las características de la implementación de almacenamiento en niveles en Unity. La unidad distingue 3 niveles, o tier'a:

  • Rendimiento extremo (SSD)
  • Rendimiento (SAS HDD 10k / 15k RPM)
  • Capacidad (HDD NL-SAS 7200 RPM)

Se presentan en orden decreciente de rendimiento y precio. El rendimiento extremo incluye unidades de estado sólido (SSD) exclusivamente. En otros dos niveles: unidades de disco magnético, que difieren en velocidad de rotación y, en consecuencia, en rendimiento.

Los medios de almacenamiento de un nivel y un tamaño se combinan en una matriz RAID, formando un grupo RAID (grupo RAID, para abreviar - RG); Los niveles de RAID disponibles y recomendados se pueden encontrar en la documentación oficial. A partir de grupos RAID de uno o varios niveles, se forman agrupaciones de almacenamiento, a partir de las cuales se asigna el espacio libre. Y ya desde el grupo se asigna espacio para sistemas de archivos y LUN.



¿Por qué necesito niveles?


En resumen y en resumen: para lograr mayores resultados, utilizando un mínimo de recursos. Más específicamente, el resultado generalmente se entiende como un conjunto de características de los sistemas de almacenamiento: velocidad y tiempo de acceso, costo de almacenamiento y otros. Por un mínimo de recursos se entiende el menor costo: dinero, energía, etc. FAST VP solo implementa mecanismos de redistribución de datos en diferentes niveles en los sistemas de almacenamiento Unity / Unity XT. Si me crees, puedes saltarte el siguiente párrafo. Por lo demás, te contaré un poco más.

La distribución correcta de los datos por niveles de almacenamiento le permite ahorrar en el costo total de almacenamiento al sacrificar la velocidad de acceso a alguna información poco utilizada, y aumentar la productividad al mover los datos de uso frecuente a medios de almacenamiento más rápidos. Aquí alguien puede argumentar que, incluso sin niveles, el administrador normal sabe dónde colocar qué datos, qué características deseables del sistema de almacenamiento para su tarea, etc. Esto es indudablemente cierto, pero la distribución manual de datos tiene sus inconvenientes:

  • Se necesita tiempo y atención del administrador;
  • No siempre es posible "volver a dibujar" los recursos de almacenamiento para condiciones cambiantes;
  • desaparece una ventaja importante: acceso unificado a los recursos ubicados en diferentes niveles de almacenamiento.

Para que los administradores de almacenamiento estén menos preocupados por la seguridad laboral, agregaré que también es necesaria una planificación de recursos competente. Ahora que las tareas de niveles se describen brevemente, veamos qué puede esperar de FAST VP. Este es el momento de volver a la definición. Las dos primeras palabras, totalmente automatizadas, se traducen literalmente como "totalmente automatizadas" y significan que la distribución de niveles se produce automáticamente. Bueno, Virtual Pool es un grupo de datos que incluye recursos de diferentes niveles de almacenamiento. Esto es lo que parece:

imagen

mirando hacia el futuro, diré que FAST VP mueve los datos solo dentro de un grupo, y no entre varios grupos.

Tareas resueltas FAST VP


Hablemos primero de manera abstracta. Tenemos un grupo y algún mecanismo que puede redistribuir datos dentro de este grupo. Recordando que nuestra tarea es lograr el máximo rendimiento, nos preguntamos: ¿de qué maneras se puede lograr? Puede haber varios de ellos, y aquí FAST VP tiene algo que ofrecer al usuario, ya que la tecnología es algo más que niveles de almacenamiento. Aquí hay algunas formas en que FAST VP puede aumentar el rendimiento del grupo:

  • Distribución de datos por diferentes tipos de discos, niveles.
  • Distribuir datos entre unidades del mismo tipo
  • Distribución de datos de expansión de grupo

Antes de analizar cómo se resuelven estas tareas, necesitamos conocer algunos datos necesarios sobre el trabajo de FAST VP. FAST VP opera con bloques de cierto tamaño: 256 megabytes. Este es el "fragmento" continuo más pequeño de datos que se puede mover. Se llama en la documentación: rebanada. Desde el punto de vista de FAST VP, todos los grupos RAID consisten en un conjunto de tales "piezas". En consecuencia, todas las estadísticas de E / S se acumulan para dichos bloques de datos. ¿Por qué se elige este tamaño de bloque y se reducirá? El bloque es lo suficientemente grande, pero esto es un compromiso entre la granularidad de los datos (tamaño de bloque más pequeño, más precisamente la distribución) y los recursos informáticos disponibles: bajo las estrictas restricciones existentes sobre RAM y una gran cantidad de bloques, estas estadísticas pueden ocupar demasiado, y la cantidad de cálculos aumentará proporcionalmente.

Cómo FAST VP coloca los datos en un grupo. Políticos


Para controlar la ubicación de los datos en un grupo con FAST VP habilitado, existen las siguientes políticas:

  • Nivel más alto disponible
  • Nivel automático
  • Inicio alto y luego Nivel automático (predeterminado)
  • Nivel más bajo disponible

Afectan tanto la ubicación inicial del bloque (los datos se registraron primero) como la redistribución posterior. Cuando los datos ya se encuentran en los discos, la redistribución se iniciará de acuerdo con la programación o de forma manual.

El nivel más alto disponible está tratando de colocar el nuevo bloque en el nivel más productivo. Con falta de espacio, en el siguiente nivel de rendimiento, pero luego los datos se pueden mover a un nivel más productivo (si hay espacio o desplazan otros datos). El nivel automático coloca los datos nuevos en diferentes niveles según el tamaño del espacio disponible, y se redistribuyen según la demanda y el espacio libre. Start High y luego Auto-Tier es la política predeterminada y también recomendada. En la ubicación inicial, funciona como el nivel más alto disponible, y luego los datos se mueven según sus estadísticas de uso. La política de Nivel más bajo disponible busca ubicar los datos en el nivel menos productivo.

La transferencia de datos se lleva a cabo con baja prioridad para no interferir con el trabajo útil de almacenamiento, sin embargo, existe una configuración de "Tasa de reubicación de datos", que cambia la prioridad. Hay una peculiaridad: no todos los bloques de datos tienen la misma secuencia de redistribución. Por ejemplo, los bloques marcados como metadatos se moverán primero a un nivel más rápido. Los metadatos son, por así decirlo, "datos sobre datos", alguna información adicional que no son datos del usuario, pero almacena su descripción. Por ejemplo, información en el sistema de archivos sobre en qué bloque se encuentra un archivo en particular. Esto significa que la velocidad de acceso a los datos depende de la velocidad de acceso a los metadatos. Dado que los metadatos suelen ser mucho más pequeños, se espera que se beneficien más de pasar a discos más productivos.

Criterios que Fast VP utiliza en el trabajo


El criterio principal para cada bloque, si es muy grosero, es la característica de la "demanda" de los datos, que depende del número de lecturas y escrituras del fragmento de datos. Esta característica se llama "Temperatura". Hay datos activos que son más activos que los no reclamados. Se calcula periódicamente, por defecto con un intervalo de una hora.

La función de cálculo de temperatura tiene las siguientes propiedades:

  • En ausencia de E / S, los datos se "enfrían" con el tiempo.
  • Con una carga más o menos igual en el tiempo, la temperatura primero aumenta y luego se estabiliza en un cierto rango.

Además, se tienen en cuenta las políticas descritas anteriormente y el espacio libre en cada nivel. Para mayor claridad, daré una imagen de la documentación. Aquí los colores rojo, amarillo y azul indican bloques con temperatura alta, media y baja, respectivamente.

imagen

Pero volvamos a las tareas. Entonces, podemos comenzar a analizar qué se está haciendo para resolver los problemas de FAST VP.

A. Distribución de datos por diferentes tipos de discos, niveles.


En realidad, esta es la tarea principal de FAST VP. El resto, en cierto sentido, se deriva de él. Dependiendo de la política seleccionada, los datos se distribuirán en diferentes niveles de almacenamiento. En primer lugar, se tiene en cuenta la política de ubicación, luego la temperatura del bloque y el tamaño / velocidad de los grupos RAID.

Para las políticas de nivel más alto / más bajo disponible, todo es bastante simple. Para los otros dos, este es el caso. En diferentes niveles, los datos se distribuyen teniendo en cuenta el tamaño y el rendimiento de los grupos RAID: de modo que la relación entre la "temperatura" total de los bloques y el "rendimiento máximo condicional" de cada grupo RAID es aproximadamente la misma. Por lo tanto, la carga se distribuye más o menos uniformemente. Los datos más demandados se transfieren a operadores rápidos, raramente utilizados, a los más lentos. Idealmente, la distribución debería ser algo como esto:

imagen

B. Distribución de datos entre discos del mismo tipo.


¿Recuerdas que al principio escribí que los portadores de información de uno o varios niveles se combinan en un grupo? En el caso de un solo nivel para FAST VP, también hay trabajo. Para maximizar el rendimiento en cualquier nivel, es aconsejable distribuir los datos de manera uniforme entre los discos. Esto permitirá (en teoría) obtener el número máximo de IOPS. Los datos dentro de un grupo RAID pueden considerarse distribuidos uniformemente entre los discos, pero entre los grupos RAID esto está lejos de ser siempre el caso. En caso de un desequilibrio, FAST VP moverá los datos entre los grupos RAID en proporción a su tamaño y "rendimiento condicional" (en términos numéricos). Para mayor claridad, mostraré un esquema de reequilibrio entre tres grupos RAID:

imagen

B. Distribución de datos durante la expansión del grupo.


Esta tarea es un caso especial de la anterior y se realiza cuando se agrega un grupo RAID al grupo. Para que el grupo RAID recién agregado no permanezca inactivo, parte de los datos se transferirán a él, lo que significa que la carga en todos los grupos RAID se redistribuirá.

Nivelación de desgaste SSD


Con la nivelación de desgaste, FAST VP puede extender la vida útil de un SSD, aunque esta característica no está directamente relacionada con el almacenamiento en niveles. Como ya hay datos de temperatura, también se tiene en cuenta el número de operaciones de escritura, podemos mover bloques de datos, sería lógico que FAST VP resuelva este problema.

Si el número de registros en un grupo RAID excede significativamente el número de registros en otro, entonces FAST VP redistribuirá los datos de acuerdo con el número de operaciones de escritura. Por un lado, esto elimina la carga y ahorra el recurso de algunos discos, por otro lado, agrega "trabajo" para los menos cargados, aumentando el rendimiento general.

Por lo tanto, FAST VP asume las tareas tradicionales de almacenamiento en niveles y hace un poco más que eso. Todo esto le permite almacenar datos de manera efectiva en la familia de sistemas de almacenamiento de Unity.


  1. . best practices, . , , , . .
  2. FAST VP, . , . .
  3. . , Unity .
  4. , . , FAST VP . , . , 2.
  5. FAST VP, . RAID- , . «» . , «» , . , , , , . , FAST VP, .

Si observa detenidamente este producto, puede probar Unity en el negocio de forma gratuita descargando el dispositivo virtual Unity VSA.



Al final del artículo, comparto algunos enlaces útiles:


Conclusión


Me gustaría escribir sobre mucho, pero entiendo que no todos los detalles serán interesantes para el lector. Por ejemplo, puede contar con más detalle sobre los criterios por los cuales FAST VP decide transferir datos, sobre los procesos de análisis de estadísticas de E / S. Además, el tema de la interacción con las agrupaciones dinámicas no se ve afectado en absoluto , y esto se basa en un artículo separado. Incluso puedes soñar con el desarrollo de esta tecnología. Espero que no haya sido aburrido y no te haya aburrido. ¡Te veo pronto!

All Articles