INTRODUCCIÓN AL ARREGLO DE ALMACENAMIENTO EMC XtremIO (versión 4.0)

Texto completo

(1)

Informe técnico

Resumen

En este informe técnico, se presenta el arreglo de

almacenamiento EMC XtremIO. Se ofrecen descripciones detalladas de la arquitectura del sistema, la teoría de operación y sus características. También se explica de qué manera las características exclusivas de XtremIO (como las técnicas de reducción de datos en línea [que incluyen deduplicación y compresión de datos en línea], el

INTRODUCCIÓN AL

ARREGLO DE ALMACENAMIENTO

EMC XtremIO (versión 4.0)

(2)

Copyright © 2015 EMC Corporation. Todos los derechos reservados.

EMC considera que la información de este documento es precisa en el momento de su publicación. La información está sujeta a cambios sin previo aviso.

La información contenida en esta publicación se proporciona “tal cual”. EMC Corporation no se hace responsable ni ofrece garantía de ningún tipo con respecto a la información de esta publicación y específicamente renuncia a toda garantía implícita de comerciabilidad o capacidad para un propósito determinado.

El uso, la copia y la distribución de cualquier software de EMC descrito en esta publicación requieren una licencia de software correspondiente.

Para obtener una lista actualizada de nombres de productos de EMC, consulte las marcas comerciales de EMC Corporation en mexico.emc.com (visite el sitio web de su país correspondiente).

VMware es una marca registrada o una marca comercial de VMware, Inc. en los Estados Unidos y/o en otras jurisdicciones. Todas las demás marcas comerciales incluidas/utilizadas en este documento pertenecen a sus respectivos propietarios.

(3)

Tabla de contenido

Resumen ejecutivo ... 5

Introducción ... 6

Descripción general del sistema ... 7

X-Brick ... 9

Arquitectura de escalamiento horizontal ... 11

Starter X-Brick de 10 TB (5 TB) ... 12

Arquitectura del sistema ... 13

Teoría de operación ... 15

Tabla de mapeo ... 15

Cómo funciona el flujo de I/O para operaciones de escritura ... 16

Cómo funciona el flujo de I/O para operaciones de lectura ... 21

Características del sistema ... 22

Aprovisionamiento delgado ... 23

Reducción de datos en línea ... 23

Deduplicación de datos en línea ... 23

Compresión de datos en línea ... 25

Reducción total de datos ... 26

XtremIO Data Protection (XDP) ... 27

Cómo funciona XDP ... 28

Cifrado de datos en reposo ... 30

Snapshots ... 32

Rendimiento escalable ... 39

Distribución uniforme de datos ... 42

Alta disponibilidad ... 43

Actualización y expansión no disruptivas ... 45

Integración con VMware VAAI ... 46

XtremIO Management Server (XMS) ... 50

GUI del sistema ... 51

(4)

Facilidad de administración ... 53

Replicación de XtremIO a un arreglo remoto ... 54

RecoverPoint ... 54

Resumen de las soluciones ... 55

Replicación nativa de RecoverPoint para XtremIO ... 55

Replicación de CDP y síncrona para XtremIO ... 57

Integración con otros productos de EMC ... 60

Soluciones de integración del sistema ... 60

Vblock ... 60

VSPEX ... 60

Soluciones de administración y monitoreo ... 61

EMC Storage Analytics (ESA) ... 61

Plug-in de EMC Storage Integrator (ESI) para Windows ... 61

Plug-in EMC Storage Integrator (ESI) para Oracle VM ... 62

ViPR Controller ... 62

ViPR SRM ... 63

Plug-in Virtual Storage Integrator (VSI) para VMware vCenter ... 63

Soluciones de integración de aplicaciones ... 64

AppSync ... 64

Plug-in Oracle Enterprise Manager (OEM) ... 64

Soluciones de alta disponibilidad y continuidad del negocio ... 65

PowerPath ... 65

VPLEX ... 65

Integración de OpenStack ... 66

(5)

Resumen ejecutivo

El almacenamiento flash es un método atractivo para aumentar el rendimiento de I/O en el centro de datos. Pero siempre ha implicado un precio, tanto en costos elevados como en pérdida de funcionalidades, como escalabilidad, alta

disponibilidad y características empresariales.

El arreglo de almacenamiento empresarial de escalamiento horizontal basado íntegramente en tecnología flash XtremIO no solo ofrece niveles elevados de rendimiento y escalabilidad sino que, además, aporta nuevos niveles de sencillez de uso del almacenamiento SAN, a la vez que brinda características avanzadas que nunca antes habían sido posibles.

El diseño del arreglo XtremIO basado íntegramente en tecnología flash se creó de cero para maximizar el rendimiento y brindar tiempos de respuesta con baja latencia en todo momento, y con características de alta disponibilidad de clase empresarial, reducción de datos en línea en tiempo real que reduce radicalmente los costos y funciones avanzadas como aprovisionamiento delgado, estrecha integración con VMware, snapshots, clones de volúmenes y una excelente protección de datos.

Esto se logra con un costo de propiedad competitivo. La arquitectura del producto responde a todos los requisitos de un sistema de almacenamiento basado en tecnología flash; eso incluye: lograr alta durabilidad de los medios flash, reducir el costo real de la capacidad flash, proporcionar rendimiento y escalabilidad, brindar eficiencia operacional y ofrecer funcionalidad avanzada en el arreglo de almacenamiento.

En este informe técnico se ofrece una introducción general al arreglo de almacenamiento XtremIO, con descripciones detalladas de la arquitectura del sistema, la teoría de operación y sus diversas características.

(6)

Introducción

XtremIO es un arreglo de almacenamiento basado íntegramente en

tecnología flash que ha sido diseñado de cero para liberar todo el potencial de rendimiento de la tecnología flash y brindar funcionalidades basadas en arreglos que aprovechen las características exclusivas de los discos SSD, sobre la base de medios flash.

XtremIO emplea componentes estándares del sector y software de inteligencia propio y patentado para ofrecer niveles de rendimiento sin igual. El rango de rendimiento posible es de cientos de miles a millones de IOPS, además de una latencia baja y consistente de menos de un milisegundo.*

El sistema también está diseñado para minimizar la planificación, con una interfaz fácil de usar que simplifica enormemente el aprovisionamiento y la administración del arreglo.

XtremIO aprovecha la tecnología flash para ofrecer valor comercial en las siguientes dimensiones centrales:

• Rendimiento: Independientemente de lo ocupado que esté el sistema, y sin importar la utilización de la capacidad de almacenamiento, la latencia y el rendimiento son siempre predecibles y constantes. La latencia en el interior del arreglo para una solicitud de I/O suele ser de menos de un milisegundo*

.

• Escalabilidad: El sistema de almacenamiento XtremIO se basa en una arquitectura de escalamiento horizontal. El sistema comienza con un componente básico llamado X-Brick. Cuando se requiere rendimiento y capacidad adicionales, el sistema se amplía horizontalmente agregando X-Brick. El rendimiento escala linealmente, lo que garantiza que dos X-Brick duplican la capacidad de IOPS, cuatro X-Brick cuadruplican la capacidad de IOPS, seis X-Brick sextuplican la capacidad de IOPS y ocho X-Brick octuplican la capacidad de IOPS de la configuración con un solo X-Brick. La latencia se mantiene baja de manera constante a medida que el sistema se amplía horizontalmente.

• Eficiencia: El motor principal implementa reducción de datos en línea basada en el contenido. El arreglo de almacenamiento XtremIO reduce (deduplica) automáticamente los datos en tránsito, cuando entra al sistema. Así se reduce la cantidad de datos que se escribe en los medios flash, lo que

mejora la durabilidad de los medios y reduce los costos. Los arreglos XtremIO asignan capacidad a los volúmenes según demanda en bloques de fragmentos granulares. El aprovisionamiento de los volúmenes siempre es delgado sin ninguna pérdida de rendimiento, sobreaprovisionamiento de capacidad ni tampoco fragmentación. Una vez que se implementa la deduplicación en línea basada en contenido, los datos restantes se comprimen aún más, lo que reduce la cantidad de escrituras en los medios flash. La compresión de datos se lleva a cabo en línea en los bloques de datos deduplicados (únicos).

(7)

Los beneficios obtenidos para evitar un gran porcentaje de escrituras incluyen:

 Mejor rendimiento debido a los datos reducidos

 Mayor resistencia general del disco SSD de arreglos flash

 Menos capacidad física requerida para almacenar los datos, lo que aumenta la eficiencia del arreglo de almacenamiento y reduce considerablemente el costo de US$/GB de almacenamiento

• Protección de datos: XtremIO utiliza un algoritmo de protección de datos optimizado para flash propio y patentado (XtremIO Data Protection o XDP) que proporciona un rendimiento superior al de cualquier otro algoritmo RAID existente. Las optimizaciones de XDP también reducen la cantidad de operaciones de escritura en los medios flash a los efectos de la protección de datos.

• Funcionalidad: XtremIO admite snapshots de alto rendimiento y que ocupan poco espacio, reducción de datos en línea (que incluyen deduplicación en línea y compresión de datos), aprovisionamiento delgado e integración completa de VMware VAAI, además de ser compatible con protocolos Fibre Channel y iSCSI.

Descripción general del sistema

El arreglo de almacenamiento XtremIO es un sistema basado íntegramente en tecnología flash y en una arquitectura de escalamiento horizontal. El sistema emplea componentes básicos, llamados X-Brick, que se pueden agrupar en clústeres para aumentar el rendimiento y la capacidad según sea necesario, como se indica en la Figura 2.

La operación del sistema se controla a través de un servidor Linux exclusivo e independiente, llamado XtremIO Management Server (XMS). Un host XMS, que puede ser un servidor virtual o físico, puede administrar varios clústeres de XtremIO. El arreglo seguirá funcionando si se lo desconecta del XMS pero no se podrá configurar ni monitorear.

La arquitectura del arreglo XtremIO está diseñada específicamente para

brindar todo el potencial de rendimiento de la tecnología flash y, a la vez, escalar linealmente todos los recursos, como CPU, RAM, unidades SSD y puertos de hosts de un modo equilibrado. Esto permite que el arreglo alcance cualquier nivel de rendimiento deseado y, a la vez, mantenga la uniformidad de rendimiento esencial para lograr un comportamiento predecible en las aplicaciones.

El sistema de almacenamiento XtremIO ofrece un nivel de rendimiento muy alto constante en el tiempo, en cualquier condición de sistema y con cualquier patrón

(8)

Gracias a esta arquitectura de almacenamiento con detección de contenido, XtremIO ofrece lo siguiente:

• Distribución uniforme de bloques de datos, lo que, inherentemente, maximiza el rendimiento y minimiza el desgaste de los componentes flash

• Distribución uniforme de metadatos

• Ausencia de puntos problemáticos de datos o metadatos

• Configuración sencilla y sin ajustes

• Funcionalidad de almacenamiento avanzada, que incluye reducción de datos en línea (deduplicación y compresión de datos), aprovisionamiento delgado, protección de datos avanzada (XDP) y snapshots, entre otras prestaciones

(9)

X-Brick

La Figura 1 muestra un X-Brick.

Figura 1. X-Brick

Un X-Brick es el componente básico de un arreglo XtremIO. Cada X-Brick está compuesto por:

• Un gabinete de arreglos de discos (DAE) de 2U, que incluye:

 25 discos SSD eMLC (X-Brick estándar) o 13 discos SSD eMLC (Starter X-Brick de 10 TB [5 TB])

 Dos unidades de alimentación (PSU) redundantes

 Dos módulos de interconexión de disco SAS redundantes

• Una unidad de batería de respaldo

• Dos controladores de almacenamiento de 1U (procesadores de almacenamiento redundantes)

Cada controlador de almacenamiento incluye lo siguiente:

 Dos unidades de alimentación (PSU) redundantes

 Dos puertos Fibre Channel (FC) de 8 Gb/s

 Dos puertos iSCSI de 10 GbE

 Dos puertos InfiniBand de 40 Gb/s

(10)

La Tabla 1 muestra las especificaciones del sistema por X-Brick.

Tabla 1. Especificaciones del sistema (por X-Brick)

Característica Especificación (por X-Brick)

Física • 5U

• 13 discos SSD flash eMLC (Starter X-Brick de 10 TB [5 TB])

• 25 discos SSD flash eMLC (X-Brick regular) Alta disponibilidad • Redundante

• Componentes de reemplazo en caliente

• Sin puntos únicos de falla (SPOF) Acceso de host Estado activo-activo simétrico:

Se puede acceder a cualquier volumen en paralelo desde cualquier puerto objetivo en cualquier controlador con rendimiento equivalente. No hay necesidad de ALUA.

Puertos de host • 4 puertos FC de 8 Gb/s

• 4 puertos Ethernet iSCSI de 10 Gb/s Capacidad útil*

• Para un tipo de Starter X-Brick de 10 TB (5 TB): - 3.26 TiB (13 discos SSD, sin reducción de datos) - 7.22 TiB (25 discos SSD, sin reducción de datos)

• Para un tipo de X-Brick de 10 TB: 7.58 TiB (sin reducción de datos)

• Para un tipo de X-Brick de 20 TB: 15.16 TiB (sin reducción de datos)

• Para un tipo de X-Brick de 40 TB: 30.55 TiB (sin reducción de datos)

Latencia Menos de un milisegundo†

*

La capacidad útil es la cantidad de datos únicos no comprimibles que pueden escribirse en el arreglo. La capacidad eficiente por lo general será mucho más grande a la reducción de los datos en línea de XtremIO. Los números finales pueden ser ligeramente diferentes.

(11)

Arquitectura de escalamiento horizontal

Un sistema de almacenamiento XtremIO puede incluir un solo X-Brick o un clúster de varios X-Brick, como se indica en la Figura 2 y en la Tabla 2.

Figura 2. Configuraciones del sistema como un solo X-Brick y como clústeres con varios X-Brick

Con clústeres de dos o más X-Brick, XtremIO utiliza una red InfiniBand QDR de 40 Gb/s redundante para la conectividad back-end entre los controladores de almacenamiento, lo que garantiza una red de alta disponibilidad y latencia ultra baja. La red InfiniBand es un componente totalmente administrado del arreglo XtremIO y los administradores de sistemas XtremIO no necesitan habilidades especializadas en tecnología InfiniBand.

Clúster de un X-Brick Clúster de dos X-Brick Clúster de cuatro X-Brick Clúster de seis X-Brick Clúster de ocho X-Brick

(12)

Un clúster integrado por un único X-Brick está compuesto por:

• Un X-Brick

• Una unidad de batería de respaldo adicional

Un clúster integrado por varios X-Brick está compuesto por:

• Dos, Cuatro seis u ocho X-Brics

• Dos switches InfiniBand

Tabla 2. Configuraciones del sistema como un solo X-Brick y como clústeres con varios X-Brick

Starter X-Brick de 10 TB (5 TB) Clúster de un X-Brick Clúster de dos X-Brick Clúster de cuatro X-Brick Clúster de seis X-Brick Clúster de ocho X-Brick Cant. de X-Brick 1 1 2 4 6 8 Cant. de switches InfiniBand 0 0 2 2 2 2 Cant. de unidades de batería de respaldo adicionales 1 1 0 0 0 0 Starter X-Brick de 10 TB (5 TB)

El Starter X-Brick de 10 TB (5 TB) de XtremIO es idéntico a un clúster de X-Brick estándar, pero está equipado con solo 13 discos SSD flash eMLC en lugar de 25. El Starter X-Brick de 10 TB (5 TB) se puede expandir a un X-Brick regular agregando 12 discos SSD.

(13)

Arquitectura del sistema

XtremIO funciona como cualquier otro arreglo de almacenamiento basado en bloques y se integra con las redes SAN existentes, con una opción de conectividad Fibre Channel de 8 Gb/s y Ethernet iSCSI (SFP+) de 10 Gb/s a los hosts.

Sin embargo, a diferencia de otros arreglos basados en bloques, XtremIO es un sistema de almacenamiento flash especialmente diseñado para ofrecer lo mejor en rendimiento, facilidad de uso y servicios avanzados de administración de datos. Cada uno de los controladores de almacenamiento del arreglo XtremIO ejecuta una distribución Linux ligera personalizada especialmente como

plataforma base. El sistema operativo de XtremIO (XIOS) se ejecuta sobre Linux y se ocupa de todas las actividades internas de un controlador de almacenamiento, tal como se indica en la Figura 3. XIOS está optimizado para manejar altas

velocidades de I/O y administra los módulos funcionales del sistema, las operaciones de RDMA por InfiniBand, el monitoreo y los pools de memoria.

Figura 3. Diagrama de bloques X-Brick

(14)

XIOS ofrece lo siguiente:

• Calendarización con baja latencia: para posibilitar un cambio eficiente del contexto de los subprocesos, optimizar la calendarización y minimizar el tiempo de espera

• Escalabilidad de CPU lineal: para posibilitar la explotación completa de cualquier recurso de CPU, incluidos los CPU multi-core

• Sincronización entre cores de CPU limitada: para optimizar la comunicación entre subprocesos internos y la transferencia de datos

• Sin sincronización entre sockets de CPU: para minimizar las tareas de sincronización y las dependencias entre los subprocesos que se ejecutan en diferentes sockets

• Detección en línea de caché: para optimizar la latencia y el acceso a los datos El controlador de almacenamiento de cada X-Brick controla el gabinete de arreglos de disco (DAE) que está conectado a él a través de interconexiones de discos SAS redundantes. Los controladores de almacenamiento también están conectados a un fabric InfiniBand redundante y de alta disponibilidad. Independientemente de cuál sea el controlador de almacenamiento que recibe una solicitud de I/O de un host, los diversos controladores de almacenamiento de varios X-Brick cooperan ente sí para procesar la solicitud. La distribución de datos en el sistema XtremIO garantiza que todos los componentes compartan inherentemente la carga y participen equitativamente en las operaciones de I/O.

(15)

Teoría de operación

El arreglo de almacenamiento XtremIO reduce (deduplica y comprime) automáticamente los datos cuando ingresan al sistema, procesándolos en bloques de datos. La deduplicación es global (en todo el sistema), continua y se ejecuta en tiempo real (nunca como una operación de posprocesamiento). Después de la deduplicación, los datos se comprimen en línea, antes de que se escriban en los discos SSD.

XtremIO utiliza un caché de memoria global, que detecta los datos deduplicados, y una distribución basada en el contenido que dispersa los datos inherentemente en todo el arreglo. Se puede acceder a todos los volúmenes de todos los X-Brick y en todos los puertos de host del arreglo de almacenamiento.

El sistema utiliza una red InfiniBand back-end de alta disponibilidad (provista por EMC) que proporciona altas velocidades con latencia ultra baja y Acceso a memoria directo y remoto (Remote Direct Memory Access, RDMA) entre todos los controladores de almacenamiento del clúster. Como utiliza las ventajas de RDMA, el sistema XtremIO es, en esencia, un espacio de memoria compartido único que abarca a todos los controladores de almacenamiento.

La capacidad lógica eficaz de un único X-Brick varía según el conjunto de datos que se esté almacenando.

• En el caso de información con un alto grado de deduplicación, lo que es típico en muchos ambientes virtualizados y clonados, como Virtual Desktop Integration (VDI), la capacidad útil eficaz es mucho mayor que la capacidad flash física disponible. Rutinariamente, se logran relaciones de deduplicación de 5:1 a 10:1 en dichos ambientes.

• Para los datos comprimibles, que son habituales en muchas bases de datos y de aplicaciones, las relaciones de compresión 2:1 se encuentran en el rango del 3:1.

• Los sistemas que se benefician de la compresión y la deduplicación de datos, como las infraestructuras de servidor virtual (VSI), comúnmente, logran una relación de 6:1.

Tabla de mapeo

Cada controlador de almacenamiento mantiene una tabla que administra la ubicación de cada bloque de datos en el disco SSD, tal como se indica en la Tabla 3 (en la página 16).

Esta tabla tiene dos partes:

• En la primera parte de la tabla se mapea la LBA del host a su huella de contenido.

(16)

Cómo funciona el flujo de I/O para operaciones de escritura

En una operación de escritura típica, el flujo de datos entrante llega a cualquiera de los controladores de almacenamiento activo-activo y se divide en bloques de datos. Por cada bloque de datos, el arreglo crea una huella digital de los datos con un identificador único.

El arreglo mantiene una tabla con estas huellas digitales (tal como se indica en la Tabla 3) para determinar si ya hay operaciones de escritura entrantes en el arreglo. Las huellas también se usan para determinar la ubicación de almacenamiento de los datos. El mapeo de LBA a las huellas del contenido se graba en los metadatos, dentro de la memoria del controlador de

almacenamiento.

Tabla 3. Ejemplo de tabla de mapeo

Compensación

de LBA Huella digital

Compensación de SSD/ Ubicación física Dirección 0 20147A8 40 Dirección 1 AB45CB7 8 Dirección 2 F3AFBA3 88 Dirección 3 963FE7B 24 Dirección 4 0325F7A 64 Dirección 5 134F871 128 Dirección 6 CA38C90 516

Dirección 7 963FE7B – Deduplicada –

Nota:

En la Tabla 3, los colores de los bloques de datos corresponden a su contenido. Los contenidos únicos están representados por diferentes colores, mientras que los contenidos deduplicados están representados con el mismo color (rojo).

Datos Datos Datos Datos Datos Datos Datos Datos Datos Datos Datos Datos Datos Datos Datos

(17)

El sistema comprueba si la huella y el bloque de datos correspondiente ya se han almacenado con anterioridad.

Si la huella es nueva, el sistema:

• Comprime los datos.

• Elige una ubicación del arreglo para colocar el bloque (basándose en la huella, y no en la LBA).

• Crea el mapeo de “huella a ubicación física”.

• Aumenta en uno el conteo de referencia para la huella.

• Ejecuta la operación de escritura.

En el caso de una operación de escritura “duplicada”, el sistema graba el mapeo de la LBA nueva a la huella e incrementa el conteo de referencia de esta huella específica. Como los datos ya están en el arreglo, no necesario cambiar el mapeo de la huella a la ubicación física ni escribir nada en el disco SSD. Todos los cambios en los metadatos ocurren en la memoria. Por ende, la operación de escritura deduplicada se realiza más rápidamente que la primera escritura del bloque único. Esta es una de las ventajas exclusivas de la reducción de datos en línea de XtremIO, donde la deduplicación realmente mejora el rendimiento. La operación de escritura real del bloque de datos en el disco SSD se realiza de manera asíncrona. En el momento de la escritura de aplicaciones, el sistema coloca el bloque de datos en el búfer de escritura de la memoria (que está protegido por replicación a distintos controladores de almacenamiento a través de RDMA) y devuelve inmediatamente un acuse de recibo al host. Cuando se reúnen suficientes bloques en el búfer, el sistema los escribe en las fracciones de XDP (XtremIO Data Protection) de los discos SSD. Este proceso se realiza de la manera más eficiente y se explica detalladamente en el Informe técnico de XtremIO Data Protection.

(18)

Cuando se emite una operación de I/O de escritura al arreglo:

1. El sistema analiza los datos entrantes y los segmenta en bloques de datos, tal como se indica en la Figura 4.

Figura 4. Datos divididos en bloques fijos

2. Por cada bloque de datos, el arreglo asigna una huella digital única a los datos, tal como se indica en la Figura 5.

Figura 5. Huella asignada a cada bloque

El arreglo mantiene una tabla con estas huellas para determinar si ya hay operaciones de escritura subsiguientes en el arreglo, tal como se indica en la Tabla 3 (en la página 16).

 Si un bloque de datos no existe en el sistema, el controlador de almacenamiento de procesamiento informa su intención de escribirlo a otros controladores de almacenamiento, utilizando la huella para determinar la ubicación de los datos.

 Si un bloque de datos ya existe en el sistema, no se lo escribe, tal como se indica en la Figura 6.

(19)

3. El arreglo incrementa el conteo de referencia para cada bloque de datos. 4. Se utiliza un mapeo distribuido coherente para enrutar cada bloque

al controlador de almacenamiento que es responsable del espacio de direcciones de la huella relevante.

Los mapeos distribuidos coherentemente se basan en la huella digital del contenido. El proceso matemático que calcula las huellas genera una distribución uniforme de los valores de las huellas y el mapeo de huellas se distribuye uniformemente entre todos los controladores de almacenamiento en el clúster, tal como se indica en la Figura 7.

Figura 7. Distribución de datos en todo el clúster

Nota:

La transferencia de datos en el clúster se realiza a través de la red InfiniBand de alta velocidad y baja latencia utilizando RDMA, tal como se indica en la Figura 7.

(20)

6. Gracias a la distribución uniforme de la función de las huellas, cada

controlador de almacenamiento del clúster recibe una parte equitativa de los bloques de datos. Cuando llegan más bloques, llenan las fracciones, tal como se indica en la Figura 8.

Figura 8. Bloques adicionales en fracciones llenas

7. El sistema comprime los bloques de datos para reducir el tamaño de cada bloque de datos.

8. Una vez que un controlador de almacenamiento tiene suficientes bloques de datos como para llenar la fracción más vacía del arreglo (o una fracción completa si está disponible), los transfiere de la caché al disco SSD, como se indica en la Figura 9.

(21)

Cómo funciona el flujo de I/O para operaciones de lectura En una operación de lectura de bloques de datos, el sistema efectúa una búsqueda de la dirección lógica en el mapeo de LBA a huellas. Una vez que encuentra la huella, busca la huella en el mapeo físico y recupera el bloque de datos de la ubicación física específica. Como los datos se escriben uniformemente en todo el clúster y los discos SSD, la carga de lectura también se comparte en partes iguales.

XtremIO tiene un caché de lectura basado en memoria en cada controlador de almacenamiento.

• En los arreglos tradicionales, la caché de lectura está organizada por direcciones lógicas. Los bloques que se encuentran en las direcciones con más probabilidades de ser leídas se colocan en la caché de lectura.

• En el arreglo XtremIO, la caché de lectura está organizada por huella de contenido. Los bloques cuyo contenido (representado por sus identificadores de huella) tenga más probabilidades de ser leído se colocan en la caché. Esto hace que el caché de lectura de XtremIO tenga capacidades de detección de deduplicación, lo que quiere decir que su caché de lectura relativamente pequeña parece mucho mayor que las cachés tradicionales del mismo tamaño.

Si el tamaño del bloque seleccionado supera el tamaño de bloque de datos, XtremIO efectúa operaciones de lectura de datos en paralelo en todo el clúster y las ensambla en bloques más grandes, antes de devolverlos a la aplicación. Se descomprime un bloque de datos comprimidos antes de entregarlo.

Cuando se emite una operación de I/O de lectura al arreglo:

1. El sistema analiza la solicitud entrante para determinar la LBA correspondiente a cada bloque de datos y crea un búfer para retener los datos.

2. Los siguientes procesos ocurren en paralelo:

 Para cada bloque de datos, el arreglo encuentra la huella almacenada. La huella determina la ubicación del bloque de datos en un X-Brick. En el caso de operaciones de I/O más grandes (p. ej.: 256 K), participan varios X-Brick para recuperar cada bloque de datos.

 El sistema transmite los datos de lectura solicitados al controlador de almacenamiento de procesamiento, a través de RDMA, por InfiniBand. 3. El sistema envía el búfer de datos totalmente lleno de regreso al host.

(22)

Características del sistema

El arreglo de almacenamiento de XtremIO ofrece una amplia variedad de

características que están siempre disponibles y no requieren licencias especiales. Entre las características del sistema, se incluyen las siguientes:

• Las características de servicios de datos: se aplican en secuencia (tal como se enumera debajo) para todas las escrituras entrantes:

 Aprovisionamiento delgado

 Reducción de datos en línea:

− Deduplicación de datos en línea

− Compresión de datos en línea

 XtremIO Data Protection (XDP)

 Cifrado de datos en reposo

 Snapshots

• Características de todo el sistema:

 Rendimiento escalable

 Distribución uniforme de datos

 Alta disponibilidad

• Otras características:

 Actualización y expansión

(23)

Aprovisionamiento delgado

En forma nativa el aprovisionamiento del almacenamiento XtremIO es delgado; para ello, se utiliza un tamaño de bloque interno pequeño. De esta manera, se proporciona una resolución de granularidad fina para el espacio de aprovisionamiento delgado.

El aprovisionamiento de todos los volúmenes del sistema es delgado, lo que quiere decir que el sistema consume capacidad solo cuando realmente es necesario. XtremIO determina dónde se deben ubicar los bloques de datos

únicos en el interior del clúster después de calcular sus identificadores de huella. Por ende, nunca reserva o hace un aprovisionamiento completo del espacio de almacenamiento antes de la escritura.

Como resultado de la arquitectura con detección de contenido de XtremIO, los bloques se pueden almacenar en cualquier ubicación del sistema (y solo se utilizan metadatos para hacer referencia a sus ubicaciones) y los datos se escriben solo cuando se reciben bloques únicos.

En consecuencia, a diferencia del aprovisionamiento delgado con muchas arquitecturas orientadas a discos, con XtremIO no hay movilidad de espacios ni recolección de residuos. Es más, el problema de la fragmentación de volúmenes con el transcurso del tiempo no se aplica a XtremIO (porque los bloques están diseminados en todo el arreglo de acceso aleatorio) y no se necesitan utilidades de desfragmentación.

El aprovisionamiento delgado inherente de XtremIO también posibilita un

rendimiento coherente y administración de datos durante todo el ciclo de vida de los volúmenes, independientemente de la utilización de la capacidad del sistema o de los patrones de escritura en el sistema.

Reducción de datos en línea

La reducción de los datos en línea única de XtremIO se logra utilizando las siguientes técnicas:

• Deduplicación de datos en línea

• Compresión de datos en línea

Deduplicación de datos en línea

La deduplicación de datos en línea consiste en eliminar las redundancias de los datos antes de escribirlos en los medios flash.

(24)

Con XtremIO, los bloques de datos se almacenan de acuerdo con su contenido y no por su dirección de nivel de usuario en los volúmenes. Esto garantiza un balanceo de cargas perfecto entre todos los dispositivos del sistema en términos de capacidad y rendimiento. Cada vez que se modifica un bloque de datos, se lo puede colocar en cualquier conjunto de discos SSD del sistema, o no escribirlo en absoluto si el sistema ya conoce el contenido del sistema.

El sistema distribuye inherentemente los datos en todo el arreglo, utilizando todos los discos SSD uniformemente y nivelando el desgaste a la perfección. Incluso si una computadora host escribe reiteradamente la misma dirección lógica de bloque (Logical Block Address, LBA), cada operación de escritura es dirigida a una ubicación diferente del arreglo XtremIO. Si el host escribe los mismos datos una y otra vez, se los deduplicará para que no se registren operaciones de escritura adicionales en el medio flash.

XtremIO utiliza un caché deduplicado a nivel global con detección de contenido para implementar una deduplicación de datos de alta eficiencia. La arquitectura de almacenamiento con detección de contenido exclusiva del sistema permite lograr un tamaño de caché sustancialmente mayor con una pequeña asignación de DRAM. En consecuencia, XtremIO es la solución ideal para patrones difíciles de acceso a datos, como las “tormentas de inicio de sesión” que son comunes en ambientes de escritorios virtuales (VDI).

El sistema también usa las huellas de contenido, no solo para la deduplicación de datos en línea, sino también para la distribución uniforme de los bloques de datos en todo el arreglo. Esto proporciona un balanceo de cargas inherente para el rendimiento y mejora la eficiencia de los niveles de desgaste de los componentes flash, porque nunca es necesario volver a escribir o reequilibrar los datos.

Ejecutar este proceso en línea, y globalmente en todo el arreglo, se traduce en menos cantidad de operaciones de escritura en los discos SSD. De esta manera, aumenta la resistencia de los discos SSD y se elimina la degradación del rendimiento asociada con la deduplicación de posprocesamiento.

La deduplicación de datos en línea de XtremIO y su proceso inteligente para el almacenamiento de datos garantizan lo siguiente:

• Uso equilibrado de los recursos del sistema, lo que maximiza el rendimiento del sistema

• Cantidad mínima de operaciones flash, lo que maximiza la durabilidad de los componentes flash

• Distribución equitativa de datos, lo que equilibra el desgaste de los medios flash en todo el sistema

• Que no haya recolección de elementos no utilizados a nivel del sistema (en oposición a la reducción de datos de posprocesamiento)

• Uso inteligente de la capacidad de los discos SSD, lo que minimiza los costos de almacenamiento

(25)

Compresión de datos en línea

La compresión de datos en línea consiste en comprimir los datos ya deduplicados antes de escribirlos en los medios flash.

XtremIO comprime automáticamente los datos después de que se hayan

eliminado todas las deduplicaciones. Esto garantiza que la compresión se realice solo para bloques de datos únicos. La compresión de datos se efectúa en tiempo real y no como una operación de posprocesamiento.

La naturaleza del conjunto de datos determina la tasa general de la compresión. El bloque de datos comprimido se almacena en el arreglo.

La compresión reduce la cantidad total de datos físicos que se deben escribir en los discos SSD. Esta reducción minimiza la amplificación de escritura (WA) de los discos SSD, lo que mejora la durabilidad del arreglo flash.

La compresión de datos en línea de XtremIO brinda los siguientes beneficios:

• La compresión de datos siempre se hace en línea y nunca se ejecuta como una actividad de posprocesamiento. Por lo tanto, los datos siempre se escriben solo una vez.

• La compresión admite una variedad de conjuntos de datos (p. ej.: datos de bases de datos, VDI, ambientes VSI, etc.).

• La compresión de datos complementa la deduplicación de datos en muchos casos. Por ejemplo, en un ambiente VDI la deduplicación reduce considerablemente la capacidad necesaria para escritorios clonados. Por lo tanto, la compresión disminuye los datos de usuarios específicos. Como resultado, se puede administrar un mayor número de escritorios VDI mediante un solo X-Brick.

• La compresión ahorra capacidad de almacenamiento porque almacena bloques de datos de la manera más eficiente posible.

• Cuando se combina con las capacidades sólidas de snapshot, XtremIO admite fácilmente petabytes de datos de aplicación funcionales.

(26)

Reducción total de datos

La deduplicación de datos y la compresión de datos de XtremIO se

complementan. La deduplicación de datos reduce los datos físicos porque elimina bloques de datos redundantes. La compresión de datos reduce aún más el espacio físico de los datos, ya que elimina la redundancia de datos dentro del nivel binario de cada bloque de datos.

La Figura 10 muestra los beneficios de los procesos de deduplicación de datos y compresión de datos combinados, lo que genera una reducción de datos completa.

Figura 10. Deduplicación y compresión de datos combinadas

En el ejemplo anterior, los doce bloques de datos escritos por el host se

deduplican primero a cuatro bloques de datos, lo que demuestra una relación de deduplicación de datos de 3:1. Después del proceso de compresión de datos, se comprimen los cuatro bloques de datos, con una relación de 2:1, lo que da como resultado una relación de reducción total de datos de 6:1.

(27)

XtremIO Data Protection (XDP)

El sistema de almacenamiento XtremIO proporciona protección de datos con paridad doble con “capacidad de autorreparación” y un nivel de eficiencia muy alto.

El sistema requiere muy poca sobrecarga de capacidad para la protección de datos o el espacio para metadatos. No requiere unidades de respuesto exclusivas para las reconstrucciones. En cambio, utiliza el concepto de “espacio caliente”, en el que se puede utilizar cualquier espacio libre del arreglo para reconstrucciones de unidades que han fallado. El sistema siempre reserva suficiente capacidad distribuida para efectuar una reconstrucción individual. En el caso poco frecuente de falla de disco SSD doble, incluso con una capacidad total de datos, el arreglo utiliza el espacio libre para reconstruir los datos de una de las unidades. Reconstruye la segunda unidad una vez que se reemplaza una de las unidades fallidas. Si no hay suficiente espacio libre para reconstruir los datos de las dos unidades, se realiza en forma simultánea.

XtremIO mantiene su rendimiento, incluso con un alto grado de utilización de la capacidad, con una sobrecarga de capacidad mínima. El sistema no requiere esquemas de espejeado (ni su sobrecarga de capacidad del 100 % asociada). XtremIO requiere mucha menos capacidad reservada para protección de datos, almacenamiento de metadatos, snapshots, unidades de respuesto y rendimiento, lo que deja mucho más espacio para datos de usuarios. De esta manera, se reduce el costo por GB útil.

El sistema de almacenamiento XtremIO proporciona lo siguiente:

• Protección de datos N+2

• Sobrecarga de capacidad para protección de datos increíblemente baja: 8 %

• Rendimiento superior al de cualquier algoritmo RAID (RAID 1, el algoritmo RAID más eficiente para operaciones de escritura, requiere más del 60 % más de operaciones de escritura que XtremIO Data Protection).

• Mayor resistencia de flash que en cualquier algoritmo RAID, gracias a la menor cantidad de operaciones de escritura y a la distribución uniforme de los datos

• Reconstrucción automática en caso de falla en una unidad y reconstrucciones más rápidas que con algoritmos RAID tradicionales

• Mayor solidez con algoritmos adaptables que protegen por completo los datos entrantes, incluso cuando hay unidades fallidas en el sistema

(28)

Tabla 4. Comparación entre XtremIO Data Protection y los esquemas RAID

Algoritmo Rendimiento Protección de datos Sobrecarga de

capacidad Lecturas por actua-lización de fracciones Desv-entaja de la lectura con algoritmos tradi-cionales Escrituras por actual-ización de fracciones Desventaja de la escritura con algoritmos tradicionales

RAID 1 Alta 1 falla 50 % 0 – 2 (64 %) 1,6 veces

RAID 5 Media 1 falla 25 % (3+1) 2 (64 %) 1,6 veces 2 (64 %) 1,6 veces

RAID 6 Baja 2 fallas 20 % (8+2) 3 (146 %) 2,4 veces 3 (146 %) 2,4 veces

XDP de XtremIO 60 % mejor que RAID 1 2 fallas por X-Brick Ultra baja 8 % (23+2) 1.22 – 1.22 – Cómo funciona XDP

XtremIO Data Protection (XDP) está diseñado para aprovechar las ventajas de las propiedades específicas de los medios flash y la arquitectura de almacenamiento direccionable por contenido de XtremIO.

Ya que puede controlar dónde se almacenan los datos sin ninguna penalidad, este beneficio permite a XDP obtener altos niveles de protección y baja

sobrecarga de almacenamiento, pero con mejor rendimiento que RAID 1. Como beneficio adicional, XtremIO Data Protection también mejora significativamente la resistencia de los medios flash subyacentes en comparación con cualquier algoritmo RAID anterior, lo cual es un factor importante para un arreglo flash empresarial.

(29)

XDP utiliza una variación de paridad de filas y diagonales N+2, tal como se indica en la Figura 11, lo que proporciona protección contra dos errores simultáneos en un disco SSD. Con arreglos de 25 discos SSD, esto genera una sobrecarga de capacidad del 8 %.

Los arreglos tradicionales actualizan direcciones lógicas de bloques (LBA) en la misma ubicación física del disco (lo que causa la elevada sobrecarga de I/O de una actualización de fracción). XtremIO siempre ubica los datos en la fracción más vacía. Al escribir datos en la fracción más vacía, se amortiza de manera eficaz la sobrecarga de operaciones de I/O de lectura y escritura por cada actualización de fracción y eso solo es viable en la arquitectura basada íntegramente en

tecnología flash y en contenido de XtremIO. Este proceso garantiza que XtremIO tenga un rendimiento uniforme a medida que se llena el arreglo y cuando esté en servicio por períodos prolongados en un momento en el que la sobrescritura y las actualizaciones de fracciones parciales se convierten en la norma.

XtremIO también ofrece un proceso de reconstrucción superior. Cuando un arreglo RAID 6 tradicional enfrenta la falla de un disco, utiliza métodos RAID 5 para reconstruirlo leyendo cada fracción y calculando la celda faltante a partir de las otras celdas de la fracción. En oposición, XtremIO utiliza paridad P y Q para reconstruir la información faltante y usa un algoritmo elaborado que lee solo la información necesaria para la reconstrucción de la siguiente celda.

Tabla 5. Comparación entre las lecturas XDP para reconstruir un disco con falla y las de diferentes esquemas RAID

Algoritmo Lee para reconstruir una fracción de disco fallida de ancho K

Desventaja de los algoritmos tradicionales XDP de XtremIO 3 K/4 – RAID 1 1 Ninguno RAID 5 K 33 % RAID 6 K 33 % Nota:

Para obtener información más detallada sobre XDP, consulte el Informe técnico de XtremIO Data Protection.

(30)

Cifrado de datos en reposo

El cifrado de datos inactivos (DARE) ofrece una solución para proteger los datos importantes aun cuando los medios se extraen del arreglo. Los arreglos XtremIO utilizan una técnica de cifrado en línea de alto rendimiento para garantizar que todos los datos almacenados en el arreglo se vuelvan inutilizables si se extraen los medios de discos SSD. Esto evita el acceso no autorizado en caso de robo o pérdida durante el transporte, y permite devolver y reemplazar los componentes fallidos que contienen datos confidenciales.

DARE es un requisito obligatorio que se establece en varios sectores, como servicios de salud (donde los registros de pacientes deben mantenerse estrictamente guardados), sistema bancario (donde es extremadamente importante la seguridad de los datos financieros) y en muchas instituciones del Gobierno.

En el centro de la solución DARE de XtremIO, se encuentra el uso de tecnología de unidades de autocifrado (SED). Una SED tiene hardware dedicado, que se utiliza para cifrar y descifrar datos mientras se escribe o lee desde el disco SSD. Al descargar la tarea de cifrado al disco SSD permite a XtremIO mantener la misma arquitectura de software siempre que el cifrado se active o desactive en el arreglo. Todas las características y los servicios de XtremIO, que incluyen la reducción de datos en línea, XtremIO Data Protection (XDP), el aprovisionamiento delgado y los snapshots están disponibles en un clúster cifrado (y también en clústeres no cifrados).

Durante el proceso de fabricación de la unidad, se crea una única clave de

cifrado de datos (DEK). La clave no deja la unidad en ningún momento. Es posible borrar la DEK o modificarla, pero esto hace que los datos de la unidad se vuelvan ilegibles, y no existe la opción de recuperar la DEK. Para garantizar que solo los hosts autorizados tengan acceso a los datos en la SED, la DEK está protegida por una clave de autenticación (AK). Sin esta clave, la DEK se cifra y no se puede utilizar para cifrar ni descifrar datos.

(31)

Las SED se encuentran desbloqueadas de fábrica, lo que significa que cualquier host puede acceder a los datos de la unidad. En las unidades desbloqueadas, los datos siempre están cifrados, pero la DEK siempre está descifrada y no se requiere autenticación.

El bloqueo de la unidad se logra cambiando la AK predeterminada de la unidad a una nueva AK privada y cambiando la configuración de SED para que permanezca bloqueada después de reiniciar el sistema o de una falla de energía (como cuando un SSD se extrae del arreglo). Cuando un disco SSD se extrae del arreglo, se apaga y requerirá la AK después de iniciar el sistema. Sin la AK correcta, los datos en el SSD no se pueden leer y están seguros.

Para acceder a los datos, los hosts deben proporcionar la AK correcta, un término que a veces se conoce como “adquirir” o “asumir la propiedad” de la unidad, lo que libera la DEK y permite el acceso a los datos.

La adquisición de la unidad se logra únicamente tras el inicio el sistema, y la SED permanece desbloqueada mientras el arreglo está encendido. Dado que los datos pasan por el hardware de cifrado y descifrado en todos los casos, el bloqueo de una SED no afecta el rendimiento.

Figura 13. Modo de operación de SED

El arreglo XtremIO basado íntegramente en tecnología flash cifra los datos en los siguientes discos SSD:

(32)

Snapshots

Los snapshots se crean capturando el estado de los datos en los volúmenes en un momento específico y permitiendo que los usuarios accedan a esos datos cuando sea necesario, incluso cuando haya cambiado el volumen de origen. Los snapshots de XtremIO tienen una capacidad de escritura propia, pero se pueden crear en modo de solo lectura para mantener su inmutabilidad. También se pueden tomar snapshots desde el origen o desde cualquier snapshot del volumen de origen.

Los snapshots se pueden utilizar en diversos casos de uso, por ejemplo:

• Protección contra corrupción lógica

XtremIO permite crear snapshots frecuentemente (basados en los intervalos de RPO deseados) y utilizarlos para recuperación ante daños en los datos lógicos. Los snapshots se pueden conservar en el sistema todo el tiempo que sea necesario. De registrarse una instancia de corrupción lógica de datos, se pueden usar los snapshots de un estado anterior de la aplicación (antes de la corrupción lógica de los datos) para recuperar la aplicación a un punto conocido en el tiempo.

• Respaldo

Se pueden crear snapshots para presentarlos ante un servidor/agente de respaldo. Esto se puede utiliza para descargar el proceso de respaldo el servidor de producción.

• Pruebas y desarrollo

El sistema permite al usuario crear snapshots de los datos de producción, crear varias copias (de uso eficiente del espacio y alto rendimiento) del sistema de producción y presentarlos con fines de pruebas y desarrollo.

• Clones

Con XtremIO, se pueden alcanzar capacidades propias de los clones utilizando snapshots escribibles persistentes. Se las puede usar para presentar un clon del volumen de producción a varios servidores. El rendimiento del clon será idéntico al del volumen de producción.

• Procesamiento offline

Se pueden usar snapshots como un medio para descargar el procesamiento de los datos del servidor de producción. Por ejemplo, si se tiene que ejecutar un proceso intensivo sobre los datos (que puede afectar el rendimiento del servidor de producción), es posible usar snapshots para crear una copia reciente de los datos de producción y montarla sobre otro servidor. Luego, se puede ejecutar el proceso (en el otro servidor) sin consumir los recursos del servidor de producción.

(33)

XtremIO ofrece las siguientes herramientas eficientes para la administración de snapshots y la optimización de su capacidad de uso:

• Grupos de consistencia

Los grupos de consistencia (CG) se utilizan para crear una imagen consistente de un conjunto de volúmenes generalmente utilizados por una sola aplicación, como la base de datos. Con los CG de XtremIO, puede crear un snapshot de todos los volúmenes en un grupo con un solo comando. Esto garantiza que todos los volúmenes se creen al mismo tiempo. También se pueden aplicar muchas operaciones que se aplican a un solo volumen en un grupo de consistencia.

• Conjunto de snapshots

Un conjunto de snapshots es un grupo de snapshots que se tomaron con un solo comando y representa un momento específico de un grupo. Un conjunto de snapshots puede ser el resultado de un snapshot tomado en un grupo de consistencia, en otro conjunto de snapshots o en un conjunto de volúmenes que se seleccionaron manualmente. Un conjunto de snapshots guarda una relación con el antepasado desde el cual se creó.

• Snapshots de solo lectura

De manera predeterminada, los snapshots de XtremIO son volúmenes normales y se crean como snapshots con capacidad de escritura. A fin de satisfacer la necesidad de copias inmutables y respaldo local, hay una opción para crear un snapshot de solo lectura. Un snapshot de solo lectura se puede mapear a un host externo, como una aplicación de respaldo, pero no es posible escribir en él.

• Calendarizador

El calendarizador se puede utilizar para casos de uso de protección local. Se puede aplicar a un volumen, a un grupo de consistencia o a un conjunto de snapshots. Cada calendarizador puede definirse para que se ejecute en un intervalo de segundos, minutos u horas. Como alternativa, se puede configurar para que se ejecute a una hora específica de un día o una semana. Cada calendarizador tiene una política de retención, según la cantidad de copias que al cliente le gustaría tener o según la antigüedad del snapshot más antiguo.

• Restauración

Es posible restaurar un volumen de producción o un grupo de consistencia de uno de los conjuntos de snapshots descendientes con un solo comando. La parte SCSI del volumen de producción se transferirá a un snapshot del

(34)

• Actualizar

El comando de actualización es una herramienta poderosa para ambientes de prueba y desarrollo y para el caso de uso de procesamiento offline. Con un solo comando, se toma un snapshot del volumen de producción o del grupo de consistencia y la parte SCSI del volumen, que se asignó a la aplicación de prueba y desarrollo, se transfiere a él. Esto permite que la aplicación de prueba y desarrollo funcione en los datos actuales sin necesidad de copiar datos o reexaminar.

La tecnología de snapshots de XtremIO se implementa aprovechando las

capacidades de detección de contenido del sistema (reducción de datos en línea), optimizadas para medios de discos SSD, con una estructura de árbol de

metadatos exclusiva que direcciona I/O a la hora de registro correcta de los datos. Esto permite un proceso eficiente de toma de snapshots que puede servir de base para un alto rendimiento y, a la vez, maximizar la durabilidad de los medios, tanto en términos de capacidad para crear varios snapshots como en la cantidad de operaciones de I/O que puede admitir un snapshot.

Al crear un snapshot, el sistema genera un puntero a los metadatos antepasados (de los datos reales del sistema). Por ende, crear un snapshot es una operación muy rápida que no afecta el sistema ni consume ninguna capacidad. Un snapshot solo consume capacidad si un cambio requiere escribir un bloque nuevo.

Cuando se crea un snapshot, sus metadatos son idénticos a los del volumen antepasado. Cuando se escribe un bloque nuevo en el antepasado, el sistema actualizar los metadatos del volumen antepasado para reflejar la nueva operación de escritura (y almacena el bloque en el sistema para ello, utiliza el proceso de flujo de escritura estándar). Siempre que este bloque esté compartido entre el snapshot y el volumen antepasado, no será eliminado del sistema después de una operación de escritura. Esto se aplica tanto a una operación de escritura en una ubicación nueva del volumen (escritura en una LBA no usada) como a una operación de rescritura en una ubicación ya escrita.

El sistema administra los metadatos del snapshot y del antepasado; para ello, usa una estructura de árbol. El snapshot y los volúmenes antepasados se representan como hojas en esta estructura, tal como se indica en la Figura 14.

(35)

Figura 14. Estructura de árbol de metadatos

Los metadatos se comparten entre todos los bloques del snapshot que no hayan sufrido cambios (con respecto al antepasado original del snapshot). El snapshot mantiene metadatos únicos solo para una LBA cuyo bloque de datos sea diferente al de su antepasado. Esto economiza la administración de metadatos.

Cuando se crea un snapshot nueva, el sistema siempre crea dos hojas (dos entidades descendentes) a partir de la entidad sobre la que se hace el snapshot. Una de las hojas representa al snapshot y la otra se convierte en la entidad de origen. La entidad sobre la que se hace el snapshot ya no se usará directamente sino que se conservará en el sistema solo con fines de administración de metadatos.

(36)
(37)

La Figura 15 muestra un volumen de 16 bloques en el sistema de XtremIO. La primera fila (señalada como A(t0)/S(t0)) muestra el volumen en el momento de tomar el primer snapshot (t0). En t0, el antepasado (A(t0)) y el snapshot (S(t0)) tienen los mismos datos y metadatos, porque S(t0) es el snapshot de solo lectura de A(t0)

(contiene los mismos datos que su antepasado). Nota:

De los 16 bloques, solo se usan 8. Los bloques 0 y 4 consumen solo un bloque de capacidad física como resultado de la deduplicación. Los bloques en blanco con punteado representan los bloques con aprovisionamiento delgado y no consumen capacidad física.

En la Figura 15, antes de crear el snapshot en S(t1), se escriben dos bloques nuevos en P:

• H8 reemplaza a H2.

• H2 se escribe en el bloque D, pero no consume más capacidad física porque es idéntico a H2, almacenado en el bloque 3 de A(t0).

S(t1) es un snapshot de lectura/escritura. Contiene dos bloques adicionales (2 y 3) que son diferentes de su antepasado.

A diferencia de los snapshots tradicionales (que necesitan espacios reservados para bloques con cambios y una copia entera de los metadatos para cada instantánea), XtremIO no precisa ningún espacio reservado para instantáneas y nunca tiene expansión de metadatos.

En cualquier momento, un snapshot XtremIO consume solo los metadatos exclusivos, que se utilizan solo para los bloques que no se comparten con las entidades del antepasado del snapshot. Esto permite que el sistema mantenga con eficiencia grandes cantidades de snapshots con muy poca sobrecarga de almacenamiento, que es dinámica y proporcional a la cantidad de cambios en las entidades.

Por ejemplo, en el punto t2, los bloques 0, 3, 4, 6, 8, A, B, D y F se comparten con las entidades del antepasado. Solo el bloque 5 es exclusivo de esta snapshot. Por ende, XtremIO consume solo una unidad de metadatos. Los bloques restantes se comparten con los antepasados y usan la misma estructura de datos que los antepasados para compilar los datos y la estructura correctos del volumen. El sistema admite la creación de un snapshot en un conjunto de volúmenes. Todos los snapshots creados a partir de los volúmenes del conjunto son uniformes transversalmente y contienen exactamente el mismo momento específico para todos los volúmenes. Esto se puede crear manualmente

(38)

Las operaciones de eliminación de snapshots son ligeras y proporcionales solo en cuanto a la cantidad de bloques con cambios entre las entidades. El sistema usa sus capacidades de detección de contenido para manejar las operaciones de eliminación de snapshots. Cada bloque de datos tiene un contador que indica la cantidad de instancias de ese bloque en el sistema. Cuando se elimina un bloque, el valor del contador se reduce en uno. Cualquier bloque con un valor de contador de cero (lo que quiere decir que no hay ninguna dirección lógica de bloque [LBA] en todos los volúmenes o los snapshots del sistema que haga referencia a este bloque) es sobrescrito por XDP cuando ingresan datos únicos nuevos al sistema. Eliminar un nodo secundario sin descendientes no requiere ningún procesamiento adicional por parte del sistema.

Eliminar un snapshot en el medio del árbol desencadena un proceso asíncrono. Este proceso fusiona los metadatos de los nodos secundarios de la entidad eliminada con los de sus nodos de dos jerarquías superiores (abuelos). Con esto se garantiza que no se fragmente la estructura de árbol.

Con XtremIO, cada bloque que debe ser eliminado se marca inmediatamente como liberado. En consecuencia, no hay recolección de elementos no utilizados y el sistema no tiene que ejecutar un proceso de escaneo para localizar y eliminar los bloques huérfanos. Es más, con XtremIO, la eliminación de snapshots no tiene ningún efecto sobre el rendimiento del sistema ni la durabilidad de los medios de discos SSD.

La implementación de snapshots está totalmente dirigida por los metadatos y utiliza la reducción de datos en línea del arreglo para garantizar que nunca se copien los datos dentro del arreglo. De esta manera, se pueden mantener muchos snapshots.

Snapshots de XtremIO:

• No requieren espacio reservado.

• Permiten la creación de copias inmutables y/o clones escribibles del volumen de origen.

• Se crean al instante.

• Ejercen un efecto ínfimo sobre el volumen de origen y el snapshot en sí.

Nota:

Para obtener información más detallada sobre los snapshots, consulte el Informe técnico de XtremIO Snapshots.

(39)

Rendimiento escalable

XtremIO está diseñado para lograr un escalamiento horizontal a fin de poder satisfacer las necesidades de capacidad y rendimiento del futuro; no solo para aplicaciones nuevas, sino también para las ya implementadas. La arquitectura de XtremIO permite aumentar el rendimiento y la capacidad agregando componentes básicos (X-Brick) y, a la vez, mantener un único punto de administración y

equilibrar recursos en todo el sistema.

El escalamiento horizontal es una parte intrínseca de la arquitectura de XtremIO y se puede ejecutar sin una actualización del hardware existente ni transferencias de datos prolongadas.

Cuando se requiere más rendimiento o capacidad, el Sistema de almacenamiento XtremIO se puede escalar horizontalmente añadiendo X-Brick adicionales. Se pueden unir varios X-Brick a través de una red InfiniBand redundante, de alta disponibilidad y de latencia ultra baja.

Cuando el sistema se expande, los recursos permanecen equilibrados, y los datos del arreglo se distribuyen entre todos los X-Brick para mantener un rendimiento uniforme y niveles de desgaste flash equivalentes.

La expansión del sistema se efectúa sin necesidad de ningún paso de configuración ni de movimiento manual de volúmenes. XtremIO utiliza un

algoritmo de huellas coherente que minimiza los remapeos. Un X-Brick nuevo se agrega al esquema interno de balanceo de cargas y solo se transfieren los datos existentes relevantes al DAE nuevo.

La capacidad de almacenamiento y el rendimiento escalan linealmente, lo que garantiza que dos X-Brick duplican la capacidad de IOPS, cuatro X-Brick cuadruplican la capacidad de IOPS, seis X-Brick sextuplican la capacidad de IOPS y ocho X-Brick octuplican la capacidad de IOPS de la configuración con un solo X-Brick. Sin embargo, la latencia sigue siendo baja de manera coherente (menos de 1 ms) a medida que el sistema escala horizontalmente, tal como se indica en la Figura 16.

(40)

Figura 16. Escalabilidad lineal del rendimiento con latencia baja de manera coherente

Como XtremIO está desarrollado especialmente para la escalabilidad, su software no tiene un límite inherente con respecto al tamaño del clúster.* La arquitectura

del sistema también se ocupa de la latencia del modo más eficaz. El diseño del software es modular. Cada uno de los controladores de almacenamiento ejecuta una combinación de diferentes módulos y comparte la carga total. Estos módulos de software distribuidos (en distintos controladores de almacenamiento)

controlan cada operación de I/O individual, transversalmente al clúster. XtremIO se ocupa de cada solicitud de I/O a través de dos módulos de software (2 saltos), independientemente de que se trate de un sistema con un solo X-Brick o un clúster con varios X-Brick. En consecuencia, la latencia es uniforme en todo momento, independientemente del tamaño del clúster.

Nota:

La latencia inferior al milisegundo está validada por resultados de pruebas reales, y se determina de acuerdo con la peor situación posible.†

*

El tamaño máximo del clúster se basa en las configuraciones probadas y compatibles actualmente.

(41)

InfiniBand es muy importante en la arquitectura de XtremIO. XtremIO utiliza dos tipos de comunicación mediante el backplane de InfiniBand: Llamadas a procedimientos remotos (Remote Procedure Calls, RPC) para mensajes de control y Acceso a memoria directo y remoto (Remote Direct Memory Access, RDMA) para mover bloques de datos.

InfiniBand no solo tiene uno de los mayores anchos de banda disponibles en cualquier tecnología de interconexión (40 Gb/S para una conexión QDR) sino que, además, ofrece la latencia más baja. El ciclo de ida y vuelta para una transferencia RDMA de un bloque de datos entre dos controladores de almacenamiento de XtremIO es de aproximadamente 7 microsegundos, lo que resulta ínfimo en comparación con la latencia de XtremIO de 500 microsegundos para cada I/O. Esto permite que el software seleccione cualquier recurso necesario del controlador de almacenamiento y los discos SSD, sin importar si son locales o remotos (a través de InfiniBand) para el controlador de almacenamiento que recibe el I/O.

Todas las características empresariales de XtremIO (incluidos la reducción de datos en línea, los snapshots, XDP, HA, etc.) han sido desarrolladas como parte de la arquitectura de escalamiento horizontal. Todos los datos y metadatos se distribuyen uniformemente en todo el clúster. Las operaciones de I/O se admiten en el arreglo a través de todos los puertos de host, usando zonas SAN y múltiples rutas. En consecuencia, como toda carga de trabajo se reparte uniformemente entre los controladores y los discos SSD, es virtualmente imposible que se registre un cuello de botella de rendimiento en algún punto del sistema. Con XtremIO:

• Los procesadores, la memoria RAM, los discos SSD y los puertos de conectividad escalan en conjunto, lo que brinda un rendimiento escalable con equilibrio perfecto.

• La comunicación interna se realiza a través de un fabric InfiniBand QDR (40 Gb/s) interno.

• El clúster es activo en N vías, lo que permite acceder a cualquier volumen desde cualquier puerto de host en cualquier controlador de almacenamiento de cualquier X-Brick con rendimiento equivalente.

• El acceso a datos de copia cero RDMA realiza operaciones de I/O en discos SSD locales o remotos equivalentes, independientemente del tamaño del clúster.

• Los datos se equilibran entre todos los X-Brick a medida que se expande el sistema.

(42)

Distribución uniforme de datos

Ante las aplicaciones externas, XtremIO aparece y se comporta como un arreglo de almacenamiento de bloques estándar. Sin embargo, debido a su arquitectura exclusiva, adopta un enfoque fundamentalmente diferente con respecto a la organización interna de los datos. En lugar de utilizar direcciones lógicas, XtremIO emplea el contenido de los bloques para decidir dónde ubicar los bloques de datos.

XtremIO utiliza bloques de datos internamente. En una operación de escritura, todo fragmento de datos que supere el tamaño del bloque nativo se divide en bloques estándares la primera vez que ingresa al arreglo. El sistema calcula una huella única para cada uno de los bloques de datos entrantes; para eso, utiliza un algoritmo matemático especial.

Este ID único se utiliza con dos propósitos principales:

• Determinar dónde se coloca el bloque de datos dentro del arreglo

• Reducción de datos en línea (ver la página 23)

Debido al modo en el que funciona el algoritmo de asignación de huellas, los números del identificador parecen completamente aleatorios y se distribuyen uniformemente en todo el rango posible de valores de huellas. Con esto se logra una distribución

uniforme de los bloques de datos en todo el clúster y en todos los discos SSD del arreglo. En otras palabras, con XtremIO no es necesario verificar los niveles de utilización del espacio en diferentes discos SSD ni administrar activamente las

operaciones de escritura de datos equivalente en cada disco SSD. XtremIO proporciona inherentemente una distribución uniforme de los datos porque ubica los bloques en función de sus ID únicos (ver la Figura 7 en la página 19).

XtremIO mantiene los siguientes metadatos:

• Mapeo de direcciones lógicas (LBA) a identificador de huellas

• Mapeo de identificadores de huellas a ubicaciones físicas

• Conteo de referencia en cada identificador de huella

El sistema también retiene todos los metadatos en la memoria de los

controladores de almacenamiento y los protege espejeando los registros de cambio entre diferente controladores de almacenamiento, a través de RDMA. También los guarda periódicamente en el disco SSD.

(43)

Retener todos los metadatos en la memoria permite que XtremIO pueda proporcionar los siguientes beneficios exclusivos:

• No se hacen búsquedas en los discos SSD

Al evitarse las búsquedas en los discos SSD, hay más operaciones de I/O disponibles para las operaciones de los hosts.

• Snapshots instantáneos

Las operaciones de snapshots son instantáneas porque el proceso de tomar una instantánea se realiza íntegramente en la memoria del arreglo (ver la página 32).

• Clonación instantánea de máquinas virtuales

La reducción de datos en línea y VAAI, combinados con los metadatos en memoria, permiten que XtremIO clone una máquina virtual solo a través de operaciones de memoria.

• Rendimiento uniforme

Las ubicaciones físicas de los datos, los volúmenes grandes y los amplios rangos de direcciones LBA no afectan en absoluto el rendimiento del sistema.

Alta disponibilidad

La prevención de la pérdida de datos y el mantenimiento del servicio en caso de fallas múltiples son algunas de las características principales de la arquitectura del arreglo de almacenamiento XtremIO basado íntegramente en tecnología flash. Desde la perspectiva del hardware, ningún componente es un punto único de falla. Cada controlador de almacenamiento, DAE y switch InfiniBand del sistema está equipado con dos fuentes de alimentación. El sistema también tiene dos unidades de batería de respaldo y dos puertos de red y datos (en cada uno de los controladores de almacenamiento). Los dos switches InfiniBand están interconectados y crean dos fabric de datos. Tanto la entrada de alimentación como las diferentes rutas de datos se monitorean constantemente y cualquier falla inicia un intento de recuperación o failover.

La arquitectura del software está construida de un modo similar. Cada dato individual que no se vincule al disco SSD queda retenido en varias ubicaciones, llamadas registros. Cada módulo de software tiene su propio registro, que no se almacena en el mismo controlador de almacenamiento, y que se puede usar para restaurar datos en caso de una falla inesperada. Los registros se consideran como un elemento muy importante y siempre se almacenan en controladores de almacenamiento con fuentes de alimentación que tienen batería de reserva. En

(44)

Además, debido al diseño de escalamiento horizontal y al algoritmo de

protección de datos XDP, cada X-Brick se configura previamente como un grupo de redundancia único. Con esto se elimina la necesidad de seleccionar, configurar y refinar grupos de redundancia.

La arquitectura activa-activa de XtremIO está diseñada para garantizar máximo rendimiento y latencia consistente. El sistema incluye un mecanismo de

autorreparación que intenta recuperarse de cualquier falla y reaunudar las operaciones. Se efectúa un intento de reiniciar un componente fallido antes de iniciar la acción de failover. El failover de los controladores de almacenamiento es el último recurso. En función de la naturaleza de la falla, el sistema intenta hacer un failover del componente de software relevante y, a la vez, mantener el funcionamiento de los otros componentes, minimizando así el impacto sobre el rendimiento. Se hace un failover de todo el controlador de almacenamiento solo si los intentos de recuperación no son exitosos o si el principal objetivo del sistema es la protección contra la pérdida de datos.

Cuando se recupera un componente que estuvo temporalmente fuera de servicio, se inicia un failback. Este proceso se ejecuta en el nivel de los componentes de software o de los controladores de almacenamiento. Un mecanismo anti rebote impide que el sistema haga un failback a un componente inestable o a uno que esté siendo sometido a tareas de mantenimiento.

Diseñado sobre la base de hardware genérico, XtremIO no depende solamente de la detección de errores basada en hardware e incluye un algoritmo propio y patentado que garantiza la detección, la corrección y la señalización de áreas dañadas. Cualquier situación que implique corrupción de datos y no sea manejada automáticamente por el hardware del disco SSD es controlada por el mecanismo XDP del arreglo o las múltiples copias que se conservan en los registros. La huella de contenido se utiliza como un mecanismo seguro y confiable para la integridad de los datos durante operaciones de lectura para evitar errores de corrupción de datos silenciosos. En caso de haber una discrepancia en la huella esperada, el arreglo recuperará los datos, ya sea volviéndolos a leer o reconstruyéndolos a partir del grupo de redundancia de XDP.

Figure

Actualización...

Related subjects :