título del informe técnico de emc

Anuncio
ASPECTOS DE SOFTWARE DE LA
PLATAFORMA DE ALMACENAMIENTO
FLASH A ESCALA DE RACK EMC DSSD D5
RESUMEN
Este informe técnico describe los aspectos de software de la plataforma
de almacenamiento flash a escala de rack EMC DSSD D5, incluidos el
dispositivo y el software de DSSD instalados en clientes conectados al
dispositivo. Incluye una descripción general de los conceptos y los detalles
de la integración de las aplicaciones, y ofrece información sobre el
rendimiento.
Febrero de 2016
INFORME TÉCNICO
Para obtener más información sobre cómo los productos, los servicios y las soluciones de EMC pueden ayudar a superar los
retos de TI y del negocio, póngase en contacto con su representante local o con un reseller autorizado, visite mexico.emc.com
(visite el sitio web de su país correspondiente) o explore y compare productos en EMC Store.
Copyright © 2016 EMC Corporation. Todos los derechos reservados.
EMC considera que la información de esta publicación es precisa en el momento de su publicación. La información está sujeta
a cambios sin previo aviso.
La información de 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 www.mexico.emc.com (visite el sitio web de su país correspondiente).
La marca denominativa NVMe es una marca comercial de NVM Express, Inc.
Número de referencia H14907
2
TABLA DE CONTENIDO
RESUMEN .............................................................................................. 4
PÚBLICO AL QUE VA DIRIGIDO ........................................................................ 5
DESCRIPCIÓN GENERAL ....................................................................... 5
DISPOSITIVO FLASH A ESCALA DE RACK EMC DSSD D5 ..................................... 5
SOLUCIÓN DEL PROBLEMA DE RENDIMIENTO DE I/O ......................................... 6
SOFTWARE DE EMC DSSD ............................................................................... 6
SOFTWARE DEL SISTEMA CLIENTE ....................................................... 8
CONTROLADOR DE BLOQUES Y SERVICIO DE DISPOSITIVO DE BLOQUES
DE EMC DSSD D5 .......................................................................................... 9
FLOOD DIRECT MEMORY API ......................................................................... 10
PLUG-INS DE EMC DSSD ............................................................................... 11
PLUG-IN EMC DSSD HADOOP ........................................................................ 11
SOFTWARE DEL DISPOSITIVO EMC DSSD D5 ...................................... 12
OBJETOS Y FRAGMENTOS ............................................................................. 12
ADMINISTRACIÓN DEL DISPOSITIVO A TRAVÉS DE LA INTERFAZ DE
LA LÍNEA DE COMANDOS Y LA APLICACIÓN WEB ............................................. 13
ADMINISTRACIÓN DEL OBJETO CLIENTE A TRAVÉS DE LA INTERFAZ
DE LA LÍNEA DE COMANDOS ......................................................................... 17
RESUMEN DEL SOFTWARE EMC DSSD ................................................. 18
GLOSARIO .......................................................................................... 18
3
RESUMEN
Las tendencias actuales en redes sociales, dispositivos móviles y el Internet de las cosas han creado una explosión de la
cantidad de usuarios y dispositivos, lo cual da como resultado una inundación de datos. Big data cambia los requisitos de cargas
de trabajos y exige arquitecturas orientadas al rendimiento. No solo se requiere capturar más datos a velocidades mucho más
rápidas, sino que las organizaciones también buscan obtener una ventaja competitiva mediante el análisis de datos en tiempo
real para capturar información exclusiva de su negocio.
Considere el análisis de seguridad de las redes como un ejemplo. Este tema ha generado muchos titulares recientemente debido
a las vulneraciones de seguridad que provocan la pérdida de los datos confidenciales de clientes. Para prevenir dichos eventos
o reconocer las vulneraciones de seguridad en cuestión de minutos, las organizaciones necesitan realizar las siguientes acciones:

Recopilar todos los datos de registro desde la red, que suelen ser terabytes por día

Transformar los datos del registro en un formato en que los analistas puedan realizar análisis y buscar anomalías

Habilitar varios tipos de análisis de los datos transformados para detectar amenazas de seguridad
Este tipo de procesamiento hace un uso intensivo de los datos y el rendimiento, y es común en varios sectores, desde el
financiero hasta el de procesamiento de alto rendimiento y la fabricación.
Finanzas
Defensa y
fabricación
Servicios de
salud
Investigación
Telecomunicaciones
Comercio
minorista
Figura 1: Sectores con cargas de trabajo de uso intensivo de datos y del rendimiento
Estas son las tres categorías principales de cargas de trabajo y tecnologías utilizadas en varios de estos flujos de trabajo:

Bases de datos y data warehouses de alto rendimiento: esta categoría incluye cualquier carga de trabajo crítica
de negocios que se ejecuta en bases de datos existentes (como Oracle y Sybase), así como en bases de datos de
procesamiento paralelo masivo (MPP) (como Teradata, Netezza y Greenplum). Las bases de datos en memoria
y NoSQL suelen pertenecer a esta categoría.

Ejecución de aplicaciones de alto rendimiento en HDFS: estas cargas de trabajo de analítica requieren un rendimiento
empresarial más rápido y un uso más eficiente de la tecnología flash disponible actualmente con Hadoop tradicional. Esta
categoría incluye tecnologías como HBase, varios SQL en tecnologías de Hadoop y otras tecnologías emergentes como
Apache Spark.

