Almacenamiento de objetos
Object Storage (también conocido como almacenamiento basado en objetos[1]) es una arquitectura de almacenamiento de información que gestiona los datos como objetos, a diferencia de otras arquitecturas de almacenamiento de información como sistemas de archivos que administrar los datos como un fichero jerárquico y almacenamiento en bloque que administra datos como bloques dentro de sectores y pistas. Cada objeto normalmente incluye los datos en sí mismo, una cantidad variable de metadatosy un identificador único. Almacenamiento de objetos puede ser implementado en múltiples niveles, incluyendo el nivel del dispositivo (dispositivo de almacenamiento de objetos), el nivel de sistema y el nivel de interfaz. En cada caso, almacenamiento objeto pretende habilitar capacidades no tratadas por otras arquitecturas de almacenamiento, como las interfaces que pueden ser directamente programables por la aplicación, un espacio de nombres que puede abarcar varias instancias de hardware físico y funciones de administración de datos como la replicación de datos y distribución de datos en detalle a nivel de objeto.
Sistemas de almacenamiento de objetos permiten retención relativamente barata, escalable y auto-sanación de cantidades masivas de datos no estructurados. Almacenamiento de objetos se utiliza para diversos fines tales como almacenar fotos en Facebook, canciones en Spotify, o archivos en servicios de colaboración en línea, tales como Dropbox.[2]
Contenido
- 1 Historia
- 1.1 Orígenes
- 1.2 Desarrollo
- 2 Arquitectura
- 2.1 Abstracción de almacenamiento
- 2.2 Separación de metadatos y datos
- 2.3 Gestión de datos mediante programación
- 3 Implementación
- 3.1 Dispositivos de almacenamiento basados en objetos
- 3.2 Sistemas de archivos basados en objetos
- 3.3 Almacenamiento de archivos
- 3.4 Almacenamiento en la nube
- 3.5 Almacenamiento de objetos "Cautivo"
- 3.6 Almacenamiento híbrido
- 3.7 Sistemas de almacenamiento de objetos
- 4 Adopción de mercado
- 5 Estándares
- 5.1 Normas de dispositivo de almacenamiento basado en objetos
- 5.1.1 OSD versión 1
- 5.1.2 OSD versión 2
- 5.1 Normas de dispositivo de almacenamiento basado en objetos
- 6 Véase también
- 7 Referencias
- 8 Enlaces externos
Historia
Orígenes
Almacenamiento objeto fue propuesto por primera vez en Carnegie Mellon University Laboratorio de datos paralela como un proyecto de investigación en 1996.[3] Investigación de Garth Gibson, et al. en Conectado a red discos seguros primero promovió el concepto de división operaciones menos comunes, como las manipulaciones de espacio de nombres, de las operaciones más habituales, como Lee y escribe, para optimizar el rendimiento y la escala de ambos.[4] Otro concepto clave fue abstraer las escrituras y lecturas de datos para contenedores de datos más flexibles (objetos). Control de acceso de grano fino a través de la arquitectura de almacenamiento de objetos[5] Además fue descrito por uno de los equipos de la NASD, Howard Gobioff, quien más tarde fue uno de los inventores de la Sistema de archivos de Google.[6] Incluyen otros trabajos relacionados con la Coda proyecto de sistema de archivos en Carnegie Mellon, que comenzó en 1987 y generó el Sistema de archivos lustre.[7] También existe el proyecto de OceanStore en Berkeley,[8] que comenzó en 1999.[9] Uno de los primeros y más conocidos productos de almacenamiento de objetos, Centera de EMC, debutaron en 2002.[10] Sin embargo, desarrollo de Tecnología de Centera comenzó incluso antes, en una empresa llamada Filepool (que fue adquirido por EMC en 1999).
Desarrollo
En general la inversión de la industria en tecnología de almacenamiento de objetos se ha mantenido durante más de una década. Desde 1999 hasta 2013, ha habido por lo menos $ 300 millones de financiación de riesgo relacionados con el almacenamiento de objetos, incluidos los proveedores como Amplidata, Bycast, Cleversafe, Nirvanix, y Scality.[11] Esto no incluye millones de dólares de la privada Ingeniería de sistemas proveedores como DataDirect Networks (WOS), EMC (Centera, AtmosViPR), HDS ()HCP), HP ()HP OpenStack), IBM y NetApp (StorageGRID), Redhat GlusterFS, encargado de la tecnología (keeperSAFE), nube de servicios de proveedores como Amazonas ()AWS S3), Microsoft ()Microsoft Azure) y Google (Almacenamiento en la nube de Google), o los muchos años hombre de abrir fuente de desarrollo en Lustre, (OpenStackSWIFT), MogileFS, Cefalometría y Skylable SX.
Arquitectura
Abstracción de almacenamiento
Uno de los principios de diseño de almacenamiento de objetos es Resumen algunas de las capas inferiores de almacenamiento de información de las aplicaciones y los administradores. Así, datos es expuestos y manejados como objetos en vez de archivos o bloques. Los objetos contienen propiedades descriptivas adicionales que pueden utilizarse para mejor indexación o gestión. Los administradores no tienen que realizar funciones de almacenamiento de nivel inferiores como construir y gestionar volúmenes lógicos para utilizar la capacidad de disco o ajuste RAID niveles de tratar con falla en el disco.
Almacenamiento de objetos también permite el direccionamiento e identificación de objetos individuales por más que el nombre de archivo y ruta del archivo. Almacenamiento objeto agrega un identificador único dentro de un cubo, o a través de todo el sistema, para apoyar mucho mayores espacios de nombre y eliminar las colisiones de nombres.
Separación de metadatos y datos
Almacenamiento objeto explícitamente separa los metadatos de archivos de datos para soportar capacidades adicionales:
- Los propósitos de metadatos adicionales para capturar la información específica de la aplicación o específica del usuario para la mejor indexación
- Metadatos adicionales para apoyar políticas de gestión de datos (por ejemplo una política al movimiento unidad objeto de nivel de almacenamiento de uno a otro)
- Escala independiente de nodos de metadatos y nodos de datos
- Acceso unificado a los datos a través de muchos nodos distribuidos y racimos
- Administración centralizada de almacenamiento a través de muchos nodos individuales y grupos
- Optimización del almacenamiento de metadatos almacenamiento (por ejemplo bases de datos o clave valor) vs datos (e.g. almacenamiento binario no estructurado)
Además, en los sistemas de archivos basados en objetos:
- Los clientes del sistema de archivo sólo en contacto con servidores de metadatos inmediatamente cuando se abre el archivo y luego contenidos directamente a través de servidores de almacenamiento de objetos (vs. sistemas de archivos basados en bloques que requieren acceso a metadatos constante)
- Objetos de datos que pueden configurarse en una base de cada archivo para permitir el ancho de banda adaptable, incluso a través de objetos múltiples servidores de almacenamiento, apoyando las optimizaciones en ancho de banda y de la entrada-salida
Dispositivos de almacenamiento basados en objetos (OSD) administración metadatos y datos a nivel de dispositivo de almacenamiento:
- En lugar de proporcionar una interfaz de bloque orientado a que Lee y escribe bloques de tamaños fijos de datos, un OSD organiza los datos en contenedores de datos de tamaño flexible, llamados objetos
- Cada objeto tiene los datos (una secuencia de bytes no interpretada) y metadatos (un conjunto de atributos que describen el objeto extensible)
- La interfaz de comandos en el menú OSD incluye comandos para crear y eliminar objetos, escribir bytes y leer bytes desde y hacia los objetos individuales y a establecer atributos en objetos
- El OSD implementa un mecanismo de seguridad que proporciona control de acceso por objeto y por mando
Gestión de datos mediante programación
Almacenamiento objeto proporciona interfaces programáticas para permitir que las aplicaciones manipular datos. A nivel de base, esto incluye CRUD funciones básica leer, escribir y eliminar operaciones. Algunas implementaciones de almacenamiento objeto ir más lejos, apoyando una funcionalidad adicional como versiones del objeto, objeto y de movimiento de objetos entre diferentes niveles y tipos de almacenamiento. La mayoría de las implementaciones de API son Resto-base, permitiendo el uso de muchos estándar HTTP llamadas.
Implementación
Dispositivos de almacenamiento basados en objetos
Almacenamiento de objetos en la capa de protocolo y el dispositivo fue propuestos 20 años atrás y aprobados para el SCSI conjunto de comandos como "comandos de dispositivo de almacenamiento basado en objetos" hace casi 10 años (OSD),[12] Pero no ha sido producida hasta el desarrollo de la plataforma de almacenamiento abierto cinético de Seagate.[13][14] El SCSI comando para dispositivos de almacenamiento de objetos fue desarrollado por un grupo de trabajo de la Storage Networking Industry Association (SNIA) del Comité T10 de la Comité Internacional de normas de tecnología de información (INCITS).[15] T10 es responsable de todos los estándares SCSI.
Sistemas de archivos basados en objetos
Algunos sistemas de archivos distribuidos de alto rendimiento utilizan una arquitectura basada en objetos, donde los metadatos de archivos se almacenadasen en servidores de metadatos y datos del archivo se almacenadasen en servidores de almacenamiento de objetos. Software de cliente de sistema de archivo interactúa con los distintos servidores y resúmenes para presentar un sistema de archivos completo a usuarios y aplicaciones. Lustre es un ejemplo de este tipo de almacenamiento de objetos.
Almacenamiento de archivos
Algunas primeras encarnaciones de almacenamiento de objetos fueron utilizadas para archiving, como las implementaciones fueron optimizadas para servicios de datos como inmutabilidad, no el rendimiento. Centera de EMC y Hitachi HCP (anteriormente conocido como HCAP) son dos comúnmente citan productos de almacenamiento de objetos para archivar. Otro ejemplo es la plataforma de almacenamiento de información cuántica Lattus objeto.
Almacenamiento en la nube
La gran mayoría de almacenamiento en la nube disponible en el mercado aprovecha una arquitectura de almacenamiento de objetos. Son dos notables ejemplos de servicios de almacenamiento de nube Amazon Web Services S3 y Rackspace Archivos. AWS S3 debutó en 2005 y desde entonces ha sido sinónimo de servicios almacenamiento en la nube. Otros servicios de almacenamiento nube principales incluyen Microsoft Azure y Almacenamiento en la nube de Google.
Almacenamiento de objetos "Cautivo"
Algunas grandes empresas de internet desarrollaron su propio software, cuando los productos objeto de almacenamiento no estaban disponibles comercialmente o casos de uso eran muy específicos. Facebook famoso inventó su propio software de almacenamiento de información de objeto, denominada pajar, para abordar las que necesidades de su gestión de fotos particular masivamente eficientemente.[16]
Almacenamiento híbrido
Algunos objeción tales como sistemas de almacenamiento, GlusterFS y Cefalometría, soporte de almacenamiento de archivo unificado y objeto (OVNI), que permite a algunos clientes almacenar objetos en un sistema de almacenamiento mientras que simultáneamente otros clientes almacenan archivos en el mismo sistema de almacenamiento.
Sistemas de almacenamiento de objetos
Sistemas de almacenamiento de objetos de propósito más generales llegaron al mercado alrededor de 2008. Atraídos por el increíble crecimiento de los sistemas de almacenamiento "cautivo" dentro de las aplicaciones web como Yahoo Mail y el temprano éxito de almacenamiento en la nube, sistemas de almacenamiento de objetos prometieron la escala y la capacidad de almacenamiento en la nube, con la posibilidad de desplegar el sistema dentro de una empresa, o a un proveedor de servicios de almacenamiento nube aspirantes. Notables ejemplos de sistemas de almacenamiento de objetos EMC Atmos, Hitachi HCP, y OpenStack Swift.
Adopción de mercado
Uno de los primeros productos de almacenamiento de objetos, Lustre, es utilizado en el 70% de los supercomputadores Top 100 y ~ 50% de la Top 500.[17] A partir del 16 de junio de 2013, esto incluye 7 del top 10, incluyendo el actual sistema más rápido en la lista - Tianhe-2 de China y el segundo más rápido, el Supercomputadora Titan en Oak Ridge National Laboratory (foto a la derecha).[18]
Sistemas de almacenamiento de objetos tenían buena adopción en el 2000s temprano como una plataforma de archiving, particularmente a raíz de las leyes de cumplimiento como Ley Sarbanes-Oxley. Después de cinco años en el mercado, producto de Centera de EMC cobró más de 3.500 clientes y 150 petabytes Enviado por el 2007.[19] Producto de Hitachi HCP también afirma que muchos petabyte-escala de clientes.[20] Nuevos sistemas de almacenamiento de objetos también han conseguido tracción, particularmente alrededor de grandes aplicaciones personalizadas como sitio de subastas de eBay, donde EMC Atmos se utiliza para administrar objetos más 500 millones al día.[21] A partir de 03 de marzo de 2014, EMC afirma haber vendido más de 1,5 exabytes de almacenamiento Atmos.[22]
Sistemas de almacenamiento de objetos "Cautivo" como pajar de Facebook han escalado impresionante. En abril de 2009, pajar fue gestionar fotos 60 billones y 1,5 petabytes de almacenamiento, agregar fotos 220 millones y 25 terabytes a la semana.[16] Facebook más recientemente declaró que se fueron sumando fotos 350 millones al día y se almacena fotos 240 billones.[23] Esto podría significar tanto como 357 petabytes.[24]
Almacenamiento en la nube se ha vuelto omnipresente como muchas nueva aplicaciones web y móviles eligen como una forma común de almacenar datos binarios.[25] El almacenamiento back-end para muchas aplicaciones populares como Smugmug y Dropbox, AWS S3 ha crecido a gran escala, citando sobre 2 trillones objetos almacenados en abril de 2013.[26] Dos meses más tarde, Microsoft afirmó que almacenaban objetos aún más en Azure en 8,5 trillones.[27] En abril de 2014, Azure reclamó más 20 trillones objetos almacenados.[28] Almacenamiento de Windows Azure gestiona Blobs (archivos de usuario), tablas (almacenamiento estructurado) y colas (entrega de mensajes) y les cuenta todo como objetos.[29]
Estándares
Normas de dispositivo de almacenamiento basado en objetos
OSD versión 1
En la primera versión de la norma OSD,[30] los objetos se especifican con un identificador de partición de 64-bit y un identificador de objeto de 64 bits. Particiones son creadas y eliminadas dentro de un OSD y objetos son creados y eliminados en particiones. Hay no hay tamaños fijos asociados con particiones u objetos; se les permite crecer sujetas a limitaciones de tamaño físico del dispositivo o las restricciones de cuotas lógica en una partición.
Un conjunto de atributos extensible describir objetos. Algunos atributos son ejecutadas directamente por el OSD, tales como el número de bytes en un objeto y el tiempo de modificación de un objeto. Hay un atributo de etiqueta política especial que forma parte del mecanismo de seguridad. Otros atributos son interpretar por el OSD. Estos se fijan en los objetos por los sistemas de almacenamiento más alto nivel que utilizan el OSD para almacenamiento persistente. Por ejemplo, podrían utilizarse para clasificar objetos, o para capturar las relaciones entre los diferentes objetos almacenados en conectar diferentes atributos.
Un comando list devuelve una lista de identificadores de objetos dentro de una partición, opcionalmente filtrados por partidos contra sus valores de atributo. Un comando list también puede devolver los atributos seleccionados de los objetos mencionados.
Comandos de lectura y escritura pueden ser combinado o respaldados por piggy, con comandos para obtener y establecer los atributos. Esta capacidad reduce el número de veces que un sistema de almacenaje de alto nivel tiene que atravesar la interfaz para el menú en pantalla, que puede mejorar la eficiencia general.
OSD versión 2
Una segunda generación de los comandos SCSI establece, "Dispositivos de almacenamiento basados en objetos - 2" (OSD-2) añadido soporte para copias instantáneas, colecciones de objetos y mejorar la gestión de errores.[31]
A instantánea es un punto copia puntual de todos los objetos en una partición en una nueva partición. El OSD puede implementar usando una copia de uso eficiente del espacio Copy-on-write técnicas para que las dos particiones compartir objetos que han cambiado entre las instantáneas o el OSD físicamente pueden copiar los datos a la nueva partición. El estándar define clones, que son editables, y las fotos, que son de sólo lectura.
Una colección es un tipo especial de objeto que contiene los identificadores de otros objetos. Hay operaciones para agregar y eliminar de colecciones, y existen operaciones para obtener o establecer atributos de todos los objetos de una colección. Las colecciones también se utilizan para el informe de errores. Si un objeto se daña por la ocurrencia de un defecto de los medios de comunicación (es decir, un mal lugar en el disco) o por un error de software dentro de la aplicación de OSD, su identificador se pone en una colección especial de error. El sistema de almacenamiento más alto nivel que utiliza el OSD puede consultar esta colección y tomar medidas correctivas cuando sea necesario.
Véase también
- Almacenamiento en la nube
- Sistema de archivos en clúster
- Método de acceso a objetos
Referencias
- ^ Mesnier, Mike; Gregory R. Ganger; Erik Riedel (agosto de 2003). "Object-Based Storage". IEEE Communications Magazine:: 84-90. 27 de octubre 2013.
- ^ Chandrasekaran, Arun, Dayley, Alan (11 de febrero de 2014). "Capacidades críticas para el almacenamiento de objetos". Investigación de Gartner.
- ^ Factor, Michael; Metanfetamina K. D. Naor, O. Rodeh, Satran J. "Objeto de almacenamiento: el bloque de construcción de futuro para los sistemas de almacenamiento". Laboratorios de investigación de IBM Haifa. 26 de septiembre 2013.
- ^ Garth A. Gibson; D. Nagle, Amiri K., F. Chan, E. Feinberg, H. Gobioff, Lee C., B. Ozceri, Riedel Rochberg D., E. J. Zelenka "Servidor de archivos de escala con discos seguros conectado en red". Actas de la Conferencia Internacional ACM sobre medición y modelado de sistemas informáticos (Sigmetrics 97). 27 de octubre 2013.
- ^ Gobioff, Howard; Gibson, Garth A.; TYGAR, Doug (01 de octubre de 1997). "La seguridad de red conectados dispositivos de almacenamiento (CMU-CS-97-185)". Laboratorio de datos en paralelo. 7 de noviembre 2013.
- ^ Sanjay Ghemawat; Howard Gobioff, Tak-Shun Leung (octubre de 2003). "El sistema de archivos de Google". Google. 7 de noviembre 2013.
- ^ Braam, Peter. "Lustre: el sistema de archivo intergaláctico". 17 de septiembre 2013.
- ^ "OceanStore". 18 de septiembre 2013.
- ^ Kubiatowicz, John; Kubiatowicz, John; Bindel D., Chen Y., S. Czerwinski, Eaton P., Geels D., R. Gummadi, Rhea S., H. Weatherspoon, Weimer W., Wells C. y Zhao B. (noviembre de 2000). "OceanStore: una arquitectura para la escala Global de almacenamiento persistente". Actas de la novena Conferencia Internacional sobre arquitectura soporte para lenguajes de programación y sistemas operativos (ASPLOS 2000). 18 de septiembre 2013.
- ^ "EMC presenta producto de almacenamiento de datos de bajo costo". LA Times. 30 de abril de 2002. 17 de septiembre 2013.
- ^ Leung, Leo (16 de septiembre de 2013). "Después de 10 años, objeto almacenamiento inversión continúa y comienza a dar sus frutos significativos". 17 de septiembre 2013.
- ^ Riedel, Erik; Sami Iren (febrero de 2007). "Object Storage y aplicaciones". 3 de noviembre 2013.
- ^ "La visión de almacenamiento abierto cinético de Seagate". Seagate. 3 de noviembre 2013.
- ^ Gallagher, Sean (27 de octubre de 2013). "Seagate presenta una nueva interfaz de unidad: Ethernet". Arstechnica.com. 3 de noviembre 2013.
- ^ Corbet, Jonathan (04 de noviembre de 2008). "Dispositivos de almacenamiento Linux y objeto". LWN.net. 8 de noviembre 2013.
- ^ a b Vajgel, Peter. "Aguja en un pajar: almacenamiento eficiente de miles de millones de fotos". 17 de septiembre 2013.
- ^ Dilger, Andreas. "Lustre futuro desarrollo". IEEE MSST. 27 de octubre 2013.
- ^ "Datadirect Networks para construir el sistema de almacenamiento más rápido del mundo para Titan, superordenador más potente del mundo". 27 de octubre 2013.
- ^ "EMC cumplen cinco años de EMC Centera innovación y liderazgo en el mercado". EMC. 18 de abril de 2007. 3 de noviembre 2013.
- ^ "Plataforma de contenidos de Hitachi soporta múltiples Petabytes, miles de millones de objetos". Techvalidate.com. 19 de septiembre 2013.
- ^ Robb, Drew (11 de mayo de 2011). "EMC World continúa Focus on Big Data, nube y Flash". InfoStor. 19 de septiembre 2013.
- ^ Hamilton, George. "En él para el largo plazo: el liderazgo de EMC objeto de almacenamiento". 15 de marzo 2014.
- ^ Miller, Rich (13 de enero de 2013). "Facebook construye Exabyte Data Centers para almacenamiento en frío". Datacenterknowledge.com. 6 de noviembre 2013.
- ^ Leung, Leo (17 de mayo de 2014). "¿Cuánto x de almacén de datos?". Techexpectations.org. 23 de mayo 2014.
- ^ Leung, Leo (11 de enero de 2012). "Object storage ya domina nuestros días (sólo no notamos)". 27 de octubre 2013.
- ^ Harris, Derrick (18 de abril de 2013). "Amazon S3 va exponencial, ahora almacena objetos 2 trillones". GigaOM. 17 de septiembre 2013.
- ^ Wilhelm, Alex (27 de junio de 2013). "Microsoft: usuarios de Skype poderes Azure de 299 M, 50 millones de usuarios de Office Web Apps, tiendas 8.5T objetos". thenextweb.com. 18 de septiembre 2013.
- ^ Nelson, Fritz (04 de abril de 2014). "De Microsoft Azure 44 nuevas mejoras, 20 trillones de objetos". Tom es todo Pro. 3 de septiembre 2014.
- ^ Calder, Brad. "Windows Azure Storage: un servicio de almacenamiento nube altamente disponible con consistencia fuerte". 23 ACM Symposium on principios de sistemas operativos (SOSP): Microsoft. 6 de noviembre 2013.
- ^ "INCITS 400-2004". Comité Internacional de normas de tecnología de información. 8 de noviembre 2013.
- ^ "INCITS 458-2011". Comité Internacional de normas de tecnología de información. 15 de marzo de 2011. 8 de noviembre 2013.
Enlaces externos
- Documentación de la API de AWS S3
- Documentación de Google Cloud Storage API
- Documentación OpenStack Swift API
- Documentación de almacenamiento abierto cinético de Seagate
- Documentación de Windows Azure Storage API