Aplicaciones personalizadas de alto rendimiento: esta categoría consiste en aplicaciones de uso intensivo de
rendimiento e I/O que se ejecutan en varios sistemas de archivos de alto rendimiento (como GPFS y XFS).
Es posible que cada una de estas categorías de cargas de trabajo y tecnologías por sí solas no sean capaces de respaldar un flujo
de trabajo completo. Como resultado, los clientes generalmente usan una combinación de estos. Un problema común que
experimentan las organizaciones que utilizan una o todas estas tecnologías son los cuellos de botella de I/O.
Los cuellos de botella de I/O son provocados por el tiempo de procesamiento agregado cuando las aplicaciones deben pausarse
mientras la información se lee o se escribe en medios de almacenamiento lentos y persistentes. Además del rendimiento de I/O
más lento del almacenamiento comparado con la memoria principal, se requiere una latencia agregada desde la capa de red
(Ethernet, Fibre Channel, Infiniband, etc.) para conectar nodos de aplicaciones con arreglos de almacenamiento compartido.
4
Actualmente, una forma de superar el cuello de botella de I/O creado por el delta de rendimiento de memoria/almacenamiento
es la utilización de tarjetas de memoria flash PCI o discos SSD en el servidor, que acercan el almacenamiento a la memoria tras
dejarlo dentro de un sistema cliente individual. Estas soluciones flash en el servidor son fáciles de instalar, pero tienen una gran
cantidad de desventajas, incluidos una capacidad limitada, una capacidad anclada, IOPS anclados, datos anclados si el servidor o
el almacenamiento fallan, e ineficiencias operacionales. Otra estrategia es la migración a los arreglos basados íntegramente en
tecnología flash. Esta estrategia acelera el rendimiento del arreglo y supera los retos de la tecnología flash en el servidor, pero
es más lenta que la tecnología flash en el servidor.
El almacenamiento flash a escala de rack de EMC® DSSD™ D5™ elimina estas desventajas proporcionando una plataforma de
almacenamiento innovadora que brinda I/O cuando se necesitan directamente a la aplicación, como lo haría el almacenamiento
flash del servidor. Este informe técnico analiza los aspectos de software de DSSD D5, incluidos los componentes de software
instalados y ejecutados en sistemas clientes conectados y el software que potencia al dispositivo D5. Cubre los retos inherentes
de varias estrategias de almacenamiento y explica cómo D5 soluciona dichos retos.
PÚBLICO AL QUE VA DIRIGIDO
Este informe técnico está destinado a tomadores de decisiones de tecnología, arquitectos de centros de datos, arquitectos de
almacenamiento y desarrolladores interesados en comprender DSSD D5 y sus funciones, así como los conceptos de diseño que
permiten que D5 optimice el rendimiento.
DESCRIPCIÓN GENERAL
El rendimiento de I/O resulta un aspecto esencial en los centros de datos modernos. Algunas aplicaciones que usan
infraestructuras existentes realizan sus tareas dentro del tiempo establecido. Tienen éxito a pesar de la gran diferencia entre la
memoria y el almacenamiento, generalmente debido a que sus conjuntos de datos de trabajo, los datos que las aplicaciones
usan activamente, son lo suficientemente pequeños para caber en la memoria.
Pero varias aplicaciones de misión crítica se tardan demasiado en completar sus tareas, lo cual limita la ejecución y la agilidad
comercial. En la mayoría de los casos, la ralentización se debe a un rendimiento de I/O insuficiente, tasas de transacción lentas
(IOPS) o una latencia demasiado alta. Muchas de estas aplicaciones poseen enormes conjuntos de datos de trabajo que no caben
en la memoria y, por ende, se ven limitados por el rendimiento de I/O del almacenamiento. Esta clase incluye varias aplicaciones
de tercera plataforma, como aquellas que admiten big data, la analítica en tiempo real y el Internet de las cosas. Otras
aplicaciones (como las bases de datos ACID) se regulan mediante la solicitud de escrituras de almacenamiento estables
(escrituras que deben alcanzar a los medios de almacenamiento persistente) como parte del flujo de datos primario. Los
dispositivos de almacenamiento DSSD D5 resuelven estos cuellos de botella, lo cual proporciona un rendimiento constante a las
aplicaciones.1
Los factores que afectan el rendimiento de I/O (rendimiento, IOPS y latencia) incluyen hardware y software del lado del cliente,
conectividad entre el sistema cliente y el almacenamiento, y hardware y software del lado del almacenamiento. Los productos
DSSD utilizan una combinación de innovaciones de software y hardware, tanto del lado del almacenamiento como del sistema
cliente, para lograr nuevos niveles de rendimiento.
DISPOSITIVO FLASH A ESCALA DE RACK EMC DSSD D5
La tecnología flash a escala de rack de DSSD D5 ofrece almacenamiento flash compartido ultradenso de alto rendimiento, alta
disponibilidad y muy baja latencia. D5 se conecta a cada nodo a través de PCIe Gen3 y aprovecha la tecnología NVMe™, que
brinda el rendimiento de la tecnología flash con conexión PCI. A la vez, D5 es un dispositivo independiente que se encuentra
desagregado del procesamiento, lo cual ofrece los beneficios del almacenamiento compartido.
Se pueden conectar hasta 48 hosts mediante múltiples rutas al dispositivo de almacenamiento DSSD D5, lo cual permite acceder
a un máximo de 100 TB de almacenamiento flash persistente útil a más de 10 millones de IOPS y 100 GB/s de rendimiento
estable, todo con latencias que promedian los 100 μsec aproximadamente. Este rendimiento de I/O libera la nueva funcionalidad
en aplicaciones existentes y habilita los nuevos tipos de aplicaciones, lo cual ayuda a las organizaciones a medida que solucionan
nuevos tipos de problemas de nuevas maneras. D5 ofrece un almacenamiento compartido altamente confiable con un
rendimiento superior a la tecnología flash de conexión directa local. Presenta varias competencias líderes del sector, incluidas las
siguientes:

Almacenamiento compartido de NVMe

NVMe desde el espacio del usuario

Dos módulos de almacenamiento de conexión directa PCIe de NVMe
1
Todas las funciones y el rendimiento descritos en este informe técnico son los esperados en la disponibilidad general de DSSD D5, pero podrían
cambiar sin previo aviso.
5

Cableado de conexión directa PCIe de NVMe

RAID verdaderamente multidimensional
DSSD D5 presenta el primer Cubic RaidTM del sector, una función de protección de datos continua patentada que brinda más
protección con una sobrecarga muy baja, calculada en solo un 17 %. Con DSSD, big data ahora puede convertirse en big data en
tiempo real, y los trabajos que se realizaban durante la noche ahora se pueden llevar a cabo en tiempo real. Los datos se
pueden almacenar y recuperar más rápido, y se pueden proteger en el almacenamiento flash de manera más segura que antes.
SOLUCIÓN DEL PROBLEMA DE RENDIMIENTO DE I/O
DSSD reinventó el almacenamiento flash para solucionar el problema de rendimiento de I/O. La memoria flash es esencialmente
diferente del almacenamiento en disco, pero antes de la aparición de DSSD, se solía considerar como un simple disco rápido,
conectado con las tecnologías de la era del disco, administrado como se administran los discos y al que se podía acceder como
se accede a un disco. Sin duda, estos métodos no maximizan las funciones ni el rendimiento que flash puede proporcionar.
DSSD diseñó e implementó las tecnologías que maximizan el flujo de datos entre la memoria de la aplicación en el sistema
cliente y los módulos de almacenamiento flash en D5, lo cual involucra la menor cantidad de software posible. El diseño del
software de DSSD se basa en el conocimiento de que el código de línea más rápido es aquel que nunca se ejecuta. Con
menos software entre la aplicación y el almacenamiento flash, el rendimiento de DSSD D5 avanzará al mismo paso de la
tecnología flash.
Además, dado que la tecnología flash es fundamentalmente diferente de los discos magnéticos, la estructura de los datos
almacenados en flash también puede ser diferente. Anteriormente, los modos de acceso y los requisitos de almacenamiento
dictaban que los bloques de tamaño fijo se debían convertir en componentes básicos esenciales en discos magnéticos, y que
los archivos se debían crear a partir de esos bloques. La física de los discos requería algoritmos que trataban de convertir I/O
aleatorios en I/O secuenciales. Sin embargo, la física de flash es diferente y no se beneficia de los I/O secuenciales como discos.
Los dispositivos D5 implementan una arquitectura orientada a objetos y disfrutan de un acceso completamente aleatorio a todos
los datos almacenados en “objetos”.
D5 almacena varios tipos de objetos y proporciona operaciones que actúan en dichos objetos. Cada objeto se compone de uno
o más “fragmentos”, y cada objeto puede tener su propio tamaño de fragmento (de un mínimo de 64 bytes a un máximo de
32 KB). Los objetos se pueden ajustar perfectamente a los requisitos de las aplicaciones. Dado que las rutas de datos y de
control están diseñadas para la administración y el almacenamiento de objetos, se eliminan los retos de sobrecarga y
rendimiento que suelen asociarse a áreas de almacenamiento de objetos. DSSD demuestra que los objetos pueden ser
más rápidos que los datos con formato de bloque, a la vez que son más flexibles y poseen más funciones.
Figura 2: Dos objetos de DSSD, uno con una longitud de fragmento de 512 bytes y el otro con fragmentos de
4 KB de longitud
SOFTWARE DE EMC DSSD
La recopilación de software de DSSD se denomina “Flood”. Flood administra las conexiones de todos los sistemas cliente,
donde cada uno de ellos puede usar todos los tipos de objetos en paralelo. No existen “modos” de operación de DSSD, como
un dispositivo de bloques o un área de almacenamiento de valor clave. Todas las operaciones y los tipos de objetos están
disponibles de manera simultánea.
Las aplicaciones que generan I/O de bloques y otras que utilizan la API “libflood” de DSSD se pueden ejecutar de manera
simultánea dentro de un sistema cliente o en otros sistemas clientes conectados a un dispositivo D5, lo cual brinda flexibilidad
a las arquitecturas de centros de datos y libertad a los propietarios de aplicaciones para utilizar el almacenamiento de DSSD
de la mejor manera para sus aplicaciones. Cuando lo dictan las aplicaciones, la API de Flood proporciona la configuración y el
desmontaje de I/O del plano de control y la administración de almacenamiento dentro de la aplicación, donde la transferencia de
datos se lleva a cabo en una ruta de datos sin la utilización de software.
6
Como se muestra en la figura 3, una llamada de la API de lectura de objetos transfiere datos sin necesidad de software en la
ruta de datos. La llamada de la API informa la transferencia al módulo de control (CM) del dispositivo D5. El CM determina los
módulos flash (FM) que poseen datos y su ubicación. Luego, el CM activa la copia de datos con la tarjeta cliente de DSSD en el
sistema cliente, mediante DMA y PCIe, con el uso de la conectividad de NVMe desde su ubicación en el FM a la memoria de la
aplicación, todo esto sin la intervención de software de ningún tipo. En este caso basado en API, no se requiere la acción del
kernel cliente, ya que todas las operaciones de transferencia ocurren en el modo usuario. Las lecturas de datos ocurren
literalmente de la manera más rápida posible para la física a fin de que los datos se transfieran entre un almacenamiento
compartido, persistente y externo y la memoria de la aplicación mediante una tecnología de interconexión ampliamente
disponible.
Figura 3: Operación de lectura de la aplicación del sistema cliente mediante la API libflood
La figura 4 que se muestra abajo presenta una operación de lectura mediante una llamada de la API, lo cual transfiere datos de
manera similar sin la intervención de software de ningún tipo. Una llamada de escritura de la API y una transferencia de DMA
provoca la escritura de los datos de las aplicaciones en tres ubicaciones dentro del dispositivo DSSD. La transacción se difunde
de manera múltiple en el fabric de malla PCIe interno de DSSD, por lo que no se generan copias de datos adicionales. Estas tres
escrituras de destino se realizan para garantizar la resistencia en caso de una falla de componentes hasta que los datos se
transfieran a su ubicación final en una cuadrícula del chip DIE flash protegida por la tecnología patentada, eficiente
y extremadamente efectiva de Cubic Raid de DSSD.
Figura 4: Operación de escritura desde la aplicación del sistema cliente mediante la API libflood al dispositivo
DSSD D5
Aún si se utiliza almacenamiento D5 mediante el controlador del dispositivo de bloques que reside en el sistema, que presenta
el almacenamiento D5 al sistema cliente tal como lo hacen otros dispositivos de bloques, se logran altos niveles de rendimiento
a muy baja latencia con una cantidad mínima de sobrecarga resultante en comparación con la transferencia de datos basada en
API. La figura 5 muestra la solicitud de I/O (1) iniciada por la aplicación mediante la interacción con el controlador del dispositivo
de bloques y, una vez más, (2) el DMA directamente desde la memoria de la aplicación al D5 para la transferencia de datos.
7
Figura 5: Operación de escritura desde la aplicación del sistema cliente mediante el controlador del dispositivo
de bloques
La biblioteca de la API libflood posee un gran conjunto de operaciones de objetos, mientras que la interfaz del controlador
del dispositivo de bloques limita las operaciones de objetos a aquellas que se enfocan en los I/O de bloques.
Un dispositivo DSSD D5 de 5U se puede adquirir completo o semicompleto de FM. Cada dispositivo llega con un pool de
almacenamiento protegido por Cubic Raid creado previamente que incluye todos los FM adquiridos. Si el dispositivo se encuentra
completo de FM en la compra inicial, entonces se puede agregar medio conjunto mediante una conexión en caliente para duplicar
la capacidad y aumentar el rendimiento. Completo, D5 puede contar con 100 TB de almacenamiento persistente útil.
Gracias a D5, es posible lograr hasta 10 millones de IOPS con latencias tan bajas como 100 µsec en cargas de trabajo aleatorias
de bloques pequeños. Las cargas de trabajo más grandes pueden experimentar un rendimiento constante de hasta 100 GB/s.2
Dicho rendimiento libera al arquitecto del centro de datos de las exigencias relacionadas con el sobreaprovisionamiento de
almacenamiento para lograr los objetivos de rendimiento, y de comprar servidores con exceso de capacidad llenos de memoria
para evitar I/O de almacenamiento persistente. Este rendimiento también brinda al centro de datos los I/O para acelerar las
soluciones actuales que sufren cuellos de botella de I/O y permite que la instalación esté preparada para nuevas aplicaciones.
Con ese almacenamiento compartido y persistente de alto rendimiento, las instalaciones de big data ya no tienen que ser lentas.
En lugar de ello, las instalaciones de datos pueden contar con un acceso rápido a los conjuntos de datos de gran tamaño. En vez
de realizar una analítica en lotes, esos mismos datos se pueden usar para realizar una analítica en tiempo real. Además, no es
necesario duplicar los datos para fines de rendimiento y disponibilidad, lo que mejora las arquitecturas actuales. De la misma
manera, las bases de datos en memoria que son demasiado grandes para caber en la memoria se pueden ejecutar a altas
velocidades.
Las bases de datos que son compatibles con la organización de la memoria en niveles o que se ven afectadas cuando se invocan
I/O del disco para los puntos de guardado o para el inicio, pueden ofrecer un acceso más rápido a una mayor cantidad de datos
con menos dudas. Por ejemplo, los investigadores en biotecnología y otros campos pueden tener disponibles grandes cantidades
de datos para explorar y recopilar. Por lo general, el gran conjunto de aplicaciones que procesan datos importantes y que
dependen de los I/O se pueden liberar para mejorar la ejecución del negocio o para permitir nuevas oportunidades comerciales.
SOFTWARE DEL SISTEMA CLIENTE
Todos los clientes reciben un paquete instalado del software cliente de DSSD3. Este paquete contiene: guías o documentación, la
biblioteca “C” de la libflood, el servicio DSSD que administra el acceso de los clientes a D5 y el controlador de bloques de DSSD.
El controlador de bloques de DSSD permite a las aplicaciones acceder a objetos de bloques en D5 como los dispositivos de
bloques de Linux. Para obtener la mayor cantidad de funciones y rendimiento, DSSD ofrece Flood Direct Memory API. DSSD
también ofrece un plug-in que utiliza Flood Direct Memory API para las aplicaciones y plataformas estándares importantes,
incluido el sistema de archivos Hadoop (HDFS). Estas funcionalidades se resumen en la figura 6 y se detallan en las secciones
siguientes.
2
Todas las cifras de rendimiento incluyen la protección de almacenamiento Cubic RAID y las transferencias de datos de la aplicación
al almacenamiento persistente en tamaños de transferencia estándar de 4 KB y 32 KB.
3
Consulte la guía del usuario para clientes de DSSD a fin de obtener más información sobre el paquete de software, y la guía de instalación
y servicio de DSSD para obtener instrucciones sobre la instalación.
8
Figura 6: Resumen de los métodos de acceso para las aplicaciones que realizan operaciones de I/O en el
almacenamiento de D5
Independientemente de la interfaz del software, un sistema cliente determinado necesita una o más tarjetas cliente de DSSD
para conectarse a un dispositivo D5. Una vez instalada la tarjeta cliente, se pueden cargar los componentes del software4,
configurar el dispositivo y preparar el almacenamiento para su uso mediante la interconexión con Flood Direct Memory API y el
controlador de bloques de DSSD.
Figura 7: Conectividad del sistema cliente a un dispositivo DSSD D5 a través de la tarjeta cliente de DSSD
El software cliente de DSSD también ofrece múltiples rutas, en las cuales dos o más conexiones desde un cliente al dispositivo
forman un grupo de múltiples rutas para el rendimiento y la recuperación en caso de fallas; ya sea a través del MPIO del
controlador de bloques de DSSD o mediante Flood Direct Memory API de DSSD. Ambos ofrecen protecciones automáticas de
failover y failback en forma de rutas o los dispositivos que conectan para cambiar su estado.
CONTROLADOR DE BLOQUES Y SERVICIO DE DISPOSITIVO DE BLOQUES DE EMC DSSD D5
El controlador de dispositivos de DSSD administra el hardware de la tarjeta cliente. Si se utiliza el almacenamiento de D5 como
uno o más dispositivos de bloques en un sistema cliente determinado, ese cliente también utilizará el controlador de bloques de
DSSD y el servicio de dispositivo de bloques de DSSD para administrar la interacción entre las aplicaciones cliente y el
dispositivo DSSD. El servicio de dispositivo de bloques de DSSD se ejecuta en el modo de usuario y administra la conectividad de
los dispositivos. Evitar el modo kernel ofrece dos beneficios: hace que el sistema sea más seguro, ya que el código del modo de
usuario establece límites para las funcionalidades, y mejora el rendimiento debido a que evita una sobrecarga del acceso del
kernel. Ampliaremos este tema más adelante.
La funcionalidad del modo de usuario incluye el descubrimiento de puertos, volúmenes, bloques y dispositivos. Por ejemplo,
cuando la CLI de D5 se usa para crear volúmenes y permite el acceso desde un sistema cliente determinado, el servicio crea
un puerto lógico para las operaciones de I/O dirigidas al volumen que se encuentra dentro del espacio de memoria de la
aplicación cliente.
4
Consulte la guía de instalación y servicio de DSSD para obtener información relacionada con la instalación del dispositivo D5.
9
Los componentes del kernel del controlador del dispositivo incluyen soporte para múltiples rutas, lo que permite usar todas
las conexiones que van desde el sistema cliente al D5 de forma paralela para el acceso al dispositivo de bloques, además de
resistencia y recuperación de fallas. El controlador de bloques de DSSD permite que las aplicaciones no modificadas usen los
dispositivos D5 como cualquier otro dispositivo de bloques. Una aplicación que utiliza el controlador de bloques de DSSD puede
acceder a objetos de bloques únicamente.
Una vez que la aplicación invoca la operación de I/O, la lista de páginas de operaciones de I/O se envía al controlador del
dispositivo de bloques de DSSD a través de una llamada del kernel. Luego, los datos de la aplicación se transfieren a través de
DMA entre el dispositivo y la memoria de las aplicaciones. Por supuesto que existe una aceleración del rendimiento del lado de
D5, así que incluso con operaciones de I/O en el modo de bloques, D5 puede ofrecer un gran rendimiento a una latencia muy
baja. El servicio de dispositivo de bloques de DSSD ofrece compatibilidad con las aplicaciones que necesitan cumplir con POSIX
o que no pueden aprovechar Flood Direct Memory API.
FLOOD DIRECT MEMORY API
Muchas organizaciones se preguntan “¿Por qué es necesario utilizar una API?”, seguido de “¿Y por qué necesitamos una nueva
API para el almacenamiento?” Para lograr una mayor velocidad, las aplicaciones tienen que realizar transferencias desde un
modelo de bloqueo de I/O de un solo hilo de ejecución, a un modelo asíncrono y multithread de I/O. Esto resulta difícil de hacer
con las interfaces de almacenamiento (como SAS, SATA y FC) y los protocolos tradicionales. Esos métodos tradicionales implican
capas lentas compuestas de miles de líneas de código que se ejecutan dentro del kernel y, por lo tanto, requieren de un cambio
y una interrupción del contexto para cada solicitud de I/O. Además, esos métodos se escribieron pensando en los elementos que
realizan llamadas de un solo hilo de ejecución, lo que requiere mucho trabajo de programación por parte de los programas
modernos que deseen utilizarlos.
Se necesita una nueva API para permitir esta velocidad de I/O de última generación a fin de evitar las pilas lentas y para la
ejecución en el modo de usuario, con lo cual se evitan los cambios y las interrupciones al contexto. También se necesita una
nueva API para habilitar la semántica de I/O posterior a POSIX. Por ejemplo, si un destino de almacenamiento ahora es
compatible con la administración nativa de los pares de valor clave, claramente necesita más que llamadas de lectura/escritura
del sistema para usar esas y otras funciones. Los métodos de I/O de POSIX se han contraído, girado y mutilado para intentar
obtener más rendimiento de ellos, lo que agrega complejidad sin ofrecer el máximo rendimiento.
Figura 8: Pila de I/O tradicional frente a la pila de I/O libflood de DSSD
La pila de software existente ilustrada a la izquierda de la figura 8 (arriba) muestra las diferentes capas de software que se
deben atravesar para que una operación de I/O pase de la aplicación al disco/NAND. Cada pasada a través de un nivel de
software añade más latencia a la operación de I/O.
Las flechas verticales representadas en el diagrama indican la latencia agregada de los dispositivos de discos duros y discos
SSD después de pasar por todas las pilas de software. Cuando el dispositivo de destino es un disco duro, la latencia de I/O tiene
un promedio de 4,000 microsegundos (4 ms o 0.004 segundos) por cada operación de I/O. La transferencia a un disco SSD
(la flecha gris de la derecha) reduce este tiempo considerablemente, entre unos 300 y 1,000 microsegundos (de 0.3 a 1 ms).
Esta reducción proviene de la comparación entre el disco SSD y el disco duro, pero tenga en cuenta que en ambos casos se
utiliza la misma pila de software.
10
El rendimiento real del almacenamiento flash se descubre solo cuando se reconsidera todo el método de acceso a los datos
desde la aplicación. Como se muestra en el lado derecho de la figura 8, el “paquete de discos” de DSSD es en realidad más
una ruta de hardware desde la aplicación hacia el almacenamiento flash. Cuando las aplicaciones utilizan Flood Direct Memory
API (libflood), las operaciones de I/O se completan en aproximadamente 100 microsegundos.
Flood Direct Memory API puede alcanzar este nivel de rendimiento porque se diseñaron desde cero en conjunto con el hardware
para aprovechar al máximo el acceso paralelo que ofrece la arquitectura de rendimiento de D5, la cual incluye las siguientes
funciones:

Una tarjeta cliente PCIe que permite que la aplicación tenga un puerto NVMe virtual abierto, que esencialmente se trata de
una ventana al espacio de direcciones PCIe de DSSD

Canales de comunicación de alta velocidad paralelos hacia los 18,000 chips DIE NAND para las aplicaciones a través de
varios puertos NVMe virtuales

La capacidad de las operaciones de I/O de las aplicaciones para ir de manera directa y eficaz desde el espacio del usuario
de la aplicación a la aplicación sin sufrir interrupciones

Una arquitectura que no utiliza kernel (arquitecturas con acceso directo a las aplicaciones), lo que permite que D5 brinde
una latencia mucho menor y un rendimiento general superior, incluso si se utiliza el mismo NAND que se usó en los módulos
flash de DSSD para un disco SSD

Flood Direct Memory API, que se creó con la idea de que “el código más rápido es el que nunca se ejecuta”
PLUG-INS DE EMC DSSD
El software de Flood que se ejecuta en D5 incluye una API que permite a las aplicaciones acceder de forma directa y nativa a
D5. Una aplicación existente se puede modificar reemplazando las llamadas de I/O basadas en POSIX por comandos de I/O de
Flood Direct Memory API. Esto se puede lograr mediante el uso de la “biblioteca C de la libflood”. En este caso, el cliente debe
desarrollar un código nuevo con nuestra API.
Otro método de acceso que ofrece DSSD sirve para usar un tipo de plug-in de la arquitectura. En este tipo de arquitectura, DSSD
escribe software de API en una infraestructura estándar del sector. Por ejemplo, DSSD creó un plug-in para trabajar con Hadoop,
el primero de varios plug-ins planificados. Se están explorando otras infraestructuras, para las que DSSD podría crear tipos de
código de plug-in similares y ofrecer los recursos desarrollados por DSSD a la comunidad de código abierto.
PLUG-IN EMC DSSD HADOOP
HDFS es la capa subyacente del sistema de archivos para Hadoop y otras aplicaciones. Tiene una funcionalidad única que
permite que estas aplicaciones accedan a grandes cantidades de datos. Algunas arquitecturas de Hadoop están diseñadas para
un acceso de bajo costo y bajo rendimiento, generalmente para el procesamiento por lotes. Los nuevos casos de uso no solo
requieren grandes cantidades de datos, sino que también un acceso rápido a esos datos. DSSD creó el plug-in DSSD Hadoop,
que convierte las llamadas de HDFS en llamadas de Flood Direct Memory API de DSSD, lo cual entrega datos a la aplicación
con el doble de rapidez en comparación con otros almacenamientos flash.
Las aplicaciones actuales basadas en HDFS se pueden acelerar agregando almacenamiento de D5, conectando los sistemas
cliente con el almacenamiento y añadiendo el plug-in DSSD Hadoop al software actual de HDFS.
Figura 9: Integración de HDFS con la API libflood frente a otras soluciones de HDFS
11
SOFTWARE DEL DISPOSITIVO EMC DSSD D5
El software del dispositivo DSSD D5 administra el dispositivo y proporciona operaciones de I/O de los objetos a los sistemas
cliente. Antes de explorar el software del dispositivo, es importante entender los objetos que ofrece.
OBJETOS Y FRAGMENTOS
DSSD D5 es un área de almacenamiento de objetos, donde estos pueden ser bloques, archivos, volúmenes, directorios y pares
de valor clave. Al conjunto de todos los objetos almacenados en D5 se le denomina “pool de objetos”. Cada objeto tiene un
número único y de un solo uso (tomado de un espacio de nombres de 264 o 18,4 trillones). En el dispositivo D5 se pueden
almacenar hasta mil millones de objetos (limitados por el espacio).
Un objeto se compone de un número de ID único para su nombre, un tamaño de fragmento y uno o más fragmentos de datos. El
fragmento se lee o se escribe en exactamente una transferencia de datos entre la memoria de las aplicaciones usuario y sus tres
ubicaciones de destino (una DRAM del módulo de controlador y dos DRAM del módulo flash).
Figura 10: Un objeto DSSD D5 con una longitud de fragmento de 4,000 y múltiples fragmentos
Los objetos están contenidos en volúmenes (en realidad se trata de otro objeto, pero lógicamente es un contenedor de objetos),
donde cada objeto puede estar en un solo volumen. Se pueden crear volúmenes sin límite y cada uno puede otorgar acceso a
uno o más sistemas cliente. Los volúmenes a los que acceden más de un sistema cliente permiten que todos esos sistemas
accedan a sus objetos de manera simultánea. Es responsabilidad de las aplicaciones del sistema cliente garantizar el
mantenimiento de un bloqueo adecuado para que los clientes no sobrescriban los objetos de cada uno. La figura 11 muestra
los objetos en los volúmenes.
Figura 11: Volúmenes denominados “Volumen 1” y “Volumen 2” con objetos
Dentro de un volumen, los objetos de directorios jerarquizan a los objetos en el volumen. Se puede hacer referencia a los
objetos y abrirlos según el ID o el nombre de ruta del directorio.
12
Figura 12: Acceso a los objetos a través de OID y de la ruta del directorio
Todos los metadatos, como la capa de traducción flash (FTL), se crean mediante la lectura de la información del objeto y se
guardan en la memoria principal de D5 en el módulo del controlador. Todos los metadatos relacionados con el objeto se incluyen
en el mismo y se escriben cuando es necesario escribir el objeto. Los metadatos nunca generan operaciones de I/O externas.
Durante el tiempo de encendido, se analizan los objetos y se crea la FTL. A diferencia de los sistemas de archivos tradicionales,
todas las operaciones de I/O dentro del dispositivo cuentan con administración de objetos o administración de fragmentos, sin
ningún tipo de administración de metadatos.
La lista completa de los tipos de objetos es:

Volumen: un grupo de objetos que puede estar vinculado dinámicamente a una aplicación cliente en especial, lo cual
restringe la vista que tiene la aplicación del almacenamiento lógico. Las reglas del administrador vinculan de manera
dinámica una aplicación con un volumen, que consta de una raíz y un subconjunto de los objetos en el pool. Los
volúmenes se pueden eliminar atómicamente (en lugar de decir rm –rf).

Directorio: la asignación de nombres a los objetos dentro de un volumen, como el directorio del sistema de archivos
POSIX. Los directorios se pueden utilizar cuando las aplicaciones desean usar los nombres jerárquicos para buscar objetos.
Los directorios son opcionales; las aplicaciones también pueden abrir objetos de forma directa mediante sus identificadores
únicos.

Archivo: un flujo de bytes de aprovisionamiento delgado que respalda las operaciones de I/O que cumplen con POSIX
en compensaciones arbitrarias y sin restricciones en cuanto al tamaño o la alineación de I/O. Se bloquea el rango de los
archivos para lograr coherencia y permitir la escritura modificada por la lectura de los fragmentos existentes. La adición del
cumplimiento con POSIX disminuye el rendimiento de un objeto de archivos en comparación con un objeto de bloques.

Bloque: un flujo de bytes de aprovisionamiento delgado que respalda las operaciones de I/O que cumplen con NVMe en
compensaciones alineadas según el tamaño del fragmento. Los bloques permiten una simultaneidad y un rendimiento
máximos mediante la omisión del bloque según rango y la autorización de solo lecturas o escrituras de fragmentos
completos, sin admitir la escritura modificada por la lectura de los fragmentos. El usuario de la aplicación o del dispositivo
de bloques es el único responsable de la administración del acceso simultáneo.

Valor clave: un diccionario con aprovisionamiento delgado que asigna cualquier secuencia de bytes clave
(hasta 65,535 bytes) a una secuencia de bytes de valor correspondiente (hasta 1 MB).
Si se tienen varios tipos de objetos (como bloques, archivos, directorios y valores clave) y se almacenan los metadatos del
objeto en la memoria principal del dispositivo ubicado en el módulo del controlador (en lugar de hacerlo dentro del objeto),
D5 ofrece más flexibilidad que las áreas de almacenamiento no dedicadas a objetos sin tener que sufrir pérdidas de rendimiento
debido a la administración de metadatos, la cual suele ser inherente en las áreas de almacenamiento de objetos.
ADMINISTRACIÓN DEL DISPOSITIVO A TRAVÉS DE LA INTERFAZ DE LA LÍNEA DE
COMANDOS Y LA APLICACIÓN WEB
Para administrar el dispositivo, DSSD D5 ofrece la interfaz de la línea de comandos (CLI) esperada y la aplicación web para
la administración y el monitoreo. La CLI y la aplicación web proporcionan funciones para la creación, la administración y la
eliminación de volúmenes al interior del pool. Los volúmenes tienen un aprovisionamiento delgado y no bloquean la capacidad
durante su creación. Luego, se asignan uno o más volúmenes a uno o más clientes, y estos últimos pueden crear y eliminar
objetos dentro de un volumen asignado.
13
A continuación, se presenta un ejemplo del uso de la CLI del dispositivo DSSD para la creación y eliminación de volúmenes.
Para acceder a esta CLI es necesario iniciar sesión en el módulo de servicio de uno de los módulos de control a través de una
dirección Ethernet. Una vez que el usuario inicia sesión en la CLI del dispositivo, se presenta una conocida interfaz de la línea de
comandos de Linux, parecida al siguiente ejemplo.
> create-vol volume1
Volume 'volume1' created.
> list-vol
NAME CREATED_ON
test-volume 2014-10-08T20:08:41Z
volume1 2014-10-24T21:49:40Z
> show-vol volume1
name = volume1
ctime = 2014-10-24T21:49:40Z
oid = 1601faab-8d2a-44ff-afe8-3674f8d060e6-0000000028009e84
> destroy-vol volume1
Volume 'volume1' destroyed.
Figura 13: La CLI cliente de DSSD
Se pueden usar las mismas funciones con una interfaz gráfica, a la que se puede acceder a través de un navegador web
estándar. La interfaz del usuario del navegador (BUI) de D5 se denomina como la aplicación web de DSSD. Aquí vemos
un ejemplo del uso de la aplicación web de DSSD para la administración de dispositivos. La guía del administrador del
dispositivo DSSD describe cómo un usuario puede abrir un navegador web e ingresar la URL del módulo de servicio para
que el dispositivo D5 aparezca en una pantalla de inicio de sesión similar a la siguiente.
Figura 14: Pantalla de inicio de la aplicación web de DSSD
14
Después de iniciar sesión, los usuarios ven la pestaña “Monitor”, que es similar a la que se muestra en la figura 15.
Figura 15: Interfaz web de DSSD: pestaña Monitor
Para crear un volumen, el usuario debe seleccionar la pestaña “almacenamiento”, tras lo cual aparece una pantalla similar
a la de la figura 16.
Figura 16: Interfaz web de DSSD: pestaña Almacenamiento
15
Luego, el usuario puede seleccionar el hipervínculo “crear” para abrir el cuadro de diálogo “crear”, que es similar a la figura 17.
Figura 17: Interfaz web de DSSD: diálogo Create Volume dentro de la pestaña Storage
En este cuadro de diálogo, el usuario puede crear un volumen, ingresar el nombre del volumen y hacer clic en el
hipervínculo Aplicar. Después de hacer clic en el hipervínculo Aplicar, la pestaña almacenamiento se actualiza y se puede
ver el nuevo volumen, que es similar a lo que se muestra en la figura 17.
Figura 18: Interfaz web de DSSD: pestaña Almacenamiento con el nuevo volumen agregado
16
Para eliminar el nuevo volumen creado, el usuario puede simplemente seleccionar el nombre del nuevo volumen haciendo clic en
su nombre para descubrir el hipervínculo “Destruir”, a la derecha del nombre del volumen, que ahora se ve resaltado en un
rectángulo similar al ejemplo de más abajo.
Figura 19: Interfaz web de DSSD: pestaña Almacenamiento con la opción “Destruir”
Después de hacer clic en el hipervínculo “Destruir”, el volumen se elimina de forma permanente junto con todos sus
contenidos.
ADMINISTRACIÓN DEL OBJETO CLIENTE A TRAVÉS DE LA INTERFAZ DE LA LÍNEA DE
COMANDOS
Una vez creados los volúmenes en el dispositivo D5, los usuarios pueden acceder a los volúmenes desde un sistema cliente con
conexión PCIe. En la guía del usuario cliente de DSSD se encuentra una referencia a la CLI cliente. A continuación se muestra un
ejemplo de cómo un usuario podría crear un objeto de bloques dentro de un volumen denominado TestVol3. TestVol3 se debe
crear ya sea en la CLI del dispositivo o en la aplicación web antes de ejecutar este comando.
# flood create -V TestVol3 -t block -F 16k —l 1G myBlock
# flood ls –lhi –V TestVol3
b 1G 4K 2016-02-22T15:57:56 86f866d4-091c-4ea9-a5ae-1cca1020fb2d-000000000000004a myBlock
Figura 20: Ejemplo de ejecución de una CLI cliente creando un objeto al interior de un volumen y señalando
sus atributos
En la figura 20, después de ejecutar el comando “flood create”, el usuario ejecutó a continuación un comando denominado
“flood is” para enumerar todos los atributos de todos los objetos que existen dentro de “TestVol3”. Aquí analizaremos el
resultado de izquierda a derecha:






b
1G
4K
2016-02-22T15:57:56
86f866d4-091c-4ea9-a5ae-1cca1020fb2d-000000000000004a
myBlock
Tipo de objeto = bloque
Tamaño del objeto
Longitud de fragmento
Fecha y hora de la creación del objeto
ID del objeto
Nombre del objeto
17
Naturalmente, las interfaces del dispositivo (CLI e interfaz web) se ejecutan en los módulos de servicio (SM) de doble
redundancia al interior del dispositivo. Los módulos de servicio administran el chasis: control de potencia, administración de
la configuración, monitoreo del rendimiento, datos de sensores, administración de fallas y telemetría. Los módulos de control
ejecutan las operaciones de datos: aprovisionamiento de objetos, ingreso y extracción de datos de clientes, configuración de
los controles de acceso y las políticas de retención de datos. Básicamente, el módulo de servicio ofrece la administración del
dispositivo y el módulo de control implementa la ruta de datos Flood con datos que se transfieren entre los clientes y el
almacenamiento flash de D5. Para completar la imagen, los módulos de I/O (IOM) ofrecen conectividad a través de los
cables de I/O de DSSD que conectan las tarjetas cliente con el dispositivo.
Figura 21: Ejecución de la CLI del dispositivo y de la CLI cliente
RESUMEN DEL SOFTWARE EMC DSSD
El software DSSD Flood, incluido el controlador del dispositivo de lado del cliente, el controlador de bloques de DSSD y el
software de control del dispositivo, trabaja conjuntamente con D5 para brindar rendimiento, disponibilidad y resistencia sin
precedentes. Flood admite el almacenamiento de una variedad de objetos, ya sea de manera directa a través de API o plug-ins
de libflood, o de manera indirecta a través del controlador de bloques de DSSD. Independientemente del método que se
implemente, las operaciones de administración de objetos son atómicas, y los datos de objetos en forma de fragmentos se
transfieren desde la memoria de la aplicación a un almacenamiento persistente en los dispositivos DSSD, sin la intervención
de software de ningún tipo en la ruta de datos. Cuando se utiliza el controlador de bloques de DSSD, cada operación de I/O
se inicia con una llamada del kernel y, por lo tanto, tiene un poco más de sobrecarga que las operaciones de I/O de libflood.
Esta combinación de una ruta de control innovadora y una ruta de datos con menos software proporciona la menor latencia, los
IOPS más altos y el mayor rendimiento posibles. Las aplicaciones que están limitadas por los I/O de almacenamiento, incluidos
big data en tiempo real, las bases de datos en memoria, la analítica en tiempo real y las bases de datos tradicionales, se pueden
beneficiar enormemente con el almacenamiento flash a escala de rack de DSSD D5. Sin los cuellos de botella de I/O que regulan
el rendimiento de estas aplicaciones de misión crítica, D5 puede ayudar a los negocios a generar nuevos flujos de ingresos
y adquirir una nueva agilidad gracias a un análisis más rápido y más confiable de sus datos.
GLOSARIO

Dispositivo DSSD D5: el chasis, los componentes y el software del almacenamiento de DSSD

CLI del dispositivo DSSD: interfaz de la línea de comandos en un dispositivo D5 cuando inicia sesión en el módulo
de servicio

Controlador de bloques de DSSD: componente del software cliente que permite el uso de objetos de bloques del
dispositivo DSSD como dispositivos de bloques

Objeto de bloques: tipo de objeto que contiene bloques. Se usa a través de la API o como un dispositivo de bloques

Cables de I/O de DSSD: cables de DSSD que conectan la tarjeta cliente con el dispositivo

Tarjeta cliente de DSSD: tarjeta PCIe de DSSD al interior de los clientes, se conecta con el dispositivo a través del
cable cliente

Controlador del dispositivo de tarjeta cliente de DSSD: software para integrar la tarjeta cliente con el kernel del cliente
18

CLI cliente: interfaz de la línea de comandos en un cliente DSSD

Sistema cliente: computadora conectada a un dispositivo D5

CM: módulo de control, componente del dispositivo

Objeto de directorios: tipo de objeto que proporciona un nombre para las traducciones de OID

Objeto de archivos: tipo de objeto que proporciona semánticas POSIX (funciona como un archivo)

Flood: software DSSD

FM: módulo de flash, componente del dispositivo

Longitud de fragmento (flen): “tamaño del bloque” por objeto del espacio asignado de un objeto Flood

IOM: módulo de entrada/salida, componente del dispositivo

Objeto de valores clave: tipo de objeto que proporciona el almacenamiento y las operaciones del par de valores clave

Múltiples rutas: múltiples rutas en el nivel de la API y múltiples rutas del controlador de bloques de DSSD

NVMe: memoria no volátil express. Es una especificación para acceder a NVM a través del bus PCIe

Objeto: recopilación de datos, denominados con un número de OID único

OID: identificador de objetos

Pool: es el almacenamiento agregado de la configuración instalada que permite a los administradores ver la capacidad de
almacenamiento completa como una sola entidad

Puerto: conector físico al que se conectan los cables de I/O (en la tarjeta cliente y en el IOM del dispositivo)

Directorio raíz: el elemento más importante de la estructura de asignación de nombres de una recopilación de objetos

SM: módulo de servicio, componente del dispositivo

Aprovisionamiento delgado: asignación retrasada del almacenamiento hasta que sea necesario

UUID: identificador único universal

Volumen: tipo de objeto que asigna un identificador único a una asignación de capacidad y objetos del pool para
controlar los permisos de acceso por parte de los clientes conectados a VPCI
19
Descargar